This commit fixes two recent regressions both of which are about using
pkt->stream_index as index in an AVFormatContext's streams array before
actually comparing the value with the count of streams in said array.
96e5e6abb9851d7a26ba21703955d5826ac857c0 did this in
prepare_input_packet() and 64063512227c4c87a7d16a1076481dc6baf19841 did
likewise in write_packets_common().

Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com>
---
The same error in the same file applied on the same day by two different
people. How unlikely.

 libavformat/mux.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavformat/mux.c b/libavformat/mux.c
index 41659b19c9..f2de73af9b 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -761,12 +761,13 @@ static int check_packet(AVFormatContext *s, AVPacket *pkt)
 
 static int prepare_input_packet(AVFormatContext *s, AVPacket *pkt)
 {
+    AVStream *st;
     int ret;
-    AVStream *st = s->streams[pkt->stream_index];
 
     ret = check_packet(s, pkt);
     if (ret < 0)
         return ret;
+    st = s->streams[pkt->stream_index];
 
 #if !FF_API_COMPUTE_PKT_FIELDS2 || !FF_API_LAVF_AVCTX
     /* sanitize the timestamps */
@@ -1176,10 +1177,11 @@ static int write_packets_from_bsfs(AVFormatContext *s, 
AVStream *st, AVPacket *p
 
 static int write_packets_common(AVFormatContext *s, AVPacket *pkt, int 
interleaved)
 {
-    AVStream *st = s->streams[pkt->stream_index];
+    AVStream *st;
     int ret = prepare_input_packet(s, pkt);
     if (ret < 0)
         return ret;
+    st = s->streams[pkt->stream_index];
 
     ret = check_bitstream(s, st, pkt);
     if (ret < 0)
-- 
2.20.1

_______________________________________________
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