On 9/21/11 7:15 AM, Martin Storsjö wrote:
---
  libavformat/flvdec.c |   12 ++++++++++++
  1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index cafbeb5..569d734 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -140,6 +140,18 @@ static int parse_keyframes_index(AVFormatContext *s, 
AVIOContext *ioc, AVStream
      int64_t *filepositions = NULL;
      int ret = AVERROR(ENOSYS);
      int64_t initial_pos = avio_tell(ioc);
+    AVDictionaryEntry *creator = av_dict_get(s->metadata, "metadatacreator",
+                                             NULL, 0);
+
+    if (creator&&  !strcmp(creator->value, "MEGA")) {
+        /* Files with this metadatacreator tag seem to have filepositions
+         * pointing at the 4 trailer bytes of the previous packet,
+         * which isn't the norm (nor what we expect here, nor what
+         * jwplayer + lighttpd expect, nor what flvtool2 produces).
+         * Just ignore the index in this case, instead of risking trying
+         * to adjust it to something that might or might not work. */
+        return 0;
+    }


Not sure if might make sense adding a private option to disable this quirkmode. is this creator widespread enough to be useful to support it?

lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to