mirror of https://git.ffmpeg.org/ffmpeg.git
cuvid: support AVCodecContext.hw_device_ctx API
This is a newer API that is intended for decoders like the cuvid wrapper. Until now, the wrapper required to set an awkward "incomplete" hw_frames_ctx to set the device. Now the device can be set directly, and the user can get AV_PIX_FMT_CUDA output for a specific device simply by setting hw_device_ctx. This still does a dummy ff_get_format() call at init time, and should be fully backward compatible.
This commit is contained in:
parent
974ee16d6a
commit
c0f17a905f
|
@ -15,6 +15,11 @@ libavutil: 2015-08-28
|
||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2017-05-05 - xxxxxxxxxx - lavc 57.94.100 - avcodec.h
|
||||||
|
The cuvid decoders now support AVCodecContext.hw_device_ctx, which removes
|
||||||
|
the requirement to set an incomplete AVCodecContext.hw_frames_ctx only to
|
||||||
|
set the Cuda device handle.
|
||||||
|
|
||||||
2017-04-11 - 8378466507 - lavu 55.61.100 - avstring.h
|
2017-04-11 - 8378466507 - lavu 55.61.100 - avstring.h
|
||||||
Add av_strireplace().
|
Add av_strireplace().
|
||||||
|
|
||||||
|
|
|
@ -802,9 +802,17 @@ static av_cold int cuvid_decode_init(AVCodecContext *avctx)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ret = av_hwdevice_ctx_create(&ctx->hwdevice, AV_HWDEVICE_TYPE_CUDA, ctx->cu_gpu, NULL, 0);
|
if (avctx->hw_device_ctx) {
|
||||||
if (ret < 0)
|
ctx->hwdevice = av_buffer_ref(avctx->hw_device_ctx);
|
||||||
goto error;
|
if (!ctx->hwdevice) {
|
||||||
|
ret = AVERROR(ENOMEM);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ret = av_hwdevice_ctx_create(&ctx->hwdevice, AV_HWDEVICE_TYPE_CUDA, ctx->cu_gpu, NULL, 0);
|
||||||
|
if (ret < 0)
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
ctx->hwframe = av_hwframe_ctx_alloc(ctx->hwdevice);
|
ctx->hwframe = av_hwframe_ctx_alloc(ctx->hwdevice);
|
||||||
if (!ctx->hwframe) {
|
if (!ctx->hwframe) {
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include "libavutil/version.h"
|
#include "libavutil/version.h"
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 57
|
#define LIBAVCODEC_VERSION_MAJOR 57
|
||||||
#define LIBAVCODEC_VERSION_MINOR 93
|
#define LIBAVCODEC_VERSION_MINOR 94
|
||||||
#define LIBAVCODEC_VERSION_MICRO 100
|
#define LIBAVCODEC_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
|
|
Loading…
Reference in New Issue