param.mfx.FrameInfo.BitDepthChroma = desc->comp[0].depth;
param.mfx.FrameInfo.Shift = desc->comp[0].depth > 8;
param.mfx.FrameInfo.FourCC = q->fourcc;
- param.mfx.FrameInfo.Width = avctx->coded_width;
- param.mfx.FrameInfo.Height = avctx->coded_height;
+ param.mfx.FrameInfo.Width = frame_width;
+ param.mfx.FrameInfo.Height = frame_height;
param.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
+ switch (avctx->field_order) {
+ case AV_FIELD_PROGRESSIVE:
+ param.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_PROGRESSIVE;
+ break;
+ case AV_FIELD_TT:
+ param.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_FIELD_TFF;
+ break;
+ case AV_FIELD_BB:
+ param.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_FIELD_BFF;
+ break;
+ default:
+ param.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_UNKNOWN;
+ break;
+ }
+
param.IOPattern = q->iopattern;
param.AsyncDepth = q->async_depth;
param.ExtParam = q->ext_buffers;