diff options
author | Benny Prijono <bennylp@teluu.com> | 2014-04-10 10:01:07 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2014-04-10 10:01:07 +0000 |
commit | 0aa83d8efcf477675669569b037f291464c4f146 (patch) | |
tree | 063ff3ade6100cb7e2a0693b153045027422fc53 /pjmedia/include | |
parent | e7e444203e67583806aee77c0fc7d94115094efe (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.h | 1 | ||||
-rw-r--r-- | pjmedia/include/pjmedia-codec/openh264.h | 69 | ||||
-rw-r--r-- | pjmedia/include/pjmedia/event.h | 5 |
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. */ |