#include "mpeg3private.h"#include "mpeg3protos.h"#include <math.h>#include <stdlib.h>

Go to the source code of this file.
Functions | |
| static void | toc_error () |
| static int | rewind_audio (mpeg3audio_t *audio) |
| static int | read_header (mpeg3audio_t *audio) |
| static int | delete_struct (mpeg3audio_t *audio) |
| static int | read_frame (mpeg3audio_t *audio, int render) |
| static int | get_length (mpeg3audio_t *audio) |
| int | calculate_format (mpeg3_t *file, mpeg3_atrack_t *track) |
| mpeg3audio_t * | mpeg3audio_new (mpeg3_t *file, mpeg3_atrack_t *track, int format) |
| static int | seek (mpeg3audio_t *audio) |
| int | mpeg3audio_delete (mpeg3audio_t *audio) |
| int | mpeg3audio_seek_byte (mpeg3audio_t *audio, int64_t byte) |
| int | mpeg3audio_seek_sample (mpeg3audio_t *audio, long sample) |
| int | mpeg3audio_read_raw (mpeg3audio_t *audio, unsigned char *output, long *size, long max_size) |
| void | mpeg3_shift_audio (mpeg3audio_t *audio, int diff) |
| int | mpeg3audio_decode_audio (mpeg3audio_t *audio, float *output_f, short *output_i, int channel, int len) |
Variables | |
| static pthread_mutex_t * | decode_lock = 0 |
| int calculate_format | ( | mpeg3_t * | file, | |
| mpeg3_atrack_t * | track | |||
| ) |
Definition at line 410 of file mpeg3audio.c.
References AUDIO_AC3, AUDIO_MPEG, AUDIO_UNKNOWN, mpeg3_atrack_t::demuxer, mpeg3_atrack_t::format, header, mpeg3_ac3_check(), and mpeg3demux_read_data().
Referenced by mpeg3audio_decode_audio(), and mpeg3audio_new().

| static int delete_struct | ( | mpeg3audio_t * | audio | ) | [static] |
Definition at line 186 of file mpeg3audio.c.
References mpeg3audio_t::ac3_decoder, mpeg3_atrack_t::channels, mpeg3audio_t::layer_decoder, mpeg3_delete_ac3(), mpeg3_delete_layer(), mpeg3_delete_pcm(), mpeg3audio_t::output, mpeg3audio_t::pcm_decoder, and mpeg3audio_t::track.
Referenced by mpeg3audio_delete(), and mpeg3audio_new().

| static int get_length | ( | mpeg3audio_t * | audio | ) | [static] |
Definition at line 346 of file mpeg3audio.c.
References mpeg3_atrack_t::demuxer, error(), mpeg3audio_t::file, mpeg3audio_t::framesize, mpeg3_t::is_audio_stream, mpeg3demux_movie_size(), mpeg3audio_t::output_size, read_frame(), rewind_audio(), mpeg3_atrack_t::sample_offsets, samples, mpeg3_atrack_t::total_samples, and mpeg3audio_t::track.
Referenced by mpeg3audio_new().

| void mpeg3_shift_audio | ( | mpeg3audio_t * | audio, | |
| int | diff | |||
| ) |
Definition at line 775 of file mpeg3audio.c.
References mpeg3_atrack_t::channels, mpeg3audio_t::output, mpeg3audio_t::output_position, mpeg3audio_t::output_size, and mpeg3audio_t::track.
Referenced by mpeg3_update_index(), and mpeg3audio_decode_audio().
| int mpeg3audio_decode_audio | ( | mpeg3audio_t * | audio, | |
| float * | output_f, | |||
| short * | output_i, | |||
| int | channel, | |||
| int | len | |||
| ) |
Definition at line 794 of file mpeg3audio.c.
References mpeg3audio_t::ac3_decoder, AUDIO_AC3, AUDIO_MPEG, AUDIO_PCM, AUDIO_UNKNOWN, calculate_format(), mpeg3_atrack_t::channels, mpeg3_atrack_t::current_position, mpeg3_demuxer_t::data_size, mpeg3_atrack_t::demuxer, mpeg3audio_t::file, mpeg3_atrack_t::format, mpeg3audio_t::layer_decoder, MAXFRAMESAMPLES, memcpy, MPEG3_AUDIO_HISTORY, MPEG3_AUDIO_STREAM_SIZE, mpeg3_new_ac3(), mpeg3_new_layer(), mpeg3_new_pcm(), mpeg3_shift_audio(), mpeg3demux_eof(), mpeg3audio_t::output, mpeg3audio_t::output_allocated, mpeg3audio_t::output_position, mpeg3audio_t::output_size, mpeg3audio_t::pcm_decoder, read_frame(), samples, seek(), mpeg3_t::seekable, and mpeg3audio_t::track.
Referenced by handle_audio(), and mpeg3_read_audio().

| int mpeg3audio_delete | ( | mpeg3audio_t * | audio | ) |
Definition at line 664 of file mpeg3audio.c.
References delete_struct().
Referenced by mpeg3_delete_atrack().

| mpeg3audio_t* mpeg3audio_new | ( | mpeg3_t * | file, | |
| mpeg3_atrack_t * | track, | |||
| int | format | |||
| ) |
Definition at line 440 of file mpeg3audio.c.
References mpeg3audio_t::ac3_decoder, AUDIO_AC3, AUDIO_MPEG, AUDIO_PCM, mpeg3audio_t::byte_seek, calculate_format(), mpeg3_atrack_t::channels, decode_lock, delete_struct(), mpeg3audio_t::file, mpeg3_atrack_t::format, get_length(), mpeg3audio_t::layer_decoder, mpeg3_new_ac3(), mpeg3_new_layer(), mpeg3_new_pcm(), mpeg3audio_t::output, mpeg3audio_t::output_allocated, mpeg3audio_t::pcm_decoder, read_header(), rewind_audio(), mpeg3audio_t::sample_seek, mpeg3_t::seekable, mpeg3_atrack_t::total_samples, and mpeg3audio_t::track.
Referenced by mpeg3_new_atrack().

