#include "libmpeg3.h"#include "mpeg3io.h"#include "mpeg3protos.h"#include "workarounds.h"#include <errno.h>#include <math.h>#include <stdlib.h>#include <string.h>

Go to the source code of this file.
| #define ABS | ( | x | ) | ((x) >= 0 ? (x) : -(x)) |
Definition at line 11 of file mpeg3demux.c.
| static int get_adaptation_field | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 81 of file mpeg3demux.c.
References mpeg3_demuxer_t::adaptation_fields, mpeg3_demuxer_t::dump, packet_read_char(), packet_read_int16(), packet_read_int32(), packet_skip(), and mpeg3_demuxer_t::time.
Referenced by read_transport().

| static int get_current_cell | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 1516 of file mpeg3demux.c.
References mpeg3_title_t::cell_table, mpeg3_title_t::cell_table_size, mpeg3_demuxer_t::current_program, mpeg3_demuxer_t::current_title, mpeg3_cell_t::program, mpeg3_demuxer_t::program_byte, mpeg3_cell_t::program_end, mpeg3_cell_t::program_start, mpeg3_demuxer_t::reverse, mpeg3_demuxer_t::title_cell, mpeg3_demuxer_t::titles, and mpeg3_demuxer_t::total_titles.
Referenced by mpeg3_seek_phys().
| static int get_pack_header | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 657 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_title_t::fs, get_timestamp(), mpeg3io_next_char(), mpeg3io_read_char(), mpeg3io_read_int16(), mpeg3io_read_int24(), mpeg3io_read_int32(), mpeg3io_seek_relative(), mpeg3_demuxer_t::time, and mpeg3_demuxer_t::titles.
Referenced by mpeg3demux_read_program().

| static int get_payload | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 421 of file mpeg3demux.c.
References mpeg3_demuxer_t::audio_pid, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::do_audio, mpeg3_demuxer_t::do_video, mpeg3_demuxer_t::dump, mpeg3_title_t::fs, get_pes_packet(), get_program_association_table(), get_transport_payload(), mpeg3_demuxer_t::got_audio, mpeg3_demuxer_t::got_video, MPEG3_PACKET_START_CODE_PREFIX, mpeg3io_tell, packet_next_int24(), packet_skip(), mpeg3_demuxer_t::payload_unit_start_indicator, mpeg3_demuxer_t::pid, mpeg3_demuxer_t::raw_offset, mpeg3_demuxer_t::raw_size, mpeg3_demuxer_t::read_all, mpeg3_demuxer_t::titles, and mpeg3_demuxer_t::video_pid.
Referenced by read_transport().

| static int get_pes_packet | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 377 of file mpeg3demux.c.
References mpeg3_demuxer_t::dump, fprintf, get_transport_pes_packet(), MPEG3_PADDING_STREAM, MPEG3_PRIVATE_STREAM_2, packet_read_char(), packet_read_int16(), packet_read_int24(), packet_skip(), mpeg3_demuxer_t::pes_packets, mpeg3_demuxer_t::raw_offset, mpeg3_demuxer_t::raw_size, and mpeg3_demuxer_t::stream_id.
Referenced by get_payload().

| static int get_pes_packet_header | ( | mpeg3_demuxer_t * | demuxer, | |
| unsigned int * | pts, | |||
| unsigned int * | dts | |||
| ) | [static] |
Definition at line 201 of file mpeg3demux.c.
References mpeg3_demuxer_t::dump, packet_read_char(), packet_read_int16(), packet_skip(), and mpeg3_demuxer_t::time.
Referenced by get_transport_pes_packet().

| static int get_program_association_table | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 129 of file mpeg3demux.c.
References mpeg3_demuxer_t::dump, packet_read_char(), packet_read_int16(), packet_skip(), mpeg3_demuxer_t::program_association_tables, mpeg3_demuxer_t::raw_offset, mpeg3_demuxer_t::raw_size, mpeg3_demuxer_t::section_length, mpeg3_demuxer_t::table_id, and mpeg3_demuxer_t::transport_stream_id.
Referenced by get_payload().

