[FFmpeg-devel] [PATCH] lavc/videotoolbox: allow not setting the kCVPixelBufferPixelFormatTypeKey
wm4
nfxjfg at googlemail.com
Thu Mar 2 11:33:49 EET 2017
On Fri, 24 Feb 2017 10:44:23 +0100
wm4 <nfxjfg at googlemail.com> wrote:
> If AVVideotoolboxContext.cv_pix_fmt_type is set to 0, don't set the
> kCVPixelBufferPixelFormatTypeKey value on the VT decoder.
>
> This makes VT output its native format, which can be much faster on
> some hardware iterations (if the native format does not match with
> the requested format, it will be converted, which is slow).
>
> The default is still forcing nv12.
> ---
> TODO: minor libavcodec bump
> ---
> libavcodec/videotoolbox.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
> index 1288aa5087..2ebe60fb5c 100644
> --- a/libavcodec/videotoolbox.c
> +++ b/libavcodec/videotoolbox.c
> @@ -472,7 +472,8 @@ static CFDictionaryRef videotoolbox_buffer_attributes_create(int width,
> &kCFTypeDictionaryKeyCallBacks,
> &kCFTypeDictionaryValueCallBacks);
>
> - CFDictionarySetValue(buffer_attributes, kCVPixelBufferPixelFormatTypeKey, cv_pix_fmt);
> + if (pix_fmt)
> + CFDictionarySetValue(buffer_attributes, kCVPixelBufferPixelFormatTypeKey, cv_pix_fmt);
> CFDictionarySetValue(buffer_attributes, kCVPixelBufferIOSurfacePropertiesKey, io_surface_properties);
> CFDictionarySetValue(buffer_attributes, kCVPixelBufferWidthKey, w);
> CFDictionarySetValue(buffer_attributes, kCVPixelBufferHeightKey, h);
Applied.
More information about the ffmpeg-devel
mailing list