this is my first mail on the list, so before asking my question I would like to thank all the gstreamer proud developers for their great work. The whole framework is awesome!
I am putting together a small xvid-based video decoder, which shall be capable of handling "DivX5" video streams. At the moment, my plugin works only if fed by a filesrc element, like this:
gst-launch filesrc location=xXx_trailer.m4v ! xviddec ! sdlvideosink
where xXx_trailer.m4v is the raw MPEG-4 visual stream extracted from an AVI (.divx) file. Instead, if I try something like:
gst-launch filesrc location=xXx_trailer.m4v ! avidemux video_00! xviddec ! disksink location=test
I get errors because the xviddec sink did not get connected to the video_00 source.
Now, I must point out that I am totally clueless about pads, queues, ghosts, capabilities, and the like -- I am trying to guess as much as possible from the available documentation and the source code, but I may be misunderstanding something...
Finally, here goes my question: why doesn't avidemux connect to xviddec ? I guess that's because it initially has no source pads. Is this correct ? And, in
this case, should I register to receive a "new_pad" signal from avidemux ? If yes, when should I do it and how could I get a reference to the avidemux element from within my plugin ?
Btw, I am using gstreamer and gst-plugins version 0.3.3. Before switching to the newer 0.3.4 (or to the CVS) I would like to complete at least an alpha version of the plugin. If there is some reason to upgrade earlier, please let me know.
I would appreciate any kind of help, it really could save me a lot of time peeking through the code. I tried digging through the docs, but found nothing pertinent -- anyway, if I missed some enlightening document, please point me at it.
In the meantime, if anyone is interested in the (very
very) alpha version of the xvid plugin, I will post it to the mailing list.