| static int get_program_payload | ( | mpeg3_demuxer_t * | demuxer, | |
| int | bytes, | |||
| int | is_audio, | |||
| int | is_video | |||
| ) | [static] |
Definition at line 703 of file mpeg3demux.c.
References mpeg3_demuxer_t::audio_buffer, mpeg3_demuxer_t::audio_size, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_size, mpeg3_title_t::fs, mpeg3io_read_data(), mpeg3_demuxer_t::read_all, mpeg3_demuxer_t::titles, mpeg3_demuxer_t::video_buffer, and mpeg3_demuxer_t::video_size.
Referenced by get_program_pes_packet().

| static int get_program_pes_packet | ( | mpeg3_demuxer_t * | demuxer, | |
| unsigned int | header | |||
| ) | [static] |
Definition at line 1042 of file mpeg3demux.c.
References mpeg3_demuxer_t::aformat, mpeg3_demuxer_t::astream, mpeg3_demuxer_t::astream_table, AUDIO_AC3, AUDIO_MPEG, AUDIO_PCM, mpeg3_demuxer_t::audio_size, mpeg3_demuxer_t::audio_start, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::custom_id, mpeg3_demuxer_t::data_size, mpeg3_demuxer_t::data_start, mpeg3_demuxer_t::do_audio, mpeg3_demuxer_t::do_video, mpeg3_demuxer_t::dump, mpeg3_demuxer_t::file, mpeg3_title_t::fs, get_program_payload(), get_timestamp(), mpeg3_demuxer_t::got_audio, mpeg3_demuxer_t::got_video, handle_pcm(), handle_scrambling(), handle_subtitle(), mpeg3_demuxer_t::last_packet_decryption, mpeg3_demuxer_t::last_packet_start, MPEG3_PADDING_STREAM, MPEG3_PRIVATE_STREAM_2, mpeg3io_next_char(), mpeg3io_read_char(), mpeg3io_read_int16(), mpeg3io_read_int32(), mpeg3io_seek_relative(), mpeg3io_tell, new_subtitle(), mpeg3_demuxer_t::pes_audio_time, mpeg3_demuxer_t::pes_video_time, mpeg3_demuxer_t::program_byte, mpeg3_demuxer_t::read_all, mpeg3_demuxer_t::stream_id, mpeg3_demuxer_t::titles, mpeg3_demuxer_t::video_size, mpeg3_demuxer_t::video_start, mpeg3_demuxer_t::vstream, and mpeg3_demuxer_t::vstream_table.
Referenced by mpeg3demux_read_program().

| static int get_system_header | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 635 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_title_t::fs, mpeg3io_read_int16(), mpeg3io_seek_relative(), and mpeg3_demuxer_t::titles.
Referenced by mpeg3demux_read_program().

| static unsigned int get_timestamp | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 643 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_title_t::fs, mpeg3io_read_char(), mpeg3io_read_int16(), timestamp, and mpeg3_demuxer_t::titles.

| static int get_transport_payload | ( | mpeg3_demuxer_t * | demuxer, | |
| int | is_audio, | |||
| int | is_video | |||
| ) | [static] |
Definition at line 146 of file mpeg3demux.c.
References mpeg3_demuxer_t::audio_buffer, mpeg3_demuxer_t::audio_size, bytes, mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_size, fprintf, memcpy, mpeg3_demuxer_t::raw_data, mpeg3_demuxer_t::raw_offset, mpeg3_demuxer_t::raw_size, mpeg3_demuxer_t::read_all, mpeg3_demuxer_t::video_buffer, and mpeg3_demuxer_t::video_size.
Referenced by get_payload(), and get_transport_pes_packet().
| static int get_transport_pes_packet | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 270 of file mpeg3demux.c.
References mpeg3_demuxer_t::astream, mpeg3_demuxer_t::astream_table, AUDIO_AC3, AUDIO_MPEG, mpeg3_demuxer_t::audio_pid, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::custom_id, mpeg3_demuxer_t::do_audio, mpeg3_demuxer_t::do_video, mpeg3_demuxer_t::dump, mpeg3_title_t::fs, get_pes_packet_header(), get_transport_payload(), mpeg3_demuxer_t::got_audio, mpeg3_demuxer_t::got_video, mpeg3io_tell, packet_skip(), mpeg3_demuxer_t::pes_audio_time, mpeg3_demuxer_t::pes_video_time, mpeg3_demuxer_t::pid, mpeg3_demuxer_t::raw_offset, mpeg3_demuxer_t::raw_size, mpeg3_demuxer_t::read_all, mpeg3_demuxer_t::stream_id, mpeg3_demuxer_t::titles, mpeg3_demuxer_t::video_pid, mpeg3_demuxer_t::vstream, and mpeg3_demuxer_t::vstream_table.
Referenced by get_pes_packet().

