After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 375534 - FLV demuxer produces bad framerate, durations
FLV demuxer produces bad framerate, durations
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-libav
git master
Other Linux
: Normal normal
: 0.10.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 382631 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-11-15 14:34 UTC by Michael Smith
Modified: 2007-06-05 14:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Use the duration from the context if there is no duration in the stream set. (782 bytes, patch)
2007-05-05 22:13 UTC, Jan Arne Petersen
committed Details | Review

Description Michael Smith 2006-11-15 14:34:58 UTC
The ffmpeg FLV demuxer says that everything has a framerate of 1000 fps. This appears to be because gstffmpegdemux is misusing the time_base as a framerate, in some cases, which seems to be a bizarre thing to do.

FLV doesn't actually have a fixed framerate, only individual timestamps.

The durations are also wrong; all of them are set to zero.
Comment 1 Mark Van den Borre 2007-04-08 10:20:23 UTC
http://dl1.streaming.telenetmedia.be/gtv/1000/4898/11379.rondestart2.flv is a nice example.

 gst-launch-0.10 -v playbin uri=file:///home/beheerder/11379.rondestart2.flv
Pijplijn gezet op gepauzeerd ...
/playbin0/decodebin0/typefind.src: caps = video/x-flv
Pijplijn is bezig met PREROLL ...
/playbin0/selector_audio_src0: active-pad = "sink0"
/playbin0/selector_video_src1: active-pad = "sink0"
[...] perfectly working audio stuff stripped
/playbin0/decodebin0/queue2.sink: caps = video/x-vp6-flash, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/decodebin0/queue2.src: caps = video/x-vp6-flash, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/decodebin0/ffdec_vp6f0.sink: caps = video/x-vp6-flash, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/decodebin0/ffdec_vp6f0.src: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/selector_video_src1.sink0: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/decodebin0.src1: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/decodebin0.src1.proxypad2: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/selector_video_src1.src: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/preroll_video_src1.sink: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/preroll_video_src1.src: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/vbin/id.src: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/vbin/id.sink: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/vbin.sink: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/vbin.sink: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/vbin.sink.proxypad6: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/vbin/vconv.src: caps = video/x-raw-yuv, format=(fourcc)YV12, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/vbin/vconv.sink: caps = video/x-raw-yuv, width=(int)656, height=(int)480, framerate=(fraction)1000/1, format=(fourcc)I420
/playbin0/vbin/vscale.src: caps = video/x-raw-yuv, format=(fourcc)YV12, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/vbin/vscale.sink: caps = video/x-raw-yuv, format=(fourcc)YV12, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/vbin/videosink/videosink-actual-sink.sink: caps = video/x-raw-yuv, format=(fourcc)YV12, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/vbin/videosink.sink: caps = video/x-raw-yuv, format=(fourcc)YV12, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/vbin/videosink.sink: caps = video/x-raw-yuv, format=(fourcc)YV12, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/vbin/videosink.sink.proxypad5: caps = video/x-raw-yuv, format=(fourcc)YV12, width=(int)656, height=(int)480, framerate=(fraction)1000/1
/playbin0/decodebin0/queue2: max-size-bytes = 17316
/playbin0/decodebin0/queue2: max-size-bytes = 36444
Pijplijn klaar met PREROLL ...
Pijplijn gezet op afspelen ...


Comment 2 Mark Van den Borre 2007-04-08 10:28:40 UTC
My gstreamer config, up to date Ubuntu 7.04 as of 2007/04/08:

ii  gstreamer0.10-alsa        0.10.12-0ubuntu1          GStreamer plugin for ALSA
un  gstreamer0.10-audiosink   <geen>                    (geen beschrijving beschikbaar)
un  gstreamer0.10-colorspace  <geen>                    (geen beschrijving beschikbaar)
ii  gstreamer0.10-esd         0.10.5-1ubuntu2           GStreamer plugin for ESD
ii  gstreamer0.10-ffmpeg      0.10.2-0ubuntu4           FFmpeg plugin for GStreamer
ii  gstreamer0.10-fluendo-mp3 0.10.4.debian-1           Fluendo mp3 decoder GStreamer plugin
ii  gstreamer0.10-fluendo-mpe 0.10.4-0ubuntu1           Fluendo GStreamer plugin for MPEG2 demuxing
ii  gstreamer0.10-gnomevfs    0.10.12-0ubuntu1          GStreamer plugin for GnomeVFS
un  gstreamer0.10-lame        <geen>                    (geen beschrijving beschikbaar)
un  gstreamer0.10-pitfdll     <geen>                    (geen beschrijving beschikbaar)
un  gstreamer0.10-plugins     <geen>                    (geen beschrijving beschikbaar)
ii  gstreamer0.10-plugins-bad 0.10.4-1ubuntu1           GStreamer plugins from the "bad" set
ii  gstreamer0.10-plugins-bad 0.10.4-3                  GStreamer plugins from the "bad" set (Multiverse Variant)
ii  gstreamer0.10-plugins-bas 0.10.12-0ubuntu1          GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-bas 0.10.12-0ubuntu1          GStreamer helper programs from the "base" set
ii  gstreamer0.10-plugins-goo 0.10.5-1ubuntu2           GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-ugl 0.10.5-0ubuntu2           GStreamer plugins from the "ugly" set
ii  gstreamer0.10-plugins-ugl 0.10.5-2                  GStreamer plugins from the "ugly" set (Multiverse Variant)
ii  gstreamer0.10-tools       0.10.12-0ubuntu2          Tools for use with GStreamer
un  gstreamer0.10-videosink   <geen>                    (geen beschrijving beschikbaar)
ii  gstreamer0.10-x           0.10.12-0ubuntu1          GStreamer plugins for X11 and Pango
Comment 3 Jan Arne Petersen 2007-05-05 22:11:22 UTC
*** Bug 382631 has been marked as a duplicate of this bug. ***
Comment 4 Jan Arne Petersen 2007-05-05 22:13:44 UTC
Created attachment 87628 [details] [review]
Use the duration from the context if there is no duration in the stream set.
Comment 5 Jan Arne Petersen 2007-05-21 17:20:16 UTC
*** Bug 440164 has been marked as a duplicate of this bug. ***
Comment 6 Wim Taymans 2007-06-05 14:00:51 UTC
        Patch by: Jan Arne Petersen <jpetersen at jpetersen dot org>

        * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_src_query):
        Use total duration when the individual stream duration is not known.
        Fixes #375534.