{{{ #!html
}}} = PJSIP Version 2.0 Release Notes = '''Table of Contents''' [[PageOutline(2-3,,inline)]] This document explains the new features, changes, and porting guide in/for PJSIP version 2.0. [[BR]] == New Features == === Video === Assorted features: 1. Supported video devices: - renderer: - Simple Direct Media Layer (SDL) (Win32, Mac OS X, Linux, etc.) - capture: - !QuickTime (MacOS X) - iOS (iOS) - Video4Linux4 (Linux) - !DirectShow (Win32) - ffmpeg capture (unfinished) - Color bar (all platforms) 1. Supported codecs: - H.263 (with ffmpeg) 1. video device port to provide timing for video devices (analogous to sound device port) 1. media format conversion framework (converter.h) supporting multiple backend APIs: - ffmpeg's libswscale backend API implementation 1. video codec framework (vid_codec.h) supporting multiple backend APIs: - ffmpeg's libavcodec backend API implementation 1. AVI file splitter/reader component (aviplayer.h) === On Demand Media Transport === TBD. [[BR]] == Changes == === Configure script === New options: {{{ .. --disable-sdl Disable SDL (default: not disabled) --disable-ffmpeg Disable ffmpeg (default: not disabled) --disable-v4l2 Disable Video4Linux2 (default: not disabled) .. }}} New output: {{{ .. checking SDL availability..... 1.2.14 checking for avdevice_version in -lavdevice... yes checking for av_register_all in -lavformat... yes checking for avcodec_init in -lavcodec... yes checking for sws_scale in -lswscale... yes checking for av_malloc in -lavutil... yes checking for avcore_version in -lavcore... no checking for v4l2_open in -lv4l2... yes .. }}} === Header Files === ==== is split into , , and ==== Symptom: You may encounter compilation warnings/errors such as: {{{ ../include/pjmedia/circbuf.h:293: warning: implicit declaration of function ‘pjmedia_copy_samples’ ../include/pjmedia/circbuf.h:409: warning: implicit declaration of function ‘pjmedia_move_samples’ ../src/pjmedia/delaybuf.c:349: warning: implicit declaration of function ‘pjmedia_zero_samples’ }}} Solution: Update your #include section accordingly, adding the new headers above. Alternatively, just include {{{}}} to get all the header files. === General Data Structure === ==== format ==== Huge changes.. ==== Missing samples_per_frame ==== Use PJMEDIA_AFD_SAMPLES_PER_FRAME(afd) ==== Port info ==== Uses format now.. ==== put_frame() callback of pjmedia_port ==== Removed const qualifier from the frame argument. Sample warnings: {{{ ../src/pjmedia/bidirectional.c: In function ‘put_frame’: ../src/pjmedia/bidirectional.c:39: warning: passing argument 2 of ‘pjmedia_port_put_frame’ discards qualifiers from pointer target type ../include/pjmedia/port.h:334: note: expected ‘struct pjmedia_frame *’ but argument is of type ‘const struct pjmedia_frame *’ ../src/pjmedia/bidirectional.c:70: warning: assignment from incompatible pointer type }}} {{{ #!html
}}}