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

📄 mp4file.h

📁 6410BSP1
💻 H
📖 第 1 页 / 共 2 页
字号:
    u_int16_t GetRtpHintNumberOfPackets(        MP4TrackId hintTrackId);    int8_t GetRtpPacketBFrame(        MP4TrackId hintTrackId,        u_int16_t packetIndex);    int32_t GetRtpPacketTransmitOffset(        MP4TrackId hintTrackId,        u_int16_t packetIndex);    void ReadRtpPacket(        MP4TrackId hintTrackId,        u_int16_t packetIndex,        u_int8_t** ppBytes,         u_int32_t* pNumBytes,        u_int32_t ssrc = 0,        bool includeHeader = true,        bool includePayload = true);    MP4Timestamp GetRtpTimestampStart(        MP4TrackId hintTrackId);    void SetRtpTimestampStart(        MP4TrackId hintTrackId,        MP4Timestamp rtpStart);    void AddRtpHint(        MP4TrackId hintTrackId,        bool isBframe,         u_int32_t timestampOffset);    void AddRtpPacket(        MP4TrackId hintTrackId,         bool setMbit,        int32_t transmitOffset);    void AddRtpImmediateData(        MP4TrackId hintTrackId,        const u_int8_t* pBytes,        u_int32_t numBytes);    void AddRtpSampleData(        MP4TrackId hintTrackId,        MP4SampleId sampleId,        u_int32_t dataOffset,        u_int32_t dataLength);    void AddRtpESConfigurationPacket(        MP4TrackId hintTrackId);    void WriteRtpHint(        MP4TrackId hintTrackId,        MP4Duration duration,        bool isSyncSample);    u_int8_t AllocRtpPayloadNumber();    // edit list related    char* MakeTrackEditName(        MP4TrackId trackId,        MP4EditId editId,        const char* name);    MP4EditId AddTrackEdit(        MP4TrackId trackId,        MP4EditId editId = MP4_INVALID_EDIT_ID);    void DeleteTrackEdit(        MP4TrackId trackId,        MP4EditId editId);    u_int32_t GetTrackNumberOfEdits(        MP4TrackId trackId);    MP4Timestamp GetTrackEditStart(        MP4TrackId trackId,        MP4EditId editId);    MP4Duration GetTrackEditTotalDuration(        MP4TrackId trackId,        MP4EditId editId);    MP4Timestamp GetTrackEditMediaStart(        MP4TrackId trackId,        MP4EditId editId);    void SetTrackEditMediaStart(        MP4TrackId trackId,        MP4EditId editId,        MP4Timestamp startTime);    MP4Duration GetTrackEditDuration(        MP4TrackId trackId,        MP4EditId editId);    void SetTrackEditDuration(        MP4TrackId trackId,        MP4EditId editId,        MP4Duration duration);    bool GetTrackEditDwell(        MP4TrackId trackId,        MP4EditId editId);    void SetTrackEditDwell(        MP4TrackId trackId,        MP4EditId editId,        bool dwell);    MP4SampleId GetSampleIdFromEditTime(        MP4TrackId trackId,        MP4Timestamp when,        MP4Timestamp* pStartTime = NULL,        MP4Duration* pDuration = NULL);    /* iTunes metadata handling */ protected:    bool CreateMetadataAtom(const char* name);    bool DeleteMetadataAtom(const char* name, bool try_udta = false);    bool GetMetadataString(const char *atom, char **value, bool try_udta = false);    bool SetMetadataString(const char *atom, const char *value); public:    bool MetadataDelete(void);        /* set metadata */    bool SetMetadataName(const char* value);    bool SetMetadataWriter(const char* value);    bool SetMetadataAlbum(const char* value);    bool SetMetadataArtist(const char* value);    bool SetMetadataTool(const char* value);    bool SetMetadataComment(const char* value);    bool SetMetadataYear(const char* value);    bool SetMetadataTrack(u_int16_t track, u_int16_t totalTracks);    bool SetMetadataDisk(u_int16_t disk, u_int16_t totalDisks);    bool SetMetadataGenre(const char *value);    bool SetMetadataGrouping(const char *value);    bool SetMetadataTempo(u_int16_t tempo);    bool SetMetadataCompilation(u_int8_t compilation);    bool SetMetadataCoverArt(u_int8_t *coverArt, u_int32_t size);    bool SetMetadataFreeForm(char *name,                  u_int8_t* pValue,                  u_int32_t valueSize);     /* get metadata */    bool GetMetadataByIndex(u_int32_t index,                const char** ppName,                u_int8_t** ppValue,                 u_int32_t* pValueSize);    bool GetMetadataName(char** value);    bool GetMetadataWriter(char** value);    bool GetMetadataAlbum(char** value);    bool GetMetadataArtist(char** value);    bool GetMetadataTool(char** value);    bool GetMetadataComment(char** value);    bool GetMetadataYear(char** value);    bool GetMetadataTrack(u_int16_t* track, u_int16_t* totalTracks);    bool GetMetadataDisk(u_int16_t* disk, u_int16_t* totalDisks);    bool GetMetadataGenre(char **value);    bool GetMetadataGrouping(char **value);    bool GetMetadataTempo(u_int16_t* tempo);    bool GetMetadataCompilation(u_int8_t* compilation);    bool GetMetadataCoverArt(u_int8_t **coverArt, u_int32_t* size);    u_int32_t GetMetadataCoverArtCount(void);    bool GetMetadataFreeForm(char *name,                  u_int8_t** pValue,                  u_int32_t* valueSize);    /* delete metadata */    bool DeleteMetadataName();    bool DeleteMetadataWriter();    bool DeleteMetadataAlbum();    bool DeleteMetadataArtist();    bool DeleteMetadataTool();    bool DeleteMetadataComment();    bool DeleteMetadataYear();    bool DeleteMetadataTrack();    bool DeleteMetadataDisk();    bool DeleteMetadataGenre();    bool DeleteMetadataGrouping();    bool DeleteMetadataTempo();    bool DeleteMetadataCompilation();    bool DeleteMetadataCoverArt();    bool DeleteMetadataFreeForm(char *name);    /* end of MP4 API */    /* "protected" interface to be used only by friends in library */    u_int64_t GetPosition(FILE* pFile = NULL);    void SetPosition(u_int64_t pos, FILE* pFile = NULL);    u_int64_t GetSize();    u_int32_t ReadBytes(        u_int8_t* pBytes, u_int32_t numBytes, FILE* pFile = NULL);    u_int64_t ReadUInt(u_int8_t size);    u_int8_t ReadUInt8();    u_int16_t ReadUInt16();    u_int32_t ReadUInt24();    u_int32_t ReadUInt32();    u_int64_t ReadUInt64();    float ReadFixed16();    float ReadFixed32();    float ReadFloat();    char* ReadString();    char* ReadCountedString(        u_int8_t charSize = 1, bool allowExpandedCount = false);    u_int64_t ReadBits(u_int8_t numBits);    void FlushReadBits();    u_int32_t ReadMpegLength();    u_int32_t PeekBytes(        u_int8_t* pBytes, u_int32_t numBytes, FILE* pFile = NULL);    void WriteBytes(u_int8_t* pBytes, u_int32_t numBytes, FILE* pFile = NULL);    void WriteUInt(u_int64_t value, u_int8_t size);    void WriteUInt8(u_int8_t value);    void WriteUInt16(u_int16_t value);    void WriteUInt24(u_int32_t value);    void WriteUInt32(u_int32_t value);    void WriteUInt64(u_int64_t value);    void WriteFixed16(float value);    void WriteFixed32(float value);    void WriteFloat(float value);    void WriteString(char* string);    void WriteCountedString(char* string,         u_int8_t charSize = 1, bool allowExpandedCount = false);    void WriteBits(u_int64_t bits, u_int8_t numBits);    void PadWriteBits(u_int8_t pad = 0);    void FlushWriteBits();    void WriteMpegLength(u_int32_t value, bool compact = false);    void EnableMemoryBuffer(        u_int8_t* pBytes = NULL, u_int64_t numBytes = 0);    void DisableMemoryBuffer(        u_int8_t** ppBytes = NULL, u_int64_t* pNumBytes = NULL);    char GetMode() {        return m_mode;    }    MP4Track* GetTrack(MP4TrackId trackId);    MP4Duration UpdateDuration(MP4Duration duration);    MP4Atom* FindAtom(const char* name);    MP4Atom* AddChildAtom(        const char* parentName,         const char* childName);    MP4Atom* AddChildAtom(        MP4Atom* pParentAtom,         const char* childName);    MP4Atom* InsertChildAtom(        const char* parentName,         const char* childName,         u_int32_t index);    MP4Atom* InsertChildAtom(        MP4Atom* pParentAtom,         const char* childName,         u_int32_t index);    MP4Atom* AddDescendantAtoms(        const char* ancestorName,         const char* childName);    MP4Atom* AddDescendantAtoms(        MP4Atom* pAncestorAtom,        const char* childName);protected:    void Open(const char* fmode);    #ifdef _WIN32    void Open(const wchar_t* fmode);    #endif    void ReadFromFile();    void GenerateTracks();    void BeginWrite();    void FinishWrite();    void CacheProperties();    void RewriteMdat(FILE* pReadFile, FILE* pWriteFile);    bool ShallHaveIods();    const char* TempFileName();    void Rename(const char* existingFileName, const char* newFileName);    void ProtectWriteOperation(char* where);    void FindIntegerProperty(const char* name,         MP4Property** ppProperty, u_int32_t* pIndex = NULL);    void FindFloatProperty(const char* name,         MP4Property** ppProperty, u_int32_t* pIndex = NULL);    void FindStringProperty(const char* name,         MP4Property** ppProperty, u_int32_t* pIndex = NULL);    void FindBytesProperty(const char* name,         MP4Property** ppProperty, u_int32_t* pIndex = NULL);    bool FindProperty(const char* name,        MP4Property** ppProperty, u_int32_t* pIndex = NULL);    MP4TrackId AddVideoTrackDefault(        u_int32_t timeScale,         MP4Duration sampleDuration,        u_int16_t width,         u_int16_t height,         const char *videoType);    MP4TrackId AddCntlTrackDefault(        u_int32_t timeScale,         MP4Duration sampleDuration,        const char *videoType);    void AddTrackToIod(MP4TrackId trackId);    void RemoveTrackFromIod(MP4TrackId trackId, bool shallHaveIods = true);    void AddTrackToOd(MP4TrackId trackId);    void RemoveTrackFromOd(MP4TrackId trackId);    void GetTrackReferenceProperties(const char* trefName,        MP4Property** ppCountProperty, MP4Property** ppTrackIdProperty);    void AddTrackReference(const char* trefName, MP4TrackId refTrackId);    u_int32_t FindTrackReference(const char* trefName, MP4TrackId refTrackId);    void RemoveTrackReference(const char* trefName, MP4TrackId refTrackId);    void AddDataReference(MP4TrackId trackId, const char* url);    char* MakeTrackName(MP4TrackId trackId, const char* name);    u_int8_t ConvertTrackTypeToStreamType(const char* trackType);    void CreateIsmaIodFromFile(        MP4TrackId odTrackId,        MP4TrackId sceneTrackId,        MP4TrackId audioTrackId,         MP4TrackId videoTrackId,        u_int8_t** ppBytes,        u_int64_t* pNumBytes);    MP4Descriptor* CreateESD(        MP4DescriptorProperty* pEsProperty,        u_int32_t esid,        u_int8_t objectType,        u_int8_t streamType,        u_int32_t bufferSize,        u_int32_t bitrate,        const u_int8_t* pConfig,        u_int32_t configLength,        char* url);    void CreateIsmaODUpdateCommandFromFileForFile(        MP4TrackId odTrackId,        MP4TrackId audioTrackId,         MP4TrackId videoTrackId,        u_int8_t** ppBytes,        u_int64_t* pNumBytes);    void CreateIsmaODUpdateCommandFromFileForStream(        MP4TrackId audioTrackId,         MP4TrackId videoTrackId,        u_int8_t** ppBytes,        u_int64_t* pNumBytes);    void CreateIsmaODUpdateCommandForStream(        MP4DescriptorProperty* pAudioEsdProperty,         MP4DescriptorProperty* pVideoEsdProperty,        u_int8_t** ppBytes,        u_int64_t* pNumBytes);    void CreateIsmaSceneCommand(        bool hasAudio,        bool hasVideo,        u_int8_t** ppBytes,         u_int64_t* pNumBytes);protected:    char*            m_fileName;    #ifdef _WIN32    wchar_t*        m_fileName_w;    #endif    FILE*            m_pFile;    u_int64_t        m_orgFileSize;    u_int64_t        m_fileSize;    MP4Atom*        m_pRootAtom;    MP4Integer32Array m_trakIds;    MP4TrackArray    m_pTracks;    MP4TrackId        m_odTrackId;    u_int32_t        m_verbosity;    char            m_mode;    u_int32_t               m_createFlags;    bool            m_useIsma;    // cached properties    MP4IntegerProperty*        m_pModificationProperty;    MP4Integer32Property*    m_pTimeScaleProperty;    MP4IntegerProperty*        m_pDurationProperty;    // read/write in memory    u_int8_t*    m_memoryBuffer;    u_int64_t    m_memoryBufferPosition;    u_int64_t    m_memoryBufferSize;    // bit read/write buffering    u_int8_t    m_numReadBits;    u_int8_t    m_bufReadBits;    u_int8_t    m_numWriteBits;    u_int8_t    m_bufWriteBits;#ifndef _WIN32    char m_tempFileName[64];#else    char m_tempFileName[MAX_PATH + 3];#endif    char m_trakName[1024];    char *m_editName;};#endif /* __MP4_FILE_INCLUDED__ */

⌨️ 快捷键说明

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