summaryrefslogtreecommitdiff
path: root/modules/vp9/vp9.c
diff options
context:
space:
mode:
authorAlfred E. Heggestad <aeh@db.org>2016-06-04 23:22:55 +0200
committerAlfred E. Heggestad <aeh@db.org>2016-06-04 23:22:55 +0200
commit3bb22d2bb13a1700617b6c40eac08811a1b5b775 (patch)
treed69fd443dd3a93bd3d6c898667f39a2d64e07b86 /modules/vp9/vp9.c
parente6085d98b562cfc78a7d62ac9e3aa1c3923796dc (diff)
vp9: add VP9 video codec
Diffstat (limited to 'modules/vp9/vp9.c')
-rw-r--r--modules/vp9/vp9.c61
1 files changed, 61 insertions, 0 deletions
diff --git a/modules/vp9/vp9.c b/modules/vp9/vp9.c
new file mode 100644
index 0000000..852a19a
--- /dev/null
+++ b/modules/vp9/vp9.c
@@ -0,0 +1,61 @@
+/**
+ * @file vp9.c VP9 video codec
+ *
+ * Copyright (C) 2010 - 2016 Creytiv.com
+ */
+#include <string.h>
+#include <re.h>
+#include <rem.h>
+#include <baresip.h>
+#include "vp9.h"
+
+
+/**
+ * @defgroup vp9 vp9
+ *
+ * The VP9 video codec
+ *
+ * This module implements the VP9 video codec that is compatible
+ * with the WebRTC standard.
+ *
+ * References:
+ *
+ * http://www.webmproject.org/
+ *
+ * draft-ietf-payload-vp9-02
+ */
+
+
+static struct vp9_vidcodec vp9 = {
+ .vc = {
+ .name = "VP9",
+ .encupdh = vp9_encode_update,
+ .ench = vp9_encode,
+ .decupdh = vp9_decode_update,
+ .dech = vp9_decode,
+ .fmtp_ench = vp9_fmtp_enc,
+ },
+ .max_fs = 3600
+};
+
+
+static int module_init(void)
+{
+ vidcodec_register((struct vidcodec *)&vp9);
+ return 0;
+}
+
+
+static int module_close(void)
+{
+ vidcodec_unregister((struct vidcodec *)&vp9);
+ return 0;
+}
+
+
+EXPORT_SYM const struct mod_export DECL_EXPORTS(vp9) = {
+ "vp9",
+ "codec",
+ module_init,
+ module_close
+};