#include "../libmpeg3.h"#include "../mpeg3private.h"#include "../mpeg3protos.h"#include "mpeg3video.h"#include "mpeg3videoprotos.h"#include <pthread.h>#include <stdlib.h>

Go to the source code of this file.
| static long gop_to_frame | ( | mpeg3video_t * | video, | |
| mpeg3_timecode_t * | gop_timecode | |||
| ) | [static] |
Definition at line 353 of file mpeg3video.c.
References mpeg3_timecode_t::frame, mpeg3video_t::frame_rate, mpeg3_timecode_t::hour, mpeg3_timecode_t::minute, and mpeg3_timecode_t::second.
Referenced by mpeg3video_new().
| mpeg3video_t* mpeg3video_allocate_struct | ( | mpeg3_t * | file, | |
| mpeg3_vtrack_t * | track | |||
| ) |
Definition at line 209 of file mpeg3video.c.
References mpeg3video_t::byte_seek, mpeg3_vtrack_t::demuxer, mpeg3video_t::file, mpeg3video_t::frame_seek, mpeg3video_t::framenum, mpeg3video_t::last_number, mpeg3bits_new_stream(), mpeg3video_init_output(), mpeg3video_init_scantables(), mpeg3video_t::slice_lock, mpeg3video_t::test_lock, mpeg3video_t::track, and mpeg3video_t::vstream.
Referenced by mpeg3video_new().

| int mpeg3video_colormodel | ( | mpeg3video_t * | video | ) |
Definition at line 823 of file mpeg3video.c.
References CHROMA420, CHROMA422, mpeg3video_t::chroma_format, MPEG3_YUV420P, and MPEG3_YUV422P.
Referenced by mpeg3_colormodel().
| int mpeg3video_delete | ( | mpeg3video_t * | video | ) |
Definition at line 521 of file mpeg3video.c.
References mpeg3video_t::decoder_initted, mpeg3video_delete_struct(), and mpeg3video_deletedecoder().
Referenced by mpeg3_delete_vtrack(), and mpeg3video_new().

| int mpeg3video_delete_struct | ( | mpeg3video_t * | video | ) |
Definition at line 237 of file mpeg3video.c.
References mpeg3_delete_slice_buffer(), mpeg3_delete_slice_decoder(), mpeg3bits_delete_stream(), mpeg3video_t::slice_buffers, mpeg3video_t::slice_buffers_initialized, mpeg3video_t::slice_decoders, mpeg3video_t::slice_lock, mpeg3video_t::test_lock, mpeg3video_t::total_slice_decoders, mpeg3video_t::vstream, mpeg3video_t::x_table, and mpeg3video_t::y_table.
Referenced by mpeg3video_delete().

| int mpeg3video_deletedecoder | ( | mpeg3video_t * | video | ) |
Definition at line 176 of file mpeg3video.c.
References mpeg3video_t::cb_to_b, mpeg3video_t::cb_to_g, mpeg3video_t::cr_to_g, mpeg3video_t::cr_to_r, mpeg3video_t::llframe0, mpeg3video_t::subtitle_frame, and mpeg3video_t::yuv_buffer.
Referenced by mpeg3video_delete().
| void mpeg3video_dump | ( | mpeg3video_t * | video | ) |
Definition at line 839 of file mpeg3video.c.
References mpeg3video_t::field_sequence, mpeg3video_t::pict_struct, mpeg3video_t::pict_type, mpeg3video_t::prog_frame, mpeg3video_t::prog_seq, and mpeg3video_t::repeatfirst.
| int mpeg3video_get_firstframe | ( | mpeg3video_t * | video | ) |
Definition at line 345 of file mpeg3video.c.
References mpeg3video_t::current_repeat, mpeg3video_read_frame_backend(), and mpeg3video_t::repeat_count.
Referenced by mpeg3video_new(), and mpeg3video_seek().

