From ce79410bba776d4121685654056f2b4e39bbd3f7 Mon Sep 17 00:00:00 2001 From: Timo Rothenpieler Date: Tue, 14 Feb 2017 11:47:08 +0100 Subject: avcodec/cuvid: set width and height before calling get_format The external hw_frames_ctx is initialized in that callback, and needs that information to be accurate. --- libavcodec/cuvid.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'libavcodec/cuvid.c') diff --git a/libavcodec/cuvid.c b/libavcodec/cuvid.c index 2a305abd07..5e6e7167ee 100644 --- a/libavcodec/cuvid.c +++ b/libavcodec/cuvid.c @@ -113,6 +113,10 @@ static int CUDAAPI cuvid_handle_video_sequence(void *opaque, CUVIDEOFORMAT* form ctx->internal_error = 0; + // width and height need to be set before calling ff_get_format + avctx->width = format->display_area.right; + avctx->height = format->display_area.bottom; + switch (format->bit_depth_luma_minus8) { case 0: // 8-bit pix_fmts[1] = AV_PIX_FMT_NV12; @@ -156,9 +160,6 @@ static int CUDAAPI cuvid_handle_video_sequence(void *opaque, CUVIDEOFORMAT* form hwframe_ctx = (AVHWFramesContext*)ctx->hwframe->data; } - avctx->width = format->display_area.right; - avctx->height = format->display_area.bottom; - ff_set_sar(avctx, av_div_q( (AVRational){ format->display_aspect_ratio.x, format->display_aspect_ratio.y }, (AVRational){ avctx->width, avctx->height })); -- cgit v1.2.3