[SOLVED] Timing out problem with souphttpsrc

Ian Daley ian at nian.com.au
Mon Feb 27 06:20:13 PST 2012


Well, I fixed the issue.

I managed to work it out, the issue was with the queuing, but I was 
looking in the wrong area. It wasn't the data that was getting full it 
was the max-size-time property... which by default is one second.

It is feasible since we're pulling apart a camera stream and transcoding 
the video into H264 that there might be a wait of over a second 
somewhere in the pipeline... an acceptable penalty. Extending the 
max-size-time to 5 seconds completely cured this issue.

Yay!


On 02/27/2012 04:31 AM, Ian Daley wrote:
> Further to this, please see below from the debug output.
>
> On 02/27/2012 04:00 AM, Ian Daley wrote:
>> Hi there,
>>
>> thanks for all the help so far... I think I have nearly got to the 
>> bottom of it
>>
>> Now however, I have a problem with souphttpsrc and it just timing out 
>> (without error)
>>
>> If you see the pipeline below... well it works and I am able to 
>> capture the output reliably to a pipe except for one thing...
>>
>> After about 5 minutes, (usually between 5 to 7 minutes) the pipeline 
>> just hangs. No errors, no feedback... it doesn't even say it has 
>> paused... it just stops.
>>
>> gst-launch  souphttpsrc timeout=300 location="http://<ip 
>> removed>/videostream.asf?user=admin&pwd=&resolution=24&rate=0" 
>> do-timestamp=true is_live=true ! queue max-size-buffers=0 ! asfdemux 
>> name=demux demux.audio_00 ! queue ! adpcmdec ! queue ! audioconvert ! 
>> faac ! queue ! mux. demux.video_00 ! queue ! jpegdec ! queue ! 
>> ffmpegcolorspace ! videorate ! 'video/x-raw-yuv,framerate=5/1' ! 
>> queue ! x264enc byte-stream=true bitrate=256 ! queue ! mux. flvmux 
>> name="mux" ! queue max-size-buffers=0 ! filesink location="/tmp/pipeV"
>>
>> I have tested this by catting the output and without fail it gets to 
>> around the 5 ~ 6 minute mark and then just stalls with no feedback.
>>
>> If I remove the audio queue, it doesn't stall.
>
> :06:14.849659719 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2957:gst_pad_alloc_buffer_full:<queue0:src> offset 
> 18446744073709551615, size 4096, caps (NULL)
> 0:06:14.849685807 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2878:gst_pad_buffer_alloc_unchecked:<demux:sink> calling 
> bufferallocfunc &(NULL) (@(nil)) for size 4096 offset NONE
> 0:06:14.850739079 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2927:gst_pad_buffer_alloc_unchecked:<demux:sink> fallback 
> buffer alloc
> 0:06:14.850770864 12149      0x22a9f00 DEBUG            souphttpsrc 
> gstsouphttpsrc.c:1003:gst_soup_http_src_got_chunk_cb:<souphttpsrc0> 
> got chunk of 1356 bytes
> 0:06:14.850796541 12149      0x22a9f00 DEBUG              GST_CLOCK 
> gstclock.c:848:gst_clock_get_internal_time:<GstSystemClock> internal 
> time 630:20:34.210323221
> 0:06:14.850814463 12149      0x22a9f00 DEBUG              GST_CLOCK 
> gstclock.c:893:gst_clock_get_time:<GstSystemClock> adjusted time 
> 630:20:34.210323221
> 0:06:14.850830648 12149      0x22a9f00 DEBUG                basesrc 
> gstbasesrc.c:1953:gst_base_src_do_sync:<souphttpsrc0> no sync needed
> 0:06:14.850845261 12149      0x22a9f00 DEBUG                basesrc 
> gstbasesrc.c:2120:gst_base_src_get_range:<souphttpsrc0> buffer ok
> 0:06:14.850863252 12149      0x22a9f00 DEBUG                basesrc 
> gstbasesrc.c:1989:gst_base_src_update_length:<souphttpsrc0> reading 
> offset 44360446, length 4096, size -1, segment.stop -1, maxsize -1
> 0:06:14.850880607 12149      0x22a9f00 DEBUG                basesrc 
> gstbasesrc.c:2079:gst_base_src_get_range:<souphttpsrc0> calling create 
> offset 44360446 length 4096, time 0
> 0:06:14.850907316 12149      0x22a9f00 DEBUG            souphttpsrc 
> gstsouphttpsrc.c:964:gst_soup_http_src_chunk_allocator:<souphttpsrc0> 
> alloc 4096 bytes <= 18446744073665191170
> 0:06:14.850925127 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2957:gst_pad_alloc_buffer_full:<souphttpsrc0:src> offset 
> 18446744073709551615, size 4096, caps (NULL)
> 0:06:14.850944687 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2878:gst_pad_buffer_alloc_unchecked:<queue0:sink> calling 
> bufferallocfunc &gst_queue_bufferalloc (@0x7fecd40d1660) for size 4096 
> offset NONE
> 0:06:14.850963449 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2957:gst_pad_alloc_buffer_full:<queue0:src> offset 
> 18446744073709551615, size 4096, caps (NULL)
> 0:06:14.850981788 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2878:gst_pad_buffer_alloc_unchecked:<demux:sink> calling 
> bufferallocfunc &(NULL) (@(nil)) for size 4096 offset NONE
> 0:06:14.850999155 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2927:gst_pad_buffer_alloc_unchecked:<demux:sink> fallback 
> buffer alloc
> 0:06:14.881612429 12149      0x22a9f00 DEBUG            souphttpsrc 
> gstsouphttpsrc.c:964:gst_soup_http_src_chunk_allocator:<souphttpsrc0> 
> alloc 4096 bytes <= 18446744073665191170
> 0:06:14.881636660 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2957:gst_pad_alloc_buffer_full:<souphttpsrc0:src> offset 
> 18446744073709551615, size 4096, caps (NULL)
> 0:06:14.881658302 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2878:gst_pad_buffer_alloc_unchecked:<queue0:sink> calling 
> bufferallocfunc &gst_queue_bufferalloc (@0x7fecd40d1660) for size 4096 
> offset NONE
> 0:06:14.881678309 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2957:gst_pad_alloc_buffer_full:<queue0:src> offset 
> 18446744073709551615, size 4096, caps (NULL)
> 0:06:14.881697176 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2878:gst_pad_buffer_alloc_unchecked:<demux:sink> calling 
> bufferallocfunc &(NULL) (@(nil)) for size 4096 offset NONE
> 0:06:14.881715224 12149      0x22a9f00 DEBUG               GST_PADS 
> gstpad.c:2927:gst_pad_buffer_alloc_unchecked:<demux:sink> fallback 
> buffer alloc
> 0:06:14.881744012 12149      0x22a9f00 DEBUG            souphttpsrc 
> gstsouphttpsrc.c:1003:gst_soup_http_src_got_chunk_cb:<souphttpsrc0> 
> got chunk of 1356 bytes
> 0:06:14.881770709 12149      0x22a9f00 DEBUG              GST_CLOCK 
> gstclock.c:848:gst_clock_get_internal_time:<GstSystemClock> internal 
> time 630:20:34.241297374
> 0:06:14.881788898 12149      0x22a9f00 DEBUG              GST_CLOCK 
> gstclock.c:893:gst_clock_get_time:<GstSystemClock> adjusted time 
> 630:20:34.241297374
> 0:06:14.881805059 12149      0x22a9f00 DEBUG                basesrc 
> gstbasesrc.c:1953:gst_base_src_do_sync:<souphttpsrc0> no sync needed
> 0:06:14.881819948 12149      0x22a9f00 DEBUG                basesrc 
> gstbasesrc.c:2120:gst_base_src_get_range:<souphttpsrc0> buffer ok
> 0:06:14.881837801 12149      0x22a9f00 DEBUG         queue_dataflow 
> gstqueue.c:963:gst_queue_chain:<queue0> queue is full, waiting for 
> free space
>
> ^-------------- this last line is where it hangs ~ I guess a queue is 
> full... but which queue and how to free the space?
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list