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 608332 - flvdemux internal data stream error
flvdemux internal data stream error
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.16
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-01-28 11:54 UTC by Olivier Tilloy
Modified: 2012-10-26 19:57 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Example flv video (67.88 KB, video/x-flv)
2010-01-28 11:54 UTC, Olivier Tilloy
Details

Description Olivier Tilloy 2010-01-28 11:54:28 UTC
Created attachment 152480 [details]
Example flv video

flvdemux fails to demux an H264 video stream on some videos found on justin.tv.
An example file can be found at http://archive.justin.tv/archives/2010-1-27/live_user_savvas1252_1264614335.flv. I'm also attaching a truncated version of this file.
Tested with gst-launch, playbin and playbin2 behave differently.

playbin
=======

osomon@bodeguita:~/temp$ LANG=C GST_DEBUG=*flv*:2 gst-launch playbin uri=file:///home/osomon/temp/live_user_savvas1252_1264614335.flv 

(gst-launch-0.10:10220): GLib-WARNING **: g_set_prgname() called multiple times
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.033945105 10220  0x9233d68 WARN                flvdemux gstflvdemux.c:331:gst_flv_demux_pull_range:<flvdemux0> failed when pulling 12 bytes from offset 72395: unexpected

** (gst-launch-0.10:10220): WARNING **: could not link video/x-raw-yuv, width=(int)320, height=(int)240, framerate=(fraction)-67108825/257, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1: -4
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstPulseSinkClock
0:00:00.329735778 10220  0x9233d68 WARN                flvdemux gstflvdemux.c:339:gst_flv_demux_pull_range:<flvdemux0> partial pull got 646 when expecting 3537 from offset 68858
Got EOS from element "playbin0".
Execution ended after 934959309 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...


playbin2
========

osomon@bodeguita:~/temp$ LANG=C GST_DEBUG=*flv*:2 gst-launch playbin2 uri=file:///home/osomon/temp/live_user_savvas1252_1264614335.flv 

(gst-launch-0.10:10234): GLib-WARNING **: g_set_prgname() called multiple times
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.038427246 10234  0x8739408 WARN                flvdemux gstflvdemux.c:331:gst_flv_demux_pull_range:<flvdemux0> failed when pulling 12 bytes from offset 72395: unexpected
0:00:00.166074209 10234  0x8739408 WARN                flvdemux gstflvparse.c:1121:gst_flv_parse_tag_video:<flvdemux0> failed pushing a 22 bytes video buffer: not-negotiated
0:00:00.166142259 10234  0x8739408 WARN                flvdemux gstflvdemux.c:603:gst_flv_demux_loop:<flvdemux0> error: Internal data stream error.
0:00:00.166160128 10234  0x8739408 WARN                flvdemux gstflvdemux.c:603:gst_flv_demux_loop:<flvdemux0> error: stream stopped, reason not-negotiated
ERROR: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstFLVDemux:flvdemux0: Internal data stream error.
Additional debug info:
gstflvdemux.c(603): gst_flv_demux_loop (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstFLVDemux:flvdemux0:
stream stopped, reason not-negotiated
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
Comment 1 Wim Taymans 2010-01-28 18:08:31 UTC
the complete file fails to play properly:

1 - codec_data already contains escaped data and we escape it again, making
     ffmpeg fail to decode the SPS/PPS
2 - after fixing 1, timestamps look completely off

1) is annoying because the escaping code was added because some file did not already escape the codec_data..
Comment 2 Sebastian Dröge (slomo) 2010-02-02 08:07:47 UTC
1) is fixed now and the file plays at least, although not very good :)

commit d3f9ee4309cd3280aab6d773574df89bcd7c9c95
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Fri Jan 29 13:58:20 2010 +0100

    ffmpegcodecmap: don't escape codec_data
    
    Don't escape the codec_data, it breaks some streams (but likely also fixes
    others). It's better to leave it as is, like most other players do.
    
    See #608332
Comment 3 Wim Taymans 2010-02-02 16:45:26 UTC
the timestamps are not very accurate but it's mostly gst-ffmpeg who reorders the timestamps and mess things up.
Comment 4 Tim-Philipp Müller 2012-10-26 19:57:11 UTC
It seems to play fine for me now with 1.0.2, so closing.

Please re-open if it's still an issue with a current 1.x release of GStreamer, thanks!