[gst-devel] How can make playbin use my decoder to play some files
gtxia
xia_guangtai at visualon.com
Tue May 8 12:27:46 CEST 2007
Hi Tim
Thank you for your detailed answers. I have solved this problem. In fact
I have studied some decoders in our repositories. But just wonder to
know the data flow and event flow clear within gstreamer framework. So
sometimes I ask some "stupid questions" ;) I touch this field just two
weeks ago. So everything is fresh to me. I think I will become ....^_^
Thank you for your patience.
Regards
XiaGuangTai
On Tue, 2007-05-08 at 10:02 +0000, Tim Muller wrote:
> Gtxia <xia_guangtai at visualon.com> wrote :
>
> > I am developing some decoder that are compatible with gstreamer
> > framework. Now I can use the functions such as gst_element_factory_make
> > to create my own decoder and add it a pipleline. It can play some file
> > with my own decoder well, but when I test my decoder with playbin, it
> > always complains "Message: don't know how to handle EMPTY
> > Error: You do not have a decoder installed to handle this file. You
> > might need to install the necessary plugins." What kind of functions
> > that I must implement to eliminate this complains.
>
> Check the following things:
>
> - your element sets up template caps with the right caps
>
> - the typefind element typefinds the stream in question
> to caps that are compatible with your element
> (make sure ... ! typefind ! yourdecoder works)
>
> - your element has a rank that's higher than any other
> already existing decoder
>
> - if you have _getcaps() functions make sure they
> return sensible things (for a decoder, you usually
> don't need one for the sink pad and for the source
> pad you usually set one up implicitly via
> gst_pad_use_fixed_caps(), and then you do
> gst_pad_set_caps() when you start decoding; also,
> don't forget to set the right caps on the buffers
> you push out).
>
> That's all that comes to mind right now. There are plenty of decoders in our repositories, might be worth looking at some of the code to see what they do differently.
>
> Also, you can run get a GST_DEBUG=*:5 debug log and grep the output for the word 'empty', then you'll see what exactly it does, ie. which caps it tries to intersect etc.
>
> Cheers
> -Tim
>
>
>
>
>
>
>
>
More information about the gstreamer-devel
mailing list