mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-11 18:05:37 +00:00
applemedia: vtdec: Enable hardware accelerated decoding on 10.9
This commit is contained in:
parent
d111f37f74
commit
72e989f2da
1 changed files with 16 additions and 1 deletions
|
@ -96,6 +96,13 @@ static GstStaticPadTemplate gst_vtdec_sink_template =
|
||||||
#define GST_VTDEC_CV_VIDEO_FORMAT kCVPixelFormatType_422YpCbCr8
|
#define GST_VTDEC_CV_VIDEO_FORMAT kCVPixelFormatType_422YpCbCr8
|
||||||
#endif
|
#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 \
|
#define VIDEO_SRC_CAPS \
|
||||||
GST_VIDEO_CAPS_MAKE("{" GST_VTDEC_VIDEO_FORMAT_STR "}")
|
GST_VIDEO_CAPS_MAKE("{" GST_VTDEC_VIDEO_FORMAT_STR "}")
|
||||||
|
|
||||||
|
@ -309,8 +316,15 @@ gst_vtdec_create_session (GstVtdec * vtdec)
|
||||||
{
|
{
|
||||||
CFMutableDictionaryRef output_image_buffer_attrs;
|
CFMutableDictionaryRef output_image_buffer_attrs;
|
||||||
VTDecompressionOutputCallbackRecord callback;
|
VTDecompressionOutputCallbackRecord callback;
|
||||||
|
CFMutableDictionaryRef videoDecoderSpecification;
|
||||||
OSStatus status;
|
OSStatus status;
|
||||||
|
|
||||||
|
videoDecoderSpecification =
|
||||||
|
CFDictionaryCreateMutable (NULL, 0, &kCFTypeDictionaryKeyCallBacks,
|
||||||
|
&kCFTypeDictionaryValueCallBacks);
|
||||||
|
gst_vtutil_dict_set_boolean (videoDecoderSpecification,
|
||||||
|
kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder, TRUE);
|
||||||
|
|
||||||
output_image_buffer_attrs =
|
output_image_buffer_attrs =
|
||||||
CFDictionaryCreateMutable (NULL, 0, &kCFTypeDictionaryKeyCallBacks,
|
CFDictionaryCreateMutable (NULL, 0, &kCFTypeDictionaryKeyCallBacks,
|
||||||
&kCFTypeDictionaryValueCallBacks);
|
&kCFTypeDictionaryValueCallBacks);
|
||||||
|
@ -327,7 +341,8 @@ gst_vtdec_create_session (GstVtdec * vtdec)
|
||||||
callback.decompressionOutputRefCon = vtdec;
|
callback.decompressionOutputRefCon = vtdec;
|
||||||
|
|
||||||
status = VTDecompressionSessionCreate (NULL, vtdec->format_description,
|
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);
|
CFRelease (output_image_buffer_attrs);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue