From 61ef788dd6a63febfc85f712c4764eb3a8973deb Mon Sep 17 00:00:00 2001 From: "jiyong.min" Date: Tue, 10 Sep 2019 14:44:28 +0900 Subject: [PATCH] Improve functions to reduce Duplicate Code Change-Id: Ifc5191726c11039a818ecda28aeba609c5c02042 --- formats/ffmpeg/mm_file_format_mp3.c | 69 ++++------------------------ utils/mm_file_util_string.c | 90 ++++++++++++------------------------- 2 files changed, 38 insertions(+), 121 deletions(-) diff --git a/formats/ffmpeg/mm_file_format_mp3.c b/formats/ffmpeg/mm_file_format_mp3.c index 3fc8ff2..42ffc00 100644 --- a/formats/ffmpeg/mm_file_format_mp3.c +++ b/formats/ffmpeg/mm_file_format_mp3.c @@ -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; diff --git a/utils/mm_file_util_string.c b/utils/mm_file_util_string.c index 22e48ff..bb6fee8 100755 --- a/utils/mm_file_util_string.c +++ b/utils/mm_file_util_string.c @@ -27,25 +27,6 @@ #include "mm_file_utils.h" #ifdef __MMFILE_MEM_TRACE__ -EXPORT_API -int mmfile_util_wstrlen(unsigned short *wText) -{ - int n = 0; - - if (NULL == wText) { - debug_error(DEBUG, "wText is NULL\n"); - return MMFILE_UTIL_FAIL; - } - - n = 0; - - while (*(wText + n) != 0) { - n++; - } - - return n; -} - short __WmLngSwapShort(short aShort) { return ((aShort << 8) + (aShort >> 8)); @@ -89,18 +70,6 @@ char *mmfile_string_convert_debug(const char *str, unsigned int len, } EXPORT_API -char **mmfile_strsplit(const char *string, const char *delimiter) -{ - return g_strsplit(string, delimiter, -1); -} - -EXPORT_API -void mmfile_strfreev(char **str_array) -{ - g_strfreev(str_array); -} - -EXPORT_API char *mmfile_strdup_debug(const char *str, const char *func, unsigned int line) { char *temp = NULL; @@ -121,25 +90,6 @@ char *mmfile_strdup_debug(const char *str, const char *func, unsigned int line) #else /* __MMFILE_MEM_TRACE__ */ EXPORT_API -int mmfile_util_wstrlen(unsigned short *wText) -{ - int n = 0; - - if (NULL == wText) { - debug_error(DEBUG, "wText is NULL\n"); - return MMFILE_UTIL_FAIL; - } - - n = 0; - - while (*(wText + n) != 0) { - n++; - } - - return n; -} - -EXPORT_API char *mmfile_get_charset(const char *str) { UCharsetDetector *ucsd = NULL; @@ -237,25 +187,43 @@ char *mmfile_string_convert(const char *str, unsigned int len, } EXPORT_API -char **mmfile_strsplit(const char *string, const char *delimiter) +char *mmfile_strdup(const char *str) { - return g_strsplit(string, delimiter, -1); + if (!str) + return NULL; + + return strdup(str); } +#endif /*__MMFILE_MEM_TRACE__*/ + EXPORT_API -void mmfile_strfreev(char **str_array) +int mmfile_util_wstrlen(unsigned short *wText) { - g_strfreev(str_array); + int n = 0; + + if (NULL == wText) { + debug_error(DEBUG, "wText is NULL\n"); + return MMFILE_UTIL_FAIL; + } + + n = 0; + + while (*(wText + n) != 0) { + n++; + } + + return n; } EXPORT_API -char *mmfile_strdup(const char *str) +char **mmfile_strsplit(const char *string, const char *delimiter) { - if (!str) - return NULL; - - return strdup(str); + return g_strsplit(string, delimiter, -1); } -#endif /*__MMFILE_MEM_TRACE__*/ - +EXPORT_API +void mmfile_strfreev(char **str_array) +{ + g_strfreev(str_array); +} -- 2.7.4