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 431707 - [amrnbparse] make pipeline hang
[amrnbparse] make pipeline hang
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
git master
Other Linux
: Normal normal
: 0.10.6
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-04-20 14:21 UTC by Sebastien Merle
Modified: 2007-04-22 22:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
AMR file that hang when played with amrnbparse (1.16 KB, application/octet-stream)
2007-04-20 14:22 UTC, Sebastien Merle
Details

Description Sebastien Merle 2007-04-20 14:21:00 UTC
When playing an amr file, decodebin creates amrnbparse and amrnbdec component.
gstreamer play the file but then hang.
When using the ffmpeg amr demuxer ffdemux_amr in place of amrnbparse it works fine.

Command:

GST_DEBUG=2 gst-launch -vm filesrc location=cat_1.amr ! decodebin ! alsasink


Log:

Setting pipeline to PAUSED ...
/pipeline0/decodebin0/typefind.src: caps = audio/x-amr-nb-sh
Pipeline is PREROLLING ...
Got Message from element "pipeline0" (clock-provide): GstMessageClockProvide, clock=(GstClock)NULL, ready=(boolean)true
Got Message from element "pipeline0" (clock-provide): GstMessageClockProvide, clock=(GstClock)NULL, ready=(boolean)true
Got Message from element "alsasink0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "fakesink" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "typefind" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "decodebin0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "filesrc0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "pipeline0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PAUSED
Got Message from element "amrnbparse0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "amrnbdec0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "amrnbdec0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "amrnbparse0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "typefind" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "filesrc0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING
/pipeline0/decodebin0/amrnbparse0.src: caps = audio/AMR, rate=(int)8000, channels=(int)1
/pipeline0/decodebin0/amrnbdec0.src: caps = audio/x-raw-int, channels=(int)1, width=(int)16, depth=(int)16, endianness=(int)1234, rate=(int)8000, signed=(boolean)true
/pipeline0/decodebin0/amrnbdec0.sink: caps = audio/AMR, rate=(int)8000, channels=(int)1
Got Message from element "fakesink" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PLAYING, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_READY
Got Message from element "decodebin0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "fakesink" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_NULL
Got Message from element "fakesink" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_NULL, pending-state=(GstState)GST_STATE_VOID_PENDING
/pipeline0/alsasink0.sink: caps = audio/x-raw-int, channels=(int)1, width=(int)16, depth=(int)16, endianness=(int)1234, rate=(int)8000, signed=(boolean)true
/pipeline0/decodebin0.src0: caps = audio/x-raw-int, channels=(int)1, width=(int)16, depth=(int)16, endianness=(int)1234, rate=(int)8000, signed=(boolean)true
/pipeline0/decodebin0.src0.proxypad1: caps = audio/x-raw-int, channels=(int)1, width=(int)16, depth=(int)16, endianness=(int)1234, rate=(int)8000, signed=(boolean)true
0:00:00.502234000 18325 0x812b320 WARN              basesink gstbasesink.c:2123:gst_base_sink_chain_unlocked:<alsasink0> warning: Internal data flow problem.
0:00:00.502268000 18325 0x812b320 WARN              basesink gstbasesink.c:2123:gst_base_sink_chain_unlocked:<alsasink0> warning: Received buffer without a new-segment. Assuming timestamps start from 0.
Got Message from element "alsasink0" (warning): GstMessageWarning, gerror=(GstGError)(NULL), debug=(string)"gstbasesink.c\(2123\):\ gst_base_sink_chain_unlocked\ \(\):\ /pipeline0/alsasink0:\012Received\ buffer\ without\ a\ new-segment.\ Assuming\ timestamps\ start\ from\ 0."
WARNING: from element /pipeline0/alsasink0: Internal data flow problem.
Additional debug info:
gstbasesink.c(2123): gst_base_sink_chain_unlocked (): /pipeline0/alsasink0:
Received buffer without a new-segment. Assuming timestamps start from 0.
Got Message from element "alsasink0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "pipeline0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING
Pipeline is PREROLLED ...
Got Message from element "pipeline0" (async-done): no message details
Setting pipeline to PLAYING ...
Got Message from element "pipeline0" (new-clock): GstMessageNewClock, clock=(GstClock)GstAudioSinkClock
New clock: GstAudioSinkClock
Got Message from element "alsasink0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "amrnbdec0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "amrnbparse0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "typefind" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "decodebin0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "filesrc0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING
Got Message from element "pipeline0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING
Comment 1 Sebastien Merle 2007-04-20 14:22:10 UTC
Created attachment 86698 [details]
AMR file that hang when played with amrnbparse
Comment 2 Tim-Philipp Müller 2007-04-22 22:41:15 UTC
Should be fixed in CVS now. Please re-open if it's not.

 2007-04-22  Tim-Philipp Müller  <tim at centricular dot net>

        * ext/amrnb/amrnbparse.c: (gst_amrnbparse_get_type),
        (gst_amrnbparse_class_init), (gst_amrnbparse_init),
        (gst_amrnbparse_pull_header), (gst_amrnbparse_loop):
          Fix pull mode operation some more: send newsegment event before
          sending data; handle EOS and fatal flow returns a bit better; don't
          leak buffers in some cases. Misc. minor cleanups. Fixes #431707.