* support for format modification after creating video port (currently for renderer with active role only).
* support for format modification after opening SDL renderer.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3431 74dad513-b988-da41-8d7b-12977e46ad98
- Renamed vstreamutil.c to vid_steamutil.c just for filename format consistency reason.
- Updated sample app simpleua.c and vid_streamutil.c to sync with updated API, e.g: strip session usage, two media ports exported video streams for each dir.
- Added vid_streamutil.c capability to be able to stream video file (involving transcoding when video codec used in the file different to the video stream codec), also updated AVI player and ffmpeg codecs to be able to read and decode XVID/MPEG4 codec.
- Fixed bug wrong media type check in stream.c and vid_stream.c in creating stream info from SDP.
- Minor update: docs, logs, app samples makefiles.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3425 74dad513-b988-da41-8d7b-12977e46ad98
- Added video stream interface in vid_stream.h, the video stream will be able to handle different video formats in encoding and decoding direction.
- Renamed video device stream class identifiers from 'pjmedia_vid_stream*' to 'pjmedia_vid_dev_stream*' as 'pjmedia_vid_stream' is used by video stream interface.
- Added ffmpeg video capability to be able to parse SDP format param for H263 and also decide video format for encoding direction based on remote preference and local format-capability setting.
- Added some new APIs in jitter buffer for handling video stream: pjmedia_jbuf_put_frame3(), pjmedia_jbuf_get_frame3(), pjmedia_jbuf_peek_frame(), and pjmedia_jbuf_remove_frame().
- Moved pjmedia_stream_info_from_sdp() from session to stream
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3420 74dad513-b988-da41-8d7b-12977e46ad98
- Added API pjmedia_sdp_conn_cmp() to compare SDP connection.
- Added internal API pjmedia_stream_info_parse_fmtp() to parse SDP format parameter of specified payload as a helper function for generating stream info from SDP.
- Modified pjmedia_endpt_create_sdp() to be able to generate SDP media line for video.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3419 74dad513-b988-da41-8d7b-12977e46ad98
* Move the AVI playback from pjmedia-test to new aviplay.c sample application
* Take the input file from cmdline
* Synchronize audio and video
* Remove all codecs related hardcodes from the file
Re #1193: (no. 6: duplicate fps and frame_rate in pjmedia_format and pjmedia_vid_param)
* Remove the frame_rate in pjmedia_vid_param
* Use pjmedia_format's fps in videoport, sdl_dev, and colorbar_dev
* Prevent overflow in ptime calculation from frame_rate
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3401 74dad513-b988-da41-8d7b-12977e46ad98
* QT capture device for Mac
* iOS device for iOS (capture device only works for iOS 4.0 or above)
* Add NSAutoReleasePool for sdl_dev (Mac)
* Add NSAutoReleasePool for vid_dev_test (Mac)
* build system for compilation of Obj-C files (.m)
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/2.0-dev@3395 74dad513-b988-da41-8d7b-12977e46ad98
- Added run-time configuration for activating/deactivating stream keep-alive (non-codec-VAD mechanism), also added this config to account settings.
- Fixed bug wrong session info pointer "si" in pjsua_media_channel_update() when call audio index is not zero.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3313 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed bytes_per_frame calculation in stream port.
- Fixed sample streamutil.c to use codec info/param for codec bandwidth calculation (was using bytes_per_frame info of stream port).
- Doc fix for bytes_per_frame field in pjmedia_port_info.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3292 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 (back) raw jitter statistics into RTCP statistics, with the new name "rx_raw_jitter".
- Added IPDV statistics into RTCP statistics.
- Added new compile-time settings to enable/disable raw jitter and IPDV statistics.
- Updated call dump in pjsua-lib.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3239 74dad513-b988-da41-8d7b-12977e46ad98
- Updated RTCP jitter statistics calculation (in receiving direction) to use "interarrival jitter" (was using "difference D") of RFC 3550.
- Added APIs to reset RTCP statistics.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3237 74dad513-b988-da41-8d7b-12977e46ad98
- fixed unterminated negotiation if our media transport rejects incoming offer (e.g. due to mismatch SRTP transport) with 488.
- to fix the above, modified the SDP negotiator (sdp_neg.[hc])'s pjmedia_sdp_neg_cancel_offer() to also be able to cancel in remote offer state
- also fixed the bug introduced previous Session Timer fix (Re: #1047), which cause SDP negotiator's state to be cleared after failed UAC UPDATE transaction is terminated, which means UPDATE can only be sent 5 seconds after the last UPDATE if the last UPDATE failed.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3217 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
- Fixed process_answer() of SDP negotiation, when no common format in a media, instead of returning error, it should just deactivate the media (offer & answer) and continue negotiating next media.
- Generalized the way of deactivating media: set port to 0 and remove all attributes.
- Added new API pjmedia_sdp_media_clone_deactivate() to clone media and deactivate the newly cloned media.
- Updated PJMEDIA SDP negotiation test.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3198 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
- implemented progressive discard algorithm, discard rate is calculated from ratio of effective size to effective burst level.
- updated jbuf to clarify prefetch and burst level distinction, previously they are stored in same var, i.e: prefetch, while the semantic is actually different.
- updated STABLE_HISTORY_LIMIT in jbuf, it is now 20 (was 100), to adjust burst level faster.
- added test case of periodic-spike-burst-case in jbtest.dat for testing the new algorithm.
- updated stream to limit the rate of jbuf empty/lost log messages, it will only log first empty/lost event, then log again once jbuf returning normal frame (also counter of previous empty/lost frames).
- minor updates on jbuf.c: variable names, logs, added burst to jbuf state.
- minor updates on jbuf_test.c: handle comment in test session header, seq jump is now 20 (was 5000).
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3065 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
- increase default playback latency (PJMEDIA_SND_DEFAULT_PLAY_LATENCY) to 140ms for Win32 and 160ms for WM
- set default PJMEDIA_SOUND_BUFFER_COUNT to (PJMEDIA_SND_DEFAULT_PLAY_LATENCY+20)/20 rather than hardcoded 6
- disable PA from audiodev on Win32 and WM
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2977 74dad513-b988-da41-8d7b-12977e46ad98
- done
- added pj_ice_strans_state (to be used for informational purposes for now)
- added pjmedia ICE transport specific info, and display it in call dump output
- misc fixes (changed pjmedia_transport_info.spec_info_cnt from int to unsigned)
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2945 74dad513-b988-da41-8d7b-12977e46ad98
WSOLA improvements:
- Introduce fade-out and fade-in effect
- Limit the number of continuous synthetic samples (only take effect when fading is used)
- Export many settings as macros:
- PJMEDIA_WSOLA_DELAY_MSEC (was HANNING_PTIME)
- PJMEDIA_WSOLA_TEMPLATE_LENGTH_MSEC (was TEMPLATE_PTIME)
- PJMEDIA_WSOLA_MAX_EXPAND_MSEC
PLC:
- added compile time macro PJMEDIA_WSOLA_PLC_NO_FADING to disable fading (default enabled)
Stream:
- fixed bug when stream is not PLC-ing subsequent packet loss (only the first)
- also add maximum PLC limit just as precaution if PLC doesn't limit number of synthetic frames
- unrelated: fixed warning about unused send_keep_alive() function
Delaybuf:
- modified to NOT use fading in WSOLA since we don't expect it to generate many continuous synthetic frames
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2850 74dad513-b988-da41-8d7b-12977e46ad98
- This ticket allows the same loop media transport instance to be attached to more than one streams, and allow application to control which stream(s) receives the reflected packets.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2845 74dad513-b988-da41-8d7b-12977e46ad98
- Added support for Nokia VAS 2.0.
- Fixed wrong value assigned to last downstream state var in downstream callback.
- Minor fix in config_site_sample.h related to VAS Direct setting.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2833 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 new audio device VAS for Symbian platform.
- Updated symsndtest to use the latest audio device framework.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2821 74dad513-b988-da41-8d7b-12977e46ad98
- Added calls to delay buf destructor in conference.c and echo_common.c.
- Moved mutex creation to the end of pjmedia_delay_buf_create().
- Deprecated pjmedia_conf_add_passive_port().
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2728 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
- Updated loop condition in put_frame() to avoid possibility of infinite loop.
- Added JB capabilities to handle sequence restart & jump.
- Updated jitter calculation, e.g: reset max_hist_level after updating prefetch, avoid updating prefetch when burst level is exceeding max_burst.
- Updated shrinking method to be less agressive (only shrink JB when JB size is twice larger than burst level).
- Updated the way JB switching status from 'initializing' to 'processing' by waiting for some OP switch cycles.
- Few simplifications in framelist process, e.g: replacing fields 'empty' & 'tail' with 'size'.
- Minor updates: comments, shortened framelist field names, added some JB states for reporting/monitoring purpose.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2578 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
- pjmedia.h: re-added inclusion of <sound.h> since we have compat
layer now
- audiodev.h:
- added input_vol and output_vol in pjmedia_aud_param, and
implement it on WMME dev
- added pjmedia_aud_dev_cap_name() to see cap name
- added pjmedia_aud_param_set_cap() and pjmedia_aud_param_get_cap()
to set and get specific capability in param
- conference.h: exported PJMEDIA_CONF_BRIDGE_SIGNATURE and
PJMEDIA_CONF_SWITCH_SIGNATURE since these are needed by PJSUA-LIB
- WMME: bug due to addition of input_vol and output_vol in param:
volumes are set in flags in default_param(), but the
fields are not set. This would cause audio volume to be set to
zero for example.
- WMME: some refactoring, removed duplicate settings in param
- WMME: bug: setting set in set_cap() is not saved to param, so
get_param() will return wrong setting
- APS: update because of s/out_route/output_route/ in param
- APS: same bug as WMME due to addition of input_vol and output_vol in
param: flags are set in param but the fields are not
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/aps-direct@2492 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed bug in conf_switch.c to always update ts_rx (even if port is not transmitting).
- Minor updates: 'fmt_id' to 'id', added transmitter_Cnt in conf port info, explicit mapping in Symbian audio APS impl from pjmedia_format_id to Symbian APS fourcc.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/aps-direct@2460 74dad513-b988-da41-8d7b-12977e46ad98
- Updated conf switch to enable RX/TX level adjustment.
- Added VAD & PLC setting in passthrough codecs.
- Changed G711 fourcc codes.
- Updated bits-to-bytes calculations all over the places.
- Minor update: changed log level for dumping jbuf states in stream.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/aps-direct@2445 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
- Fixed symbian_sound_aps.cpp in filling silence, previously just by filling zeroes.
- Some fixes in ua.cpp: always reopen sound device (even if PCM is in use), make sure sound device closed before quit, release application pool.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/aps-direct@2439 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
- Fixed audio switch board to handle such case that transmitter of port 0 has greater ptime, so it could save the remaining data in the TX buffer.
- Fixed audio swtich board in handling FRAME_TYPE_NONE.
- Updated audio switch board to handle keep alive mechanism.
git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/aps-direct@2437 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
- Changed rem_rtp/rtcp_addr to src_rtp/rtcp_addr in media transport info
- Updated behaviour of media transport get info, when the transport hasn't receive any packet src_rtp/rtcp_addr will not be set.
- Fixed bug in pjsua_call_dump that rem_addr was unset.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2293 74dad513-b988-da41-8d7b-12977e46ad98
- Deprecate the automatic selection of algorithm
- Introduced various constants for tonegen backends
- Allow user to specify/override the algorithm by setting
- Fix the floating-point approximation backend
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2292 74dad513-b988-da41-8d7b-12977e46ad98
- Added new fields in media transport info: remote address originating RTP & RTCP.
- Updated transport UDP & ICE to fill above fields in getting transport info.
- Updated pjsua call dump, instead of showing remote RTP address from SDP, it will show address of RTP originator.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2291 74dad513-b988-da41-8d7b-12977e46ad98
- Introduced new API pjmedia_rtp_session_init2() to enable intializing RTP session with non-default initial settings
- Updated stream so it can be created with non-default initial RTP settings.
- Updated pjsua-lib to make sure RTP timestamp and sequence contigue when stream session is restarted.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2241 74dad513-b988-da41-8d7b-12977e46ad98
- Added "dec_fmtp" and "enc_fmtp" fields to pjmedia_codec_param.setting.
- Codec factory puts its default parameters in "dec_fmtp" field.
- pjmedia_stream_info_from_sdp() puts the "fmtp" attribute in SDP to pjmedia_codec_param.
- Special treatment for fmtp "bitrate" parameter (of G722.1) during SDP negotiation
- Added maxptime field in stream_info.
- Replaced iLBC's fmtp "mode" implementation to use general fmtp mechanism.
- Added some test scripts for G722.1 bitrate negotiation.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2236 74dad513-b988-da41-8d7b-12977e46ad98
- Added codec AMR-WB
- Updated AMR & AMRWB to utilize quality flag in the AMR payload header
- Updated callback interface (frm_attr_cb() -> predecode_cb())
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2219 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed bug of calculating clock interval which should include channel count
- Added L16 codecs including stereo
- Added WAV files for stereo tests
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2075 74dad513-b988-da41-8d7b-12977e46ad98
- ticket #546 implements RTCP SDES and CNAME
- re-enable periodic RTP TX which was disabled by #439
- fixed bug in RTCP TX interval
- changed PJMEDIA_CODEC_MAX_SILENCE_PERIOD value from ts to msec
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2020 74dad513-b988-da41-8d7b-12977e46ad98
- added more validation on pjmedia transport get info.
- added more validation on stop_media_session() of pjsua_media, useful when conference is not used.
- added new API for retrieving user_data of pjmedia session.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1998 74dad513-b988-da41-8d7b-12977e46ad98
- Added RTCP XR features on stream: configurable RTCP XR sending interval, third-party destination for RTCP XR, and sending last RTCP XR packet when stream destroyed.
- Updated end system delay of RTCP XR: sound device latency estimated based on sound device implementation.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1945 74dad513-b988-da41-8d7b-12977e46ad98
- Added RTCP XR print reports to streamutil.c
- Added new API pjmedia_stream_get_stat_xr()
- Added field rtcp_xr_enabled to stream info structure
- Swapped the wrong RTCP XR statistic storage (encoding direction should be stored in TX, decoding direction in RX, it was the opposite)
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1943 74dad513-b988-da41-8d7b-12977e46ad98