diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2005-09-19 12:01:27 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2005-09-19 12:01:27 +0000 |
commit | 10dea5bfbbc6eadfbf78746cfb2906af5044510a (patch) | |
tree | cacfe47dc3d4d4fa9bc5526ad782f43a3d8fb219 | |
parent | fa992c26d6bfcf79fd9516c1787228ce05b4473d (diff) | |
download | gst-libav-10dea5bfbbc6eadfbf78746cfb2906af5044510a.tar.gz |
ext/ffmpeg/gstffmpegcodecmap.c: Better framerate setting.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_pixfmt):
Better framerate setting.
-rw-r--r-- | ChangeLog | 5 | ||||
m--------- | common | 0 | ||||
-rw-r--r-- | ext/ffmpeg/gstffmpegcodecmap.c | 17 |
3 files changed, 20 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2005-09-19 Wim Taymans <wim@fluendo.com> + + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_pixfmt): + Better framerate setting. + 2005-09-16 Thomas Vander Stichele <thomas at apestaart dot org> * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_sink_event): diff --git a/common b/common -Subproject 39250a956e1dfc010fe9f9d93ca1e2c3a343cdc +Subproject eac450a673cd1d3a606fe75399d0cd1fcb1d0d7 diff --git a/ext/ffmpeg/gstffmpegcodecmap.c b/ext/ffmpeg/gstffmpegcodecmap.c index a6379fd..fd7b26f 100644 --- a/ext/ffmpeg/gstffmpegcodecmap.c +++ b/ext/ffmpeg/gstffmpegcodecmap.c @@ -1111,8 +1111,21 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps, gst_structure_get_int (structure, "bpp", &context->bits_per_sample); if (gst_structure_get_double (structure, "framerate", &fps)) { - context->time_base.den = fps * DEFAULT_FRAME_RATE_BASE; - context->time_base.num = DEFAULT_FRAME_RATE_BASE; + GValue dfps = { 0 }; + GValue framerate = { 0 }; + + /* convert double to fraction for the framerate */ + g_value_init (&dfps, G_TYPE_DOUBLE); + g_value_init (&framerate, GST_TYPE_FRACTION); + g_value_set_double (&dfps, fps); + g_value_transform (&dfps, &framerate); + + /* somehow these seem mixed up.. */ + context->time_base.den = gst_value_get_fraction_numerator (&framerate); + context->time_base.num = gst_value_get_fraction_denominator (&framerate); + + GST_DEBUG ("setting framerate %d/%d = %lf", + context->time_base.den, context->time_base.num, fps); } if (!raw) |