フラグにAV_PKT_FLAG_KEYを含むパケットをデコードした後、Iフレームを取得することを期待していましたが、代わりにPフレームを取得しました。
に電話した後:
avcodec_decode_video2(codecCtx, frame, &frameFinished, &packet); // mpeg2 video
健全性チェックとして以下を印刷します。
printf("packet flags: %d picture type: %c\n", packet.flags,
av_get_picture_type_char(frame->pict_type));
出力を返します:
packet flags: 1 picture type: P
私が期待していたとき:
packet flags: 1 picture type: I
ここで、「1」==AV_PKT_FLAG_KEY。「I」はAV_PICTURE_TYPE_Iを指し、
この動作は正しいですか?(私はMPEG2ビデオをデコードしています)。