mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
Merge commit 'd9ec3c60143babe1bb77c268e1d5547d15acd69b'
* commit 'd9ec3c60143babe1bb77c268e1d5547d15acd69b': qsvenc: take only the allocated dimensions from the frames context Merged-by: Mark Thompson <sw@jkqxz.net>
This commit is contained in:
commit
723a542d6c
@ -347,6 +347,9 @@ static int rc_supported(QSVEncContext *q)
|
||||
|
||||
static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
||||
{
|
||||
enum AVPixelFormat sw_format = avctx->pix_fmt == AV_PIX_FMT_QSV ?
|
||||
avctx->sw_pix_fmt : avctx->pix_fmt;
|
||||
const AVPixFmtDescriptor *desc;
|
||||
float quant;
|
||||
int ret;
|
||||
|
||||
@ -372,15 +375,6 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
||||
q->param.mfx.EncodedOrder = 0;
|
||||
q->param.mfx.BufferSizeInKB = 0;
|
||||
|
||||
if (avctx->hw_frames_ctx) {
|
||||
AVHWFramesContext *frames_ctx = (AVHWFramesContext*)avctx->hw_frames_ctx->data;
|
||||
AVQSVFramesContext *frames_hwctx = frames_ctx->hwctx;
|
||||
q->param.mfx.FrameInfo = frames_hwctx->surfaces[0].Info;
|
||||
} else {
|
||||
enum AVPixelFormat sw_format = avctx->pix_fmt == AV_PIX_FMT_QSV ?
|
||||
avctx->sw_pix_fmt : avctx->pix_fmt;
|
||||
const AVPixFmtDescriptor *desc;
|
||||
|
||||
desc = av_pix_fmt_desc_get(sw_format);
|
||||
if (!desc)
|
||||
return AVERROR_BUG;
|
||||
@ -400,6 +394,12 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
||||
q->param.mfx.FrameInfo.BitDepthLuma = desc->comp[0].depth;
|
||||
q->param.mfx.FrameInfo.BitDepthChroma = desc->comp[0].depth;
|
||||
q->param.mfx.FrameInfo.Shift = desc->comp[0].depth > 8;
|
||||
|
||||
if (avctx->hw_frames_ctx) {
|
||||
AVHWFramesContext *frames_ctx = (AVHWFramesContext*)avctx->hw_frames_ctx->data;
|
||||
AVQSVFramesContext *frames_hwctx = frames_ctx->hwctx;
|
||||
q->param.mfx.FrameInfo.Width = frames_hwctx->surfaces[0].Info.Width;
|
||||
q->param.mfx.FrameInfo.Height = frames_hwctx->surfaces[0].Info.Height;
|
||||
}
|
||||
|
||||
if (avctx->framerate.den > 0 && avctx->framerate.num > 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user