Ignore:
Timestamp:
Nov 23, 2006 10:19:46 AM (18 years ago)
Author:
bennylp
Message:

Updated Speex to their latest SVN (1.2-beta). AEC seems
to work much better now and take less CPU, so I increased
default tail length in PJSUA to 800ms.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia-codec/speex/speex_jitter.h

    r628 r823  
    3636#ifndef SPEEX_JITTER_H 
    3737#define SPEEX_JITTER_H 
     38/** @defgroup JitterBuffer JitterBuffer: Adaptive jitter buffer 
     39 *  This is the jitter buffer that reorders UDP/RTP packets and adjusts the buffer size 
     40 * to maintain good quality and low latency. 
     41 *  @{ 
     42 */ 
    3843 
    3944#include "speex.h" 
     
    4449#endif 
    4550 
     51/** Generic adaptive jitter buffer state */ 
    4652struct JitterBuffer_; 
    4753 
     54/** Generic adaptive jitter buffer state */ 
    4855typedef struct JitterBuffer_ JitterBuffer; 
    4956 
     57/** Definition of an incoming packet */ 
    5058typedef struct _JitterBufferPacket JitterBufferPacket; 
    5159 
     60/** Definition of an incoming packet */ 
    5261struct _JitterBufferPacket { 
    53    char        *data; 
    54    spx_uint32_t len; 
    55    spx_uint32_t timestamp; 
    56    spx_uint32_t span; 
     62   char        *data;       /**< Data bytes contained in the packet */ 
     63   spx_uint32_t len;        /**< Length of the packet in bytes */ 
     64   spx_uint32_t timestamp;  /**< Timestamp for the packet */ 
     65   spx_uint32_t span;       /**< Time covered by the packet (same units as timestamp) */ 
    5766}; 
    5867 
    59  
     68/** Packet has been retrieved */ 
    6069#define JITTER_BUFFER_OK 0 
     70/** Packet is missing */ 
    6171#define JITTER_BUFFER_MISSING 1 
     72/** Packet is incomplete (does not cover the entive tick */ 
    6273#define JITTER_BUFFER_INCOMPLETE 2 
     74/** There was an error in the jitter buffer */ 
    6375#define JITTER_BUFFER_INTERNAL_ERROR -1 
     76/** Invalid argument */ 
    6477#define JITTER_BUFFER_BAD_ARGUMENT -2 
    6578 
    66 /** Initialise jitter buffer */ 
     79/** Initialises jitter buffer  
     80 *  
     81 * @param tick Number of samples per "tick", i.e. the time period of the elements that will be retrieved 
     82 * @return Newly created jitter buffer state 
     83 */ 
    6784JitterBuffer *jitter_buffer_init(int tick); 
    6885 
    69 /** Reset jitter buffer */ 
     86/** Restores jitter buffer to its original state  
     87 *  
     88 * @param jitter Jitter buffer state 
     89 */ 
    7090void jitter_buffer_reset(JitterBuffer *jitter); 
    7191 
    72 /** Destroy jitter buffer */ 
     92/** Destroys jitter buffer  
     93 *  
     94 * @param jitter Jitter buffer state 
     95 */ 
    7396void jitter_buffer_destroy(JitterBuffer *jitter); 
    7497 
     
    85108void jitter_buffer_tick(JitterBuffer *jitter); 
    86109 
     110/* @} */ 
    87111 
    88 /** Speex jitter-buffer state. */ 
     112/** @defgroup SpeexJitter SpeexJitter: Adaptive jitter buffer specifically for Speex 
     113 *  This is the jitter buffer that reorders UDP/RTP packets and adjusts the buffer size 
     114 * to maintain good quality and low latency. This is a simplified version that works only 
     115 * with Speex, but is much easier to use. 
     116 *  @{ 
     117 */ 
     118 
     119/** Speex jitter-buffer state. Never use it directly! */ 
    89120typedef struct SpeexJitter { 
    90    SpeexBits current_packet;                                              /**< Current Speex packet                */ 
    91    int valid_bits;                                                        /**< True if Speex bits are valid        */ 
    92    JitterBuffer *packets; 
    93    void *dec;                                                             /**< Pointer to Speex decoder            */ 
    94    int frame_size;                                                        /**< Frame size of Speex decoder        */ 
     121   SpeexBits current_packet;         /**< Current Speex packet */ 
     122   int valid_bits;                   /**< True if Speex bits are valid */ 
     123   JitterBuffer *packets;            /**< Generic jitter buffer state */ 
     124   void *dec;                        /**< Pointer to Speex decoder */ 
     125   spx_int32_t frame_size;           /**< Frame size of Speex decoder */ 
    95126} SpeexJitter; 
    96127 
    97 /** Initialise jitter buffer */ 
     128/** Initialise jitter buffer  
     129 *  
     130 * @param jitter State of the Speex jitter buffer 
     131 * @param decoder Speex decoder to call 
     132 * @param sampling_rate Sampling rate used by the decoder 
     133*/ 
    98134void speex_jitter_init(SpeexJitter *jitter, void *decoder, int sampling_rate); 
    99135 
     
    114150#endif 
    115151 
    116  
     152/* @} */ 
    117153#endif 
Note: See TracChangeset for help on using the changeset viewer.