[gst-devel] Totem, Gst-Player, libgstplay showstoppers

Benjamin Otte in7y118 at public.uni-hamburg.de
Tue Jan 27 04:22:01 CET 2004


On Mon, 26 Jan 2004, Julien MOUTTE wrote:

> 1) This pipeline uses switch to have both visualization and video output
> of spider connected to the video sink while waiting for identity to tell
> if there's video in the pipeline. If video is detected, visualization is
> then disconnected. That works just fine. The issue is that if no video
> output comes out from spider then video_queue is empty and switch tries
> to gst_pad_pull from that pad which locks forever. So audio playback is
> broken with visualization enabled.
>
> Proposed solutions :
>  a) Use gst_pad_select to get buffers only from pads that provides some
> in switch.
>  b) Make gst_pad_pull timeout somehow and let switch knows so that it's
> not pulling for nothing there.
>  c) Make switch chain based so that buffers are pushed to it.
>
d) only set the video part to PLAYING when you know wether you'll output
video or visualization. Set it to PAUSED before.

> 3) Tagged audio files are making problems in spider. Benjamin keeps
> repeating that the gstplay pipeline is hard to debug. Well i can
> understand that but still we should be able to debug why spider is not
> playing those medias.
>
The biggest problem is that a gst-launch line which repeats the player
pipeline does play.

> 4) Informations about codecs. xine provides the app developer with some
> informations about video/audio codecs. I need to get those informations
> from gstplay pipeline to compete with them.
>
> Proposed solutions :
>  a) Add some gst_element_found_tags calls in decoders so that they tell
> about the codec format they are about to decode.
>  b) Add some gst_element_found_tags calls in demuxers so that they tell
> about the different format of video/audio...
>  c) Invent a new communication system/signal for that kind of stuff.
>
I think it's a good idea to just invent some tag and have the decoders set
it. Make it a string and allow multiple values. Then you can easily get
info for all the weird formats out there.
Make decoders just do gst_element_found_tags_for_pad (decoder->srcpad,
gst_tag_list_new (GST_TAG_CODEC, "Blobbies Unmatched Rendering Protocol
(BURP)", NULL)); That shuold work.

Benjamin





More information about the gstreamer-devel mailing list