⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isomedia_dev.h

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 H
📖 第 1 页 / 共 5 页
字号:
	u32 avgBitrate;	u32 slidingAverageBitrate;} GF_HintMediaHeaderBox;typedef struct{	GF_ISOM_FULL_BOX} GF_MPEGMediaHeaderBox;typedef struct{	GF_ISOM_FULL_BOX} GF_ODMediaHeaderBox;typedef struct{	GF_ISOM_FULL_BOX} GF_OCRMediaHeaderBox;typedef struct{	GF_ISOM_FULL_BOX} GF_SceneMediaHeaderBox;typedef struct{	GF_ISOM_FULL_BOX	GF_List *boxList;} GF_DataReferenceBox;typedef struct{	GF_ISOM_BOX	GF_DataReferenceBox *dref;} GF_DataInformationBox;#define GF_ISOM_DATAENTRY_FIELDS	\	char *location;typedef struct{	GF_ISOM_FULL_BOX	GF_ISOM_DATAENTRY_FIELDS} GF_DataEntryBox;typedef struct{	GF_ISOM_FULL_BOX	GF_ISOM_DATAENTRY_FIELDS} GF_DataEntryURLBox;typedef struct{	GF_ISOM_FULL_BOX	GF_ISOM_DATAENTRY_FIELDS	char *nameURN;} GF_DataEntryURNBox;typedef struct{	u32 sampleCount;	u32 sampleDelta;} GF_SttsEntry;typedef struct{	GF_ISOM_FULL_BOX	GF_List *entryList;#ifndef GPAC_READ_ONLY	/*cache for WRITE*/	GF_SttsEntry *w_currentEntry;	u32 w_currentSampleNum;	u64 w_LastDTS;#endif	/*cache for READ*/	u32 r_FirstSampleInEntry;	u32 r_currentEntryIndex;	u64 r_CurrentDTS;} GF_TimeToSampleBox;typedef struct{	u32 sampleCount;	u32 decodingOffset;} GF_DttsEntry;typedef struct{	GF_ISOM_FULL_BOX	GF_List *entryList;#ifndef GPAC_READ_ONLY	/*Cache for write*/	GF_DttsEntry *w_currentEntry;	u32 w_LastSampleNumber;	/*force one sample per entry*/	Bool unpack_mode;#endif	/*Cache for read*/	u32 r_currentEntryIndex;	u32 r_FirstSampleInEntry;} GF_CompositionOffsetBox;typedef struct{	u32 SampleNumber;	u32 fragmentCount;	u16 *fragmentSizes;} GF_StsfEntry;typedef struct{	GF_ISOM_FULL_BOX	GF_List *entryList;#ifndef GPAC_READ_ONLY	/*Cache for write*/	GF_StsfEntry *w_currentEntry;	u32 w_currentEntryIndex;#endif	/*Cache for read*/	u32 r_currentEntryIndex;	GF_StsfEntry *r_currentEntry;} GF_SampleFragmentBox;#define GF_ISOM_SAMPLE_ENTRY_FIELDS		\	GF_ISOM_UUID_BOX					\	u16 dataReferenceIndex;				\	char reserved[ 6 ];					\	struct __tag_protect_box *protection_info;/*base sample entry box (never used but for typecasting)*/typedef struct{	GF_ISOM_SAMPLE_ENTRY_FIELDS} GF_SampleEntryBox;typedef struct{	GF_ISOM_SAMPLE_ENTRY_FIELDS	/*box type as specified in the file (not this box's type!!)*/	u32 EntryType;	char *data;	u32 data_size;} GF_GenericSampleEntryBox;typedef struct{	GF_ISOM_FULL_BOX	GF_ESD *desc;} GF_ESDBox;/*for all MPEG4 media except audio and video*/typedef struct{	GF_ISOM_SAMPLE_ENTRY_FIELDS	GF_ESDBox *esd;	/*used for hinting when extracting the OD stream...*/	GF_SLConfig *slc;} GF_MPEGSampleEntryBox;#define GF_ISOM_VISUAL_SAMPLE_ENTRY		\	GF_ISOM_SAMPLE_ENTRY_FIELDS			\	u16 version;						\	u16 revision;						\	u32 vendor;							\	u32 temporal_quality;				\	u32 spacial_quality;				\	u16 Width, Height;					\	u32 horiz_res, vert_res;			\	u32 entry_data_size;				\	u16 frames_per_sample;				\	char compressor_name[33];	\	u16 bit_depth;						\	s16 color_table_index;typedef struct{	GF_ISOM_VISUAL_SAMPLE_ENTRY} GF_VisualSampleEntryBox;void gf_isom_video_sample_entry_init(GF_VisualSampleEntryBox *ent);GF_Err gf_isom_video_sample_entry_read(GF_VisualSampleEntryBox *ptr, GF_BitStream *bs);#ifndef GPAC_READ_ONLYvoid gf_isom_video_sample_entry_write(GF_VisualSampleEntryBox *ent, GF_BitStream *bs);void gf_isom_video_sample_entry_size(GF_VisualSampleEntryBox *ent);#endiftypedef struct{	GF_ISOM_BOX	u32 bufferSizeDB;	u32 maxBitrate;	u32 avgBitrate;} GF_MPEG4BitRateBox;typedef struct{	GF_ISOM_BOX	GF_List *descriptors;} GF_MPEG4ExtensionDescriptorsBox;typedef struct{	GF_ISOM_BOX	GF_AVCConfig *config;} GF_AVCConfigurationBox;typedef struct{	GF_ISOM_VISUAL_SAMPLE_ENTRY	GF_ESDBox *esd;	/*used for Publishing*/	GF_SLConfig *slc;	/*avc extensions - we merged with regular 'mp4v' box to handle isma E&A signaling of AVC*/	GF_AVCConfigurationBox *avc_config;	GF_MPEG4BitRateBox *bitrate;	/*ext descriptors*/	GF_MPEG4ExtensionDescriptorsBox *descr;	/*internally emulated esd*/	GF_ESD *emul_esd;	/*iPod's hack*/	GF_UnknownUUIDBox *ipod_ext;} GF_MPEGVisualSampleEntryBox;/*this is the default visual sdst (to handle unknown media)*/typedef struct{	GF_ISOM_VISUAL_SAMPLE_ENTRY	/*box type as specified in the file (not this box's type!!)*/	u32 EntryType;	/*opaque description data (ESDS in MP4, SMI in SVQ3, ...)*/	char *data;	u32 data_size;} GF_GenericVisualSampleEntryBox;#define GF_ISOM_AUDIO_SAMPLE_ENTRY	\	GF_ISOM_SAMPLE_ENTRY_FIELDS		\	u16 version;					\	u16 revision;					\	u32 vendor;						\	u16 channel_count;				\	u16 bitspersample;				\	u16 compression_id;				\	u16 packet_size;				\	u16 samplerate_hi;				\	u16 samplerate_lo;typedef struct {	GF_ISOM_AUDIO_SAMPLE_ENTRY} GF_AudioSampleEntryBox;void gf_isom_audio_sample_entry_init(GF_AudioSampleEntryBox *ptr);GF_Err gf_isom_audio_sample_entry_read(GF_AudioSampleEntryBox *ptr, GF_BitStream *bs);#ifndef GPAC_READ_ONLYvoid gf_isom_audio_sample_entry_write(GF_AudioSampleEntryBox *ptr, GF_BitStream *bs);void gf_isom_audio_sample_entry_size(GF_AudioSampleEntryBox *ptr);#endiftypedef struct{	GF_ISOM_AUDIO_SAMPLE_ENTRY	GF_ESDBox *esd;	GF_SLConfig *slc;} GF_MPEGAudioSampleEntryBox;typedef struct{	GF_ISOM_BOX	GF_3GPConfig cfg;} GF_3GPPConfigBox;typedef struct{	GF_ISOM_AUDIO_SAMPLE_ENTRY	GF_3GPPConfigBox *info;} GF_3GPPAudioSampleEntryBox;typedef struct{	GF_ISOM_VISUAL_SAMPLE_ENTRY	GF_3GPPConfigBox *info;} GF_3GPPVisualSampleEntryBox;/*this is the default visual sdst (to handle unknown media)*/typedef struct{	GF_ISOM_AUDIO_SAMPLE_ENTRY	/*box type as specified in the file (not this box's type!!)*/	u32 EntryType;	/*opaque description data (ESDS in MP4, ...)*/	char *data;	u32 data_size;} GF_GenericAudioSampleEntryBox;typedef struct{	GF_ISOM_FULL_BOX	GF_List *boxList;} GF_SampleDescriptionBox;typedef struct{	GF_ISOM_FULL_BOX	/*if this is the compact version, sample size is actually fieldSize*/	u32 sampleSize;	u32 sampleCount; 	u32 alloc_size;	u32 *sizes;} GF_SampleSizeBox;typedef struct{	GF_ISOM_FULL_BOX	u32 entryCount;	u32 alloc_size;	u32 *offsets;} GF_ChunkOffsetBox;typedef struct {	GF_ISOM_FULL_BOX	u32 entryCount;	u32 alloc_size;	u64 *offsets;} GF_ChunkLargeOffsetBox;typedef struct{	u32 firstChunk;	u32 nextChunk;	u32 samplesPerChunk;	u32 sampleDescriptionIndex;	u8 isEdited;} GF_StscEntry;typedef struct{	GF_ISOM_FULL_BOX	GF_List *entryList;	GF_StscEntry *currentEntry;	/*0-based cache for READ. In WRITE mode, we always have 1 sample per chunk so no need for a cache*/	u32 currentIndex;	/*first sample number in this chunk*/	u32 firstSampleInCurrentChunk;	u32 currentChunk;	u32 ghostNumber;} GF_SampleToChunkBox;typedef struct{	GF_ISOM_FULL_BOX	u32 entryCount;	u32 *sampleNumbers;	/*cache for READ mode (in write we realloc no matter what)*/	u32 r_LastSyncSample;	/*0-based index in the array*/	u32 r_LastSampleIndex;} GF_SyncSampleBox;typedef struct{	u32 shadowedSampleNumber;	s32 syncSampleNumber;} GF_StshEntry;typedef struct{	GF_ISOM_FULL_BOX	GF_List *entries;	/*Cache for read mode*/	u32 r_LastEntryIndex;	u32 r_LastFoundSample;} GF_ShadowSyncBox;typedef struct{	GF_ISOM_FULL_BOX	u32 entryCount;	u16 *priorities;} GF_DegradationPriorityBox;typedef struct{	GF_ISOM_FULL_BOX	u32 SampleCount;	u8 *padbits;} GF_PaddingBitsBox;typedef struct{	GF_ISOM_FULL_BOX	u32 sampleCount;	/*each dep type is packed on 1 byte*/	u8 *sample_info;} GF_SampleDependencyTypeBox;typedef struct{	GF_ISOM_BOX	GF_TimeToSampleBox *TimeToSample;	GF_CompositionOffsetBox *CompositionOffset;	GF_SyncSampleBox *SyncSample;	GF_SampleDescriptionBox *SampleDescription;	GF_SampleSizeBox *SampleSize;	GF_SampleToChunkBox *SampleToChunk;	/*untyped, to handle 32 bits and 64 bits chunkOffsets*/	GF_Box *ChunkOffset;	GF_ShadowSyncBox *ShadowSync;	GF_DegradationPriorityBox *DegradationPriority;	GF_PaddingBitsBox *PaddingBits;	GF_SampleDependencyTypeBox *SampleDep;	GF_SampleFragmentBox *Fragments;	u32 MaxSamplePerChunk;	u16 groupID;	u16 trackPriority;	u32 currentEntryIndex;} GF_SampleTableBox;typedef struct __tag_media_info_box{	GF_ISOM_BOX	GF_DataInformationBox *dataInformation;	GF_SampleTableBox *sampleTable;	GF_Box *InfoHeader;	struct __tag_data_map *dataHandler;	u32 dataEntryIndex;} GF_MediaInformationBox;typedef struct{	GF_ISOM_BOX	char *data;	u32 dataSize;} GF_FreeSpaceBox;typedef struct{	GF_ISOM_FULL_BOX	char packedLanguageCode[4];	char *notice;} GF_CopyrightBox;typedef struct{	char *name;	u64 start_time;} GF_ChapterEntry;typedef struct{	GF_ISOM_FULL_BOX	GF_List *list;} GF_ChapterListBox;typedef struct{	GF_ISOM_BOX	u32 trackIDCount;	u32 *trackIDs;} GF_TrackReferenceTypeBox;typedef struct{	GF_ISOM_BOX	u32 majorBrand;	u32 minorVersion;	u32 altCount;	u32 *altBrand;} GF_FileTypeBox;typedef struct{	GF_ISOM_FULL_BOX	u32 *rates;	u32 *times;	u32 count;} GF_ProgressiveDownloadBox;/*	3GPP streaming text boxes*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -