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 589204 - playbin2 does not use sufficiently large queues for dvbsrc
playbin2 does not use sufficiently large queues for dvbsrc
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: dont know
git master
Other All
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on: 618336
Blocks:
 
 
Reported: 2009-07-21 04:43 UTC by Austin Lund
Modified: 2011-08-16 09:40 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26


Attachments
Output from playbin2 and GST_DEBUG=dvbsrc:4,queue:4,queue_dataflow:4 (21.40 KB, application/x-gzip)
2010-06-08 10:33 UTC, Austin Lund
Details
Output from git 2011-03-18 playbin2 and GST_DEBUG=dvbsrc:4,queue:4,queue_dataflow:4 (11.09 KB, application/x-gzip)
2011-03-18 10:26 UTC, Austin Lund
Details

Description Austin Lund 2009-07-21 04:43:18 UTC
Please describe the problem:
I have a sample mpeg transport stream from Australian HDTV (1080i channel).  It is available currently at:

http://www.physics.uq.edu.au/people/lund/temp.ts

This file was generated using gst-launch dvbbasebin options=blah ! filesink location=temp.ts

Playing this using playbin does not work.  There is no output at all.  

Steps to reproduce:
1. Either download the file or get a dvb tuner to generate a mpeg TS as above
2. Play the file using playbin


Actual results:
No output at all.  No video or audio.  

Expected results:
Playback of video and audio

Does this happen every time?
Yes.  But tested only against current git.

Other information:
The output of gst-launch -v is below.  It stops at the bottom line and no output is produced.

$ gst-launch -v playbin uri=file:///home/lund/Desktop/temp.ts 
Setting pipeline to PAUSED ...
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstMpegTSDemux:mpegtsdemux0.GstPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstMpegTSDemux:mpegtsdemux0: pat-info = ((GValueArray*) 0xa09540)
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstMpegTSDemux:mpegtsdemux0: pmt-info = ((MpegTsPmtInfo*) 0x9f5430)
** Message: don't know how to handle private/teletext
Pipeline is PREROLLING ...
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:sink: caps = audio/x-ac3
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue0.GstPad:src: caps = audio/x-ac3
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstA52Dec:a52dec0.GstPad:sink: caps = audio/x-ac3
/GstPlayBin:playbin0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstA52Dec:a52dec0.GstPad:src: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2.GstPad:sink: caps = video/mpeg, mpegversion=(int)2, systemstream=(boolean)false
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2.GstPad:src: caps = video/mpeg, mpegversion=(int)2, systemstream=(boolean)false
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:sink: caps = video/mpeg, mpegversion=(int)2, systemstream=(boolean)false
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:src: caps = video/mpeg, systemstream=(boolean)false, parsed=(boolean)true, mpegversion=(int)2, width=(int)1440, height=(int)1080, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)true, codec_data=(buffer)000001b35a043833dbba2a021020205620568c8c8c8c8c8cd4b0d4e6e6e6d4d4d4d4e6e6e70b0b0b6565650b0b0ae6e70b0b414165659bad9b77776577adadd1d1d1ffffffffffffffffffff1019192222222b2b2b2b34343434343d3d3d3d3d3d464646464646464f4f4f4f4f4f4f4f58585861585858616a6a6a6a6173737373737c7c7c7c8e8e8e9797a9000001b51442000100000000
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:sink: caps = video/mpeg, systemstream=(boolean)false, parsed=(boolean)true, mpegversion=(int)2, width=(int)1440, height=(int)1080, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)4/3, interlaced=(boolean)true, codec_data=(buffer)000001b35a043833dbba2a021020205620568c8c8c8c8c8cd4b0d4e6e6e6d4d4d4d4e6e6e70b0b0b6565650b0b0ae6e70b0b414165659bad9b77776577adadd1d1d1ffffffffffffffffffff1019192222222b2b2b2b34343434343d3d3d3d3d3d464646464646464f4f4f4f4f4f4f4f58585861585858616a6a6a6a6173737373737c7c7c7c8e8e8e9797a9000001b51442000100000000
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src0.GstSelectorPad:sink0: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstDecodeBin:decodebin0.GstGhostPad:src0.GstProxyPad:proxypad1: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src0.GstPad:src: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstQueue:preroll_audio_src0.GstPad:sink: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstDecodeBin:decodebin0.GstGhostPad:src1: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, framerate=(fraction)25/1, interlaced=(boolean)true
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)1440, height=(int)1080, pixel-aspect-ratio=(fraction)4/3, framerate=(fraction)25/1, interlaced=(boolean)true
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2: max-size-bytes = 262016
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2: max-size-bytes = 524032
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2: max-size-bytes = 1048064
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2: max-size-bytes = 2193212
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2: max-size-bytes = 3303440
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2: max-size-bytes = 4393216
/GstPlayBin:playbin0/GstDecodeBin:decodebin0/GstQueue:queue2: max-size-bytes = 5469220
/GstPlayBin:playbin0/GstStreamSelector:selector_audio_src0: active-pad = (GstSelectorPad) sink0
/GstPlayBin:playbin0/GstStreamSelector:selector_video_src1: active-pad = (GstSelectorPad) sink0
/GstPlayBin:playbin0/GstQueue:preroll_audio_src0.GstPad:src: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin/GstAudioConvert:aconv.GstPad:src: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin/GstAudioConvert:aconv.GstPad:sink: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin.GstGhostPad:sink: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin.GstGhostPad:sink.GstProxyPad:proxypad4: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin/GstAudioResample:aresample.GstPad:src: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin/GstAudioResample:aresample.GstPad:sink: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin/GstVolume:volume.GstPad:src: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin/GstVolume:volume.GstPad:sink: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin/GstAutoAudioSink:audiosink/GstPulseSink:audiosink-actual-sink-pulse.GstPad:sink: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin/GstAutoAudioSink:audiosink.GstGhostPad:sink: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstBin:abin/GstAutoAudioSink:audiosink.GstGhostPad:sink.GstProxyPad:proxypad3: caps = audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)48000, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT >
/GstPlayBin:playbin0/GstQueue:preroll_audio_src0: min-threshold-time = 900000000
Comment 1 Austin Lund 2010-05-27 23:50:26 UTC
I think I've isolated the problem to dvbsrc.  I'm able to make it work when a stream from dvbsrc is saved to file then played back from the file.
Comment 2 Austin Lund 2010-06-08 10:33:08 UTC
Created attachment 163039 [details]
Output from playbin2 and GST_DEBUG=dvbsrc:4,queue:4,queue_dataflow:4