| int* mpeg3video_get_scaletable | ( | int | input_w, | |
| int | output_w | |||
| ) |
| void mpeg3video_init_scantables | ( | mpeg3video_t * | video | ) |
Definition at line 201 of file mpeg3video.c.
References mpeg3_alternate_scan_nommx, mpeg3video_t::mpeg3_alternate_scan_table, mpeg3_zig_zag_scan_nommx, and mpeg3video_t::mpeg3_zigzag_scan_table.
Referenced by mpeg3video_allocate_struct(), and mpeg3video_set_mmx().
| int mpeg3video_initdecoder | ( | mpeg3video_t * | video | ) |
Definition at line 72 of file mpeg3video.c.
References mpeg3video_t::auxframe, mpeg3video_t::blk_cnt, mpeg3video_t::cb_to_b, mpeg3video_t::cb_to_b_ptr, mpeg3video_t::cb_to_g, mpeg3video_t::cb_to_g_ptr, mpeg3video_t::chrom_height, mpeg3video_t::chrom_width, CHROMA420, CHROMA444, mpeg3video_t::chroma_format, mpeg3video_t::coded_picture_height, mpeg3video_t::coded_picture_width, mpeg3video_t::cr_to_g, mpeg3video_t::cr_to_g_ptr, mpeg3video_t::cr_to_r, mpeg3video_t::cr_to_r_ptr, FRAME_PICTURE, mpeg3video_t::frame_pred_dct, mpeg3video_t::horizontal_size, mpeg3video_t::llframe0, mpeg3video_t::llframe1, mpeg3video_t::llh, mpeg3video_t::llw, mpeg3video_t::matrix_coefficients, mpeg3video_t::mb_height, mpeg3video_t::mb_width, mpeg3video_t::mpeg2, mpeg3video_t::newframe, mpeg3video_t::oldrefframe, mpeg3video_t::pict_struct, mpeg3video_t::prog_frame, mpeg3video_t::prog_seq, mpeg3video_t::refframe, SC_SPAT, mpeg3video_t::scalable_mode, mpeg3video_t::vertical_size, and mpeg3video_t::yuv_buffer.
Referenced by mpeg3video_new().
| mpeg3video_t* mpeg3video_new | ( | mpeg3_t * | file, | |
| mpeg3_vtrack_t * | track | |||
| ) |
Definition at line 382 of file mpeg3video.c.
References mpeg3video_t::decoder_initted, mpeg3_bits_t::demuxer, mpeg3video_t::first_frame, mpeg3_timecode_t::frame, mpeg3_vtrack_t::frame_offsets, mpeg3video_t::frame_rate, mpeg3_vtrack_t::frame_rate, mpeg3video_t::frames_per_gop, mpeg3video_t::gop_timecode, gop_to_frame(), mpeg3_vtrack_t::height, mpeg3video_t::horizontal_size, mpeg3_timecode_t::hour, mpeg3_t::is_video_stream, mpeg3video_t::last_frame, mpeg3video_t::maxframe, mpeg3_timecode_t::minute, MPEG3_GOP_START_CODE, MPEG3_PICTURE_START_CODE, mpeg3_rewind_video(), mpeg3bits_getbits(), mpeg3bits_getbyte_noptr(), mpeg3bits_reset(), mpeg3demux_movie_size(), mpeg3demux_seek_byte(), mpeg3demux_start_forward(), mpeg3demux_start_reverse(), mpeg3video_allocate_struct(), mpeg3video_delete(), mpeg3video_get_firstframe(), mpeg3video_get_header(), mpeg3video_getgophdr(), mpeg3video_initdecoder(), mpeg3video_next_code(), mpeg3video_prev_code(), mpeg3video_t::repeat_count, mpeg3_timecode_t::second, mpeg3_t::seekable, mpeg3_vtrack_t::total_frame_offsets, mpeg3_vtrack_t::total_frames, mpeg3video_t::vertical_size, mpeg3video_t::vstream, and mpeg3_vtrack_t::width.
Referenced by mpeg3_new_vtrack().

| int mpeg3video_read_frame | ( | mpeg3video_t * | video, | |
| unsigned char ** | output_rows, | |||
| int | in_x, | |||
| int | in_y, | |||
| int | in_w, | |||
| int | in_h, | |||
| int | out_w, | |||
| int | out_h, | |||
| int | color_model | |||
| ) |
Definition at line 576 of file mpeg3video.c.
References mpeg3video_t::color_model, mpeg3_vtrack_t::frame_cache, mpeg3video_t::frame_seek, mpeg3video_t::framenum, mpeg3video_t::in_h, mpeg3video_t::in_w, mpeg3video_t::in_x, mpeg3video_t::in_y, mpeg3video_t::last_number, mpeg3_cache_get_frame(), mpeg3video_get_scaletable(), mpeg3video_present_frame(), mpeg3video_read_frame_backend(), mpeg3video_seek(), mpeg3video_t::out_h, mpeg3video_t::out_w, mpeg3video_t::output_rows, mpeg3video_t::output_src, mpeg3video_t::track, mpeg3video_t::want_yvu, mpeg3video_t::x_table, and mpeg3video_t::y_table.
Referenced by mpeg3_read_frame().

| int mpeg3video_read_frame_backend | ( | mpeg3video_t * | video, | |
| int | skip_bframes | |||
| ) |
Definition at line 262 of file mpeg3video.c.
References BOTTOM_FIELD, mpeg3video_t::file, FRAME_PICTURE, mpeg3video_t::framenum, mpeg3bits_eof, mpeg3video_get_header(), mpeg3video_getpicture(), mpeg3video_t::pict_struct, mpeg3video_t::secondfield, mpeg3video_t::skip_bframes, TOP_FIELD, mpeg3video_t::track, and mpeg3video_t::vstream.
Referenced by mpeg3video_drop_frames(), mpeg3video_get_firstframe(), mpeg3video_previous_frame(), mpeg3video_read_frame(), mpeg3video_read_yuvframe(), mpeg3video_read_yuvframe_ptr(), and mpeg3video_seek().