| static int get_unknown_data | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 257 of file mpeg3demux.c.
References bytes, mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_size, memcpy, mpeg3_demuxer_t::raw_data, mpeg3_demuxer_t::raw_offset, and mpeg3_demuxer_t::raw_size.
| static int handle_pcm | ( | mpeg3_demuxer_t * | demuxer, | |
| int | bytes | |||
| ) | [static] |
Definition at line 950 of file mpeg3demux.c.
References mpeg3_demuxer_t::audio_buffer, mpeg3_demuxer_t::audio_size, mpeg3_demuxer_t::audio_start, bits, mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_size, mpeg3_demuxer_t::data_start, output, PCM_HEADERSIZE, and mpeg3_demuxer_t::read_all.
Referenced by get_program_pes_packet().
| static int handle_scrambling | ( | mpeg3_demuxer_t * | demuxer, | |
| int | decryption_offset | |||
| ) | [static] |
Definition at line 742 of file mpeg3demux.c.
References mpeg3_demuxer_t::audio_buffer, mpeg3_demuxer_t::audio_size, mpeg3_fs_t::css, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_size, fprintf, mpeg3_title_t::fs, mpeg3_demuxer_t::last_packet_start, mpeg3_decrypt_packet(), mpeg3io_seek_relative(), mpeg3io_tell, mpeg3_demuxer_t::titles, mpeg3_demuxer_t::video_buffer, and mpeg3_demuxer_t::video_size.
Referenced by get_program_pes_packet().

| static void handle_subtitle | ( | mpeg3_t * | file, | |
| mpeg3_demuxer_t * | demuxer, | |||
| mpeg3_subtitle_t * | subtitle, | |||
| int | bytes | |||
| ) | [static] |
Definition at line 866 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_subtitle_t::data, mpeg3_subtitle_t::done, mpeg3_title_t::fs, mpeg3_demuxer_t::got_subtitle, mpeg3_subtitle_t::id, memcpy, mpeg3_append_subtitle(), mpeg3_create_strack(), mpeg3io_read_data(), packet_size, remove_subtitle_ptr(), mpeg3_subtitle_t::size, and mpeg3_demuxer_t::titles.
Referenced by get_program_pes_packet(), and mpeg3_do_toc().

| int64_t mpeg3_absolute_to_program | ( | mpeg3_demuxer_t * | demuxer, | |
| int64_t | byte | |||
| ) |
Definition at line 2372 of file mpeg3demux.c.
References mpeg3_title_t::cell_table, mpeg3_demuxer_t::current_title, mpeg3_cell_t::program_start, mpeg3_title_t::start_byte, mpeg3_demuxer_t::title_cell, mpeg3_cell_t::title_start, and mpeg3_demuxer_t::titles.
Referenced by mpeg3demux_read_program().
| int mpeg3_delete_demuxer | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2162 of file mpeg3demux.c.
References mpeg3_demuxer_t::audio_buffer, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::data_buffer, mpeg3_title_t::fs, mpeg3_delete_subtitle(), mpeg3_delete_title(), mpeg3io_close_file(), mpeg3_demuxer_t::raw_data, mpeg3_demuxer_t::subtitles, mpeg3_demuxer_t::titles, mpeg3_demuxer_t::total_subtitles, mpeg3_demuxer_t::total_titles, and mpeg3_demuxer_t::video_buffer.
Referenced by mpeg3_delete(), mpeg3_delete_atrack(), mpeg3_delete_vtrack(), and mpeg3_generate_toc().

