Improve functions to reduce Duplicate Code
[platform/core/multimedia/libmm-fileinfo.git] / formats / ffmpeg / mm_file_format_mp3.c
index 3fc8ff2..42ffc00 100644 (file)
@@ -614,22 +614,10 @@ __AvParseVBRIHeader(AvFileContentInfo *pInfo, unsigned char *buf)
        memset(&data, 0x00, sizeof(AvVBRIHeadData));
 
        /*      1. Xing Header */
-       if ((pInfo->mpegVersion == AV_MPEG_VER_1) && (pInfo->channels == 2)) {
-               if (buf[36] != 'V') return false;
-               if (buf[37] != 'B') return false;
-               if (buf[38] != 'R') return false;
-               if (buf[39] != 'I') return false;
-       } else if ((pInfo->mpegVersion == AV_MPEG_VER_2) && (pInfo->channels == 1)) {
-               if (buf[36] != 'V') return false;
-               if (buf[37] != 'B') return false;
-               if (buf[38] != 'R') return false;
-               if (buf[39] != 'I') return false;
-       } else {
-               if (buf[36] != 'V') return false;
-               if (buf[37] != 'B') return false;
-               if (buf[38] != 'R') return false;
-               if (buf[39] != 'I') return false;
-       }
+       if (buf[36] != 'V') return false;
+       if (buf[37] != 'B') return false;
+       if (buf[38] != 'R') return false;
+       if (buf[39] != 'I') return false;
 
        /*      2. TOC */
        if (pInfo->pToc)
@@ -684,42 +672,8 @@ __AvGetMp3FrameSize(AvFileContentInfo *pInfo)
 }
 #endif
 
-
 static bool
-__AvGetXingBitrate(AvFileContentInfo *pInfo)
-{
-       float   br, factor;
-       int             padding;
-
-       if (pInfo == NULL || pInfo->bVbr == false)
-               return false;
-
-       if (pInfo->bPadding)
-               padding = 1;
-       else
-               padding = 0;
-
-       if (pInfo->mpegVersion == AV_MPEG_VER_1) {      /* MPEG version 1 */
-               if (pInfo->layer == AV_MP3_LAYER_1)     /* Layer 1 */
-                       factor = 48000.0;
-               else                                            /* Layer 2, 3 */
-                       factor = 144000.0;
-       } else {                                                /* MPEG version 2 */
-               if (pInfo->layer == AV_MP3_LAYER_1)     /*      Layer 1 */
-                       factor = 24000.0;
-               else                                            /*      Layer 2, 3 */
-                       factor = 72000.0;
-       }
-
-       br = (pInfo->frameSize - padding) * pInfo->sampleRate / factor;
-
-       pInfo->bitRate = (int) br;
-
-       return true;
-}
-
-static bool
-__AvGetVBRIBitrate(AvFileContentInfo *pInfo)
+__AvGetBitrate(AvFileContentInfo *pInfo)
 {
        float   br, factor;
        int             padding;
@@ -918,11 +872,8 @@ __AvFindStartOfMp3Header(MMFileIOHandle *hFile,  unsigned char *buf, AvFileConte
                                        debug_msg(RELEASE, "This header is valid. index(%d)\n", index);
                                }
 
-                               if (__AvParseXingHeader(pInfo, pHeader)) {
-                                       __AvGetXingBitrate(pInfo);
-                               } else if (__AvParseVBRIHeader(pInfo, pHeader)) {
-                                       __AvGetVBRIBitrate(pInfo);
-                               }
+                               if (__AvParseXingHeader(pInfo, pHeader) || __AvParseVBRIHeader(pInfo, pHeader))
+                                       __AvGetBitrate(pInfo);
 
                                if (pInfo->bVbr) {
                                        mmfile_free(pHeader);
@@ -1157,10 +1108,8 @@ static int mmf_file_mp3_get_infomation(char *filename, AvFileContentInfo *pInfo)
        if (__AvParseMp3Header(pInfo, header) == false)
                goto EXCEPTION;
 
-       if (__AvParseXingHeader(pInfo, header)) {
-               __AvGetXingBitrate(pInfo);
-       } else if (__AvParseVBRIHeader(pInfo, header)) {
-               __AvGetVBRIBitrate(pInfo);
+       if (__AvParseXingHeader(pInfo, header) || __AvParseVBRIHeader(pInfo, header)) {
+               __AvGetBitrate(pInfo);
        } else {
                __AvGetMp3FrameSize(pInfo);
                pInfo->datafileLen = pInfo->fileLen - pInfo->headerPos;