summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiza Sulistyo <riza@teluu.com>2016-05-18 07:50:15 +0000
committerRiza Sulistyo <riza@teluu.com>2016-05-18 07:50:15 +0000
commit6951fa394f0a164ede3a87d7f4e28808ee39f9fa (patch)
tree214f380011f604c35067e3355f686f8914ec4814
parent0c7a1290de08413eedd14a0cd54856ecbaa63035 (diff)
Re #1920: Update how keyframe is detected on FFMpeg codec, since
AVCodecContext.coded_frame is deprecated. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5305 74dad513-b988-da41-8d7b-12977e46ad98
-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;