GPAC
Open Source Multimedia Framework. For more information, check out http://gpac.wp.mines-telecom.fr
|
#include <gpac/internal/media_dev.h>
#include <gpac/constants.h>
#include <gpac/mpeg4_odf.h>
#include <gpac/internal/ogg.h>
#include <gpac/math.h>
Data Structures | |
struct | GF_M4VParser |
Macros | |
#define | MPEG12_START_CODE_PREFIX 0x000001 |
#define | MPEG12_PICTURE_START_CODE 0x00000100 |
#define | MPEG12_SLICE_MIN_START 0x00000101 |
#define | MPEG12_SLICE_MAX_START 0x000001af |
#define | MPEG12_USER_DATA_START_CODE 0x000001b2 |
#define | MPEG12_SEQUENCE_START_CODE 0x000001b3 |
#define | MPEG12_SEQUENCE_ERR_START_CODE 0x000001b4 |
#define | MPEG12_EXT_START_CODE 0x000001b5 |
#define | MPEG12_SEQUENCE_END_START_CODE 0x000001b7 |
#define | MPEG12_GOP_START_CODE 0x000001b8 |
#define | M4V_VO_START_CODE 0x00 |
#define | M4V_VOL_START_CODE 0x20 |
#define | M4V_VOP_START_CODE 0xB6 |
#define | M4V_VISOBJ_START_CODE 0xB5 |
#define | M4V_VOS_START_CODE 0xB0 |
#define | M4V_GOV_START_CODE 0xB3 |
#define | M4V_UDTA_START_CODE 0xB2 |
#define | M2V_PIC_START_CODE 0x00 |
#define | M2V_SEQ_START_CODE 0xB3 |
#define | M2V_EXT_START_CODE 0xB5 |
#define | M2V_GOP_START_CODE 0xB8 |
#define | M4V_CACHE_SIZE 4096 |
#define | AVC_CACHE_SIZE 4096 |
#define | PARSE_FULL_HEADER 0 |
Functions | |
void | gf_media_reduce_aspect_ratio (u32 *width, u32 *height) |
void | gf_media_get_reduced_frame_rate (u32 *timescale, u32 *sample_dur) |
const char * | gf_m4v_get_profile_name (u8 video_pl) |
s32 | gf_mv12_next_start_code (unsigned char *pbuffer, u32 buflen, u32 *optr, u32 *scode) |
s32 | gf_mv12_next_slice_start (unsigned char *pbuffer, u32 startoffset, u32 buflen, u32 *slice_offset) |
GF_M4VParser * | gf_m4v_parser_new (char *data, u64 data_size, Bool mpeg12video) |
GF_M4VParser * | gf_m4v_parser_bs_new (GF_BitStream *bs, Bool mpeg12video) |
void | gf_m4v_parser_del (GF_M4VParser *m4v) |
s32 | M4V_LoadObject (GF_M4VParser *m4v) |
void | gf_m4v_rewrite_pl (char **o_data, u32 *o_dataLen, u8 PL) |
static GF_Err | M4V_Reset (GF_M4VParser *m4v, u64 start) |
static GF_Err | gf_m4v_parse_config_mpeg12 (GF_M4VParser *m4v, GF_M4VDecSpecInfo *dsi) |
static u8 | m4v_get_sar_idx (u32 w, u32 h) |
static GF_Err | gf_m4v_parse_config_mpeg4 (GF_M4VParser *m4v, GF_M4VDecSpecInfo *dsi) |
GF_Err | gf_m4v_parse_config (GF_M4VParser *m4v, GF_M4VDecSpecInfo *dsi) |
static GF_Err | gf_m4v_parse_frame_mpeg12 (GF_M4VParser *m4v, GF_M4VDecSpecInfo dsi, u8 *frame_type, u32 *time_inc, u64 *size, u64 *start, Bool *is_coded) |
static GF_Err | gf_m4v_parse_frame_mpeg4 (GF_M4VParser *m4v, GF_M4VDecSpecInfo dsi, u8 *frame_type, u32 *time_inc, u64 *size, u64 *start, Bool *is_coded) |
GF_Err | gf_m4v_parse_frame (GF_M4VParser *m4v, GF_M4VDecSpecInfo dsi, u8 *frame_type, u32 *time_inc, u64 *size, u64 *start, Bool *is_coded) |
GF_Err | gf_m4v_rewrite_par (char **o_data, u32 *o_dataLen, s32 par_n, s32 par_d) |
u64 | gf_m4v_get_object_start (GF_M4VParser *m4v) |
Bool | gf_m4v_is_valid_object_type (GF_M4VParser *m4v) |
GF_Err | gf_m4v_get_config (char *rawdsi, u32 rawdsi_size, GF_M4VDecSpecInfo *dsi) |
const char * | gf_m4a_object_type_name (u32 objectType) |
const char * | gf_m4a_get_profile_name (u8 audio_pl) |
u32 | gf_m4a_get_profile (GF_M4ADecSpecInfo *cfg) |
GF_Err | gf_m4a_parse_config (GF_BitStream *bs, GF_M4ADecSpecInfo *cfg, Bool size_known) |
GF_Err | gf_m4a_get_config (char *dsi, u32 dsi_size, GF_M4ADecSpecInfo *cfg) |
u32 | gf_latm_get_value (GF_BitStream *bs) |
GF_Err | gf_m4a_write_config_bs (GF_BitStream *bs, GF_M4ADecSpecInfo *cfg) |
GF_Err | gf_m4a_write_config (GF_M4ADecSpecInfo *cfg, char **dsi, u32 *dsi_size) |
u8 | gf_mp3_version (u32 hdr) |
const char * | gf_mp3_version_name (u32 hdr) |
u8 | gf_mp3_layer (u32 hdr) |
u8 | gf_mp3_num_channels (u32 hdr) |
u16 | gf_mp3_sampling_rate (u32 hdr) |
u16 | gf_mp3_window_size (u32 hdr) |
u8 | gf_mp3_object_type_indication (u32 hdr) |
u32 | gf_mp3_bit_rate (u32 hdr) |
u16 | gf_mp3_frame_size (u32 hdr) |
u32 | gf_mp3_get_next_header (FILE *in) |
u32 | gf_mp3_get_next_header_mem (const char *buffer, u32 size, u32 *pos) |
const char * | gf_avc_get_profile_name (u8 video_prof) |
const char * | gf_hevc_get_profile_name (u8 video_prof) |
static u32 | bs_get_ue (GF_BitStream *bs) |
static s32 | bs_get_se (GF_BitStream *bs) |
u32 | gf_media_nalu_is_start_code (GF_BitStream *bs) |
u32 | gf_media_nalu_next_start_code_bs (GF_BitStream *bs) |
u32 | gf_media_nalu_next_start_code (u8 *data, u32 data_len, u32 *sc_size) |
Bool | gf_media_avc_slice_is_intra (AVCState *avc) |
Bool | gf_media_avc_slice_is_IDR (AVCState *avc) |
static void | avc_parse_hrd_parameters (GF_BitStream *bs, AVC_HRD *hrd) |
static u32 | avc_emulation_bytes_add_count (char *buffer, u32 nal_size) |
static u32 | avc_add_emulation_bytes (const char *buffer_src, char *buffer_dst, u32 nal_size) |
static u32 | avc_remove_emulation_bytes (const char *buffer_src, char *buffer_dst, u32 nal_size) |
s32 | gf_media_avc_read_sps (const char *sps_data, u32 sps_size, AVCState *avc, u32 subseq_sps, u32 *vui_flag_pos) |
s32 | gf_media_avc_read_pps (const char *pps_data, u32 pps_size, AVCState *avc) |
s32 | gf_media_avc_read_sps_ext (const char *spse_data, u32 spse_size) |
static s32 | SVC_ReadNal_header_extension (GF_BitStream *bs, SVC_NALUHeader *NalHeader) |
static s32 | avc_parse_slice (GF_BitStream *bs, AVCState *avc, Bool svc_idr_flag, AVCSliceInfo *si) |
static s32 | svc_parse_slice (GF_BitStream *bs, AVCState *avc, AVCSliceInfo *si) |
static s32 | avc_parse_recovery_point_sei (GF_BitStream *bs, AVCState *avc) |
static s32 | avc_parse_pic_timing_sei (GF_BitStream *bs, AVCState *avc) |
static void | avc_compute_poc (AVCSliceInfo *si) |
s32 | gf_media_avc_parse_nalu (GF_BitStream *bs, u32 nal_hdr, AVCState *avc) |
u32 | gf_media_avc_reformat_sei (char *buffer, u32 nal_size, AVCState *avc) |
static u8 | avc_get_sar_idx (u32 w, u32 h) |
GF_Err | gf_media_avc_change_par (GF_AVCConfig *avcc, s32 ar_n, s32 ar_d) |
GF_Err | gf_avc_get_sps_info (char *sps_data, u32 sps_size, u32 *sps_id, u32 *width, u32 *height, s32 *par_n, s32 *par_d) |
GF_Err | gf_avc_get_pps_info (char *pps_data, u32 pps_size, u32 *pps_id, u32 *sps_id) |
Bool | gf_media_hevc_slice_is_intra (HEVCState *hevc) |
Bool | gf_media_hevc_slice_is_IDR (HEVCState *hevc) |
static Bool | parse_short_term_ref_pic_set (GF_BitStream *bs, HEVC_SPS *sps, u32 idx_rps) |
static s32 | hevc_parse_slice_segment (GF_BitStream *bs, HEVCState *hevc, HEVCSliceInfo *si) |
static void | hevc_compute_poc (HEVCSliceInfo *si) |
void | profile_tier_level (GF_BitStream *bs, Bool ProfilePresentFlag, u8 MaxNumSubLayersMinus1, HEVC_ProfileTierLevel *ptl) |
void | bit_rate_pic_rate_info (GF_BitStream *bs, u8 level_low, u8 level_high, HEVC_VPS *vps) |
s32 | gf_media_hevc_read_vps (char *data, u32 size, HEVCState *hevc) |
static s32 | gf_media_hevc_read_sps_ex (char *data, u32 size, HEVCState *hevc, u32 *vui_flag_pos) |
s32 | gf_media_hevc_read_sps (char *data, u32 size, HEVCState *hevc) |
s32 | gf_media_hevc_read_pps (char *data, u32 size, HEVCState *hevc) |
s32 | gf_media_hevc_parse_nalu (GF_BitStream *bs, HEVCState *hevc, u8 *nal_unit_type, u8 *temporal_id, u8 *layer_id) |
static u8 | hevc_get_sar_idx (u32 w, u32 h) |
GF_Err | gf_media_hevc_change_par (GF_HEVCConfig *hvcc, s32 ar_n, s32 ar_d) |
GF_Err | gf_hevc_get_sps_info (char *sps_data, u32 sps_size, u32 *sps_id, u32 *width, u32 *height, s32 *par_n, s32 *par_d) |
static u32 | AC3_FindSyncCode (u8 *buf, u32 buflen) |
static Bool | AC3_FindSyncCodeBS (GF_BitStream *bs) |
u32 | gf_ac3_get_channels (u32 acmod) |
u32 | gf_ac3_get_bitrate (u32 brcode) |
Bool | gf_ac3_parser (u8 *buf, u32 buflen, u32 *pos, GF_AC3Header *hdr, Bool full_parse) |
Bool | gf_ac3_parser_bs (GF_BitStream *bs, GF_AC3Header *hdr, Bool full_parse) |
static u32 | vorbis_book_maptype1_quantvals (u32 entries, u32 dim) |
u32 | _ilog_ (u32 v) |
static u32 | ilog (u32 v) |
static u32 | icount (u32 v) |
Bool | gf_vorbis_parse_header (GF_VorbisParser *vp, char *data, u32 data_len) |
u32 | gf_vorbis_check_frame (GF_VorbisParser *vp, char *data, u32 data_length) |
Variables | |
struct { | |
u32 | w |
u32 | h |
} | std_par [] |
struct { | |
u32 | w |
u32 | h |
} | m4v_sar [6] = { { 0, 0 }, { 1, 1 }, { 12, 11 }, { 10, 11 }, { 16, 11 }, { 40, 33 } } |
static u32 const | bitrate_table [5][15] |
static u8 | avc_golomb_bits [256] |
struct { | |
u32 | w |
u32 | h |
} | avc_sar [14] |
struct { | |
u32 | w |
u32 | h |
} | hevc_sar [17] |
static const u32 | ac3_sizecod_to_bitrate [] |
static const u32 | ac3_sizecod2_to_framesize [] |
static const u32 | ac3_sizecod1_to_framesize [] |
static const u32 | ac3_sizecod0_to_framesize [] |
static const u32 | ac3_mod_to_chans [] |
struct __tag_m4v_parser |
#define MPEG12_START_CODE_PREFIX 0x000001 |
#define MPEG12_PICTURE_START_CODE 0x00000100 |
#define MPEG12_SLICE_MIN_START 0x00000101 |
#define MPEG12_SLICE_MAX_START 0x000001af |
#define MPEG12_USER_DATA_START_CODE 0x000001b2 |
#define MPEG12_SEQUENCE_START_CODE 0x000001b3 |
#define MPEG12_SEQUENCE_ERR_START_CODE 0x000001b4 |
#define MPEG12_EXT_START_CODE 0x000001b5 |
#define MPEG12_SEQUENCE_END_START_CODE 0x000001b7 |
#define MPEG12_GOP_START_CODE 0x000001b8 |
#define M4V_VO_START_CODE 0x00 |
#define M4V_VOL_START_CODE 0x20 |
#define M4V_VOP_START_CODE 0xB6 |
#define M4V_VISOBJ_START_CODE 0xB5 |
#define M4V_VOS_START_CODE 0xB0 |
#define M4V_GOV_START_CODE 0xB3 |
#define M4V_UDTA_START_CODE 0xB2 |
#define M2V_PIC_START_CODE 0x00 |
#define M2V_SEQ_START_CODE 0xB3 |
#define M2V_EXT_START_CODE 0xB5 |
#define M2V_GOP_START_CODE 0xB8 |
#define M4V_CACHE_SIZE 4096 |
#define AVC_CACHE_SIZE 4096 |
#define PARSE_FULL_HEADER 0 |
const char* gf_m4v_get_profile_name | ( | u8 | video_pl | ) |
s32 gf_mv12_next_slice_start | ( | unsigned char * | pbuffer, |
u32 | startoffset, | ||
u32 | buflen, | ||
u32 * | slice_offset | ||
) |
GF_M4VParser* gf_m4v_parser_bs_new | ( | GF_BitStream * | bs, |
Bool | mpeg12video | ||
) |
void gf_m4v_parser_del | ( | GF_M4VParser * | m4v | ) |
s32 M4V_LoadObject | ( | GF_M4VParser * | m4v | ) |
|
static |
|
static |
GF_Err gf_m4v_parse_config | ( | GF_M4VParser * | m4v, |
GF_M4VDecSpecInfo * | dsi | ||
) |
|
static |
|
static |
GF_Err gf_m4v_parse_frame | ( | GF_M4VParser * | m4v, |
GF_M4VDecSpecInfo | dsi, | ||
u8 * | frame_type, | ||
u32 * | time_inc, | ||
u64 * | size, | ||
u64 * | start, | ||
Bool * | is_coded | ||
) |
u64 gf_m4v_get_object_start | ( | GF_M4VParser * | m4v | ) |
Bool gf_m4v_is_valid_object_type | ( | GF_M4VParser * | m4v | ) |
GF_Err gf_m4v_get_config | ( | char * | rawdsi, |
u32 | rawdsi_size, | ||
GF_M4VDecSpecInfo * | dsi | ||
) |
const char* gf_m4a_object_type_name | ( | u32 | objectType | ) |
const char* gf_m4a_get_profile_name | ( | u8 | audio_pl | ) |
u32 gf_m4a_get_profile | ( | GF_M4ADecSpecInfo * | cfg | ) |
GF_Err gf_m4a_parse_config | ( | GF_BitStream * | bs, |
GF_M4ADecSpecInfo * | cfg, | ||
Bool | size_known | ||
) |
GF_Err gf_m4a_get_config | ( | char * | dsi, |
u32 | dsi_size, | ||
GF_M4ADecSpecInfo * | cfg | ||
) |
u32 gf_latm_get_value | ( | GF_BitStream * | bs | ) |
GF_Err gf_m4a_write_config_bs | ( | GF_BitStream * | bs, |
GF_M4ADecSpecInfo * | cfg | ||
) |
GF_Err gf_m4a_write_config | ( | GF_M4ADecSpecInfo * | cfg, |
char ** | dsi, | ||
u32 * | dsi_size | ||
) |
const char* gf_mp3_version_name | ( | u32 | hdr | ) |
u32 gf_mp3_get_next_header | ( | FILE * | in | ) |
const char* gf_avc_get_profile_name | ( | u8 | video_prof | ) |
const char* gf_hevc_get_profile_name | ( | u8 | video_prof | ) |
|
static |
|
static |
u32 gf_media_nalu_is_start_code | ( | GF_BitStream * | bs | ) |
u32 gf_media_nalu_next_start_code_bs | ( | GF_BitStream * | bs | ) |
|
static |
|
static |
|
static |
s32 gf_media_avc_read_sps | ( | const char * | sps_data, |
u32 | sps_size, | ||
AVCState * | avc, | ||
u32 | subseq_sps, | ||
u32 * | vui_flag_pos | ||
) |
|
static |
|
static |
|
static |
|
static |
GF_Err gf_media_avc_change_par | ( | GF_AVCConfig * | avcc, |
s32 | ar_n, | ||
s32 | ar_d | ||
) |
GF_Err gf_avc_get_sps_info | ( | char * | sps_data, |
u32 | sps_size, | ||
u32 * | sps_id, | ||
u32 * | width, | ||
u32 * | height, | ||
s32 * | par_n, | ||
s32 * | par_d | ||
) |
|
static |
|
static |
void profile_tier_level | ( | GF_BitStream * | bs, |
Bool | ProfilePresentFlag, | ||
u8 | MaxNumSubLayersMinus1, | ||
HEVC_ProfileTierLevel * | ptl | ||
) |
|
static |
s32 gf_media_hevc_parse_nalu | ( | GF_BitStream * | bs, |
HEVCState * | hevc, | ||
u8 * | nal_unit_type, | ||
u8 * | temporal_id, | ||
u8 * | layer_id | ||
) |
GF_Err gf_media_hevc_change_par | ( | GF_HEVCConfig * | hvcc, |
s32 | ar_n, | ||
s32 | ar_d | ||
) |
GF_Err gf_hevc_get_sps_info | ( | char * | sps_data, |
u32 | sps_size, | ||
u32 * | sps_id, | ||
u32 * | width, | ||
u32 * | height, | ||
s32 * | par_n, | ||
s32 * | par_d | ||
) |
|
static |
Bool gf_ac3_parser_bs | ( | GF_BitStream * | bs, |
GF_AC3Header * | hdr, | ||
Bool | full_parse | ||
) |
Bool gf_vorbis_parse_header | ( | GF_VorbisParser * | vp, |
char * | data, | ||
u32 | data_len | ||
) |
u32 gf_vorbis_check_frame | ( | GF_VorbisParser * | vp, |
char * | data, | ||
u32 | data_length | ||
) |
struct { ... } std_par[ ] |
struct { ... } m4v_sar[6] |
|
static |
|
static |
struct { ... } avc_sar[14] |
struct { ... } hevc_sar[17] |
|
static |
|
static |
|
static |
|
static |
|
static |