aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Rothenpieler <timo@rothenpieler.org>2017-02-14 11:47:08 +0100
committerTimo Rothenpieler <timo@rothenpieler.org>2017-02-14 11:47:10 +0100
commitce79410bba776d4121685654056f2b4e39bbd3f7 (patch)
tree993f7770ace7722f25874530665ead1e0e696ae3
parentb7d480f4312c5ce7d8ce2f6eb7189f0d96ad5bde (diff)
downloadffmpeg-ce79410bba776d4121685654056f2b4e39bbd3f7.tar.gz
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.
-rw-r--r--libavcodec/cuvid.c7
1 files changed, 4 insertions, 3 deletions
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 }));