pjsip logo pjsip.org
Open source SIP stack and media stack for presence, im/instant messaging, and multimedia communication

HOME

SIP/media Features
High Performance SIP
Small Footprint SIP
Symbian Port

FAQ

Documentation

Licensing

Download

Development (Trac)

Projects using pjsip

Mailing List

Open Source Links


About: PJLIB, PJLIB-UTIL, PJSIP, and PJMEDIA are created by: Benny Prijono
<bennylp@pjsip.org>


 

Home --> Documentations --> PJMEDIA Reference

Memory/Buffer-based Playback Port
[Media Ports Framework]


Detailed Description

A memory/buffer based playback port is used to play media from a fixed size buffer. This is useful over WAV File Player for situation where filesystems are not available in the target system.


Enumerations

enum  pjmedia_mem_player_option { PJMEDIA_MEM_NO_LOOP = 1 }

Functions

pj_status_t pjmedia_mem_player_create (pj_pool_t *pool, const void *buffer, pj_size_t size, unsigned clock_rate, unsigned channel_count, unsigned samples_per_frame, unsigned bits_per_sample, unsigned options, pjmedia_port **p_port)
pj_status_t pjmedia_mem_player_set_eof_cb (pjmedia_port *port, void *user_data, pj_status_t(*cb)(pjmedia_port *port, void *usr_data))


Enumeration Type Documentation

Memory player options.

Enumerator:
PJMEDIA_MEM_NO_LOOP  Tell the memory player to return NULL frame when the whole buffer has been played instead of rewinding the buffer back to start position.


Function Documentation

pj_status_t pjmedia_mem_player_create ( pj_pool_t pool,
const void *  buffer,
pj_size_t  size,
unsigned  clock_rate,
unsigned  channel_count,
unsigned  samples_per_frame,
unsigned  bits_per_sample,
unsigned  options,
pjmedia_port **  p_port 
)

Create the buffer based playback to play the media from the specified buffer.

Parameters:
pool Pool to allocate memory for the port structure.
buffer The buffer to play the media from, which should be available throughout the life time of the port. The player plays the media directly from this buffer (i.e. no copying is done).
size The size of the buffer, in bytes.
clock_rate Sampling rate.
channel_count Number of channels.
samples_per_frame Number of samples per frame.
bits_per_sample Number of bits per sample.
options Option flags, see pjmedia_mem_player_option
p_port Pointer to receive the port instance.
Returns:
PJ_SUCCESS on success, or the appropriate error code.

pj_status_t pjmedia_mem_player_set_eof_cb ( pjmedia_port port,
void *  user_data,
pj_status_t(*)(pjmedia_port *port, void *usr_data)  cb 
)

Register a callback to be called when the buffer reading has reached the end of buffer. If the player is set to play repeatedly, then the callback will be called multiple times. Note that only one callback can be registered for each player port.

Parameters:
port The memory player port.
user_data User data to be specified in the callback
cb Callback to be called. If the callback returns non- PJ_SUCCESS, the playback will stop. Note that if application destroys the player port in the callback, it must return non-PJ_SUCCESS here.
Returns:
PJ_SUCCESS on success.

 


PJMEDIA small footprint Open Source media stack
Copyright (C) 2006-2008 Teluu Inc.