avformat/flvdec: Set broken_sizes for FlixEngine.
authorNikolas Bowe <nbowe-at-google.com@ffmpeg.org>
Fri, 16 Feb 2018 23:25:17 +0000 (15:25 -0800)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 23 Feb 2018 00:53:34 +0000 (01:53 +0100)
we found some very old videos which suffered from
corruption after 9e6a2427558a718be0c1fffacffd935f630a7a8d, but were fine
before.
These had "End of AC stream reached in vp6_parse_coeff" warnings in logs.
These also had flv Packet mismatch warnings.
Adding FlixEngine to the list of flv muxers which produce broken packet
sizes fixes this corruption.

FlixEngine is very old and not maintained or available anymore (since
2010), so we won't need to worry about newer versions fixing the issue.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/flvdec.c

index 0217cef..34c3e08 100644 (file)
@@ -598,8 +598,10 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream,
                         if (version > 0 && version <= 655)
                             flv->broken_sizes = 1;
                     }
-                } else if (!strcmp(key, "metadatacreator") && !strcmp(str_val, "MEGA")) {
-                    flv->broken_sizes = 1;
+                } else if (!strcmp(key, "metadatacreator")) {
+                    if (   !strcmp (str_val, "MEGA")
+                        || !strncmp(str_val, "FlixEngine", 10))
+                        flv->broken_sizes = 1;
                 }
             }
         }