GNOME Bugzilla – Bug 742757
vtenc_h264 ignores 'quality' setting
Last modified: 2018-11-03 13:29:47 UTC
I’ve found an issue in the vtenc.c when the ‘quality’ setting doesn’t get set for the VTCompressionSession object because self->session is not yet set within the gst_vtenc_create_session(). The fix is to replace gst_vtenc_set_quality (self, self->quality); with gst_vtenc_session_configure_property_double (self, session, kVTCompressionPropertyKey_Quality, self->quality); which will also remove redundant lock on self if gst_vtenc_set_quality is called. Diff file attached.
With the described change i'm seeing the VTSessionSetProperty is invoked but the returned status (-12900) seems to still indicate error.
You forgot to attach the actual patch :) It should ideally also be in "git format-patch" format.
Looks like the proposed change isn't sufficient (see comment above about VTSessionSetProperty error). I'll attach the diff when i figure out why it's not working
Eventually from the VT api description ("Some encoders, such as JPEG, describe the compression level of each image with a quality value.") looks like 'quality' is not applicable for the h264 codec so the module documentation is misleading and 'quality' parameter should be removed from vtenc_h264. '-12900' code actually means 'property not supported'.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/203.