| int mpeg3video_read_raw | ( | mpeg3video_t * | video, | |
| unsigned char * | output, | |||
| long * | size, | |||
| long | max_size | |||
| ) |
Definition at line 543 of file mpeg3video.c.
References MPEG3_PICTURE_START_CODE, MPEG3_SEQUENCE_END_CODE, mpeg3bits_eof, mpeg3bits_getbyte_noptr(), and mpeg3video_t::vstream.
Referenced by mpeg3_read_video_chunk().

| int mpeg3video_read_yuvframe | ( | mpeg3video_t * | video, | |
| char * | y_output, | |||
| char * | u_output, | |||
| char * | v_output, | |||
| int | in_x, | |||
| int | in_y, | |||
| int | in_w, | |||
| int | in_h | |||
| ) |
Definition at line 678 of file mpeg3video.c.
References mpeg3video_t::byte_seek, mpeg3video_t::chrom_width, CHROMA420, mpeg3video_t::chroma_format, mpeg3video_t::coded_picture_width, mpeg3_vtrack_t::frame_cache, mpeg3video_t::frame_seek, mpeg3video_t::framenum, mpeg3video_t::in_h, mpeg3video_t::in_w, mpeg3video_t::in_x, mpeg3video_t::in_y, mpeg3_cache_get_frame(), mpeg3video_present_frame(), mpeg3video_read_frame_backend(), mpeg3video_seek(), mpeg3video_t::output_src, mpeg3video_t::track, mpeg3video_t::u_output, mpeg3video_t::v_output, mpeg3video_t::want_yvu, and mpeg3video_t::y_output.
Referenced by mpeg3_read_yuvframe().

| int mpeg3video_read_yuvframe_ptr | ( | mpeg3video_t * | video, | |
| char ** | y_output, | |||
| char ** | u_output, | |||
| char ** | v_output | |||
| ) |
Definition at line 757 of file mpeg3video.c.
References mpeg3video_t::byte_seek, mpeg3_vtrack_t::frame_cache, mpeg3video_t::frame_seek, mpeg3video_t::framenum, mpeg3video_t::last_number, mpeg3_cache_get_frame(), mpeg3video_read_frame_backend(), mpeg3video_seek(), mpeg3video_t::output_src, mpeg3video_t::track, and mpeg3video_t::want_yvu.
Referenced by mpeg3_read_yuvframe_ptr().

| int mpeg3video_set_cpus | ( | mpeg3video_t * | video, | |
| int | cpus | |||
| ) |
| int mpeg3video_set_mmx | ( | mpeg3video_t * | video, | |
| int | use_mmx | |||
| ) |
Definition at line 536 of file mpeg3video.c.
References mpeg3video_init_scantables().

| unsigned char mpeg3_alternate_scan_nommx[64] |
Initial value:
{
0, 8, 16, 24, 1, 9, 2, 10, 17, 25, 32, 40, 48, 56, 57, 49,
41, 33, 26, 18, 3, 11, 4, 12, 19, 27, 34, 42, 50, 58, 35, 43,
51, 59, 20, 28, 5, 13, 6, 14, 21, 29, 36, 44, 52, 60, 37, 45,
53, 61, 22, 30, 7, 15, 23, 31, 38, 46, 54, 62, 39, 47, 55, 63
}
Definition at line 22 of file mpeg3video.c.
Referenced by mpeg3video_init_scantables().
| unsigned char mpeg3_default_intra_quantizer_matrix[64] |
Initial value:
{
8, 16, 19, 22, 26, 27, 29, 34,
16, 16, 22, 24, 27, 29, 34, 37,
19, 22, 26, 27, 29, 34, 34, 38,
22, 22, 26, 27, 29, 34, 37, 40,
22, 26, 27, 29, 32, 35, 40, 48,
26, 27, 29, 32, 35, 40, 48, 58,
26, 27, 29, 34, 38, 46, 56, 69,
27, 29, 35, 38, 46, 56, 69, 83
}
Definition at line 31 of file mpeg3video.c.
Referenced by mpeg3video_getseqhdr().
| double mpeg3_frame_rate_table[16] |
Initial value:
{
0.0,
(double)24000.0/1001.0,
(double)24.0,
(double)25.0,
(double)30000.0/1001.0,
(double)30.0,
(double)50.0,
(double)60000.0/1001.0,
(double)60.0,
1,
5,
10,
12,
15,
0,
0,
}
Definition at line 51 of file mpeg3video.c.
Referenced by mpeg3video_getseqhdr().
| unsigned char mpeg3_non_linear_mquant_table[32] |
Initial value:
{
0, 1, 2, 3, 4, 5, 6, 7,
8, 10, 12, 14, 16, 18, 20, 22,
24, 28, 32, 36, 40, 44, 48, 52,
56, 64, 72, 80, 88, 96, 104, 112
}
Definition at line 43 of file mpeg3video.c.
Referenced by mpeg3_decode_slice(), and mpeg3video_getslicehdr().
| unsigned char mpeg3_zig_zag_scan_nommx[64] |
Initial value:
{
0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5,
12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28,
35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51,
58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63
}
Definition at line 13 of file mpeg3video.c.
Referenced by mpeg3video_init_scantables().
1.5.5