mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
Merge commit 'd565fef1b83b6c5f8afb32229260b79f67c68109'
* commit 'd565fef1b83b6c5f8afb32229260b79f67c68109': vdpau: add AV_HWACCEL_FLAG_IGNORE_LEVEL to skip the codec level check Conflicts: libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
51c810e62b
@ -15,6 +15,9 @@ libavutil: 2014-08-09
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2014-10-xx - xxxxxxx - lavc 56.4.0 - avcodec.h
|
||||
Add AV_HWACCEL_FLAG_IGNORE_LEVEL flag to av_vdpau_bind_context().
|
||||
|
||||
2014-10-13 - xxxxxxx - lavc 56.03.0 - avcodec.h
|
||||
Add AVCodecContext.initial_padding. Deprecate the use of AVCodecContext.delay
|
||||
for audio encoding.
|
||||
|
@ -3229,7 +3229,8 @@ int av_codec_get_max_lowres(const AVCodec *codec);
|
||||
struct MpegEncContext;
|
||||
|
||||
/**
|
||||
* AVHWAccel.
|
||||
* @defgroup lavc_hwaccel AVHWAccel
|
||||
* @{
|
||||
*/
|
||||
typedef struct AVHWAccel {
|
||||
/**
|
||||
@ -3365,6 +3366,17 @@ typedef struct AVHWAccel {
|
||||
int priv_data_size;
|
||||
} AVHWAccel;
|
||||
|
||||
/**
|
||||
* Hardware acceleration should be used for decoding even if the codec level
|
||||
* used is unknown or higher than the maximum supported level reported by the
|
||||
* hardware driver.
|
||||
*/
|
||||
#define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0)
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup lavc_picture AVPicture
|
||||
*
|
||||
|
@ -107,7 +107,9 @@ int ff_vdpau_common_init(AVCodecContext *avctx, VdpDecoderProfile profile,
|
||||
vdctx->device = hwctx->device;
|
||||
vdctx->get_proc_address = hwctx->get_proc_address;
|
||||
|
||||
if (level < 0)
|
||||
if (hwctx->flags & AV_HWACCEL_FLAG_IGNORE_LEVEL)
|
||||
level = 0;
|
||||
else if (level < 0)
|
||||
return AVERROR(ENOTSUP);
|
||||
|
||||
status = vdctx->get_proc_address(vdctx->device,
|
||||
@ -686,7 +688,7 @@ int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,
|
||||
{
|
||||
VDPAUHWContext *hwctx;
|
||||
|
||||
if (flags != 0)
|
||||
if (flags & ~AV_HWACCEL_FLAG_IGNORE_LEVEL)
|
||||
return AVERROR(EINVAL);
|
||||
|
||||
if (av_reallocp(&avctx->hwaccel_context, sizeof(*hwctx)))
|
||||
@ -698,6 +700,7 @@ int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,
|
||||
hwctx->context.decoder = VDP_INVALID_HANDLE;
|
||||
hwctx->device = device;
|
||||
hwctx->get_proc_address = get_proc;
|
||||
hwctx->flags = flags;
|
||||
hwctx->reset = 1;
|
||||
return 0;
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2);
|
||||
* @param avctx decoding context whose get_format() callback is invoked
|
||||
* @param device VDPAU device handle to use for hardware acceleration
|
||||
* @param get_proc_address VDPAU device driver
|
||||
* @param flags for future use, must be zero
|
||||
* @param flags zero of more OR'd AV_HWACCEL_FLAG_* flags
|
||||
*
|
||||
* @return 0 on success, an AVERROR code on failure.
|
||||
*/
|
||||
|
@ -60,6 +60,7 @@ typedef struct VDPAUHWContext {
|
||||
VdpDevice device;
|
||||
VdpGetProcAddress *get_proc_address;
|
||||
char reset;
|
||||
unsigned char flags;
|
||||
} VDPAUHWContext;
|
||||
|
||||
typedef struct VDPAUContext {
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "libavutil/version.h"
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 56
|
||||
#define LIBAVCODEC_VERSION_MINOR 5
|
||||
#define LIBAVCODEC_VERSION_MINOR 6
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user