[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