#include <OStreamAudioEncoder.hh>
Definition at line 37 of file OStreamAudioEncoder.hh.
Public Member Functions | |
| OStreamAudioEncoder (unsigned int io_buf_size, ostream_encoding_type encoding_type, int num_channels=2) | |
| Constructor. | |
| virtual | ~OStreamAudioEncoder () |
| const unsigned char * | encode_audio_frame (unsigned char *in_pcm_buffer, int in_pcm_buffer_size, int *out_size) |
| Ecode an audio frame. | |
Private Member Functions | |
| bool | encoder_initialize () |
| Initializing function for the encoder. | |
| AVStream * | create_audio_stream (AVFormatContext *io_fmt_context, int codec_id) |
| Use ffmpeg libraries to create an AVStream. | |
| bool | open_codec (AVStream *stream) |
| Open a codec, givin a stream. | |
| bool | init_pcm_buffer (int size) |
| Init an internal pcm data buffer. | |
| void | free_pcm_buffer () |
| Free the pcm buffer. | |
| int | read_pcm_buffer (unsigned char *buf, int buf_size) |
| Get data from the ring buffer-. | |
| void | write_pcm_buffer (const unsigned char *buf, int buf_size) |
| Write data to the buffer ring. | |
Private Attributes | |
| bool | _initialized |
| Specify whether the class is initialized or not. | |
| AVFormatContext * | _out_fmt_context |
| AVStream * | _audio_stream |
| AVOutputFormat * | _out_fmt |
| unsigned char * | _pcm_internal_buffer |
| A buffer reserved for PCM data. | |
| unsigned char * | _pcm_read_ptr |
| Ring buffer controls. | |
| unsigned char * | _pcm_write_ptr |
| unsigned char * | _pcm_end_ptr |
| unsigned char * | _internal_buffer |
| Buffer internal used to encode. | |
| int | _internal_buffer_size |
| Size of internal buffer used to encode. | |
| int | _encoding_type |
| Enum parameter that specify the encoding type. | |
| int | _frame_size |
| Frame size of the dest packet format. | |
| int | _encoded_frame_size |
| Size of the encoded frame. | |
| unsigned char * | _ready_to_encode_frame |
| The encoded bytes will be contained here. | |
| int | _num_channels |
| Number of channels use in the encoding. | |
| OStreamAudioEncoder::OStreamAudioEncoder | ( | unsigned int | io_buf_size, | |
| ostream_encoding_type | encoding_type, | |||
| int | num_channels = 2 | |||
| ) |
| io_buf_size,: | internal buffer size used to store encoded frames. This must be <= fMaxSize, or liveMedia libraries will crash. | |
| encoding_type | A wrapper enum to use OStream encoding parameters. | |
| num_channels | Number of channel to encode: 1- mono, 2- stereo. Defaults to 2. |
Definition at line 25 of file OStreamAudioEncoder.cpp.
References _initialized, _internal_buffer, _internal_buffer_size, _ready_to_encode_frame, DEBUG_PRINT, encoder_initialize(), and NULL.
Here is the call graph for this function:

| OStreamAudioEncoder::~OStreamAudioEncoder | ( | ) | [virtual] |
Definition at line 46 of file OStreamAudioEncoder.cpp.
References _internal_buffer, _out_fmt_context, _ready_to_encode_frame, and free_pcm_buffer().
Here is the call graph for this function:

| AVStream * OStreamAudioEncoder::create_audio_stream | ( | AVFormatContext * | io_fmt_context, | |
| int | codec_id | |||
| ) | [private] |
| io_fmt_context | Format context in a fmmpeg fashion. | |
| codec_id | CodecID in a ffmpeg fashion. |
Definition at line 88 of file OStreamAudioEncoder.cpp.
References _num_channels, DEBUG_PRINT, and NULL.
Referenced by encoder_initialize().
Here is the caller graph for this function:

| const unsigned char * OStreamAudioEncoder::encode_audio_frame | ( | unsigned char * | in_pcm_buffer, | |
| int | in_pcm_buffer_size, | |||
| int * | out_size | |||
| ) |
| in_pcm_buffer | PCM data buffer. | |
| in_pcm_buffer_size | PCM data buffer size. | |
| out_size | Encoded frame size will be written here. |
Definition at line 186 of file OStreamAudioEncoder.cpp.
References _audio_stream, _encoded_frame_size, _initialized, _internal_buffer, _internal_buffer_size, _ready_to_encode_frame, DEBUG_PRINT, NULL, read_pcm_buffer(), and write_pcm_buffer().
Referenced by MP3FromPCM::afterGettingFrame1().
Here is the call graph for this function:

Here is the caller graph for this function:

| bool OStreamAudioEncoder::encoder_initialize | ( | ) | [private] |
Definition at line 115 of file OStreamAudioEncoder.cpp.
References _audio_stream, _encoded_frame_size, _encoding_type, _frame_size, _num_channels, _out_fmt, _out_fmt_context, _ready_to_encode_frame, create_audio_stream(), DEBUG_PRINT, init_pcm_buffer(), MAX_AUDIO_PACKET_SIZE, NULL, open_codec(), and OSTREAM_ENCODING_MP3.
Referenced by OStreamAudioEncoder().
Here is the call graph for this function:

