mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-04 06:08:26 +02:00
qsvenc: add support for p010
This commit is contained in:
parent
21962261c7
commit
37a9015ee8
@ -385,7 +385,16 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
||||
AVQSVFramesContext *frames_hwctx = frames_ctx->hwctx;
|
||||
q->param.mfx.FrameInfo = frames_hwctx->surfaces[0].Info;
|
||||
} else {
|
||||
q->param.mfx.FrameInfo.FourCC = MFX_FOURCC_NV12;
|
||||
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;
|
||||
|
||||
ff_qsv_map_pixfmt(sw_format, &q->param.mfx.FrameInfo.FourCC);
|
||||
|
||||
q->param.mfx.FrameInfo.Width = FFALIGN(avctx->width, q->width_align);
|
||||
q->param.mfx.FrameInfo.Height = FFALIGN(avctx->height, 32);
|
||||
q->param.mfx.FrameInfo.CropX = 0;
|
||||
@ -396,8 +405,9 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
||||
q->param.mfx.FrameInfo.AspectRatioH = avctx->sample_aspect_ratio.den;
|
||||
q->param.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_PROGRESSIVE;
|
||||
q->param.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
|
||||
q->param.mfx.FrameInfo.BitDepthLuma = 8;
|
||||
q->param.mfx.FrameInfo.BitDepthChroma = 8;
|
||||
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->framerate.den > 0 && avctx->framerate.num > 0) {
|
||||
|
@ -126,6 +126,7 @@ AVCodec ff_h264_qsv_encoder = {
|
||||
.close = qsv_enc_close,
|
||||
.capabilities = AV_CODEC_CAP_DELAY,
|
||||
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12,
|
||||
AV_PIX_FMT_P010,
|
||||
AV_PIX_FMT_QSV,
|
||||
AV_PIX_FMT_NONE },
|
||||
.priv_class = &class,
|
||||
|
@ -262,6 +262,7 @@ AVCodec ff_hevc_qsv_encoder = {
|
||||
.close = qsv_enc_close,
|
||||
.capabilities = AV_CODEC_CAP_DELAY,
|
||||
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12,
|
||||
AV_PIX_FMT_P010,
|
||||
AV_PIX_FMT_QSV,
|
||||
AV_PIX_FMT_NONE },
|
||||
.priv_class = &class,
|
||||
|
Loading…
x
Reference in New Issue
Block a user