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

📄 mp4.h

📁 完整的RTP RTSP代码库
💻 H
📖 第 1 页 / 共 3 页
字号:
	MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),	MP4TrackId dstTrackId DEFAULT(MP4_INVALID_TRACK_ID),	MP4Duration dstSampleDuration DEFAULT(MP4_INVALID_DURATION));/* Note this function is not yet implemented */bool MP4ReferenceSample(	MP4FileHandle srcFile,	MP4TrackId srcTrackId, 	MP4SampleId srcSampleId,	MP4FileHandle dstFile,	MP4TrackId dstTrackId,	MP4Duration dstSampleDuration DEFAULT(MP4_INVALID_DURATION));u_int32_t MP4GetSampleSize(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4SampleId sampleId);u_int32_t MP4GetTrackMaxSampleSize(	MP4FileHandle hFile,	MP4TrackId trackId); MP4SampleId MP4GetSampleIdFromTime(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4Timestamp when, 	bool wantSyncSample DEFAULT(false));MP4Timestamp MP4GetSampleTime(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4SampleId sampleId);MP4Duration MP4GetSampleDuration(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4SampleId sampleId);MP4Duration MP4GetSampleRenderingOffset(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4SampleId sampleId);bool MP4SetSampleRenderingOffset(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4SampleId sampleId,	MP4Duration renderingOffset);int8_t MP4GetSampleSync(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4SampleId sampleId);/* rtp hint track operations */bool MP4GetHintTrackRtpPayload(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	char** ppPayloadName DEFAULT(NULL),	u_int8_t* pPayloadNumber DEFAULT(NULL),	u_int16_t* pMaxPayloadSize DEFAULT(NULL),	char **ppEncodingParams DEFAULT(NULL));#define MP4_SET_DYNAMIC_PAYLOAD 0xffbool MP4SetHintTrackRtpPayload(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	const char* pPayloadName,	u_int8_t* pPayloadNumber,	u_int16_t maxPayloadSize DEFAULT(0),	const char *encode_params DEFAULT(NULL),	bool include_rtp_map DEFAULT(true),	bool include_mpeg4_esid DEFAULT(true));const char* MP4GetSessionSdp(	MP4FileHandle hFile);bool MP4SetSessionSdp(	MP4FileHandle hFile,	const char* sdpString);bool MP4AppendSessionSdp(	MP4FileHandle hFile,	const char* sdpString);const char* MP4GetHintTrackSdp(	MP4FileHandle hFile,	MP4TrackId hintTrackId);bool MP4SetHintTrackSdp(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	const char* sdpString);bool MP4AppendHintTrackSdp(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	const char* sdpString);MP4TrackId MP4GetHintTrackReferenceTrackId(	MP4FileHandle hFile,	MP4TrackId hintTrackId);bool MP4ReadRtpHint(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	MP4SampleId hintSampleId,	u_int16_t* pNumPackets DEFAULT(NULL));u_int16_t MP4GetRtpHintNumberOfPackets(	MP4FileHandle hFile,	MP4TrackId hintTrackId);int8_t MP4GetRtpPacketBFrame(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	u_int16_t packetIndex);int32_t MP4GetRtpPacketTransmitOffset(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	u_int16_t packetIndex);bool MP4ReadRtpPacket(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	u_int16_t packetIndex,	u_int8_t** ppBytes, 	u_int32_t* pNumBytes,	u_int32_t ssrc DEFAULT(0),	bool includeHeader DEFAULT(true),	bool includePayload DEFAULT(true));MP4Timestamp MP4GetRtpTimestampStart(	MP4FileHandle hFile,	MP4TrackId hintTrackId);bool MP4SetRtpTimestampStart(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	MP4Timestamp rtpStart);bool MP4AddRtpHint(	MP4FileHandle hFile,	MP4TrackId hintTrackId);bool MP4AddRtpVideoHint(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	bool isBframe DEFAULT(false), 	u_int32_t timestampOffset DEFAULT(0));bool MP4AddRtpPacket(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	bool setMbit DEFAULT(false),	int32_t transmitOffset DEFAULT(0));bool MP4AddRtpImmediateData(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	const u_int8_t* pBytes,	u_int32_t numBytes);bool MP4AddRtpSampleData(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	MP4SampleId sampleId,	u_int32_t dataOffset,	u_int32_t dataLength);bool MP4AddRtpESConfigurationPacket(	MP4FileHandle hFile,	MP4TrackId hintTrackId);bool MP4WriteRtpHint(	MP4FileHandle hFile,	MP4TrackId hintTrackId,	MP4Duration duration,	bool isSyncSample DEFAULT(true));/* 3GP specific utilities */bool MP4Make3GPCompliant(	const char* fileName,	u_int32_t verbosity DEFAULT(0),	char* majorBrand DEFAULT(0),	u_int32_t minorVersion DEFAULT(0),	char** supportedBrands DEFAULT(NULL),	u_int32_t supportedBrandsCount DEFAULT(0),	bool deleteIodsAtom DEFAULT(true));/* ISMA specific utilities */bool MP4MakeIsmaCompliant(const char* fileName, 	u_int32_t verbosity DEFAULT(0),	bool addIsmaComplianceSdp DEFAULT(true));char* MP4MakeIsmaSdpIod(	u_int8_t videoProfile,	u_int32_t videoBitrate,	u_int8_t* videoConfig,	u_int32_t videoConfigLength,	u_int8_t audioProfile,	u_int32_t audioBitrate,	u_int8_t* audioConfig,	u_int32_t audioConfigLength,	u_int32_t verbosity DEFAULT(0));/* edit list *//* NOTE this section of functionality  * has not yet been fully tested  */MP4EditId MP4AddTrackEdit(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId DEFAULT(MP4_INVALID_EDIT_ID),	MP4Timestamp startTime DEFAULT(0),	MP4Duration duration DEFAULT(0),	bool dwell DEFAULT(false));bool MP4DeleteTrackEdit(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId);u_int32_t MP4GetTrackNumberOfEdits(	MP4FileHandle hFile,	MP4TrackId trackId);MP4Timestamp MP4GetTrackEditStart(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId);MP4Duration MP4GetTrackEditTotalDuration(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId DEFAULT(MP4_INVALID_EDIT_ID));MP4Timestamp MP4GetTrackEditMediaStart(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId);bool MP4SetTrackEditMediaStart(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId,	MP4Timestamp startTime);MP4Duration MP4GetTrackEditDuration(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId);bool MP4SetTrackEditDuration(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId,	MP4Duration duration);int8_t MP4GetTrackEditDwell(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId);bool MP4SetTrackEditDwell(	MP4FileHandle hFile,	MP4TrackId trackId,	MP4EditId editId,	bool dwell);bool MP4ReadSampleFromEditTime(	/* input parameters */	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4Timestamp when, 	/* input/output parameters */	u_int8_t** ppBytes, 	u_int32_t* pNumBytes, 	/* output parameters */	MP4Timestamp* pStartTime DEFAULT(NULL), 	MP4Duration* pDuration DEFAULT(NULL),	MP4Duration* pRenderingOffset DEFAULT(NULL), 	bool* pIsSyncSample DEFAULT(NULL));MP4SampleId MP4GetSampleIdFromEditTime(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4Timestamp when, 	MP4Timestamp* pStartTime DEFAULT(NULL), 	MP4Duration* pDuration DEFAULT(NULL));/* iTunes metadata handling */bool MP4MetadataDelete(MP4FileHandle hFile);bool MP4GetMetadataByIndex(MP4FileHandle hFile, u_int32_t index,			   char** ppName, // need to free memory			   u_int8_t** ppValue,  // need to free			   u_int32_t* pValueSize);bool MP4SetMetadataName(MP4FileHandle hFile, const char* value);bool MP4GetMetadataName(MP4FileHandle hFile, char** value);bool MP4DeleteMetadataName(MP4FileHandle hFile);bool MP4SetMetadataArtist(MP4FileHandle hFile, const char* value);bool MP4GetMetadataArtist(MP4FileHandle hFile, char** value);bool MP4DeleteMetadataArtist(MP4FileHandle hFile);bool MP4SetMetadataWriter(MP4FileHandle hFile, const char* value);bool MP4GetMetadataWriter(MP4FileHandle hFile, char** value);bool MP4DeleteMetadataWriter(MP4FileHandle hFile);bool MP4SetMetadataComment(MP4FileHandle hFile, const char* value);bool MP4GetMetadataComment(MP4FileHandle hFile, char** value);bool MP4DeleteMetadataComment(MP4FileHandle hFile);bool MP4SetMetadataTool(MP4FileHandle hFile, const char* value);bool MP4GetMetadataTool(MP4FileHandle hFile, char** value);bool MP4DeleteMetadataTool(MP4FileHandle hFile);bool MP4SetMetadataYear(MP4FileHandle hFile, const char* value);bool MP4GetMetadataYear(MP4FileHandle hFile, char** value);bool MP4DeleteMetadataYear(MP4FileHandle hFile);bool MP4SetMetadataAlbum(MP4FileHandle hFile, const char* value);bool MP4GetMetadataAlbum(MP4FileHandle hFile, char** value);bool MP4DeleteMetadataAlbum(MP4FileHandle hFile);bool MP4SetMetadataTrack(MP4FileHandle hFile,			 u_int16_t track, u_int16_t totalTracks);bool MP4GetMetadataTrack(MP4FileHandle hFile,			 u_int16_t* track, u_int16_t* totalTracks);bool MP4DeleteMetadataTrack(MP4FileHandle hFile);bool MP4SetMetadataDisk(MP4FileHandle hFile,			u_int16_t disk, u_int16_t totalDisks);bool MP4GetMetadataDisk(MP4FileHandle hFile,			u_int16_t* disk, u_int16_t* totalDisks);bool MP4DeleteMetadataDisk(MP4FileHandle hFile);bool MP4SetMetadataGenre(MP4FileHandle hFile, const char *genre);bool MP4GetMetadataGenre(MP4FileHandle hFile, char **genre);bool MP4DeleteMetadataGenre(MP4FileHandle hFile);bool MP4SetMetadataGrouping(MP4FileHandle hFile, const char *grouping);bool MP4GetMetadataGrouping(MP4FileHandle hFile, char **grouping);bool MP4DeleteMetadataGrouping(MP4FileHandle hFile);bool MP4SetMetadataTempo(MP4FileHandle hFile, u_int16_t tempo);bool MP4GetMetadataTempo(MP4FileHandle hFile, u_int16_t* tempo);bool MP4DeleteMetadataTempo(MP4FileHandle hFile);bool MP4SetMetadataCompilation(MP4FileHandle hFile, u_int8_t cpl);bool MP4GetMetadataCompilation(MP4FileHandle hFile, u_int8_t* cpl);bool MP4DeleteMetadataCompilation(MP4FileHandle hFile);bool MP4SetMetadataPartOfGaplessAlbum(MP4FileHandle hFile, uint8_t pgap);bool MP4GetMetadataPartOfGaplessAlbum(MP4FileHandle hFile, uint8_t *pgap);bool MP4DeleteMetadataPartOfGaplessAlbum(MP4FileHandle hFile);bool MP4SetMetadataCoverArt(MP4FileHandle hFile,			    u_int8_t *coverArt, u_int32_t size);bool MP4GetMetadataCoverArt(MP4FileHandle hFile,			    u_int8_t **coverArt, u_int32_t* size,			    uint32_t index DEFAULT(0));u_int32_t MP4GetMetadataCoverArtCount(MP4FileHandle hFile);bool MP4DeleteMetadataCoverArt(MP4FileHandle hFile);bool MP4SetMetadataAlbumArtist(MP4FileHandle hFile, const char* value);bool MP4GetMetadataAlbumArtist(MP4FileHandle hFile,    char** value);bool MP4DeleteMetadataAlbumArtist(MP4FileHandle hFile); bool MP4SetMetadataFreeForm(MP4FileHandle hFile, const char *name,			    const u_int8_t* pValue, u_int32_t valueSize, const char *owner DEFAULT(NULL));bool MP4GetMetadataFreeForm(MP4FileHandle hFile, const char *name,			    u_int8_t** pValue, u_int32_t* valueSize, const char *owner DEFAULT(NULL));bool MP4DeleteMetadataFreeForm(MP4FileHandle hFile, const char *name, const char *owner DEFAULT(NULL));/* time conversion utilties *//* predefined values for timeScale parameter below */#define MP4_SECONDS_TIME_SCALE		1#define MP4_MILLISECONDS_TIME_SCALE 1000#define MP4_MICROSECONDS_TIME_SCALE 1000000#define MP4_NANOSECONDS_TIME_SCALE 	1000000000#define MP4_SECS_TIME_SCALE 	MP4_SECONDS_TIME_SCALE#define MP4_MSECS_TIME_SCALE	MP4_MILLISECONDS_TIME_SCALE#define MP4_USECS_TIME_SCALE	MP4_MICROSECONDS_TIME_SCALE#define MP4_NSECS_TIME_SCALE	MP4_NANOSECONDS_TIME_SCALEu_int64_t MP4ConvertFromMovieDuration(	MP4FileHandle hFile,	MP4Duration duration,	u_int32_t timeScale);u_int64_t MP4ConvertFromTrackTimestamp(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4Timestamp timeStamp,	u_int32_t timeScale);MP4Timestamp MP4ConvertToTrackTimestamp(	MP4FileHandle hFile,	MP4TrackId trackId, 	u_int64_t timeStamp,	u_int32_t timeScale);u_int64_t MP4ConvertFromTrackDuration(	MP4FileHandle hFile,	MP4TrackId trackId, 	MP4Duration duration,	u_int32_t timeScale);MP4Duration MP4ConvertToTrackDuration(	MP4FileHandle hFile,	MP4TrackId trackId, 	u_int64_t duration,	u_int32_t timeScale);char* MP4BinaryToBase16(	const u_int8_t* pData, 	u_int32_t dataSize);char* MP4BinaryToBase64(	const u_int8_t* pData, 	u_int32_t dataSize);uint8_t *Base64ToBinary(const char *pData, 			uint32_t decodeSize, 			uint32_t *pDataSize);void MP4Free(void *p);  void MP4SetLibFunc(lib_message_func_t libfunc);#ifdef __cplusplus}#endif/* undefined our utlity macro to avoid conflicts */#undef DEFAULT#endif /* __MP4_INCLUDED__ */

⌨️ 快捷键说明

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