summaryrefslogtreecommitdiff
path: root/libavcodec/mediacodecenc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/mediacodecenc.c')
-rw-r--r--libavcodec/mediacodecenc.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/libavcodec/mediacodecenc.c b/libavcodec/mediacodecenc.c
index 2b7bef444e..d23745c1c1 100644
--- a/libavcodec/mediacodecenc.c
+++ b/libavcodec/mediacodecenc.c
@@ -164,6 +164,9 @@ static av_cold int mediacodec_init(AVCodecContext *avctx)
case AV_CODEC_ID_HEVC:
codec_mime = "video/hevc";
break;
+ case AV_CODEC_ID_VP8:
+ codec_mime = "video/x-vnd.on2.vp8";
+ break;
case AV_CODEC_ID_VP9:
codec_mime = "video/x-vnd.on2.vp9";
break;
@@ -778,6 +781,34 @@ DECLARE_MEDIACODEC_ENCODER(hevc, "H.265", AV_CODEC_ID_HEVC)
#endif // CONFIG_HEVC_MEDIACODEC_ENCODER
+#if CONFIG_VP8_MEDIACODEC_ENCODER
+
+enum MediaCodecVP8Level {
+ VP8Level_Version0 = 0x01,
+ VP8Level_Version1 = 0x02,
+ VP8Level_Version2 = 0x04,
+ VP8Level_Version3 = 0x08,
+};
+
+static const AVOption vp8_options[] = {
+ COMMON_OPTION
+ { "level", "Specify tier and level",
+ OFFSET(level), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, VE, "level" },
+ { "V0", "Level Version 0",
+ 0, AV_OPT_TYPE_CONST, { .i64 = VP8Level_Version0 }, 0, 0, VE, "level" },
+ { "V1", "Level Version 1",
+ 0, AV_OPT_TYPE_CONST, { .i64 = VP8Level_Version1 }, 0, 0, VE, "level" },
+ { "V2", "Level Version 2",
+ 0, AV_OPT_TYPE_CONST, { .i64 = VP8Level_Version2 }, 0, 0, VE, "level" },
+ { "V3", "Level Version 3",
+ 0, AV_OPT_TYPE_CONST, { .i64 = VP8Level_Version3 }, 0, 0, VE, "level" },
+ { NULL, }
+};
+
+DECLARE_MEDIACODEC_ENCODER(vp8, "VP8", AV_CODEC_ID_VP8)
+
+#endif // CONFIG_VP8_MEDIACODEC_ENCODER
+
#if CONFIG_VP9_MEDIACODEC_ENCODER
enum MediaCodecVP9Level {