[Bug 707016] New: Regression - Malformed Ogg/FLAC file (containing only Ogg header) hangs decoding

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Aug 28 14:04:17 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=707016
  GStreamer | gst-plugins-good | 1.0.8

           Summary: Regression - Malformed Ogg/FLAC file (containing only
                    Ogg header) hangs decoding
    Classification: Platform
           Product: GStreamer
           Version: 1.0.8
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: marcin at saepia.net
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


It is probably somehow related to Bug 707015.

I've created a malformed Ogg/FLAC file using method mentioned in Bug 707015.

When I try to play it in 1.0 it hangs the pipeline instead of throwing
EOS/Error/whatever. It is very nasty as it can lead to hanging the app as
proper callbacks/messages are never called.

Test in 1.0:

$ LC_ALL=C gst-launch-1.0 -v filesrc
location=sine-440hz-0point8-1sec-q5-ogg.flac ! decodebin ! audioconvert !
fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src:
caps = audio/ogg
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src:
caps = audio/ogg
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstOggDemux:oggdemux0.GstPad:sink:
caps = audio/ogg
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0:
max-size-buffers = 5
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0:
max-size-time = 0
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0:
max-size-bytes = 2097152
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:sink_0:
caps = audio/x-flac, rate=(int)44100, channels=(int)1, streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:sink_0:
caps = audio/x-flac, rate=(int)44100, channels=(int)1, streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0:
max-size-buffers = 5
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0:
max-size-time = 0
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0:
max-size-bytes = 2097152
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0.GstPad:src:
caps = audio/x-flac, channels=(int)1, framed=(boolean)true, rate=(int)44100,
streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacDec:flacdec0.GstPad:sink:
caps = audio/x-flac, channels=(int)1, framed=(boolean)true, rate=(int)44100,
streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >


Then in hangs until I press Ctrl+C.


The same in 0.10 works OK:

$ LC_ALL=C gst-launch-0.10 -v filesrc
location=sine-440hz-0point8-1sec-q5-ogg.flac ! decodebin ! audioconvert !
fakesink
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src:
caps = application/ogg
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstOggDemux:oggdemux0.GstPad:sink:
caps = application/ogg
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstOggDemux:oggdemux0.GstOggPad:serial_780c58f2:
caps = audio/x-flac, rate=(int)44100, channels=(int)1, streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:sink:
caps = audio/x-flac, rate=(int)44100, channels=(int)1, streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:src: caps
= audio/x-flac, rate=(int)44100, channels=(int)1, streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0.GstPad:sink:
caps = audio/x-flac, rate=(int)44100, channels=(int)1, streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0.GstPad:src:
caps = audio/x-flac, channels=(int)1, framed=(boolean)true, rate=(int)44100,
streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacDec:flacdec0.GstPad:sink:
caps = audio/x-flac, channels=(int)1, framed=(boolean)true, rate=(int)44100,
streamheader=(buffer)<
7f464c414301000003664c614300000022120012000000000000000ac440f00000000000000000000000000000000000000000,
04000028200000007265666572656e6365206c6962464c414320312e322e3120323030373039313700000000,
83000000 >
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "event   *******
(fakesink0:sink) E (type: 86, ) 0xb630c090"
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 303600 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacDec:flacdec0.GstPad:sink:
caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0.GstPad:src:
caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0.GstPad:sink:
caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:src: caps
= NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:sink:
caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstOggDemux:oggdemux0.GstOggPad:serial_780c58f2:
caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstOggDemux:oggdemux0.GstPad:sink:
caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src:
caps = NULL
Setting pipeline to NULL ...
Freeing pipeline ...

-- 
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