avformat/movenc: support Opus packets with more than 60ms of audio when writing the...
authorJames Almer <jamrial@gmail.com>
Thu, 23 Aug 2018 20:48:58 +0000 (17:48 -0300)
committerJames Almer <jamrial@gmail.com>
Fri, 24 Aug 2018 16:21:10 +0000 (13:21 -0300)
Since libopus 1.2, packets of sizes 80ms, 100ms and 120ms are allowed.

Fixes assertion failures when trying to mux such streams.

Signed-off-by: James Almer <jamrial@gmail.com>
libavformat/movenc.c

index 8ad7026..dd6aa02 100644 (file)
@@ -2365,9 +2365,9 @@ static int mov_preroll_write_stbl_atoms(AVIOContext *pb, MOVTrack *track)
                decoded. */
             if (roll_samples_remaining > 0)
                 distance = 0;
-            /* Verify distance is a minimum of 2 (60ms) packets and a maximum of
-               32 (2.5ms) packets. */
-            av_assert0(distance == 0 || (distance >= 2 && distance <= 32));
+            /* Verify distance is a maximum of 32 (2.5ms) packets. */
+            if (distance > 32)
+                return AVERROR_INVALIDDATA;
             if (i && distance == sgpd_entries[entries].roll_distance) {
                 sgpd_entries[entries].count++;
             } else {