The earlier code has ignored it for all stream types except
video and subtitles, probably because audio was presumed
to only consist of keyframes. Yet this assumption is not true
for e.g. TrueHD.

Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com>
---
 fftools/ffmpeg_opt.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index ab4c63a362..60ee6b16b5 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -1655,6 +1655,9 @@ static OutputStream *new_output_stream(OptionsContext *o, 
AVFormatContext *oc, e
     ost->muxing_queue = av_fifo_alloc(8 * sizeof(AVPacket));
     if (!ost->muxing_queue)
         exit_program(1);
+    if (ost->stream_copy)
+        MATCH_PER_STREAM_OPT(copy_initial_nonkeyframes, i,
+                             ost->copy_initial_nonkeyframes, oc, st);
 
     return ost;
 }
@@ -1940,8 +1943,6 @@ static OutputStream *new_video_stream(OptionsContext *o, 
AVFormatContext *oc, in
         ost->avfilter = get_ost_filters(o, oc, ost);
         if (!ost->avfilter)
             exit_program(1);
-    } else {
-        MATCH_PER_STREAM_OPT(copy_initial_nonkeyframes, i, 
ost->copy_initial_nonkeyframes, oc ,st);
     }
 
     if (ost->stream_copy)
@@ -2069,8 +2070,6 @@ static OutputStream *new_subtitle_stream(OptionsContext 
*o, AVFormatContext *oc,
 
     subtitle_enc->codec_type = AVMEDIA_TYPE_SUBTITLE;
 
-    MATCH_PER_STREAM_OPT(copy_initial_nonkeyframes, i, 
ost->copy_initial_nonkeyframes, oc, st);
-
     if (!ost->stream_copy) {
         char *frame_size = NULL;
 
-- 
2.30.2

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to