mp4.h
来自「faac-1.25.rar音频编解码器demo」· C头文件 代码 · 共 1,147 行 · 第 1/3 页
H
1,147 行
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 0xff
bool 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,
const char** ppName,
u_int8_t** ppValue, u_int32_t* pValueSize);
bool MP4SetMetadataName(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataName(MP4FileHandle hFile, char** value);
bool MP4SetMetadataArtist(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataArtist(MP4FileHandle hFile, char** value);
bool MP4SetMetadataWriter(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataWriter(MP4FileHandle hFile, char** value);
bool MP4SetMetadataComment(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataComment(MP4FileHandle hFile, char** value);
bool MP4SetMetadataTool(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataTool(MP4FileHandle hFile, char** value);
bool MP4SetMetadataYear(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataYear(MP4FileHandle hFile, char** value);
bool MP4SetMetadataAlbum(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataAlbum(MP4FileHandle hFile, char** value);
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 MP4SetMetadataDisk(MP4FileHandle hFile,
u_int16_t disk, u_int16_t totalDisks);
bool MP4GetMetadataDisk(MP4FileHandle hFile,
u_int16_t* disk, u_int16_t* totalDisks);
bool MP4SetMetadataGenre(MP4FileHandle hFile, const char *genre);
bool MP4GetMetadataGenre(MP4FileHandle hFile, char **genre);
bool MP4SetMetadataTempo(MP4FileHandle hFile, u_int16_t tempo);
bool MP4GetMetadataTempo(MP4FileHandle hFile, u_int16_t* tempo);
bool MP4SetMetadataCompilation(MP4FileHandle hFile, u_int8_t cpl);
bool MP4GetMetadataCompilation(MP4FileHandle hFile, u_int8_t* cpl);
bool MP4SetMetadataCoverArt(MP4FileHandle hFile,
u_int8_t *coverArt, u_int32_t size);
bool MP4GetMetadataCoverArt(MP4FileHandle hFile,
u_int8_t **coverArt, u_int32_t* size);
bool MP4SetMetadataFreeForm(MP4FileHandle hFile, char *name,
u_int8_t* pValue, u_int32_t valueSize);
bool MP4GetMetadataFreeForm(MP4FileHandle hFile, char *name,
u_int8_t** pValue, u_int32_t* valueSize);
/* 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_SCALE
u_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);
#ifdef __cplusplus
}
#endif
/* undefined our utlity macro to avoid conflicts */
#undef DEFAULT
#endif /* __MP4_INCLUDED__ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?