mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Merge commit 'e7c5e17d4fbd7c83fb331bf327e25ebd8e6a8623'
* commit 'e7c5e17d4fbd7c83fb331bf327e25ebd8e6a8623': vda: Make output CVPixelBuffer format configurable Conflicts: doc/APIchanges libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
cc48409b51
@ -15,6 +15,9 @@ libavutil: 2014-08-09
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2015-05-13 - xxxxxxx - lavc 56.39.100 / 56.23.0
|
||||
Add av_vda_default_init2.
|
||||
|
||||
2015-05-11 - XXXXXXX - lavf 56.33.100 - avformat.h
|
||||
Add AVOpenCallback AVFormatContext.open_cb
|
||||
|
||||
|
@ -28,15 +28,22 @@ AVVDAContext *av_vda_alloc_context(void)
|
||||
{
|
||||
AVVDAContext *ret = av_mallocz(sizeof(*ret));
|
||||
|
||||
if (ret)
|
||||
if (ret) {
|
||||
ret->output_callback = ff_vda_output_callback;
|
||||
ret->cv_pix_fmt_type = kCVPixelFormatType_422YpCbCr8;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int av_vda_default_init(AVCodecContext *avctx)
|
||||
{
|
||||
avctx->hwaccel_context = av_vda_alloc_context();
|
||||
return av_vda_default_init2(avctx, NULL);
|
||||
}
|
||||
|
||||
int av_vda_default_init2(AVCodecContext *avctx, AVVDAContext *vdactx)
|
||||
{
|
||||
avctx->hwaccel_context = vdactx ?: av_vda_alloc_context();
|
||||
if (!avctx->hwaccel_context)
|
||||
return AVERROR(ENOMEM);
|
||||
return ff_vda_default_init(avctx);
|
||||
|
@ -171,6 +171,12 @@ typedef struct AVVDAContext {
|
||||
* Set by av_vda_alloc_context().
|
||||
*/
|
||||
VDADecoderOutputCallback output_callback;
|
||||
|
||||
/**
|
||||
* CVPixelBuffer Format Type that VDA will use for decoded frames; set by
|
||||
* the caller.
|
||||
*/
|
||||
OSType cv_pix_fmt_type;
|
||||
} AVVDAContext;
|
||||
|
||||
/**
|
||||
@ -198,6 +204,17 @@ AVVDAContext *av_vda_alloc_context(void);
|
||||
*/
|
||||
int av_vda_default_init(AVCodecContext *avctx);
|
||||
|
||||
/**
|
||||
* This is a convenience function that creates and sets up the VDA context using
|
||||
* an internal implementation.
|
||||
*
|
||||
* @param avctx the corresponding codec context
|
||||
* @param vdactx the VDA context to use
|
||||
*
|
||||
* @return >= 0 on success, a negative AVERROR code on failure
|
||||
*/
|
||||
int av_vda_default_init2(AVCodecContext *avctx, AVVDAContext *vdactx);
|
||||
|
||||
/**
|
||||
* This function must be called to free the VDA context initialized with
|
||||
* av_vda_default_init().
|
||||
|
@ -430,7 +430,7 @@ int ff_vda_default_init(AVCodecContext *avctx)
|
||||
CFMutableDictionaryRef buffer_attributes;
|
||||
CFMutableDictionaryRef io_surface_properties;
|
||||
CFNumberRef cv_pix_fmt;
|
||||
int32_t fmt = 'avc1', pix_fmt = kCVPixelFormatType_422YpCbCr8;
|
||||
int32_t fmt = 'avc1', pix_fmt = vda_ctx->cv_pix_fmt_type;
|
||||
|
||||
// kCVPixelFormatType_420YpCbCr8Planar;
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "libavutil/version.h"
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 56
|
||||
#define LIBAVCODEC_VERSION_MINOR 38
|
||||
#define LIBAVCODEC_VERSION_MINOR 39
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user