mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
lavc/qsvenc: Add workaround for VP9 keyframe
The runtime doesn't set the frame type to MFX_FRAMETYPE_IDR on the returned mfx bitstream for a keyframe, it set the frame type to MFX_FRAMETYPE_I only. This patch added workaround for VP9 keyframe to make the coded stream seekable. Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
This commit is contained in:
parent
82e8838165
commit
cd31eac999
@ -2578,9 +2578,11 @@ int ff_qsv_encode(AVCodecContext *avctx, QSVEncContext *q,
|
||||
if (qpkt.bs->FrameType & MFX_FRAMETYPE_IDR || qpkt.bs->FrameType & MFX_FRAMETYPE_xIDR) {
|
||||
qpkt.pkt.flags |= AV_PKT_FLAG_KEY;
|
||||
pict_type = AV_PICTURE_TYPE_I;
|
||||
} else if (qpkt.bs->FrameType & MFX_FRAMETYPE_I || qpkt.bs->FrameType & MFX_FRAMETYPE_xI)
|
||||
} else if (qpkt.bs->FrameType & MFX_FRAMETYPE_I || qpkt.bs->FrameType & MFX_FRAMETYPE_xI) {
|
||||
if (avctx->codec_id == AV_CODEC_ID_VP9)
|
||||
qpkt.pkt.flags |= AV_PKT_FLAG_KEY;
|
||||
pict_type = AV_PICTURE_TYPE_I;
|
||||
else if (qpkt.bs->FrameType & MFX_FRAMETYPE_P || qpkt.bs->FrameType & MFX_FRAMETYPE_xP)
|
||||
} else if (qpkt.bs->FrameType & MFX_FRAMETYPE_P || qpkt.bs->FrameType & MFX_FRAMETYPE_xP)
|
||||
pict_type = AV_PICTURE_TYPE_P;
|
||||
else if (qpkt.bs->FrameType & MFX_FRAMETYPE_B || qpkt.bs->FrameType & MFX_FRAMETYPE_xB)
|
||||
pict_type = AV_PICTURE_TYPE_B;
|
||||
|
Loading…
Reference in New Issue
Block a user