On Mon, 16 Jan 2017 16:44:16 +0100 wm4 <nfx...@googlemail.com> wrote:
> Copied and modified from hwcontext_qsv.c. > --- > libavutil/hwcontext_cuda.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/libavutil/hwcontext_cuda.c b/libavutil/hwcontext_cuda.c > index 5dd0d99272..ed595c3e0f 100644 > --- a/libavutil/hwcontext_cuda.c > +++ b/libavutil/hwcontext_cuda.c > @@ -39,6 +39,31 @@ static const enum AVPixelFormat > supported_formats[] = { AV_PIX_FMT_P016, > }; > > +static int cuda_frames_get_constraints(AVHWDeviceContext *ctx, > + const void *hwconfig, > + AVHWFramesConstraints > *constraints) +{ > + int i; > + > + constraints->valid_sw_formats = > av_malloc_array(FF_ARRAY_ELEMS(supported_formats) + 1, > + > sizeof(*constraints->valid_sw_formats)); > + if (!constraints->valid_sw_formats) > + return AVERROR(ENOMEM); > + > + for (i = 0; i < FF_ARRAY_ELEMS(supported_formats); i++) > + constraints->valid_sw_formats[i] = supported_formats[i]; > + constraints->valid_sw_formats[FF_ARRAY_ELEMS(supported_formats)] > = AV_PIX_FMT_NONE; + > + constraints->valid_hw_formats = av_malloc_array(2, > sizeof(*constraints->valid_hw_formats)); > + if (!constraints->valid_hw_formats) > + return AVERROR(ENOMEM); Is it weird if this fails and valid_sw_formats succeeds? I guess that's up to how the caller handles the error. > + > + constraints->valid_hw_formats[0] = AV_PIX_FMT_CUDA; > + constraints->valid_hw_formats[1] = AV_PIX_FMT_NONE; > + > + return 0; > +} > + > static void cuda_buffer_free(void *opaque, uint8_t *data) > { > AVHWFramesContext *ctx = opaque; > @@ -376,6 +401,7 @@ const HWContextType ff_hwcontext_type_cuda = { > .device_create = cuda_device_create, > .device_init = cuda_device_init, > .device_uninit = cuda_device_uninit, > + .frames_get_constraints = cuda_frames_get_constraints, > .frames_init = cuda_frames_init, > .frames_get_buffer = cuda_get_buffer, > .transfer_get_formats = cuda_transfer_get_formats, --phil _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel