Mercurial > hg > enc-imaf
view IM_AF Decoder/IM_AF_Decoder.h @ 0:138a3cea9792
Different files related to my project, including the encoder (I made it) and decoder. Also I added the mp4atoms as an example.
MP4atoms belong to the IMAF player library.
author | Eugenio Oñate Hospital <eo301@eecs.qmul.ac.uk> |
---|---|
date | Wed, 04 Jul 2012 22:16:23 +0100 |
parents | |
children |
line wrap: on
line source
#ifndef IM_AF_Decoder_h__ #define IM_AF_Decoder_h__ #define IMAF_DECODER_API typedef int IMAF_Err; typedef void* IMAF_DecoderH; typedef struct IMAF_Decoder_Param { unsigned char *InputMafFilename; //in unsigned int NumberOfAudioTrack; //out unsigned int MovieTimescale; //out unsigned int MovieDuration; //out unsigned int HasTimedTextTrack; //out unsigned int MajorBrand; //out unsigned int NumberOfCompatibleBrands; //out unsigned int *CompatibleBrands; //out }IMAF_Decoder_Param; typedef struct IMAF_AudioParam { unsigned int nBitsPerSample; unsigned int nChannels; unsigned int nSamplingFrequency; }IMAF_AudioParam; typedef struct IMAF_Group { unsigned int group_ID; unsigned int num_elements; unsigned int *element_ID; unsigned int group_activation_mode; unsigned int group_activation_elements_number; unsigned int group_reference_volume; // 0~100 (0~1.0) char *group_name; char *group_description; }IMAF_Group; typedef struct IMAF_Preset { unsigned int preset_ID; unsigned int num_preset_elements; unsigned int *preset_element_ID; //array unsigned int preset_type; unsigned int preset_global_volume; unsigned int *preset_volume_element; unsigned int *num_input_channel; unsigned int output_channel_type; unsigned int num_output_channel; unsigned int num_updates; unsigned int *updated_sample_number; char *preset_name; }IMAF_Preset; typedef struct IMAF_SelectionRule { unsigned int selection_rule_ID; unsigned int selection_rule_type; unsigned int element_ID; unsigned int min_num_elements; unsigned int max_num_elements; unsigned int key_element_ID; char *selection_rule_description; }IMAF_SelectionRule; typedef struct IMAF_MixingRule { unsigned int mixing_rule_ID; unsigned int mixing_rule_type; unsigned int element_ID; unsigned int min_volume; unsigned int max_volume; unsigned int key_element_ID; char *mixing_rule_description; }IMAF_MixingRule; typedef struct StyleRecord { unsigned int startChar; unsigned int endChar; unsigned int fontID; unsigned int face_style_flags; unsigned int font_size; unsigned int text_color_r; unsigned int text_color_g; unsigned int text_color_b; unsigned int text_color_a; }StyleRecord; typedef struct TextSampleStyleParam { //tx3g unsigned int displayFlags; unsigned int horizontal_justification; unsigned int vertical_justification; unsigned int background_color_r; unsigned int background_color_g; unsigned int background_color_b; unsigned int background_color_a; unsigned int default_text_box_top; unsigned int default_text_box_left; unsigned int default_text_box_bottom; unsigned int default_text_box_right; unsigned int default_style_startChar; unsigned int default_style_endChar; unsigned int default_style_font_ID; unsigned int default_style_face_style_flags; unsigned int default_style_font_size; unsigned int default_style_text_color_r; unsigned int default_style_text_color_g; unsigned int default_style_text_color_b; unsigned int default_style_text_color_a; unsigned int font_ID; unsigned int font_name_length; unsigned char *font; //styl unsigned int styl_entry_count; StyleRecord *styl_text_styles; //hlit unsigned int hlit_startcharoffset; unsigned int hlit_endcharoffset; //hclr unsigned int hclr_highlight_color_r; unsigned int hclr_highlight_color_g; unsigned int hclr_highlight_color_b; unsigned int hclr_highlight_color_a; //krok unsigned int krok_highlight_start_time; unsigned int krok_entry_count; unsigned int *krok_highlight_end_time; unsigned int *krok_startcharoffset; unsigned int *krok_endcharoffset; //dlay //href //tbox //blnk //twrp }TextSampleStyleParam; #ifdef __cplusplus extern "C" { #endif IMAF_DECODER_API IMAF_Err IMAF_Decoder_Create(IMAF_DecoderH *IMafDecoder, IMAF_Decoder_Param *param); IMAF_DECODER_API IMAF_Err IMAF_Decoder_GetAudioTrackInfos(IMAF_DecoderH IMafDecoder, unsigned int *AudioTrackObjectTypeArray ,unsigned int *AudioTrackIdArray, IMAF_AudioParam *AudioParamArray); IMAF_DECODER_API IMAF_Err IMAF_Decoder_GetGroupContainerInfo(IMAF_DecoderH IMafDecoder, unsigned int *GroupCount); IMAF_DECODER_API IMAF_Err IMAF_Decoder_GetGroupByIndex(IMAF_DecoderH IMafDecoder, unsigned int i, IMAF_Group *grup); IMAF_DECODER_API IMAF_Err IMAF_Decoder_GetPresetContainerInfo(IMAF_DecoderH IMafDecoder, unsigned int *num_preset, unsigned int *default_preset_ID); IMAF_DECODER_API IMAF_Err IMAF_Decoder_GetPresetByIndex(IMAF_DecoderH IMafDecoder, unsigned int i, IMAF_Preset *prst); IMAF_DECODER_API IMAF_Err IMAF_Decoder_GetRuleContainerInfo(IMAF_DecoderH IMafDecoder, unsigned int *num_selection_rules, unsigned int *num_mixing_rules); IMAF_DECODER_API IMAF_Err IMAF_Decoder_GetSelectionRuleByIndex(IMAF_DecoderH IMafDecoder, unsigned int i, IMAF_SelectionRule *rusc); IMAF_DECODER_API IMAF_Err IMAF_Decoder_GetMixingRuleByIndex(IMAF_DecoderH IMafDecoder, unsigned int i, IMAF_MixingRule *rumx); IMAF_DECODER_API IMAF_Err IMAFDecoder_SeekSample(IMAF_DecoderH IMafDecoder, unsigned int mediaTime); IMAF_DECODER_API IMAF_Err IMAFDecoder_GetNextAudioSampleByIndex(IMAF_DecoderH IMafDecoder, unsigned int i, unsigned char **SampleData, unsigned int *SampleDataSize, unsigned int *CurrentTime, unsigned int *sampleNumber); IMAF_DECODER_API IMAF_Err IMAFDecoder_GetNextTextSample(IMAF_DecoderH IMafDecoder, unsigned char **SampleData, unsigned int *SampleDataSize, unsigned int *CurrentTime, TextSampleStyleParam **param); // only for AAC track IMAF_DECODER_API IMAF_Err IMAFDecoder_GetDsiByIndex(IMAF_DecoderH IMafDecoder, unsigned int i, char** dsi, unsigned int *dsiSize); IMAF_DECODER_API IMAF_Err IMAFDecoder_GetSongImage(IMAF_DecoderH IMafDecoder, unsigned char **image, unsigned int *imageSize); IMAF_DECODER_API IMAF_Err IMAFDecoder_GetMetadata(IMAF_DecoderH IMafDecoder, unsigned char **Meta, unsigned int *MetaSize); IMAF_DECODER_API IMAF_Err IMAF_Decoder_Destroy(IMAF_DecoderH IMafDecoder); IMAF_DECODER_API char* IMAF_Decoder_GetLastError(IMAF_Err err); #ifdef __cplusplus } #endif #endif // IM_AF_Decoder_h__