]> git.sesse.net Git - ffmpeg/commitdiff
avformat/flvdec: RtmpSampleAccess no longer breaks stream detection
authorPeter van der Spek <p.vanderspek@bluebillywig.com>
Wed, 19 Aug 2020 07:06:54 +0000 (09:06 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 23 Sep 2020 19:33:21 +0000 (21:33 +0200)
Since release 4.2, FFmpeg fails to detect the correct streams in an RTMP
stream that contains a |RtmpSampleAccess AMF object prior to the
onMetaData AMF object. In the debug log it would show "[flv] Unknown
type |RtmpSampleAccess".

This functionality broke in commit d7638d8dfc3c4ffd0dc18a64937a5a07ed67b354
as unknown metadata packets now result in an opaque data stream, and the
|RtmpSampleAccess packet was an "unknown" metadata packet type.

With this change the RTMP streams are correctly detected when there
is a |RtmpSampleAccess object prior to the onMetaData object.

Signed-off-by: Peter van der Spek <p.vanderspek@bluebillywig.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/flvdec.c

index 08622739f3146a2b98fb4be39ad7ef408fe5b439..d480d0bc67acf6942b1b66f9a2a36e9b47526655 100644 (file)
@@ -715,7 +715,7 @@ static int flv_read_metabody(AVFormatContext *s, int64_t next_pos)
     if (!strcmp(buffer, "onCaptionInfo"))
         return TYPE_ONCAPTIONINFO;
 
-    if (strcmp(buffer, "onMetaData") && strcmp(buffer, "onCuePoint")) {
+    if (strcmp(buffer, "onMetaData") && strcmp(buffer, "onCuePoint") && strcmp(buffer, "|RtmpSampleAccess")) {
         av_log(s, AV_LOG_DEBUG, "Unknown type %s\n", buffer);
         return TYPE_UNKNOWN;
     }