[FFmpeg-cvslog] ffmpeg: Support preserving the source key frame timings

anatolschwarz git at videolan.org
Sat May 16 13:14:19 CEST 2015


ffmpeg | branch: master | anatolschwarz <anatol2002 at gmail.com> | Tue May  5 16:14:35 2015 +0300| [77cc0d5b596cd2f1d399f21a615ae6c5fc0dfadb] | committer: Michael Niedermayer

ffmpeg: Support preserving the source key frame timings

Added option "source" to force_key_frames

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=77cc0d5b596cd2f1d399f21a615ae6c5fc0dfadb
---

 ffmpeg.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index 49a4326..be8b078 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);
                     }
                 }



More information about the ffmpeg-cvslog mailing list