Changes between Version 22 and Version 23 of ReleaseNotes-2.0


Ignore:
Timestamp:
May 22, 2012 10:58:21 AM (10 years ago)
Author:
nanang
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ReleaseNotes-2.0

    v22 v23  
    7575Major changes are listed below. There also various header file changes, especially in PJMEDIA. 
    7676 
    77 === PJSUA API (pjsua.h) === 
    78  
    79 See also [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA-LIB documentation]. 
     77=== PJSUA === 
    8078 
    8179==== Design change ==== 
    82  - support for multiple medias. pjsua_call struct refactored. 
     80Support for multiple medias, internal PJSUA call & media structures and algorithms have been refactored. 
    8381 
    84 ==== Removed API ==== 
    85  - PJ_DECL(pjmedia_session*) pjsua_call_get_media_session(pjsua_call_id call_id); 
    86  - PJ_DECL(pjmedia_transport*) pjsua_call_get_media_transport(pjsua_call_id cid); 
     82==== pjsua_call_info ==== 
     83 - '''Changed''': As now call can have multiple media streams, e.g: M audio streams and N video streams, {{{pjsua_call_info}}} also has array of media info. Check the call info documentation [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/structpjsua__call__info.htm here] for details. 
    8784 
    88 ==== API change ==== 
    89  - "session" parameter in {{{on_stream_created()}}} and {{{on_stream_destroyed()}}} callbacks has been replaced by "stream" 
     85==== SRTP optional mode with duplicated media ==== 
    9086 
    91 ==== New API ==== 
     87 - '''Deprecated''': {{{pjsua_acc_config::srtp_optional_dup_offer}}} and {{{pjsua_config::srtp_optional_dup_offer}}}, these settings have been deprecated and will be ignored (if it is set). 
    9288 
    93  - [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/group__PJSUA__LIB__VIDEO.htm Video API] 
     89==== Media transport ==== 
     90 - '''Removed''': {{{pjsua_media_transports_create}}} and {{{pjsua_media_transports_attach}}}, due to dynamic media transport creation (see #539). 
     91 - '''Removed''': {{{pjsua_call_get_media_transport()}}}. 
     92 - '''New''': [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/group__PJSUA__LIB__CALL.htm#ga9907c1c75b6de2a6a634fd9cd2c68126 pjsua_call_get_med_transport_info()]. 
     93 
     94==== Media session ==== 
     95 - '''Removed''': {{{pjsua_call_get_media_session()}}}. 
     96 - '''Changed''': "session" parameter in [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/structpjsua__callback.htm#a645a9ee0fb5965de9d545e0d2cf97722 on_stream_created()] and [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/structpjsua__callback.htm#ae3070f612547073a3e27825dd1229435 on_stream_destroyed()] callbacks has been replaced by "stream". 
     97 
     98==== New PJSUA APIs for video ==== 
     99 - '''New''':  
     100   [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/structpjsua__call__setting.htm pjsua_call_setting]. 
     101 - '''New''': 
     102   [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/group__PJSUA__LIB__VIDEO.htm PJSUA-API Video], 
     103 - '''New''': PJSUA call APIs for video stream manipulation such as  
     104   [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/group__PJSUA__LIB__CALL.htm#gaaccd78b3c46f20c396ccd7833f2a0672 pjsua_call_set_vid_strm()], 
     105   [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/group__PJSUA__LIB__CALL.htm#ga23c0bd5a335b5fa0d02404cd03ca0d5e pjsua_call_vid_stream_is_running()], 
     106   [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/group__PJSUA__LIB__CALL.htm#ga75f489659c931707e953024cc1a5b7c5 pjsua_call_get_vid_stream_idx()] 
     107 
     108 See also [http://www.pjsip.org/docs/latest-2/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA-LIB documentation]. 
     109 
     110 
     111=== Media Format === 
     112Containing all information needed to completely describe a media. 
     113 - '''Changed''': [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/structpjmedia__format.htm pjmedia_format] — it is now virtually able to describe any media types (in 1.x it was containing extended info for audio format). Here are the core contents: 
     114   - Format ID — Specifies the audio sample or video pixel format. Enumeration of some well known formats IDs is defined in [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__FORMAT.htm#ga7a0830cb291693cabb364a3403777bda pjmedia_format_id]. 
     115   - Media type — The top-most type of the media, as an information. 
     116   - Format detail — Detail section to describe the media. As the details are different among media types, this field is declared as union and [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__FORMAT.htm#ga3272e8f9dc6d369dc9fe5dcb67408fc5 pjmedia_format_detail_type] is introduced to recognize the content. Currently there are two predefined structures: 
     117     - [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/structpjmedia__audio__format__detail.htm pjmedia_audio_format_detail] for audio format detail 
     118     - [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/structpjmedia__video__format__detail.htm pjmedia_video_format_detail] for video format detail. 
     119 
     120 - '''New''': Video format helper: 
     121   - [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/structpjmedia__video__format__info.htm pjmedia_video_format_info] — Information to describe a raw video format, such as RGB/YUV color model, number of bits per pixel, planar/packed data representation, and pointer to function to get ''real-time'' information of a raw video format (such as buffer size needed for a picture, byte size of a picture line, pointer and buffer size of each plane). 
     122   - [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/structpjmedia__video__apply__fmt__param.htm pjmedia_video_apply_fmt_param] — Information to apply a raw video format against size and buffer information, and get additional information from it. To do that, application fills up the input fields of this structure, and give this structure to {{{apply_fmt()}}} function of {{{pjmedia_video_format_info}}} structure. 
     123 
     124Check the media format documentation [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__FORMAT.htm here] for details. 
     125 
     126 
     127=== New video components in PJMEDIA === 
     128 
     129 - '''New''':  
     130   [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__FILE__PLAY.htm AVI file player], 
     131   [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__VID__CODEC.htm Video codec], 
     132   [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__video__device__api.htm Video device], 
     133   [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMED__VID__STRM.htm Video stream], 
     134   [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__VID__TEE.htm Video tee/source duplicator]. 
     135 
     136 See also [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/index.htm PJMEDIA documentation]. 
     137 
     138 
     139=== Missing samples_per_frame === 
     140 
     141 - '''Removed''': {{{samples_per_frame}}}, which was used in many PJMEDIA components and functions. Generally, application can now use {{{PJMEDIA_AFD_SAMPLES_PER_FRAME(audio-format-detail)}}} to get the same result. 
     142 
     143 
     144=== Port info === 
     145 
     146 - '''Changed''': All fields in the port info that desribe the media format have been removed and replaced by {{{pjmedia_format}}}. Check the port info documentation [http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/structpjmedia__port__info.htm here] for details. 
     147 
     148 
     149=== put_frame() callback of pjmedia_port === 
     150 
     151 - '''Changed''': Removed const qualifier from the frame argument, this is to accomodate ''in-place'' media processing by PJMEDIA port. 
     152 - Sample warnings in building application after upgrading from 1.x to 2.0: 
     153{{{ 
     154../src/pjmedia/bidirectional.c: In function ‘put_frame’: 
     155../src/pjmedia/bidirectional.c:39: warning: passing argument 2 of ‘pjmedia_port_put_frame’ discards qualifiers from pointer target type 
     156../include/pjmedia/port.h:334: note: expected ‘struct pjmedia_frame *’ but argument is of type ‘const struct pjmedia_frame *’ 
     157../src/pjmedia/bidirectional.c:70: warning: assignment from incompatible pointer type 
     158}}} 
     159 
     160 
     161=== Missing pjmedia_session === 
     162 
     163 - '''Removed''': {{{pjmedia_session}}}. Now media streams must be managed directly by application. 
     164 
    94165 
    95166=== Configure script === 
     
    108179}}} 
    109180 
    110 === General Data Structure === 
    111  
    112 See the article on [wiki:RelNotes-2.0_GDS General Data Structure for PJSIP 2.0] 
    113181 
    114182== Misc ==