- API designed and reviewed (pjsua.h)
- Implemented these APIs and added to pjsua sample application:
- video device enums API
- video capture preview API
- refactoring in PJSUA-LIB:
- video stuffs go to pjsua_vid.c
- call dump goes to pjsua_dump.c
We're still missing:
- video call API implementation
- media info and statistic API implementation
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3609 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed handling remote re-offer, where SDP media line may be added or removed.
- Fixed bug in receiving remote offer (initial or subsequent), media channel create sdp must consider acc->cfg.max_audio_cnt setting.
- Fixed bug media transport is not closed after call disconnected.
- Fixed assertion in lock_codec after receiving initial answer but no acceptable media (in pjsua level, e.g: SRTP nego failed), now the call will be terminated.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3560 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 video stream integration into pjsua-lib.
- Replaced audio info array in pjsua_call_info with media info array.
- Added video media info into call dump.
- Fixed assertion caused by pjsua_set_state(NULL) logging after pjlib shutdown.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3463 74dad513-b988-da41-8d7b-12977e46ad98
1185: Dynamic creation of media transports
============================================
Done:
- media transports are created on demand now
Todo:
- media transport creation is still blocking
1201: Video support in PJSUA-LIB
===================================
Done:
- call now supports N media (N audio and M video)
- number of audio/video streams is configurable per acc
- extra audio stream info in pjsua_call_info to support multiple audio streams
in one call
- video subsys and ffmpeg initialization in PJSUA-LIB
- ability to offer and create video SDP answer
- "dq" for more than 1 audio streams
- introducing pjsua_state and pjsua_get_state()
API change:
- on_stream_created() and on_stream_destroyed() callbacks: changed session to
stream
Todo:
- many others features are disabled, just search for DISABLED_FOR_TICKET_1185
macro (these have also been added to ticket #1193 (Issues & Todos)). Notable
missing features are:
- creation of duplicate SDP m= lines for optional SRTP
- mm.. that's it?
- whole lot of testings
pjsua:
===============
- Added --extra-audio and --video options. Specify these more than once and
each time an extra audio/video streams will be added. :)
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3457 74dad513-b988-da41-8d7b-12977e46ad98
- pjsua_media.c checks if audio media is present in the offer; if not, do not set any answer
- sip_inv.c checks if app has supplied an answer after on_rx_offer() callback is called, and returnd 488 (Not Acceptable) if not (previously, it will return 200/OK without SDP!)
- added a SIPp scenario file to reproduce this
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3383 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed pjsua_media_channel_create_sdp() to re-calculate audio index of the remote offer, instead of using existing audio index calculated by pjsua_media_channel_init(), as for subsequent SDP offer/answer, pjsua_media_channel_init() may not be called.
- Fixed SRTP transport to be able to switch SRTP status from active to inactive/by-passed and vice versa.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3376 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed lock codec to always be done after successful media update, and pend the lock codec until call state CONFIRMED if media update is done in call state EARLY but remote does not support UPDATE method.
- Added additional checks in lock_codec() and perform_lock_codec(), e.g: skip locking codec when media deactivated.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3374 74dad513-b988-da41-8d7b-12977e46ad98
- avoid using pre-created SDP, but rather use timer and create SDP right when the UPDATE/re-INVITE is about to be sent, to avoid the use of stale pool
- also fixed bug in the old code when the lock codec feature is not activated after the call is confirmed
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3349 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed no audio bug when pjsua with SRTP optional-with-duplicated-offer calls pjsua with SRTP disabled, by updating active media index after SDP negotiation done.
- Fixed bug in generating SDP, pjsua_media_channel_create_sdp(), by making sure all media in the SDP candidate are aligned with current active SDP before calling pjmedia_transport_encode_sdp().
- Fixed bug in modifying SDP for call hold, the media index to be modified was hardcoded to 0, should be active media index.
- Added python tests for calls with SRTP optional-with-duplicated-offer.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3334 74dad513-b988-da41-8d7b-12977e46ad98
- use PJSUA_CALL_HOLD_TYPE_DEFAULT to specify default global call hold type
- use pjsua_acc_config.call_hold_type to specify call hold type for the account
- call hold type can also be set on per call basis by changing the call_hold_type in the call structure (requires inclusion of <pjsua-lib/pjsua_internal.h>
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3330 74dad513-b988-da41-8d7b-12977e46ad98