summaryrefslogtreecommitdiff
path: root/ffmpeg.c
diff options
context:
space:
mode:
authoranatolschwarz <anatol2002@gmail.com>2015-05-05 16:14:35 +0300
committerMichael Niedermayer <michaelni@gmx.at>2015-05-16 12:55:19 +0200
commit77cc0d5b596cd2f1d399f21a615ae6c5fc0dfadb (patch)
tree68dcb60ee73643185ebc32d2c1de428c77811bef /ffmpeg.c
parent3a91a07f15e89633c49ab8f6ea08f9ea4a2696d0 (diff)
ffmpeg: Support preserving the source key frame timings
Added option "source" to force_key_frames
Diffstat (limited to 'ffmpeg.c')
-rw-r--r--ffmpeg.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index 49a4326fce..be8b0782ce 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1104,6 +1104,10 @@ static void do_video_out(AVFormatContext *s,
}
ost->forced_keyframes_expr_const_values[FKF_N] += 1;
+ } else if ( ost->forced_keyframes
+ && !strncmp(ost->forced_keyframes, "source", 6)
+ && in_picture->key_frame==1) {
+ forced_keyframe = 1;
}
if (forced_keyframe) {
@@ -2942,7 +2946,10 @@ static int transcode_init(void)
ost->forced_keyframes_expr_const_values[FKF_N_FORCED] = 0;
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_N] = NAN;
ost->forced_keyframes_expr_const_values[FKF_PREV_FORCED_T] = NAN;
- } else {
+
+ // Don't parse the 'forced_keyframes' in case of 'keep-source-keyframes',
+ // parse it only for static kf timings
+ } else if(strncmp(ost->forced_keyframes, "source", 6)) {
parse_forced_key_frames(ost->forced_keyframes, ost, ost->enc_ctx);
}
}