| int mpeg3_finished_subtitles | ( | mpeg3_demuxer_t * | demuxer, | |
| int | id | |||
| ) |
Definition at line 2266 of file mpeg3demux.c.
References mpeg3_subtitle_t::done, mpeg3_subtitle_t::id, mpeg3_demuxer_t::subtitles, and mpeg3_demuxer_t::total_subtitles.
| mpeg3_demuxer_t* mpeg3_get_demuxer | ( | mpeg3_t * | file | ) |
Definition at line 2416 of file mpeg3demux.c.
References mpeg3_t::atrack, mpeg3_vtrack_t::demuxer, mpeg3_atrack_t::demuxer, mpeg3_t::is_program_stream, mpeg3_t::is_transport_stream, mpeg3_t::total_astreams, mpeg3_t::total_vstreams, and mpeg3_t::vtrack.
Referenced by mpeg3_open_copy().
| mpeg3_demuxer_t* mpeg3_new_demuxer | ( | mpeg3_t * | file, | |
| int | do_audio, | |||
| int | do_video, | |||
| int | custom_id | |||
| ) |
Definition at line 2127 of file mpeg3demux.c.
References mpeg3_demuxer_t::astream, mpeg3_demuxer_t::audio_allocated, mpeg3_demuxer_t::audio_buffer, mpeg3_demuxer_t::audio_pid, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::data_allocated, mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::do_audio, mpeg3_demuxer_t::do_video, mpeg3_demuxer_t::file, MPEG3_RAW_SIZE, mpeg3_demuxer_t::pes_audio_time, mpeg3_demuxer_t::pes_video_time, mpeg3_demuxer_t::raw_data, mpeg3_demuxer_t::stream_end, mpeg3_demuxer_t::video_allocated, mpeg3_demuxer_t::video_buffer, mpeg3_demuxer_t::video_pid, and mpeg3_demuxer_t::vstream.
Referenced by mpeg3_generate_toc(), mpeg3_new(), mpeg3_new_atrack(), and mpeg3_new_vtrack().
| int mpeg3_read_next_packet | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 1711 of file mpeg3demux.c.
References mpeg3_demuxer_t::audio_buffer, mpeg3_demuxer_t::audio_size, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_position, mpeg3_demuxer_t::data_size, mpeg3_demuxer_t::do_audio, mpeg3_demuxer_t::do_video, mpeg3_demuxer_t::file, mpeg3_title_t::fs, mpeg3_t::is_audio_stream, mpeg3_t::is_program_stream, mpeg3_t::is_transport_stream, mpeg3_t::is_video_stream, MPEG3_PACK_START_CODE, mpeg3_seek_phys(), mpeg3demux_read_program(), mpeg3io_read_data(), next_code(), mpeg3_t::packet_size, mpeg3_demuxer_t::program_byte, mpeg3_demuxer_t::read_all, read_transport(), mpeg3_demuxer_t::reverse, mpeg3_demuxer_t::titles, mpeg3_demuxer_t::video_buffer, and mpeg3_demuxer_t::video_size.
Referenced by get_ifo_header(), mpeg3_create_title(), mpeg3_do_toc(), mpeg3demux_goto_pts(), mpeg3demux_read_char_packet(), mpeg3demux_read_data(), and mpeg3demux_scan_pts().

| int mpeg3_read_prev_packet | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 1861 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_position, mpeg3_demuxer_t::data_size, mpeg3_demuxer_t::do_audio, mpeg3_demuxer_t::do_video, mpeg3_demuxer_t::file, mpeg3_title_t::fs, mpeg3_t::is_program_stream, mpeg3_t::is_transport_stream, MPEG3_PACK_START_CODE, mpeg3_seek_phys(), mpeg3demux_read_program(), mpeg3io_read_data(), mpeg3io_seek(), mpeg3io_tell, mpeg3_t::packet_size, prev_code(), mpeg3_demuxer_t::program_byte, read_transport(), mpeg3_demuxer_t::reverse, and mpeg3_demuxer_t::titles.
Referenced by mpeg3demux_goto_pts(), mpeg3demux_read_data(), and mpeg3demux_read_prev_char_packet().

