On Fri, 20 Sep 2013, Luca Barbato wrote:

---

I'm not so sure we support the other kind of array btw...

Indeed, the handling of the other type of array seems wrong here. OBJECT and MIXEDARRAY should be pretty much the same, right? While ARRAY doesn't have string objects before each value object.

libavformat/rtmppkt.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/libavformat/rtmppkt.c b/libavformat/rtmppkt.c
index 643d80f..9c14edc 100644
--- a/libavformat/rtmppkt.c
+++ b/libavformat/rtmppkt.c
@@ -379,6 +379,7 @@ int ff_amf_tag_size(const uint8_t *data, const uint8_t 
*data_end)
    case AMF_DATA_TYPE_STRING:      return 3 + AV_RB16(data);
    case AMF_DATA_TYPE_LONG_STRING: return 5 + AV_RB32(data);
    case AMF_DATA_TYPE_NULL:        return 1;
+    case AMF_DATA_TYPE_MIXEDARRAY:
    case AMF_DATA_TYPE_ARRAY:
        data += 4;
    case AMF_DATA_TYPE_OBJECT:
@@ -501,6 +502,7 @@ static void amf_tag_contents(void *ctx, const uint8_t *data,
    case AMF_DATA_TYPE_NULL:
        av_log(ctx, AV_LOG_DEBUG, " NULL\n");
        return;
+    case AMF_DATA_TYPE_MIXEDARRAY:
    case AMF_DATA_TYPE_ARRAY:
        data += 4;
    case AMF_DATA_TYPE_OBJECT:
--
1.8.3.2

I guess this works right (assuming you tested it in some way)...

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

Reply via email to