* Backport of r3557:r3832
TODO: ticket #1268 (Option for automatic/manual sending of RTCP SDES/BYE for the stream) for video stream.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3841 74dad513-b988-da41-8d7b-12977e46ad98
- Review H264 codec settings such as profile, level, NAL unit size, bitrate, quality, latency.
- Added new format PJMEDIA_FORMAT_GBRP, 24 bits planar RGB, one of the formats outputted by the latest ffmpeg H264 decoder.
- Fixed format change detection bug in ffmpeg wrapper, decoder didn't update its internal state with the new format so format change event was generated in every decoding operation.
- Added compile time configurations for enabling/disabling ffmpeg codec H263+ & H264.
- Updated pjsua app to adjust window size to original video size. With H264, default window size will be too big as it is init'd with default H264 video size, e.g: 720x480 for profile level 30.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3819 74dad513-b988-da41-8d7b-12977e46ad98
- changed encode(), packetize(), unpacketize(), and decode() to encode_begin(), encode_more(), and decode()
- codec has new "packing" setting
- updated stream, aviplay, codec-test, and stream-util due to above
- minor doxygen documentation fixes here and there
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3776 74dad513-b988-da41-8d7b-12977e46ad98
- updated the year in all copyright texts with 2011
- put copyright text into newly added files
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3715 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed compile warnings on vs2005
- Fixed compile error when PJMEDIA_HAS_VIDEO set to 0 on vs2005
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3666 74dad513-b988-da41-8d7b-12977e46ad98
- Added custom negotiation callback mechanism in SDP negotiator, mainly for specific formats that require SDP fmtp negotiation.
- Modified video codec ID string to use encoding name+payload type (was encoding name+clock rate), also added encoding description in video codec info, so duplicated codecs (e.g: multiple H264 configurations) can be differentiated.
- Few enhancements for H264 in ffmpeg wrapper (e.g: added proper profile-id & packetization-mode setup).
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3500 74dad513-b988-da41-8d7b-12977e46ad98
- Initial version of H264 implementation (codec & packetization).
- Added vid_codec_util.h/c for video codec utilities (e.g: fmtp parser).
- Updated video RTP packetizations to be configurable and have internal state (to be more resilient to packet lost, etc).
- Fixed wrong SPF calculation in PJMEDIA_SPF2.
- Updated vid_codec_test.c to also have RTP packetization test.
- Updated sdp_neg.c to verify H.264 capability match.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3493 74dad513-b988-da41-8d7b-12977e46ad98
- vstream:
- allow NULL pool parameter which means vstream will create one
- Updated remote FPS detection to only be performed if decoder returns frame (however the FPS detection is currently disabled as some endpoints changes fps continuously, causing renderer restart continuously too).
- codec:
- Updated video codec info to have RTP packetization support flag, also update endpoint in generating SDP to only include codecs whose RTP packetization support.
- Added dynamic payload types for video codecs.
- (minor) separate video PT into separate enum in pjmedia-codec/types.h
- H264 initial experiment.
generated frames (for libx264 sake).
- Replaced PJ_EUNKNOWN in some places with the appropriate error code.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3461 74dad513-b988-da41-8d7b-12977e46ad98
- Added PCM signal adjustment in IPP G722.1 implementation. The default setting is configurable via (the existing compile-time config) PJMEDIA_G7221_DEFAULT_PCM_SHIFT.
- Added new APIs to get and set IPP codecs settings: pjmedia_codec_ipp_set/get_config(). At run-time, the G722.1 PCM signal adjustment setting can be set using these functions.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3261 74dad513-b988-da41-8d7b-12977e46ad98
- Added API pjmedia_codec_g722_set_pcm_shift() to enable configurable level-adjusment setting.
- Also added macro PJMEDIA_G722_DEFAULT_PCM_SHIFT (default value is 2) to accomplish 14-16 bit PCM conversion for G722 input/output.
- Added a feature in G722 to stop level-adjusment/PCM-shifting when clipping occured, compile-time configurable via PJMEDIA_G722_STOP_PCM_SHIFT_ON_CLIPPING macro.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3202 74dad513-b988-da41-8d7b-12977e46ad98
- Removed orphaned third_party/gsm/inc/gsm.h.orig file
- Added support for external GSM header in /usr/include/gsm.h (rather than <gsm/gsm.h>)
Thanks Christopher Zimmermann for the fixes
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3158 74dad513-b988-da41-8d7b-12977e46ad98
- support for using external libspeex and libgsm
- replaced --with-pa-path with --with-external-pa
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3062 74dad513-b988-da41-8d7b-12977e46ad98
- Added a new API pjmedia_codec_passthrough_init2().
- Updated the initialization steps of passthrough codec in pjsua_media.c, to configure the codecs (of passthrough codec) to be enabled based on audio device extended/encoded formats.
- Minor update: added passthrough.h into pjmedia_codec.vcproj.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2825 74dad513-b988-da41-8d7b-12977e46ad98
- Added build config for GNU autoconf & make.
- Fixed some G.722.1 codes for linux & mingw32 targets, e.g: types
defs, collision function name 'round'.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2601 74dad513-b988-da41-8d7b-12977e46ad98
- Initial source of G.722.1/Annex C integration.
- Disabled some "odd" modes of L16 codec (11kHz & 22kHz mono & stereo) while releasing some payload types.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2563 74dad513-b988-da41-8d7b-12977e46ad98
- Updated audio switch board to make user possible to update its port 0 (master port) attributes, this is needed since sound device need to be reopened (e.g: for changing ptime or codec) while conf is not recreated.
- Added new API to AMR helper to resolve mode/frame-type based on frame len.
- Updated pmedia_frame_ext helper functions for a bit optimization.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/aps-direct@2444 74dad513-b988-da41-8d7b-12977e46ad98
- Updated symbian_ua/ua.cpp to be able to reopen sound device when audio stream session is using non-PCM data/passthrough codec.
- Updated stream.c to allow it works with non-PCM data.
- Added PCMU/A frames processing into non-PCM play/record callbacks in symbian_audio_aps.cpp.
- Added passthrough codec init/deinitialization in pjsua-lib.
- Added a new pjmedia_frame_ext helper function, pjmedia_frame_ext_pop_subframes, to pop-out/remove some subframes.
- Other minor updates/fixes.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/aps-direct@2438 74dad513-b988-da41-8d7b-12977e46ad98
- Configurable setting to enable/disable AMR bitstream reordering (sensitivity order to/from encoder bits order).
- Updated AMR codec to regard in-band Change Mode Request from remote encoder.
- Updated AMR settings (octet-align, etc) to be configured upon codec opening, instead of hardcoded in the encode, decode, parse.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2359 74dad513-b988-da41-8d7b-12977e46ad98