| int mpeg3_seek_phys | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 1595 of file mpeg3demux.c.
References mpeg3_title_t::cell_table, mpeg3_demuxer_t::current_program, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::do_audio, mpeg3_demuxer_t::do_video, mpeg3_title_t::fs, get_current_cell(), mpeg3demux_open_title(), mpeg3io_seek(), mpeg3_cell_t::program, mpeg3_demuxer_t::program_byte, mpeg3_cell_t::program_end, mpeg3_cell_t::program_start, mpeg3_demuxer_t::read_all, mpeg3_demuxer_t::reverse, mpeg3_demuxer_t::stream_end, mpeg3_demuxer_t::title_cell, mpeg3_cell_t::title_start, mpeg3_demuxer_t::titles, and mpeg3_demuxer_t::total_titles.
Referenced by main(), mpeg3_read_next_packet(), mpeg3_read_prev_packet(), mpeg3demux_seek_byte(), next_code(), and prev_code().

| void mpeg3demux_append_data | ( | mpeg3_demuxer_t * | demuxer, | |
| unsigned char * | data, | |||
| int | bytes | |||
| ) |
Definition at line 2427 of file mpeg3demux.c.
References mpeg3_demuxer_t::data_allocated, mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_size, and memcpy.
Referenced by handle_audio(), and handle_video().
| double mpeg3demux_audio_pts | ( | mpeg3_demuxer_t * | demuxer | ) |
| int mpeg3demux_bof | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2214 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_title_t::fs, mpeg3io_bof, and mpeg3_demuxer_t::titles.
Referenced by mpeg3video_prev_code().
| int mpeg3demux_copy_titles | ( | mpeg3_demuxer_t * | dst, | |
| mpeg3_demuxer_t * | src | |||
| ) |
Definition at line 2095 of file mpeg3demux.c.
References mpeg3_demuxer_t::astream_table, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::file, mpeg3_title_t::fs, mpeg3_copy_title(), MPEG3_MAX_STREAMS, mpeg3_new_title(), mpeg3demux_open_title(), mpeg3_fs_t::path, mpeg3_demuxer_t::title_cell, mpeg3_demuxer_t::titles, mpeg3_demuxer_t::total_programs, mpeg3_demuxer_t::total_titles, and mpeg3_demuxer_t::vstream_table.
Referenced by mpeg3_new_atrack(), mpeg3_new_vtrack(), and mpeg3_open_copy().

| int mpeg3demux_eof | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2190 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::data_position, mpeg3_demuxer_t::data_size, mpeg3_demuxer_t::file, mpeg3_title_t::fs, mpeg3io_eof, mpeg3_demuxer_t::program_byte, mpeg3_t::seekable, mpeg3_demuxer_t::stream_end, mpeg3_demuxer_t::titles, and mpeg3_demuxer_t::total_titles.
Referenced by get_ifo_header(), mpeg3_end_of_audio(), mpeg3_end_of_video(), mpeg3audio_decode_audio(), mpeg3bits_refill(), mpeg3bits_refill_backwards(), mpeg3video_previous_frame(), mpeg3video_seek(), and read_header().
| double mpeg3demux_get_time | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2285 of file mpeg3demux.c.
References mpeg3_demuxer_t::time.
Referenced by mpeg3_get_time().
| int mpeg3demux_goto_pts | ( | mpeg3_demuxer_t * | demuxer, | |
| double | pts | |||
| ) |
Definition at line 2330 of file mpeg3demux.c.
References MPEG3_PTS_RANGE, mpeg3_read_next_packet(), mpeg3_read_prev_packet(), mpeg3demux_reset_pts(), mpeg3demux_tell_byte(), and mpeg3_demuxer_t::pes_audio_time.

| int64_t mpeg3demux_movie_size | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2388 of file mpeg3demux.c.
References mpeg3_title_t::cell_table, mpeg3_title_t::cell_table_size, mpeg3_demuxer_t::current_program, mpeg3_cell_t::program, mpeg3_cell_t::program_end, mpeg3_cell_t::program_start, mpeg3_demuxer_t::titles, mpeg3_demuxer_t::total_bytes, and mpeg3_demuxer_t::total_titles.
Referenced by get_length(), main(), mpeg3_get_bytes(), mpeg3_start_toc(), mpeg3video_new(), and seek().
| int mpeg3demux_open_title | ( | mpeg3_demuxer_t * | demuxer, | |
| int | title_number | |||
| ) |
Definition at line 2060 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::error_flag, fprintf, mpeg3_title_t::fs, mpeg3io_close_file(), mpeg3io_open_file(), mpeg3_fs_t::path, and mpeg3_demuxer_t::titles.
Referenced by get_ifo_header(), mpeg3_create_title(), mpeg3_read_toc(), mpeg3_seek_phys(), mpeg3_start_toc(), mpeg3bits_open_title(), mpeg3demux_copy_titles(), and read_titles().