I think I've narrowed it down to problems with queue max sizes.  Blocking the dvb source is bad.

The following pipeline works (it follows the example from gstdvbsrc.c):

gst-launch -v dvbsrc  frequency=219500000 modulation=3 trans-mode=8k bandwidth=7 code-rate-lp=3/4 ! mpegtsparse ! mpegtsdemux name=ts program-number=1607 ! queue max-size-buffers=0 max-size-time=0 ! video/mpeg ! mpegvideoparse ! ffdec_mpeg2video ! xvimagesink  ts. ! queue max-size-buffers=0 max-size-time=0 ! audio/x-ac3 ! ac3parse ! decodebin ! pulsesink

playbin2 seems to place the queues in the wrong place and not ensure that there is sufficient space to avoid blocking.
Comment 3 Austin Lund 2010-06-11 01:17:13 UTC
The above pipeline allows for the stream to play but is unsynchronised due to bug 618336.
Comment 4 Austin Lund 2011-03-18 00:44:30 UTC
This seems to work now in current git.  The only significant difference I can see in the output is that there is now queues called "aqueue" and "vqueue" which seem to have some extra output when initialising.
Comment 5 Sebastian Dröge (slomo) 2011-03-18 08:24:07 UTC
Ok so this bug can be closed now?
Comment 6 Austin Lund 2011-03-18 10:26:15 UTC
Created attachment 183699 [details]
Output from git 2011-03-18 playbin2 and GST_DEBUG=dvbsrc:4,queue:4,queue_dataflow:4

OK.  Strange.  I confused myself.  The file plays but when playing from the dvb source it doesn't.  However, it does work with playbin, but not playbin2.
Comment 7 Sebastian Dröge (slomo) 2011-05-20 07:15:35 UTC
playbin(2) uses dvbbasebin instead of dvbsrc, does it work if you use that instead of dvbsrc in your manual pipeline?
Comment 8 Akhil Laddha 2011-07-01 06:16:51 UTC
Austin, can you please respond to the comment#7 ?
Comment 9 Akhil Laddha 2011-08-16 09:40:15 UTC
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for.
Thanks!