xine-lib 1.2.13-20230125hg15249
|
#include "config.h"
#include <inttypes.h>
#include <stdlib.h>
#include <string.h>
#include "../include/mpeg2.h"
#include "../include/attributes.h"
#include "mpeg2_internal.h"
Macros | |
#define | SEQ_EXT 2 |
#define | SEQ_DISPLAY_EXT 4 |
#define | QUANT_MATRIX_EXT 8 |
#define | COPYRIGHT_EXT 0x10 |
#define | PIC_DISPLAY_EXT 0x80 |
#define | PIC_CODING_EXT 0x100 |
Variables | |
static const uint8_t | default_intra_quantizer_matrix [64] |
uint8_t | mpeg2_scan_norm [64] |
uint8_t | mpeg2_scan_alt [64] |
#define COPYRIGHT_EXT 0x10 |
Referenced by picture_coding_ext().
#define PIC_CODING_EXT 0x100 |
Referenced by mpeg2_header_picture().
#define PIC_DISPLAY_EXT 0x80 |
Referenced by picture_coding_ext().
#define QUANT_MATRIX_EXT 8 |
Referenced by picture_coding_ext().
#define SEQ_DISPLAY_EXT 4 |
Referenced by sequence_ext().
#define SEQ_EXT 2 |
Referenced by mpeg2_header_sequence().
|
static |
References mpeg2dec_s::new_quantizer_matrix, mpeg2dec_s::quantizer_matrix, and mpeg2dec_s::scaled.
Referenced by finalize_matrix().
|
static |
Referenced by mpeg2_header_extension().
|
static |
|
inlinestatic |
|
static |
|
static |
int mpeg2_guess_aspect | ( | const mpeg2_sequence_t * | sequence, |
unsigned int * | pixel_width, | ||
unsigned int * | pixel_height ) |
mpeg2_state_t mpeg2_header_end | ( | mpeg2dec_t * | mpeg2dec | ) |
References mpeg2dec_s::action, B_TYPE, mpeg2_decoder_s::coding_type, mpeg2dec_s::convert, mpeg2dec_s::decoder, mpeg2_info_s::discard_fbuf, mpeg2_info_s::display_fbuf, mpeg2_info_s::display_picture, mpeg2_info_s::display_picture_2nd, mpeg2dec_s::fbuf, mpeg2_sequence_s::flags, mpeg2dec_s::info, mpeg2_reset_info(), mpeg2_picture_s::nb_fields, mpeg2dec_s::picture, mpeg2dec_s::pictures, seek_sequence(), SEQ_FLAG_LOW_DELAY, mpeg2dec_s::sequence, and STATE_END.
Referenced by mpeg2_header_sequence_finalize(), and mpeg2_seek_header().
int mpeg2_header_extension | ( | mpeg2dec_t * | mpeg2dec | ) |
int mpeg2_header_gop | ( | mpeg2dec_t * | mpeg2dec | ) |
References mpeg2dec_s::chunk_start, mpeg2_gop_s::flags, mpeg2_gop_s::hours, mpeg2_gop_s::minutes, mpeg2dec_s::new_gop, mpeg2_gop_s::pictures, mpeg2_gop_s::seconds, mpeg2dec_s::state, and STATE_GOP.
Referenced by mpeg2_parse_header().
void mpeg2_header_gop_finalize | ( | mpeg2dec_t * | mpeg2dec | ) |
References mpeg2_info_s::gop, mpeg2dec_s::gop, mpeg2dec_s::info, info_user_data(), mpeg2_reset_info(), and mpeg2dec_s::new_gop.
Referenced by mpeg2_parse_header().
int mpeg2_header_picture | ( | mpeg2dec_t * | mpeg2dec | ) |
References mpeg2_decoder_s::b_motion, mpeg2dec_s::bytes_since_tag, mpeg2dec_s::chunk_ptr, mpeg2dec_s::chunk_start, mpeg2_decoder_s::concealment_motion_vectors, mpeg2dec_s::copy_matrix, mpeg2dec_s::decoder, mpeg2_picture_s::display_offset, mpeg2dec_s::display_offset_x, mpeg2dec_s::display_offset_y, mpeg2dec_s::ext_state, motion_t::f_code, mpeg2_decoder_s::f_motion, mpeg2_picture_s::flags, FRAME_PICTURE, mpeg2_decoder_s::frame_pred_frame_dct, mpeg2_decoder_s::intra_dc_precision, mpeg2_scan_norm, mpeg2_picture_s::nb_fields, mpeg2dec_s::new_picture, mpeg2dec_s::num_tags, PIC_CODING_EXT, PIC_FLAG_CODING_TYPE_B, PIC_FLAG_CODING_TYPE_P, PIC_FLAG_PROGRESSIVE_FRAME, PIC_FLAG_TAGS, mpeg2_decoder_s::picture_structure, mpeg2dec_s::q_scale_type, mpeg2_decoder_s::scan, mpeg2dec_s::state, STATE_PICTURE, STATE_PICTURE_2ND, STATE_SLICE_1ST, mpeg2_picture_s::tag, mpeg2_picture_s::tag2, mpeg2dec_s::tag2_current, mpeg2dec_s::tag2_previous, mpeg2dec_s::tag_current, mpeg2dec_s::tag_previous, mpeg2_picture_s::temporal_reference, type, mpeg2_picture_s::x, and mpeg2_picture_s::y.
void mpeg2_header_picture_finalize | ( | mpeg2dec_t * | mpeg2dec, |
uint32_t | accels ) |
References mpeg2dec_s::alloc_index, B_TYPE, mpeg2_fbuf_s::buf, mpeg2_convert_init_s::buf_size, mpeg2_decoder_s::chroma_format, mpeg2_decoder_s::coding_type, mpeg2_decoder_s::convert, mpeg2dec_s::convert, mpeg2dec_s::convert_arg, mpeg2_decoder_s::convert_id, mpeg2dec_s::convert_id_size, mpeg2dec_s::convert_start, mpeg2dec_s::convert_stride, mpeg2_convert_init_s::copy, mpeg2_info_s::current_picture, mpeg2_info_s::current_picture_2nd, mpeg2dec_s::custom_fbuf, mpeg2dec_s::decoder, mpeg2_info_s::discard_fbuf, mpeg2_info_s::display_fbuf, mpeg2_info_s::display_picture, mpeg2_info_s::display_picture_2nd, fbuf_alloc_t::fbuf, mpeg2dec_s::fbuf, mpeg2dec_s::fbuf_alloc, finalize_matrix(), mpeg2dec_s::first, mpeg2_sequence_s::flags, mpeg2_picture_s::flags, mpeg2_sequence_s::height, mpeg2_fbuf_s::id, mpeg2dec_s::info, info_user_data(), MPEG2_ALLOC_CONVERT_ID, MPEG2_ALLOC_CONVERTED, MPEG2_ALLOC_YUV, MPEG2_CONVERT_START, mpeg2_malloc(), mpeg2_reset_info(), mpeg2_set_fbuf(), mpeg2_picture_s::nb_fields, mpeg2dec_s::new_picture, NULL, PIC_MASK_CODING_TYPE, mpeg2dec_s::picture, mpeg2dec_s::pictures, mpeg2_decoder_s::second_field, SEQ_FLAG_LOW_DELAY, mpeg2dec_s::sequence, mpeg2_convert_init_s::start, mpeg2dec_s::state, STATE_PICTURE, mpeg2_decoder_s::stride_frame, and mpeg2dec_s::yuv_buf.
Referenced by mpeg2_parse_header().
int mpeg2_header_sequence | ( | mpeg2dec_t * | mpeg2dec | ) |
References mpeg2_sequence_s::byte_rate, mpeg2_sequence_s::chroma_height, mpeg2_sequence_s::chroma_width, mpeg2dec_s::chunk_start, mpeg2_sequence_s::colour_primaries, mpeg2dec_s::copy_matrix, default_intra_quantizer_matrix, mpeg2_sequence_s::display_height, mpeg2dec_s::display_offset_x, mpeg2dec_s::display_offset_y, mpeg2_sequence_s::display_width, mpeg2dec_s::ext_state, mpeg2_sequence_s::flags, mpeg2_sequence_s::frame_period, mpeg2_sequence_s::height, mpeg2_sequence_s::matrix_coefficients, mpeg2_scan_norm, mpeg2dec_s::new_quantizer_matrix, mpeg2dec_s::new_sequence, mpeg2_sequence_s::picture_height, mpeg2_sequence_s::picture_width, mpeg2_sequence_s::pixel_width, mpeg2_sequence_s::profile_level_id, SEQ_EXT, SEQ_FLAG_CONSTRAINED_PARAMETERS, SEQ_FLAG_PROGRESSIVE_SEQUENCE, SEQ_VIDEO_FORMAT_UNSPECIFIED, mpeg2dec_s::state, STATE_SEQUENCE, mpeg2_sequence_s::transfer_characteristics, mpeg2_sequence_s::vbv_buffer_size, and mpeg2_sequence_s::width.
void mpeg2_header_sequence_finalize | ( | mpeg2dec_t * | mpeg2dec | ) |
References mpeg2dec_s::action, mpeg2_decoder_s::chroma_format, mpeg2_sequence_s::chroma_height, mpeg2_sequence_s::chroma_width, mpeg2dec_s::decoder, finalize_matrix(), finalize_sequence(), mpeg2_sequence_s::flags, mpeg2_info_s::gop, mpeg2_sequence_s::height, mpeg2_decoder_s::height, mpeg2dec_s::info, info_user_data(), invalid_end_action(), mpeg2_decoder_s::mpeg1, mpeg2_header_end(), mpeg2_reset_info(), mpeg2dec_s::new_sequence, NULL, mpeg2_sequence_s::picture_height, SEQ_FLAG_LOW_DELAY, SEQ_FLAG_MPEG2, mpeg2_info_s::sequence, mpeg2dec_s::sequence, mpeg2dec_s::state, STATE_INVALID_END, STATE_SEQUENCE_MODIFIED, STATE_SEQUENCE_REPEATED, mpeg2_decoder_s::stride_frame, mpeg2_decoder_s::vertical_position_extension, mpeg2_sequence_s::width, and mpeg2_decoder_s::width.
Referenced by mpeg2_parse_header().
mpeg2_state_t mpeg2_header_slice_start | ( | mpeg2dec_t * | mpeg2dec | ) |
References mpeg2dec_s::action, B_TYPE, mpeg2_fbuf_s::buf, mpeg2_decoder_s::chroma_quantizer, mpeg2_decoder_s::coding_type, mpeg2_decoder_s::convert_id, mpeg2dec_s::convert_start, D_TYPE, mpeg2dec_s::decoder, mpeg2dec_s::fbuf, mpeg2_info_s::gop, I_TYPE, mpeg2dec_s::info, mpeg2_init_fbuf(), mpeg2dec_s::nb_decode_slices, NULL, PIC_FLAG_SKIP, mpeg2dec_s::picture, prescale(), mpeg2_decoder_s::quantizer_prescale, mpeg2dec_s::state, STATE_INTERNAL_NORETURN, STATE_PICTURE_2ND, STATE_SLICE, STATE_SLICE_1ST, mpeg2_info_s::user_data, mpeg2_info_s::user_data_len, mpeg2dec_s::yuv_buf, and mpeg2dec_s::yuv_index.
Referenced by mpeg2_parse_header().
void mpeg2_header_state_init | ( | mpeg2dec_t * | mpeg2dec | ) |
References mpeg2dec_s::alloc_index, mpeg2dec_s::alloc_index_user, mpeg2_fbuf_s::buf, mpeg2_decoder_s::coding_type, mpeg2_decoder_s::convert, mpeg2dec_s::convert, mpeg2_decoder_s::convert_id, mpeg2dec_s::convert_start, mpeg2dec_s::custom_fbuf, mpeg2dec_s::decoder, fbuf_alloc_t::fbuf, mpeg2dec_s::fbuf, mpeg2dec_s::fbuf_alloc, mpeg2dec_s::first, mpeg2dec_s::first_decode_slice, I_TYPE, mpeg2_free(), mpeg2dec_s::nb_decode_slices, NULL, mpeg2dec_s::picture, mpeg2dec_s::pictures, mpeg2dec_s::sequence, mpeg2_sequence_s::width, mpeg2dec_s::yuv_buf, and mpeg2dec_s::yuv_index.
int mpeg2_header_user_data | ( | mpeg2dec_t * | mpeg2dec | ) |
References mpeg2dec_s::chunk_ptr, mpeg2dec_s::chunk_start, and mpeg2dec_s::user_data_len.
Referenced by mpeg2_parse_header().
void mpeg2_reset_info | ( | mpeg2_info_t * | info | ) |
References mpeg2_info_s::current_fbuf, mpeg2_info_s::current_picture, mpeg2_info_s::current_picture_2nd, mpeg2_info_s::discard_fbuf, mpeg2_info_s::display_fbuf, mpeg2_info_s::display_picture, mpeg2_info_s::display_picture_2nd, and NULL.
Referenced by invalid_end_action(), mpeg2_header_end(), mpeg2_header_gop_finalize(), mpeg2_header_picture_finalize(), mpeg2_header_sequence_finalize(), mpeg2_reset(), and seek_sequence().
void mpeg2_set_fbuf | ( | mpeg2dec_t * | mpeg2dec, |
int | b_type ) |
References mpeg2dec_s::convert, mpeg2_info_s::current_fbuf, mpeg2_info_s::discard_fbuf, mpeg2_info_s::display_fbuf, fbuf_alloc_t::fbuf, mpeg2dec_s::fbuf, mpeg2dec_s::fbuf_alloc, mpeg2_sequence_s::flags, mpeg2dec_s::info, SEQ_FLAG_LOW_DELAY, and mpeg2dec_s::sequence.
Referenced by mpeg2_header_picture_finalize(), and mpeg2_set_buf().
|
static |
References mpeg2_decoder_s::b_motion, BOTTOM_FIELD, mpeg2dec_s::chunk_start, mpeg2_decoder_s::concealment_motion_vectors, COPYRIGHT_EXT, mpeg2dec_s::decoder, mpeg2dec_s::ext_state, motion_t::f_code, mpeg2_decoder_s::f_motion, mpeg2_sequence_s::flags, mpeg2_picture_s::flags, FRAME_PICTURE, mpeg2_decoder_s::frame_pred_frame_dct, mpeg2_decoder_s::intra_dc_precision, mpeg2_decoder_s::intra_vlc_format, mpeg2_scan_alt, mpeg2_scan_norm, mpeg2_picture_s::nb_fields, mpeg2dec_s::new_picture, PIC_DISPLAY_EXT, PIC_FLAG_COMPOSITE_DISPLAY, PIC_FLAG_TOP_FIELD_FIRST, PIC_MASK_COMPOSITE_DISPLAY, mpeg2_decoder_s::picture_structure, mpeg2dec_s::q_scale_type, QUANT_MATRIX_EXT, mpeg2_decoder_s::scan, SEQ_FLAG_PROGRESSIVE_SEQUENCE, mpeg2dec_s::sequence, TOP_FIELD, and mpeg2_decoder_s::top_field_first.
Referenced by mpeg2_header_extension().
|
static |
References mpeg2dec_s::chunk_start, mpeg2_picture_s::display_offset, mpeg2dec_s::display_offset_x, mpeg2dec_s::display_offset_y, mpeg2_sequence_s::flags, mpeg2_picture_s::nb_fields, mpeg2dec_s::new_picture, SEQ_FLAG_PROGRESSIVE_SEQUENCE, mpeg2dec_s::sequence, mpeg2_picture_s::x, and mpeg2_picture_s::y.
Referenced by mpeg2_header_extension().
|
static |
References mpeg2dec_s::decoder, mpeg2dec_s::q_scale_type, mpeg2dec_s::quantizer_matrix, mpeg2_decoder_s::quantizer_prescale, and mpeg2dec_s::scaled.
Referenced by mpeg2_header_slice_start().
|
static |
References mpeg2dec_s::chunk_start, mpeg2dec_s::copy_matrix, mpeg2_scan_norm, and mpeg2dec_s::new_quantizer_matrix.
Referenced by mpeg2_header_extension().
|
static |
References mpeg2dec_s::action, mpeg2_info_s::gop, mpeg2dec_s::info, mpeg2_header_state_init(), mpeg2_reset_info(), mpeg2_seek_header(), NULL, and mpeg2_info_s::sequence.
Referenced by mpeg2_header_end().
|
static |
References mpeg2dec_s::chunk_start, mpeg2_sequence_s::colour_primaries, mpeg2_sequence_s::display_height, mpeg2_sequence_s::display_width, mpeg2_sequence_s::flags, mpeg2_sequence_s::matrix_coefficients, mpeg2dec_s::new_sequence, SEQ_FLAG_COLOUR_DESCRIPTION, SEQ_MASK_VIDEO_FORMAT, and mpeg2_sequence_s::transfer_characteristics.
Referenced by mpeg2_header_extension().
|
static |
References mpeg2_sequence_s::byte_rate, mpeg2_sequence_s::chroma_height, mpeg2_sequence_s::chroma_width, mpeg2dec_s::chunk_start, mpeg2_sequence_s::display_height, mpeg2_sequence_s::display_width, mpeg2dec_s::ext_state, mpeg2_sequence_s::flags, mpeg2_sequence_s::frame_period, mpeg2_sequence_s::height, mpeg2dec_s::new_sequence, mpeg2_sequence_s::picture_height, mpeg2_sequence_s::picture_width, mpeg2_sequence_s::profile_level_id, SEQ_DISPLAY_EXT, SEQ_FLAG_LOW_DELAY, SEQ_FLAG_MPEG2, mpeg2_sequence_s::vbv_buffer_size, and mpeg2_sequence_s::width.
Referenced by mpeg2_header_extension().
|
inlinestatic |
References v.
Referenced by finalize_sequence(), and mpeg2_guess_aspect().
|
static |
uint8_t mpeg2_scan_alt[64] |
uint8_t mpeg2_scan_norm[64] |