summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c b/pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c
index 1f02cde8..c2dff6b5 100644
--- a/pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c
+++ b/pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c
@@ -1476,10 +1476,17 @@ static pj_status_t ffmpeg_codec_encode_whole(pjmedia_vid_codec *codec,
print_ffmpeg_err(err);
return PJMEDIA_CODEC_EFAILED;
} else {
+ pj_bool_t has_key_frame = PJ_FALSE;
output->size = err;
output->bit_info = 0;
- if (ff->enc_ctx->coded_frame->key_frame)
- output->bit_info |= PJMEDIA_VID_FRM_KEYFRAME;
+
+#if LIBAVCODEC_VER_AT_LEAST(54,15)
+ has_key_frame = (avpacket.flags & AV_PKT_FLAG_KEY);
+#else
+ has_key_frame = ff->enc_ctx->coded_frame->key_frame;
+#endif
+ if (has_key_frame)
+ output->bit_info |= PJMEDIA_VID_FRM_KEYFRAME;
}
return PJ_SUCCESS;