Version 2 (modified by bennylp, 13 years ago) (diff)


PJSIP Version 2.0 Release Notes

Table of Contents

  1. New Features
    1. Video
    2. On Demand Media Transport
  2. Changes
    1. Configure script
    2. Header Files
    3. General Data Structure

This document explains the new features, changes, and porting guide in/for PJSIP version 2.0.

New Features


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)
  2. Supported codecs:
    • H.263 (with ffmpeg)
  3. video device port to provide timing for video devices (analogous to sound device port)
  4. media format conversion framework (converter.h) supporting multiple backend APIs:
    • ffmpeg's libswscale backend API implementation
  5. video codec framework (vid_codec.h) supporting multiple backend APIs:
    • ffmpeg's libavcodec backend API implementation
  6. AVI file splitter/reader component (aviplayer.h)

On Demand Media Transport



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

<pjmedia/types.h> is split into <pjmedia/format.h>, <pjmedia/frame.h>, and <pjmedia/types.h>

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 <pjmedia.h> to get all the header files.

General Data Structure


Huge changes..

Missing samples_per_frame


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