GNOME Bugzilla – Bug 655107
encodebin: get_by_interface doesn't work on non-muxer elements
Last modified: 2011-07-27 16:20:26 UTC
Created attachment 192446 [details] testcase for TagSetter interface the bin.get_by_interface call doesn't seem to work when working with non-muxer elements. The attached simple testcase works fine for mp4 for instance, but when used with Ogg, where the GstTagSetter interface is at the codec level just returns 'None'
At what stage does the vorbisenc element get added to the bin?
As you see in the example it gets added above the tagsetting code, the bin is even set it paused mode.
This is a bug in your code. Did you check the gst debug log to see if a vorbisenc element is actually created and added to the pipeline? Turns out not. Reason is that encodebin will only create and set that up on demand when you request a matching audio request sink pad. The pads are not created automatically from the start because you pass presence=0 as last argument when creating the audio encoding profile. If you pass 1 then the pad will be created right away and it will work as intended.