applemedia: vtdec: Enable hardware accelerated decoding on 10.9

This commit is contained in:
Davide Bertola 2013-12-17 10:01:42 +01:00 committed by Alessandro Decina
parent d111f37f74
commit 72e989f2da

View file

@ -96,6 +96,13 @@ static GstStaticPadTemplate gst_vtdec_sink_template =
#define GST_VTDEC_CV_VIDEO_FORMAT kCVPixelFormatType_422YpCbCr8
#endif
/* define EnableHardwareAcceleratedVideoDecoder in < 10.9 */
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1090
const CFStringRef
kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder =
CFSTR ("EnableHardwareAcceleratedVideoDecoder");
#endif
#define VIDEO_SRC_CAPS \
GST_VIDEO_CAPS_MAKE("{" GST_VTDEC_VIDEO_FORMAT_STR "}")
@ -309,8 +316,15 @@ gst_vtdec_create_session (GstVtdec * vtdec)
{
CFMutableDictionaryRef output_image_buffer_attrs;
VTDecompressionOutputCallbackRecord callback;
CFMutableDictionaryRef videoDecoderSpecification;
OSStatus status;
videoDecoderSpecification =
CFDictionaryCreateMutable (NULL, 0, &kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
gst_vtutil_dict_set_boolean (videoDecoderSpecification,
kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder, TRUE);
output_image_buffer_attrs =
CFDictionaryCreateMutable (NULL, 0, &kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
@ -327,7 +341,8 @@ gst_vtdec_create_session (GstVtdec * vtdec)
callback.decompressionOutputRefCon = vtdec;
status = VTDecompressionSessionCreate (NULL, vtdec->format_description,
NULL, output_image_buffer_attrs, &callback, &vtdec->session);
videoDecoderSpecification, output_image_buffer_attrs, &callback,
&vtdec->session);
CFRelease (output_image_buffer_attrs);