mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avcodec: Add flag for experimental HWAccels and use it for VDPAU/HEVC
This HWAccel isn't really usable right now due to an nvidia driver bug, so we don't want it selected by default. HWAccels have a capabilities field and there's a comment about flags, but no flags exist today, so let's add one for experimental hwaccels.
This commit is contained in:
parent
7728d231a6
commit
b69bea3ab8
@ -894,6 +894,12 @@ typedef struct RcOverride{
|
||||
*/
|
||||
#define CODEC_CAP_LOSSLESS 0x80000000
|
||||
|
||||
/**
|
||||
* HWAccel is experimental and is thus avoided in favor of non experimental
|
||||
* codecs
|
||||
*/
|
||||
#define HWACCEL_CODEC_CAP_EXPERIMENTAL 0x0200
|
||||
|
||||
#if FF_API_MB_TYPE
|
||||
//The following defines may change, don't expect compatibility if you use them.
|
||||
#define MB_TYPE_INTRA4x4 0x0001
|
||||
@ -3336,7 +3342,7 @@ typedef struct AVHWAccel {
|
||||
|
||||
/**
|
||||
* Hardware accelerated codec capabilities.
|
||||
* see FF_HWACCEL_CODEC_CAP_*
|
||||
* see HWACCEL_CODEC_CAP_*
|
||||
*/
|
||||
int capabilities;
|
||||
|
||||
|
@ -1176,6 +1176,13 @@ static int setup_hwaccel(AVCodecContext *avctx,
|
||||
return AVERROR(ENOENT);
|
||||
}
|
||||
|
||||
if (hwa->capabilities & HWACCEL_CODEC_CAP_EXPERIMENTAL &&
|
||||
avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
|
||||
av_log(avctx, AV_LOG_WARNING, "Ignoring experimental hwaccel: %s\n",
|
||||
hwa->name);
|
||||
return AVERROR(ENOTSUP);
|
||||
}
|
||||
|
||||
if (hwa->priv_data_size) {
|
||||
avctx->internal->hwaccel_priv_data = av_mallocz(hwa->priv_data_size);
|
||||
if (!avctx->internal->hwaccel_priv_data)
|
||||
|
@ -427,6 +427,7 @@ AVHWAccel ff_hevc_vdpau_hwaccel = {
|
||||
.type = AVMEDIA_TYPE_VIDEO,
|
||||
.id = AV_CODEC_ID_HEVC,
|
||||
.pix_fmt = AV_PIX_FMT_VDPAU,
|
||||
.capabilities = HWACCEL_CODEC_CAP_EXPERIMENTAL,
|
||||
.start_frame = vdpau_hevc_start_frame,
|
||||
.end_frame = vdpau_hevc_end_frame,
|
||||
.decode_slice = vdpau_hevc_decode_slice,
|
||||
|
@ -30,7 +30,7 @@
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 56
|
||||
#define LIBAVCODEC_VERSION_MINOR 45
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
#define LIBAVCODEC_VERSION_MICRO 101
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user