| unsigned char mpeg3demux_read_char_packet | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2025 of file mpeg3demux.c.
References mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_position, mpeg3_demuxer_t::data_size, mpeg3_demuxer_t::error_flag, mpeg3_read_next_packet(), and mpeg3_demuxer_t::next_char.
Referenced by mpeg3demux_read_char().

| int mpeg3demux_read_data | ( | mpeg3_demuxer_t * | demuxer, | |
| unsigned char * | output, | |||
| int | size | |||
| ) |
Definition at line 1972 of file mpeg3demux.c.
References mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_position, mpeg3_demuxer_t::data_size, mpeg3_demuxer_t::error_flag, memcpy, mpeg3_read_next_packet(), and mpeg3_read_prev_packet().
Referenced by calculate_format(), mpeg3audio_read_raw(), mpeg3bits_read_buffer(), read_frame(), and read_header().

| unsigned char mpeg3demux_read_prev_char_packet | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2041 of file mpeg3demux.c.
References mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_position, mpeg3_demuxer_t::data_size, mpeg3_demuxer_t::error_flag, mpeg3_read_prev_packet(), and mpeg3_demuxer_t::next_char.
Referenced by mpeg3demux_read_prev_char().

| int mpeg3demux_read_program | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 1398 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::custom_id, mpeg3_demuxer_t::file, mpeg3_title_t::fs, get_pack_header(), get_program_pes_packet(), get_system_header(), mpeg3_demuxer_t::got_audio, mpeg3_demuxer_t::got_subtitle, mpeg3_demuxer_t::got_video, header, mpeg3_demuxer_t::last_packet_end, mpeg3_demuxer_t::last_packet_start, mpeg3_absolute_to_program(), MPEG3_PACK_START_CODE, MPEG3_PACKET_START_CODE_PREFIX, MPEG3_SYSTEM_START_CODE, mpeg3io_eof, mpeg3io_read_int32(), mpeg3io_seek_relative(), mpeg3io_tell, mpeg3_demuxer_t::program_byte, mpeg3_title_t::start_byte, mpeg3_demuxer_t::stream_id, and mpeg3_demuxer_t::titles.
Referenced by main(), mpeg3_read_next_packet(), and mpeg3_read_prev_packet().

| void mpeg3demux_reset_pts | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2300 of file mpeg3demux.c.
References mpeg3_demuxer_t::pes_audio_time, and mpeg3_demuxer_t::pes_video_time.
Referenced by mpeg3demux_goto_pts(), mpeg3demux_scan_pts(), mpeg3video_seek(), and seek().
| double mpeg3demux_scan_pts | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2306 of file mpeg3demux.c.
References mpeg3_demuxer_t::do_audio, mpeg3_demuxer_t::do_video, MPEG3_PTS_RANGE, mpeg3_read_next_packet(), mpeg3demux_reset_pts(), mpeg3demux_seek_byte(), mpeg3demux_tell_byte(), mpeg3_demuxer_t::pes_audio_time, and mpeg3_demuxer_t::pes_video_time.

| int mpeg3demux_seek_byte | ( | mpeg3_demuxer_t * | demuxer, | |
| int64_t | byte | |||
| ) |
Definition at line 2236 of file mpeg3demux.c.
References mpeg3_demuxer_t::data_position, mpeg3_demuxer_t::data_size, mpeg3_demuxer_t::file, mpeg3_t::is_transport_stream, mpeg3_seek_phys(), mpeg3_t::packet_size, and mpeg3_demuxer_t::program_byte.
Referenced by get_ifo_header(), main(), mpeg3_start_toc(), mpeg3bits_seek_byte(), mpeg3demux_scan_pts(), mpeg3video_new(), mpeg3video_seek(), rewind_audio(), and seek().