Here is the caller graph for this function:

| void OStreamAudioEncoder::free_pcm_buffer | ( | ) | [private] |
Definition at line 241 of file OStreamAudioEncoder.cpp.
References _pcm_internal_buffer, and NULL.
Referenced by ~OStreamAudioEncoder().
Here is the caller graph for this function:

| bool OStreamAudioEncoder::init_pcm_buffer | ( | int | size | ) | [private] |
| size | Size of the buffer. |
Definition at line 228 of file OStreamAudioEncoder.cpp.
References _pcm_end_ptr, _pcm_internal_buffer, _pcm_read_ptr, and _pcm_write_ptr.
Referenced by encoder_initialize().
Here is the caller graph for this function:

| bool OStreamAudioEncoder::open_codec | ( | AVStream * | stream | ) | [private] |
| stream | An already initialized stream. AVStream is an ffmpeg struct. |
Definition at line 65 of file OStreamAudioEncoder.cpp.
References DEBUG_PRINT.
Referenced by encoder_initialize().
Here is the caller graph for this function:

| int OStreamAudioEncoder::read_pcm_buffer | ( | unsigned char * | buf, | |
| int | buf_size | |||
| ) | [private] |
| buf | The buffer where to store the data. | |
| buf_size | Buffer size. |
Definition at line 247 of file OStreamAudioEncoder.cpp.
References _pcm_end_ptr, _pcm_internal_buffer, _pcm_read_ptr, and _pcm_write_ptr.
Referenced by encode_audio_frame().
Here is the caller graph for this function:

| void OStreamAudioEncoder::write_pcm_buffer | ( | const unsigned char * | buf, | |
| int | buf_size | |||
| ) | [private] |
| buf | The buffer to add. | |
| buf_size | Buffer size. |
Definition at line 275 of file OStreamAudioEncoder.cpp.
References _pcm_end_ptr, _pcm_internal_buffer, and _pcm_write_ptr.
Referenced by encode_audio_frame().
Here is the caller graph for this function:

AVStream* OStreamAudioEncoder::_audio_stream [private] |
Definition at line 120 of file OStreamAudioEncoder.hh.
Referenced by encode_audio_frame(), and encoder_initialize().
int OStreamAudioEncoder::_encoded_frame_size [private] |
It's _encoded_frame_size = _frame_size * 2 * _num_channels;
Definition at line 144 of file OStreamAudioEncoder.hh.
Referenced by encode_audio_frame(), and encoder_initialize().
int OStreamAudioEncoder::_encoding_type [private] |
int OStreamAudioEncoder::_frame_size [private] |
E.g. MP3 format.
Definition at line 141 of file OStreamAudioEncoder.hh.
Referenced by encoder_initialize().
bool OStreamAudioEncoder::_initialized [private] |
Definition at line 114 of file OStreamAudioEncoder.hh.
Referenced by encode_audio_frame(), and OStreamAudioEncoder().
unsigned char* OStreamAudioEncoder::_internal_buffer [private] |
Definition at line 132 of file OStreamAudioEncoder.hh.
Referenced by encode_audio_frame(), OStreamAudioEncoder(), and ~OStreamAudioEncoder().
int OStreamAudioEncoder::_internal_buffer_size [private] |
Definition at line 135 of file OStreamAudioEncoder.hh.
Referenced by encode_audio_frame(), and OStreamAudioEncoder().
int OStreamAudioEncoder::_num_channels [private] |
Definition at line 150 of file OStreamAudioEncoder.hh.
Referenced by create_audio_stream(), and encoder_initialize().
AVOutputFormat* OStreamAudioEncoder::_out_fmt [private] |
Definition at line 123 of file OStreamAudioEncoder.hh.
Referenced by encoder_initialize().
AVFormatContext* OStreamAudioEncoder::_out_fmt_context [private] |
Definition at line 117 of file OStreamAudioEncoder.hh.
Referenced by encoder_initialize(), and ~OStreamAudioEncoder().
unsigned char * OStreamAudioEncoder::_pcm_end_ptr [private] |
Definition at line 129 of file OStreamAudioEncoder.hh.
Referenced by init_pcm_buffer(), read_pcm_buffer(), and write_pcm_buffer().
unsigned char* OStreamAudioEncoder::_pcm_internal_buffer [private] |
Will be a ring buffer.
Definition at line 126 of file OStreamAudioEncoder.hh.
Referenced by free_pcm_buffer(), init_pcm_buffer(), read_pcm_buffer(), and write_pcm_buffer().
unsigned char* OStreamAudioEncoder::_pcm_read_ptr [private] |
Definition at line 129 of file OStreamAudioEncoder.hh.
Referenced by init_pcm_buffer(), and read_pcm_buffer().
unsigned char * OStreamAudioEncoder::_pcm_write_ptr [private] |
Definition at line 129 of file OStreamAudioEncoder.hh.
Referenced by init_pcm_buffer(), read_pcm_buffer(), and write_pcm_buffer().
unsigned char* OStreamAudioEncoder::_ready_to_encode_frame [private] |
Definition at line 147 of file OStreamAudioEncoder.hh.
Referenced by encode_audio_frame(), encoder_initialize(), OStreamAudioEncoder(), and ~OStreamAudioEncoder().
1.4.7