[gstreamer-bugs] [Bug 605980] mpegtsdemux: stream identified as E-AC3 not properly decoded by ffdec_eac3

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sun Jan 3 20:43:46 PST 2010


https://bugzilla.gnome.org/show_bug.cgi?id=605980
  GStreamer | gst-plugins-bad | git

--- Comment #1 from Philip Jägenstedt <philipj at opera.com> 2010-01-03 22:26:48 UTC ---
File is too big to attach, please get from http://foolip.org/gst/hanoi.m2ts and
put on http://gstreamer.freedesktop.org/media/ if you want to keep it forever.

Playing this file in Totem, editing it with PiTiVi or e.g. using a decodebin(2)
pipeline seems to cause mpegtsdemux to be used. mpegtsdemux sets the
"audio/x-eac3" caps for the audio stream, which is only handled by ffdec_eac3.
However, ffdec_eac3 is dropping the beginning of the audio which causes the
whole thing to out of sync about 500ms (crushing my dream of using PiTiVi for
this).

The following pipeline works: gst-launch filesrc location=hanoi.m2ts !
ffdemux_mpegts name=demux ! queue ! ffdec_h264 ! ffdeinterlace !
ffmpegcolorspace ! autovideosink demux. ! queue ! ffdec_ac3 ! audioconvert !
autoaudiosink

Decoding is too slow, but if you use a similar pipeline to transcode into e.g.
Ogg, the resulting file is in sync.

Now, I've debugged a bit in gst-ffmpeg when using ffdemux_mpegts, stepping
through these lines in ac3_parser.c:

    if(hdr->bitstream_id <= 10) {
        /* Normal AC-3 */
...
    } else {
        /* Enhanced AC-3 */

For this input, the Normal AC-3 path is taken (hdr->bitstream_id was 4). The
net result is that 

mpegtsdemux, however, identifies it as audio/x-eac3 around gstmpegtsdemux.c:731
This causes ffdec_eac3 to be used, which for whatever reason chops off the
beginning of the stream as described above.

I don't know if this really is an E-AC3 stream and if it happens to be a valid
AC3 stream at the same time. As far as I can tell, the real bug could be any
of:

1. FFMPEG's E-AC3 decoder is broken
2. mpegtsdemux isn't sending all the data needed to ffdec_eac3
3. this is really an AC3 stream and we mpegtsdemux needs to inspect the stream
more closely before deciding between audio/x-ac3 and audio/x-eac3
4. ffdemux_mpegts should have higher rank than mpegtsdemux

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.



More information about the Gstreamer-bugs mailing list