| void mpeg3demux_shift_data | ( | mpeg3_demuxer_t * | demuxer, | |
| int | bytes | |||
| ) |
Definition at line 2445 of file mpeg3demux.c.
References mpeg3_demuxer_t::data_buffer, mpeg3_demuxer_t::data_position, and mpeg3_demuxer_t::data_size.
Referenced by handle_video(), and read_frame().
| void mpeg3demux_start_forward | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2230 of file mpeg3demux.c.
References mpeg3_demuxer_t::reverse.
Referenced by mpeg3video_new(), mpeg3video_previous_frame(), and mpeg3video_seek().
| void mpeg3demux_start_reverse | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2225 of file mpeg3demux.c.
References mpeg3_demuxer_t::reverse.
Referenced by mpeg3video_new(), mpeg3video_previous_frame(), and mpeg3video_seek().
| int64_t mpeg3demux_tell_byte | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2359 of file mpeg3demux.c.
References mpeg3_demuxer_t::program_byte.
Referenced by get_ifo_header(), handle_audio(), handle_video(), main(), mpeg3_do_toc(), mpeg3_get_time(), mpeg3_tell_byte(), mpeg3bits_tell(), mpeg3demux_goto_pts(), mpeg3demux_scan_pts(), mpeg3video_previous_frame(), and mpeg3video_seek().
| int mpeg3demux_tell_program | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2364 of file mpeg3demux.c.
References mpeg3_title_t::cell_table, mpeg3_title_t::cell_table_size, mpeg3_demuxer_t::current_title, mpeg3_cell_t::program, mpeg3_demuxer_t::title_cell, and mpeg3_demuxer_t::titles.
Referenced by mpeg3_do_toc().
| double mpeg3demux_video_pts | ( | mpeg3_demuxer_t * | demuxer | ) |
| int64_t mpeg3demuxer_title_bytes | ( | mpeg3_demuxer_t * | demuxer | ) |
Definition at line 2410 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::titles, and mpeg3_title_t::total_bytes.
| static mpeg3_subtitle_t* new_subtitle | ( | mpeg3_demuxer_t * | demuxer, | |
| int | id, | |||
| int64_t | offset | |||
| ) | [static] |
Definition at line 814 of file mpeg3demux.c.
References mpeg3_subtitle_t::done, mpeg3_subtitle_t::id, MPEG3_MAX_SUBTITLES, mpeg3_subtitle_t::offset, remove_subtitle(), mpeg3_demuxer_t::subtitles, and mpeg3_demuxer_t::total_subtitles.
Referenced by get_program_pes_packet().

| static int next_code | ( | mpeg3_demuxer_t * | demuxer, | |
| uint32_t | code | |||
| ) | [static] |
Definition at line 1681 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, error(), mpeg3_title_t::fs, mpeg3_seek_phys(), mpeg3io_read_char(), mpeg3_demuxer_t::program_byte, and mpeg3_demuxer_t::titles.
Referenced by mpeg3_read_next_packet().

