From df59d06fd31378c5ee6ec20badffc25ecb81a575 Mon Sep 17 00:00:00 2001 From: trav90 Date: Wed, 14 Nov 2018 22:34:26 -0600 Subject: Add support to libstagefright for AV1 FourCCs --- .../libstagefright/frameworks/av/include/media/stagefright/MediaDefs.h | 1 + .../frameworks/av/media/libstagefright/MPEG4Extractor.cpp | 3 +++ media/libstagefright/frameworks/av/media/libstagefright/MediaDefs.cpp | 1 + 3 files changed, 5 insertions(+) diff --git a/media/libstagefright/frameworks/av/include/media/stagefright/MediaDefs.h b/media/libstagefright/frameworks/av/include/media/stagefright/MediaDefs.h index 7ac6db8d5..b8aad681d 100644 --- a/media/libstagefright/frameworks/av/include/media/stagefright/MediaDefs.h +++ b/media/libstagefright/frameworks/av/include/media/stagefright/MediaDefs.h @@ -25,6 +25,7 @@ extern const char *MEDIA_MIMETYPE_IMAGE_JPEG; extern const char *MEDIA_MIMETYPE_VIDEO_VP6; extern const char *MEDIA_MIMETYPE_VIDEO_VP8; extern const char *MEDIA_MIMETYPE_VIDEO_VP9; +extern const char *MEDIA_MIMETYPE_VIDEO_AV1; extern const char *MEDIA_MIMETYPE_VIDEO_AVC; extern const char *MEDIA_MIMETYPE_VIDEO_MPEG4; extern const char *MEDIA_MIMETYPE_VIDEO_H263; diff --git a/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp index 5667f04d8..47b192f3f 100644 --- a/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp @@ -269,6 +269,9 @@ static const char *FourCC2MIME(uint32_t fourcc) { case FOURCC('V', 'P', '6', 'F'): return MEDIA_MIMETYPE_VIDEO_VP6; + case FOURCC('a', 'v', '0', '1'): + return MEDIA_MIMETYPE_VIDEO_AV1; + default: ALOGE("Unknown MIME type %08x", fourcc); return NULL; diff --git a/media/libstagefright/frameworks/av/media/libstagefright/MediaDefs.cpp b/media/libstagefright/frameworks/av/media/libstagefright/MediaDefs.cpp index a1b520b10..a7c6e75fc 100644 --- a/media/libstagefright/frameworks/av/media/libstagefright/MediaDefs.cpp +++ b/media/libstagefright/frameworks/av/media/libstagefright/MediaDefs.cpp @@ -23,6 +23,7 @@ const char *MEDIA_MIMETYPE_IMAGE_JPEG = "image/jpeg"; const char *MEDIA_MIMETYPE_VIDEO_VP6 = "video/x-vnd.on2.vp6"; const char *MEDIA_MIMETYPE_VIDEO_VP8 = "video/x-vnd.on2.vp8"; const char *MEDIA_MIMETYPE_VIDEO_VP9 = "video/x-vnd.on2.vp9"; +const char *MEDIA_MIMETYPE_VIDEO_AV1 = "video/av1"; const char *MEDIA_MIMETYPE_VIDEO_AVC = "video/avc"; const char *MEDIA_MIMETYPE_VIDEO_MPEG4 = "video/mp4v-es"; const char *MEDIA_MIMETYPE_VIDEO_H263 = "video/3gpp"; -- cgit v1.2.3 From 4d8b7a376f061f49f184c17d820b9057a82c4522 Mon Sep 17 00:00:00 2001 From: trav90 Date: Sun, 18 Nov 2018 13:02:19 -0600 Subject: Add support to libstagefright for AV1 FourCCs (part 2) --- .../frameworks/av/media/libstagefright/MPEG4Extractor.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp index 47b192f3f..786e80487 100644 --- a/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp @@ -270,6 +270,7 @@ static const char *FourCC2MIME(uint32_t fourcc) { return MEDIA_MIMETYPE_VIDEO_VP6; case FOURCC('a', 'v', '0', '1'): + case FOURCC('.', 'a', 'v', '1'): return MEDIA_MIMETYPE_VIDEO_AV1; default: @@ -1349,6 +1350,8 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { case FOURCC('a', 'v', 'c', '1'): case FOURCC('a', 'v', 'c', '3'): case FOURCC('V', 'P', '6', 'F'): + case FOURCC('a', 'v', '0', '1'): + case FOURCC('.', 'a', 'v', '1'): { mHasVideo = true; -- cgit v1.2.3 From 56c26d86748eadb1292b141993a48bf035081346 Mon Sep 17 00:00:00 2001 From: trav90 Date: Sun, 18 Nov 2018 13:10:11 -0600 Subject: Add AV1 support to MP4Decoder. --- dom/media/fmp4/MP4Decoder.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dom/media/fmp4/MP4Decoder.cpp b/dom/media/fmp4/MP4Decoder.cpp index fdd6f2c7e..25dd53f94 100644 --- a/dom/media/fmp4/MP4Decoder.cpp +++ b/dom/media/fmp4/MP4Decoder.cpp @@ -139,6 +139,14 @@ MP4Decoder::CanHandleMediaType(const MediaContentType& aType, NS_LITERAL_CSTRING("audio/flac"), aType)); continue; } +#ifdef MOZ_AV1 + if (IsAV1CodecString(codec)) { + trackInfos.AppendElement( + CreateTrackInfoWithMIMETypeAndContentTypeExtraParameters( + NS_LITERAL_CSTRING("video/av1"), aType)); + continue; + } +#endif // Note: Only accept H.264 in a video content type, not in an audio // content type. if (IsWhitelistedH264Codec(codec) && isMP4Video) { -- cgit v1.2.3