summaryrefslogtreecommitdiff
path: root/pjmedia/include
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2014-04-10 10:01:07 +0000
committerBenny Prijono <bennylp@teluu.com>2014-04-10 10:01:07 +0000
commit0aa83d8efcf477675669569b037f291464c4f146 (patch)
tree063ff3ade6100cb7e2a0693b153045027422fc53 /pjmedia/include
parente7e444203e67583806aee77c0fc7d94115094efe (diff)
Re #1758: Initial implementation of OpenH264 wrapper. Supports:
- library detection via autoconf - CBP - packetization modes: 0, 1 - key frame request and indication - obey remote's fmtp Also added video codec test in samples (similar to the one in pjmedia test though). And there are some fixes here and there too (e.g. in vid_codec_util.c). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4815 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/include')
-rw-r--r--pjmedia/include/pjmedia-codec.h1
-rw-r--r--pjmedia/include/pjmedia-codec/openh264.h69
-rw-r--r--pjmedia/include/pjmedia/event.h5
3 files changed, 75 insertions, 0 deletions
diff --git a/pjmedia/include/pjmedia-codec.h b/pjmedia/include/pjmedia-codec.h
index 01e3e842..a35c8540 100644
--- a/pjmedia/include/pjmedia-codec.h
+++ b/pjmedia/include/pjmedia-codec.h
@@ -35,6 +35,7 @@
#include <pjmedia-codec/g7221.h>
#include <pjmedia-codec/ipp_codecs.h>
#include <pjmedia-codec/opencore_amr.h>
+#include <pjmedia-codec/openh264.h>
#include <pjmedia-codec/passthrough.h>
#include <pjmedia-codec/silk.h>
diff --git a/pjmedia/include/pjmedia-codec/openh264.h b/pjmedia/include/pjmedia-codec/openh264.h
new file mode 100644
index 00000000..d41ea428
--- /dev/null
+++ b/pjmedia/include/pjmedia-codec/openh264.h
@@ -0,0 +1,69 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2014 Teluu Inc. (http://www.teluu.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __PJMEDIA_CODEC_OPENH264_H__
+#define __PJMEDIA_CODEC_OPENH264_H__
+
+#include <pjmedia-codec/types.h>
+#include <pjmedia/vid_codec.h>
+
+/**
+ * @file pjmedia-codec/openh264.h
+ * @brief Open H.264 codec
+ */
+
+
+PJ_BEGIN_DECL
+
+/**
+ * @defgroup PJMEDIA_CODEC_OPENH264 Open H.264 Codec
+ * @ingroup PJMEDIA_CODEC_VID_CODECS
+ * @{
+ */
+
+/**
+ * Initialize and register OpenH264 codec factory.
+ *
+ * @param mgr The video codec manager instance where this codec will
+ * be registered to. Specify NULL to use default instance
+ * (in that case, an instance of video codec manager must
+ * have been created beforehand).
+ * @param pf Pool factory.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjmedia_codec_openh264_vid_init(pjmedia_vid_codec_mgr *mgr,
+ pj_pool_factory *pf);
+
+/**
+ * Unregister OpenH264 video codecs factory from the video codec manager and
+ * deinitialize the codec library.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjmedia_codec_openh264_vid_deinit(void);
+
+
+/**
+ * @} PJMEDIA_CODEC_OPENH264
+ */
+
+
+PJ_END_DECL
+
+#endif /* __PJMEDIA_CODEC_OPENH264_H__ */
diff --git a/pjmedia/include/pjmedia/event.h b/pjmedia/include/pjmedia/event.h
index 84baba9d..360a648e 100644
--- a/pjmedia/include/pjmedia/event.h
+++ b/pjmedia/include/pjmedia/event.h
@@ -240,6 +240,11 @@ typedef pj_status_t pjmedia_event_cb(pjmedia_event *event,
typedef enum pjmedia_event_publish_flag
{
/**
+ * Default flag.
+ */
+ PJMEDIA_EVENT_PUBLISH_DEFAULT,
+
+ /**
* Publisher will only post the event to the event manager. It is the
* event manager that will later notify all the publisher's subscribers.
*/