[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