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 <[email protected]>
---
 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
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to