| static unsigned char packet_next_char | ( | mpeg3_demuxer_t * | demuxer | ) | [inline, static] |
Definition at line 14 of file mpeg3demux.c.
References mpeg3_demuxer_t::raw_data, and mpeg3_demuxer_t::raw_offset.
| static unsigned int packet_next_int24 | ( | mpeg3_demuxer_t * | demuxer | ) | [inline, static] |
Definition at line 39 of file mpeg3demux.c.
References a, b, c, mpeg3_demuxer_t::raw_data, and mpeg3_demuxer_t::raw_offset.
Referenced by get_payload().
| static unsigned char packet_read_char | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 21 of file mpeg3demux.c.
References mpeg3_demuxer_t::raw_data, and mpeg3_demuxer_t::raw_offset.
Referenced by get_adaptation_field(), get_pes_packet(), get_pes_packet_header(), get_program_association_table(), and read_transport().
| static unsigned int packet_read_int16 | ( | mpeg3_demuxer_t * | demuxer | ) | [inline, static] |
Definition at line 28 of file mpeg3demux.c.
References a, b, mpeg3_demuxer_t::raw_data, and mpeg3_demuxer_t::raw_offset.
Referenced by get_adaptation_field(), get_pes_packet(), get_pes_packet_header(), and get_program_association_table().
| static unsigned int packet_read_int24 | ( | mpeg3_demuxer_t * | demuxer | ) | [inline, static] |
Definition at line 51 of file mpeg3demux.c.
References a, b, c, mpeg3_demuxer_t::raw_data, and mpeg3_demuxer_t::raw_offset.
Referenced by get_pes_packet(), and read_transport().
| static unsigned int packet_read_int32 | ( | mpeg3_demuxer_t * | demuxer | ) | [inline, static] |
Definition at line 63 of file mpeg3demux.c.
References a, b, c, mpeg3_demuxer_t::raw_data, and mpeg3_demuxer_t::raw_offset.
Referenced by get_adaptation_field().
| static unsigned int packet_skip | ( | mpeg3_demuxer_t * | demuxer, | |
| int | length | |||
| ) | [inline, static] |
Definition at line 75 of file mpeg3demux.c.
References mpeg3_demuxer_t::raw_offset.
Referenced by get_adaptation_field(), get_payload(), get_pes_packet(), get_pes_packet_header(), get_program_association_table(), and get_transport_pes_packet().
| static int prev_code | ( | mpeg3_demuxer_t * | demuxer, | |
| uint32_t | code | |||
| ) | [static] |
Definition at line 1833 of file mpeg3demux.c.
References mpeg3_demuxer_t::current_title, error(), mpeg3_title_t::fs, LL, mpeg3_seek_phys(), mpeg3io_read_char(), mpeg3io_seek(), mpeg3_demuxer_t::program_byte, mpeg3_title_t::start_byte, and mpeg3_demuxer_t::titles.
Referenced by mpeg3_read_prev_packet().

| static int read_transport | ( | mpeg3_demuxer_t * | demuxer | ) | [static] |
Definition at line 479 of file mpeg3demux.c.
References mpeg3_demuxer_t::adaptation_field_control, bits, mpeg3_demuxer_t::continuity_counter, mpeg3_demuxer_t::continuity_counters, mpeg3_demuxer_t::current_title, mpeg3_demuxer_t::custom_id, mpeg3_demuxer_t::dump, mpeg3_demuxer_t::file, get_adaptation_field(), get_payload(), mpeg3_demuxer_t::got_audio, mpeg3_demuxer_t::got_video, mpeg3_t::is_bd, mpeg3_demuxer_t::is_padding, MPEG3_PIDMAX, MPEG3_SYNC_BYTE, mpeg3io_eof, mpeg3io_read_char(), mpeg3io_read_data(), mpeg3io_read_int32(), mpeg3io_tell, packet_read_char(), packet_read_int24(), mpeg3_t::packet_size, mpeg3_demuxer_t::payload_unit_start_indicator, mpeg3_demuxer_t::pid, mpeg3_demuxer_t::pid_table, mpeg3_demuxer_t::program_byte, mpeg3_demuxer_t::raw_data, mpeg3_demuxer_t::raw_offset, mpeg3_demuxer_t::raw_size, mpeg3_demuxer_t::stream_id, mpeg3_demuxer_t::titles, mpeg3_demuxer_t::total_pids, mpeg3_demuxer_t::transport_error_indicator, and mpeg3_demuxer_t::transport_scrambling_control.
Referenced by mpeg3_read_next_packet(), and mpeg3_read_prev_packet().

| static void remove_subtitle | ( | mpeg3_demuxer_t * | demuxer, | |
| int | number | |||
| ) | [static] |
Definition at line 783 of file mpeg3demux.c.
References mpeg3_delete_subtitle(), mpeg3_demuxer_t::subtitles, and mpeg3_demuxer_t::total_subtitles.
Referenced by new_subtitle().

| static void remove_subtitle_ptr | ( | mpeg3_demuxer_t * | demuxer, | |
| mpeg3_subtitle_t * | ptr | |||
| ) | [static] |
Definition at line 794 of file mpeg3demux.c.
References mpeg3_demuxer_t::subtitles, and mpeg3_demuxer_t::total_subtitles.
Referenced by handle_subtitle().
1.5.5