avcodec: allow multiple hwaccels for the same codec/pixfmt
Currently, AVHWAccels are looked up using a (codec_id, pixfmt) tuple. This means it's impossible to have 2 decoders for the same codec and using the same opaque hardware pixel format. This breaks merging Libav's CUVID hwaccel. FFmpeg has its own CUVID support, but it's a full stream decoder, using NVIDIA's codec parser. The Libav one is a true hwaccel, which is based on the builtin software decoders. Fix this by introducing another field to disambiguate AVHWAccels, and use it for our CUVID decoders. FF_CODEC_CAP_HWACCEL_REQUIRE_CLASS makes this mechanism backwards compatible and optional.
This commit is contained in:
parent
5593049466
commit
ae5046e492
4 changed files with 22 additions and 4 deletions
|
@ -69,6 +69,11 @@
|
|||
*/
|
||||
#define FF_CODEC_CAP_SLICE_THREAD_HAS_MF (1 << 5)
|
||||
|
||||
/**
|
||||
* Allow only AVHWAccels which have a matching decoder_class field.
|
||||
*/
|
||||
#define FF_CODEC_CAP_HWACCEL_REQUIRE_CLASS (1 << 6)
|
||||
|
||||
#ifdef TRACE
|
||||
# define ff_tlog(ctx, ...) av_log(ctx, AV_LOG_TRACE, __VA_ARGS__)
|
||||
#else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue