GNOME Bugzilla – Bug 576142
[vorbisenc] Non-header output buffers have NULL caps
Last modified: 2010-01-14 19:20:57 UTC
I just noticed the following: $ gst-launch-0.10 audiotestsrc num-buffers=1 ! vorbisenc ! identity ! fakesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ** (gst-launch-0.10:10122): WARNING **: identity0: could not get in_size (gst-launch-0.10:10122): GStreamer-CRITICAL **: gst_caps_is_subset: assertion `subset != NULL' failed (gst-launch-0.10:10122): GStreamer-CRITICAL **: gst_caps_is_fixed: assertion `GST_IS_CAPS (caps)' failed ** (gst-launch-0.10:10122): CRITICAL **: gst_base_transform_find_transform: assertion `gst_caps_is_fixed (caps)' failed [...] I.e. putting a basetransform based element after vorbisenc shows that the buffer caps are actually NULL. Apparently it has always been this way but nobody noticed it before :) Attaching proposed trivial patch.
Created attachment 131059 [details] [review] Proposed patch
This patch is of course correct but IIRC NULL caps on buffers mean, that the caps didn't change since last buffer. commit 9f0e053f6e655fe987a177787995884499b3ae73 Author: René Stadler <mail@renestadler.de> Date: Sat Mar 21 09:46:28 2009 +0100 vorbisenc: Set caps on non-header ouput buffers. Fixes #576142.
So, is this a basetransform bug instead?
Yes but doing that in vorbisenc is a good idea too ;) commit 0a0c32ef88883f9c45da5fc23c28dc5434a5251e Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Thu Jan 14 20:19:05 2010 +0100 basetransform: Handle buffers with NULL caps correctly This means that the caps didn't change so don't try to handle the NULL caps as the new caps.