summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean DuBois <sean@siobud.com>2017-12-13 09:22:17 +0000
committerEdward Hervey <bilboed@bilboed.com>2017-12-15 18:00:31 +0100
commitde8f080a5c04db505dd754820aea1fc479302ee8 (patch)
tree35ac08a6d5d80b8ddf8012256b823c12884161e1
parent3464aac3c9802eff32ce86b29c1f02ab316c5d99 (diff)
Add AV1 to matroska plugin
https://bugzilla.gnome.org/show_bug.cgi?id=784160
-rw-r--r--gst/matroska/matroska-demux.c6
-rw-r--r--gst/matroska/matroska-ids.h1
-rw-r--r--gst/matroska/matroska-mux.c2
-rw-r--r--gst/matroska/webm-mux.c2
4 files changed, 9 insertions, 2 deletions
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index eee41d655..f3bf76366 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -3812,7 +3812,8 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
delta_unit = TRUE;
invisible_frame = ((flags & 0x08)) &&
(!strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP8) ||
- !strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP9));
+ !strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP9) ||
+ !strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_AV1));
}
/* If we're doing a keyframe-only trickmode, only push keyframes on video
@@ -5609,6 +5610,9 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext *
} else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP9)) {
caps = gst_caps_new_empty_simple ("video/x-vp9");
*codec_name = g_strdup_printf ("On2 VP9");
+ } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_AV1)) {
+ caps = gst_caps_new_empty_simple ("video/x-av1");
+ *codec_name = g_strdup_printf ("AOM AV1");
} else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_PRORES)) {
guint32 fourcc;
const gchar *variant, *variant_descr = "";
diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h
index 181dfd8e9..9a88010d0 100644
--- a/gst/matroska/matroska-ids.h
+++ b/gst/matroska/matroska-ids.h
@@ -358,6 +358,7 @@
#define GST_MATROSKA_CODEC_ID_VIDEO_DIRAC "V_DIRAC"
#define GST_MATROSKA_CODEC_ID_VIDEO_VP8 "V_VP8"
#define GST_MATROSKA_CODEC_ID_VIDEO_VP9 "V_VP9"
+#define GST_MATROSKA_CODEC_ID_VIDEO_AV1 "V_AV1"
#define GST_MATROSKA_CODEC_ID_VIDEO_MPEGH_HEVC "V_MPEGH/ISO/HEVC"
#define GST_MATROSKA_CODEC_ID_VIDEO_PRORES "V_PRORES"
diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c
index 7ae340a6f..fd09e2ef0 100644
--- a/gst/matroska/matroska-mux.c
+++ b/gst/matroska/matroska-mux.c
@@ -1210,6 +1210,8 @@ skip_details:
gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_VP8);
} else if (!strcmp (mimetype, "video/x-vp9")) {
gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_VP9);
+ } else if (!strcmp (mimetype, "video/x-av1")) {
+ gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_AV1);
} else if (!strcmp (mimetype, "video/mpeg")) {
gint mpegversion;
diff --git a/gst/matroska/webm-mux.c b/gst/matroska/webm-mux.c
index 81113ec92..85c8639f5 100644
--- a/gst/matroska/webm-mux.c
+++ b/gst/matroska/webm-mux.c
@@ -66,7 +66,7 @@ static GstStaticPadTemplate webm_videosink_templ =
GST_PAD_SINK,
GST_PAD_REQUEST,
GST_STATIC_CAPS ("video/x-vp8, " COMMON_VIDEO_CAPS ";"
- "video/x-vp9, " COMMON_VIDEO_CAPS)
+ "video/x-vp9, " COMMON_VIDEO_CAPS ";" "video/x-av1, " COMMON_VIDEO_CAPS)
);
static GstStaticPadTemplate webm_audiosink_templ =