28 #include <CoreFoundation/CoreFoundation.h>
34 #ifndef kCFCoreFoundationVersionNumber10_7
35 #define kCFCoreFoundationVersionNumber10_7 635.00
74 CVPixelBufferUnlockBaseAddress(context->
cv_buffer, 0);
83 if (!context || !buffer) {
89 pic->
data[0] = (
void *)1;
100 ret = ff_h264_decoder.
decode(avctx, data, got_frame, avpkt);
104 CVPixelBufferRef cv_buffer = (CVPixelBufferRef)pic->
data[3];
105 CVPixelBufferLockBaseAddress(cv_buffer, 0);
108 if (CVPixelBufferIsPlanar(cv_buffer)) {
109 int i,
count = CVPixelBufferGetPlaneCount(cv_buffer);
111 for (i = 0; i <
count; i++) {
112 pic->
data[i] = CVPixelBufferGetBaseAddressOfPlane(cv_buffer, i);
113 pic->
linesize[i] = CVPixelBufferGetBytesPerRowOfPlane(cv_buffer, i);
116 pic->
data[0] = CVPixelBufferGetBaseAddress(cv_buffer);
117 pic->
linesize[0] = CVPixelBufferGetBytesPerRow(cv_buffer);
132 ff_h264_decoder.
close(avctx);
188 if (!ff_h264_vda_decoder.
pix_fmts) {
225 if (status != kVDADecoderNoErr) {
227 "Failed to init VDA decoder: %d.\n", status);
235 #if FF_API_GET_BUFFER
237 avctx->get_buffer =
NULL;
241 ret = ff_h264_decoder.
init(avctx);
257 return ff_h264_decoder.
flush(avctx);