| int mpeg3audio_read_raw | ( | mpeg3audio_t * | audio, | |
| unsigned char * | output, | |||
| long * | size, | |||
| long | max_size | |||
| ) |
Definition at line 687 of file mpeg3audio.c.
References AUDIO_AC3, AUDIO_MPEG, AUDIO_PCM, mpeg3_atrack_t::demuxer, mpeg3_atrack_t::format, mpeg3audio_t::framesize, mpeg3demux_read_data(), read_header(), and mpeg3audio_t::track.
Referenced by mpeg3_read_audio_chunk().

| int mpeg3audio_seek_byte | ( | mpeg3audio_t * | audio, | |
| int64_t | byte | |||
| ) |
Definition at line 670 of file mpeg3audio.c.
References mpeg3audio_t::byte_seek.
Referenced by mpeg3_seek_byte().
| int mpeg3audio_seek_sample | ( | mpeg3audio_t * | audio, | |
| long | sample | |||
| ) |
Definition at line 676 of file mpeg3audio.c.
References mpeg3audio_t::sample_seek, and mpeg3audio_t::track.
Referenced by mpeg3_set_sample().
| static int read_frame | ( | mpeg3audio_t * | audio, | |
| int | render | |||
| ) | [static] |
Definition at line 208 of file mpeg3audio.c.
References mpeg3audio_t::ac3_decoder, AUDIO_AC3, AUDIO_MPEG, AUDIO_PCM, mpeg3_atrack_t::channels, mpeg3_demuxer_t::data_position, decode_lock, mpeg3_atrack_t::demuxer, mpeg3audio_t::file, mpeg3_atrack_t::format, mpeg3audio_t::framesize, mpeg3_layer_t::layer, mpeg3audio_t::layer_decoder, memcpy, mpeg3audio_doac3(), mpeg3audio_dolayer2(), mpeg3audio_dolayer3(), mpeg3audio_dopcm(), mpeg3demux_read_data(), mpeg3demux_shift_data(), mpeg3audio_t::output, mpeg3audio_t::output_allocated, mpeg3audio_t::output_size, mpeg3audio_t::packet_buffer, mpeg3audio_t::packet_position, mpeg3audio_t::pcm_decoder, read_header(), samples, mpeg3_t::seekable, and mpeg3audio_t::track.
Referenced by get_length(), and mpeg3audio_decode_audio().

| static int read_header | ( | mpeg3audio_t * | audio | ) | [static] |
Definition at line 33 of file mpeg3audio.c.
References mpeg3audio_t::ac3_decoder, AUDIO_AC3, AUDIO_MPEG, AUDIO_PCM, mpeg3_pcm_t::channels, mpeg3_layer_t::channels, mpeg3_atrack_t::channels, mpeg3_ac3_t::channels, mpeg3_atrack_t::demuxer, mpeg3_atrack_t::format, mpeg3_pcm_t::framesize, mpeg3_layer_t::framesize, mpeg3_ac3_t::framesize, mpeg3audio_t::framesize, mpeg3_layer_t::layer, mpeg3audio_t::layer_decoder, mpeg3_ac3_header(), mpeg3_layer_header(), mpeg3_pcm_header(), mpeg3demux_eof(), mpeg3demux_read_char(), mpeg3demux_read_data(), mpeg3audio_t::packet_buffer, mpeg3audio_t::packet_position, mpeg3audio_t::pcm_decoder, PCM_HEADERSIZE, mpeg3_atrack_t::sample_rate, mpeg3_pcm_t::samplerate, mpeg3_layer_t::samplerate, mpeg3_ac3_t::samplerate, and mpeg3audio_t::track.
Referenced by decode_frame(), mjpegb_decode_frame(), mpeg3audio_new(), mpeg3audio_read_raw(), and read_frame().

| static int rewind_audio | ( | mpeg3audio_t * | audio | ) | [static] |
Definition at line 22 of file mpeg3audio.c.
References mpeg3_atrack_t::demuxer, mpeg3demux_seek_byte(), mpeg3_atrack_t::sample_offsets, and mpeg3audio_t::track.
Referenced by get_length(), and mpeg3audio_new().

| static int seek | ( | mpeg3audio_t * | audio | ) | [static] |
Definition at line 537 of file mpeg3audio.c.
References AUDIO_MPEG, mpeg3audio_t::byte_seek, mpeg3_atrack_t::demuxer, mpeg3audio_t::file, mpeg3_atrack_t::format, mpeg3_t::is_audio_stream, mpeg3audio_t::layer_decoder, MPEG3_AUDIO_CHUNKSIZE, mpeg3_layer_reset(), mpeg3demux_movie_size(), mpeg3demux_reset_pts(), mpeg3demux_seek_byte(), mpeg3audio_t::output_position, mpeg3audio_t::output_size, mpeg3_atrack_t::sample_offsets, mpeg3audio_t::sample_seek, mpeg3_t::seekable, toc_error(), mpeg3_atrack_t::total_sample_offsets, mpeg3_atrack_t::total_samples, and mpeg3audio_t::track.
Referenced by mpeg3audio_decode_audio().

| static void toc_error | ( | ) | [static] |
pthread_mutex_t* decode_lock = 0 [static] |
1.5.5