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

📄 mp4.cpp

📁 6410BSP1
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    }    return MP4_INVALID_TRACK_ID;}extern "C" u_int16_t MP4FindTrackIndex(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->FindTrackIndex(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return (u_int16_t)-1;}/* specific track properties */extern "C" const char* MP4GetTrackType(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->GetTrackType(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return NULL;}extern "C" const char* MP4GetTrackMediaDataName(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {    __try {            return ((MP4File*)hFile)->GetTrackMediaDataName(trackId);    }    __except (EXCEPTION_EXECUTE_HANDLER) {//    printf("\nMP4GetTrackMediaDataName EXCEPTION....");    }/*        __try {            return ((MP4File*)hFile)->GetTrackMediaDataName(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {            PRINT_ERROR(e);            delete e;        }*/    }    return NULL;}extern "C" MP4Duration MP4GetTrackDuration(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->GetTrackDuration(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return MP4_INVALID_DURATION;}extern "C" u_int32_t MP4GetTrackTimeScale(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->GetTrackTimeScale(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return 0;}extern "C" bool MP4SetTrackTimeScale(    MP4FileHandle hFile, MP4TrackId trackId, u_int32_t value){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            ((MP4File*)hFile)->SetTrackTimeScale(trackId, value);            return true;        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return false;}extern "C" u_int8_t MP4GetTrackAudioMpeg4Type(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->GetTrackAudioMpeg4Type(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return MP4_MPEG4_INVALID_AUDIO_TYPE;}// Replacement to MP4GetTrackVideoType and MP4GetTrackAudioType// Basically does the same thing but with a more self-explanatory nameextern "C" u_int8_t MP4GetTrackEsdsObjectTypeId(     MP4FileHandle hFile, MP4TrackId trackId){  if (MP4_IS_VALID_FILE_HANDLE(hFile)) {    __try {            return ((MP4File*)hFile)->GetTrackEsdsObjectTypeId(trackId);    }    __except (EXCEPTION_EXECUTE_HANDLER) {//      PRINT_ERROR(e);//      delete e;    }  }  return MP4_INVALID_AUDIO_TYPE;}extern "C" MP4Duration MP4GetTrackFixedSampleDuration(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->GetTrackFixedSampleDuration(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return MP4_INVALID_DURATION;}extern "C" u_int32_t MP4GetTrackBitRate(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {      MP4File *pFile = (MP4File *)hFile;        __try {          return pFile->GetTrackIntegerProperty(trackId,                "mdia.minf.stbl.stsd.*.esds.decConfigDescr.avgBitrate");        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }        // if we're here, we can't get the bitrate from above -         // lets calculate it        __try {          MP4Duration trackDur;          trackDur = MP4GetTrackDuration(hFile, trackId);          uint64_t msDuration =             pFile->ConvertFromTrackDuration(trackId, trackDur,                             MP4_MSECS_TIME_SCALE);          if (msDuration == 0) return 0;          MP4Track *pTrack = pFile->GetTrack(trackId);          uint64_t bytes = pTrack->GetTotalOfSampleSizes();          bytes *= TO_U64(8 * 1000);          bytes /= msDuration;          return (uint32_t)bytes;        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }            }    return 0;}extern "C" bool MP4GetTrackESConfiguration(    MP4FileHandle hFile, MP4TrackId trackId,     u_int8_t** ppConfig, u_int32_t* pConfigSize){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            ((MP4File*)hFile)->GetTrackESConfiguration(                trackId, ppConfig, pConfigSize);            return true;        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    *ppConfig = NULL;    *pConfigSize = 0;    return false;}extern "C" bool MP4GetTrackVideoMetadata(    MP4FileHandle hFile, MP4TrackId trackId,     u_int8_t** ppConfig, u_int32_t* pConfigSize){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            ((MP4File*)hFile)->GetTrackVideoMetadata(                trackId, ppConfig, pConfigSize);            return true;        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    *ppConfig = NULL;    *pConfigSize = 0;    return false;}extern "C" bool MP4SetTrackESConfiguration(    MP4FileHandle hFile, MP4TrackId trackId,     const u_int8_t* pConfig, u_int32_t configSize){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            ((MP4File*)hFile)->SetTrackESConfiguration(                trackId, pConfig, configSize);            return true;        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return false;}extern "C" bool MP4GetTrackH264ProfileLevel (MP4FileHandle hFile,                          MP4TrackId trackId,                         uint8_t *pProfile,                         uint8_t *pLevel){  if (MP4_IS_VALID_FILE_HANDLE(hFile)) {    __try {      ((MP4File*)hFile)->GetTrackH264ProfileLevel(trackId, pProfile, pLevel);      return true;    }    __except (EXCEPTION_EXECUTE_HANDLER) {//      PRINT_ERROR(e);//      delete e;    }  }  return false;}extern "C" bool MP4GetTrackH264SeqPictHeaders (MP4FileHandle hFile,                            MP4TrackId trackId,                           uint8_t ***pSeqHeader,                           uint32_t **pSeqHeaderSize,                           uint8_t ***pPictHeader,                           uint32_t **pPictHeaderSize){  if (MP4_IS_VALID_FILE_HANDLE(hFile)) {    __try {      ((MP4File*)hFile)->GetTrackH264SeqPictHeaders(trackId,                             pSeqHeader,                            pSeqHeaderSize,                            pPictHeader,                            pPictHeaderSize);      return true;    }    __except (EXCEPTION_EXECUTE_HANDLER) {//      PRINT_ERROR(e);//      delete e;    }  }  return false;}extern "C" bool MP4GetTrackH264LengthSize (MP4FileHandle hFile,                        MP4TrackId trackId,                       uint32_t *pLength){  if (MP4_IS_VALID_FILE_HANDLE(hFile)) {    __try {      ((MP4File*)hFile)->GetTrackH264LengthSize(trackId,                         pLength);      return true;    }    __except (EXCEPTION_EXECUTE_HANDLER) {//      PRINT_ERROR(e);//      delete e;    }  }  return false;}  extern "C" MP4SampleId MP4GetTrackNumberOfSamples(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->GetTrackNumberOfSamples(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return 0;}extern "C" u_int16_t MP4GetTrackVideoWidth(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {               return ((MP4File*)hFile)->GetTrackIntegerProperty(trackId,                "mdia.minf.stbl.stsd.*.width");        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return 0;}extern "C" u_int16_t MP4GetTrackVideoHeight(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->GetTrackIntegerProperty(trackId,                "mdia.minf.stbl.stsd.*.height");        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return 0;}extern "C" double MP4GetTrackVideoFrameRate(    MP4FileHandle hFile, MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->GetTrackVideoFrameRate(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return 0.0;}extern "C" int MP4GetTrackAudioChannels (MP4FileHandle hFile,                          MP4TrackId trackId){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            return ((MP4File*)hFile)->GetTrackAudioChannels(trackId);        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return -1;}// returns true if the track is a media track encrypted according to ismacrypextern "C" bool MP4IsIsmaCrypMediaTrack(    MP4FileHandle hFile, MP4TrackId trackId){  bool retval = false;  uint32_t verb = MP4GetVerbosity(hFile);  MP4SetVerbosity(hFile, verb & ~(MP4_DETAILS_ERROR));        if (MP4_IS_VALID_FILE_HANDLE(hFile)) {               __try {         retval = ((MP4File*)hFile)->IsIsmaCrypMediaTrack(trackId);            }               __except (EXCEPTION_EXECUTE_HANDLER) {//                       PRINT_ERROR(e);//                       delete e;               }        }    MP4SetVerbosity(hFile, verb);        return retval;}/* generic track properties */extern "C" bool MP4HaveTrackAtom (MP4FileHandle hFile,                   MP4TrackId trackId,                   const char *atomName){  if (MP4_IS_VALID_FILE_HANDLE(hFile)) {    __try {      return ((MP4File*)hFile)->FindTrackAtom(trackId, atomName) != NULL;    }    __except (EXCEPTION_EXECUTE_HANDLER) {//      PRINT_ERROR(e);//      delete e;    }  }  return false;}                  extern "C" bool MP4GetTrackIntegerProperty (    MP4FileHandle hFile, MP4TrackId trackId,     const char* propName,    u_int64_t *retvalue){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            *retvalue = ((MP4File*)hFile)->GetTrackIntegerProperty(trackId,                 propName);            return true;        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return false;}extern "C" bool MP4GetTrackFloatProperty(    MP4FileHandle hFile, MP4TrackId trackId,     const char* propName,    float *retvalue){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            *retvalue = ((MP4File*)hFile)->GetTrackFloatProperty(trackId, propName);            return true;        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return false;}extern "C" bool MP4GetTrackStringProperty(    MP4FileHandle hFile, MP4TrackId trackId,     const char* propName,    const char **retvalue){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            *retvalue = ((MP4File*)hFile)->GetTrackStringProperty(trackId, propName);            return true;        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    return false;}extern "C" bool MP4GetTrackBytesProperty(    MP4FileHandle hFile, MP4TrackId trackId, const char* propName,     u_int8_t** ppValue, u_int32_t* pValueSize){    if (MP4_IS_VALID_FILE_HANDLE(hFile)) {        __try {            ((MP4File*)hFile)->GetTrackBytesProperty(                trackId, propName, ppValue, pValueSize);            return true;        }        __except (EXCEPTION_EXECUTE_HANDLER) {//            PRINT_ERROR(e);//            delete e;        }    }    *ppValue = NULL;    *pValueSize = 0;    return false;}

⌨️ 快捷键说明

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