[gst-devel] Trouble with giostreamsrc

W. Michael Petullo mike at flyn.org
Thu Jul 9 03:59:57 CEST 2009


>>> I am trying to move an application from giosrc to giostreamsrc.
>>> However, I have not been able to get my giostreamsrc pipeline to
>>> work. Everything worked fine when I was using giosrc with a URI.
>>>
>>> When I run the application with the GST_DEBUG environment variable
>>> set, I see the error "No stream given yet." This happens as the
>>> application tries to change the pipeline's state to playing.
>>>
>>> The strange thing is that I added a check right before the state
>>> change that reads the stream property from the giostreamsrc element
>>> using g_object_get and confirms that it is a G_IS_INPUT_STREAM. The
>>> check does not complain. However, something sets the stream back to
>>> NULL after I call gst_element_set_state (see "FIRST CHECK" and
>>> "SECOND CHECK" below).
>>>
>>> I've run my application through valgrind and did not see any memory
>>> issues, though I have not yet ruled that out entirely.
>>>
>>> I am using gstreamer-plugins-base 0.10.22.

>> Could you file a bug for this at http://bugzila.gnome.org and
>> assign me
>> to it? I know what the problem is and will work on that soonish :)

[...]

> http://bugzilla.gnome.org/show_bug.cgi?id=587896

I'm coming back to the mailing list because Sebastian fixed several  
issues in the giostream element. I'm not sure this would be considered  
the same bug, but I am still having trouble. If appropriate, I will  
reopen bug #587896.

I've attached a simplified program that operates similarly to how my  
application does. The only big difference is that I don't provide a  
"new-buffer" callback to appsink (whereas my application does).  
Despite this, the test program seems to exhibit the same behavior as  
my application:

./a.out short.mp3, a very short MP3 (2-3 seconds):
Seems to work. Prints "done."

./a.out typical.mp3, an MP3 of typical length:
Seemingly endless:
[...]
0:00:27.070157260 18595  0x82e04c0 INFO              GST_PADS gstpad.c: 
1805:gst_pad_link_prepare: trying to link id3demux197:src and  
id3demux198:sink
0:00:27.070805108 18595  0x82e04c0 INFO              GST_PADS gstpad.c: 
1942:gst_pad_link: linked id3demux197:src and id3demux198:sink,  
successful
0:00:27.071398759 18595  0x82e04c0 INFO      GST_ELEMENT_PADS  
gstelement.c:882:gst_element_get_static_pad: no such pad 'src' in  
element "id3demux198"
0:00:27.158970528 18595  0x82e04c0 INFO     typefindfunctions  
gsttypefindfunctions.c:906:mp3_type_find_at_offset: audio/mpeg  
calculated 86  =  100  *  5 / 5  *  (10000 - 1325) / 10000
0:00:27.236719538 18595  0x82e04c0 INFO               default  
gsttypefindhelper.c:186:helper_find_peek: typefind function returned:  
unexpected
0:00:27.288706606 18595  0x82e04c0 INFO      GST_ELEMENT_PADS  
gstelement.c:639:gst_element_add_pad:<id3demux198> adding pad 'src'
0:00:27.290270213 18595  0x82e04c0 INFO   GST_ELEMENT_FACTORY  
gstelementfactory.c:399:gst_element_factory_create: creating element  
"id3demux"
0:00:27.291146023 18595  0x82e04c0 INFO      GST_ELEMENT_PADS  
gstelement.c:639:gst_element_add_pad:<GstTagDemux at 0x840d4f8> adding  
pad 'sink'
0:00:27.291785211 18595  0x82e04c0 INFO      GST_ELEMENT_PADS  
gstelement.c:885:gst_element_get_static_pad: found pad id3demux199:sink
0:00:27.292784500 18595  0x82e04c0 INFO            GST_STATES  
gstelement.c:2150:gst_element_continue_state:<id3demux199> completed  
state change to READY
0:00:27.293315853 18595  0x82e04c0 INFO            GST_STATES  
gstelement.c:2163:gst_element_continue_state:<id3demux199> posting  
state-changed NULL to READY
[...]

./a.out foo.ogg, a typical OGG Vorbis file:
[...]
0:00:00.485567715 18590  0x8b9d768 WARN              oggdemux  
gstoggdemux.c:2377:gst_ogg_demux_read_chain:<oggdemux0> page is not  
BOS page
0:00:00.492683705 18590  0x8b9d768 WARN              oggdemux  
gstoggdemux.c:2399:gst_ogg_demux_read_chain:<oggdemux0> no chain was  
found
0:00:00.493087387 18590  0x8b9d768 WARN              oggdemux  
gstoggdemux.c:2758:gst_ogg_demux_find_chains:<oggdemux0> error: can't  
get first chain
0:00:00.493919616 18590  0x8b9d768 INFO      GST_ERROR_SYSTEM  
gstelement.c:1675:gst_element_message_full:<oggdemux0> posting  
message: Could not demultiplex stream.
0:00:00.494615236 18590  0x8b9d768 INFO      GST_ERROR_SYSTEM  
gstelement.c:1698:gst_element_message_full:<oggdemux0> posted error  
message: Could not demultiplex stream.
0:00:00.495798068 18590  0x8b9d768 WARN              oggdemux  
gstoggdemux.c:3151:gst_ogg_demux_loop:<oggdemux0> error: Internal data  
stream error.
0:00:00.496323554 18590  0x8b9d768 WARN              oggdemux  
gstoggdemux.c:3151:gst_ogg_demux_loop:<oggdemux0> error: stream  
stopped, reason error
0:00:00.496935084 18590  0x8b9d768 INFO      GST_ERROR_SYSTEM  
gstelement.c:1675:gst_element_message_full:<oggdemux0> posting  
message: Internal data stream error.
0:00:00.497469789 18590  0x8b9d768 INFO      GST_ERROR_SYSTEM  
gstelement.c:1698:gst_element_message_full:<oggdemux0> posted error  
message: Internal data stream error.
0:00:00.498426615 18590  0x8ac94c0 INFO            GST_STATES gstbin.c: 
2355:gst_bin_change_state_func:<pipeline> child 'src' changed state to  
3(PAUSED) successfully
0:00:00.499175593 18590  0x8ac94c0 INFO            GST_STATES gstbin.c: 
1659:gst_bin_get_state_func:<pipeline> getting state
0:00:00.499767568 18590  0x8ac94c0 INFO            GST_STATES  
gstelement.c:1898:gst_element_get_state_func:<pipeline> waiting for  
element to commit state
0:00:05.499873727 18590  0x8ac94c0 INFO            GST_STATES  
gstelement.c:1902:gst_element_get_state_func:<pipeline> timed out

** (a.out:18590): WARNING **: State change failed for stream.

** (a.out:18590): WARNING **: done





More information about the gstreamer-devel mailing list