[FFmpeg-cvslog] avformat/flvdec: Set broken_sizes for FlixEngine.

Nikolas Bowe git at videolan.org
Fri Feb 23 02:55:20 EET 2018


ffmpeg | branch: master | Nikolas Bowe <nbowe-at-google.com at ffmpeg.org> | Fri Feb 16 15:25:17 2018 -0800| [ce8a12fb72271a6e4f50ffcb360e7fdac6eccdcb] | committer: Michael Niedermayer

avformat/flvdec: Set broken_sizes for FlixEngine.

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 at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ce8a12fb72271a6e4f50ffcb360e7fdac6eccdcb
---

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

diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index 0217cef842..34c3e08bad 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -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;
                 }
             }
         }



More information about the ffmpeg-cvslog mailing list