Format validity related code cleanup 98/234698/2
authorMinje Ahn <minje.ahn@samsung.com>
Thu, 28 May 2020 05:23:11 +0000 (14:23 +0900)
committerMinje ahn <minje.ahn@samsung.com>
Thu, 28 May 2020 23:21:22 +0000 (23:21 +0000)
Change-Id: I49beec2d64346b9ec0d04a0cfadd563a2c81e2fc
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
utils/mm_file_util_validity.c

index 8e13f4d69d2cb461f963b9b9318055a2a04ad4d7..bcdb2cd9368afcd66f80c1c8b369d3ca6adcd330 100755 (executable)
 /***********************************************************************/
 /*                     Internal functions                              */
 /***********************************************************************/
-static int _MMFileSearchID3Tag(MMFileIOHandle *fp, unsigned int *offset);
+static bool _MMFileSearchID3Tag(MMFileIOHandle *fp, unsigned int *offset);
 static int _MMFileIsMP3Header(void *header);
-static int _MMFileIsMP4Header(void *header);
-static int _MMFileIsMIDHeader(void *header);
-static int _MMFileIsMMFHeader(void *header);
-static int _MMFileIsASFHeader(void *header);
-static int _MMFileIsAMRHeader(void *header);
+static bool _MMFileIsMMFHeader(void *header);
 static int _MMFileIsMPEGTSHeader(MMFileIOHandle *fp);
-static int _MMFileIsMPEGPSHeader(void *header);
-static int _MMFileIsMPEGAUDIOHeader(void *header);
-static int _MMFileIsMPEGVIDEOHeader(void *header);
 
 /***********************************************************************/
 /*                     MP3 Header Check API                            */
@@ -63,31 +56,22 @@ int MMFileFormatIsValidMP3(MMFileIOHandle *pFileIO, const char *mmfileuri, int f
        int frameSize = 0;
        int ret = 0, count = 0, offset = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        filesize = mmfile_get_size(fp);
 
        if (filesize < _MMFILE_MP3_HEADER_LENGTH) {
-               debug_error(DEBUG, "header is too small.\n");
-               ret = 0;
+               debug_error(DEBUG, "header is too small.");
                goto exit;
        }
 
        /* Search the existance of ID3 tag */
-       ret = _MMFileSearchID3Tag(fp, &sizeID3);
-       if (ret == 0) {
-               debug_error(RELEASE, "Error in searching the ID3 tag\n");
+       if (!_MMFileSearchID3Tag(fp, &sizeID3)) {
+               debug_error(RELEASE, "Error in searching the ID3 tag");
        /* goto exit; */
        }
 
-       ret = 0;
-
        /* set begin and end point at the file */
        startoffset += sizeID3;
        endoffset = startoffset + 102400;
@@ -102,8 +86,7 @@ int MMFileFormatIsValidMP3(MMFileIOHandle *pFileIO, const char *mmfileuri, int f
                mmfile_seek(fp, i, MMFILE_SEEK_SET);
                readed = mmfile_read(fp, buffer, _MMFILE_MP3_BUFFER_LENGTH);
                if (readed < _MMFILE_MP3_HEADER_LENGTH) {
-                       debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-                       ret = 0;
+                       debug_error(RELEASE, "read error");
                        break;
                }
 
@@ -120,7 +103,7 @@ int MMFileFormatIsValidMP3(MMFileIOHandle *pFileIO, const char *mmfileuri, int f
                                }
 
                                if ((j + frameSize) >= (readed - _MMFILE_MP3_HEADER_LENGTH)) {
-                                       debug_msg(RELEASE, "MP3 coner hit %d %d\n", j, frameSize);
+                                       debug_msg(RELEASE, "MP3 coner hit %d %d", j, frameSize);
                                        break;
                                }
 
@@ -131,7 +114,7 @@ int MMFileFormatIsValidMP3(MMFileIOHandle *pFileIO, const char *mmfileuri, int f
                                        count++;
                                        if (count == frameCnt) {
                                                ret = 1;
-                                               debug_msg(RELEASE, "Header Detected at %d\n", i + j);
+                                               debug_msg(RELEASE, "Header Detected at %d", i + j);
                                                goto exit;
                                        }
                                } else {
@@ -147,7 +130,7 @@ int MMFileFormatIsValidMP3(MMFileIOHandle *pFileIO, const char *mmfileuri, int f
        }
 
 failMP3:
-       debug_msg(RELEASE, "Header Not Detected at: %d\n", i + j);
+       debug_msg(RELEASE, "Header Not Detected at: %d", i + j);
  exit:
        if (pFileIO == NULL && fp != NULL)
                mmfile_close(fp);
@@ -171,37 +154,28 @@ int MMFileFormatIsValidAAC(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
        unsigned int sizeID3 = 0;
        long long    filesize = 0;
        int readed = 0, i = 0, j = 0;
+       int ret = 0;
        int startoffset = 0;
        int endoffset = 0;
-       int ret = 0;
        unsigned int sync = 0;
        int frameSize = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        filesize = mmfile_get_size(fp);
 
        if (filesize < _MMFILE_AAC_HEADER_LENGTH) {
-               debug_error(DEBUG, "header is too small.\n");
-               ret = 0;
+               debug_error(DEBUG, "header is too small.");
                goto exit;
        }
 
        /* Search the existance of ID3 tag */
-       ret = _MMFileSearchID3Tag(fp, &sizeID3);
-       if (ret == 0) {
-               debug_error(RELEASE, "Error in searching the ID3 tag\n");
+       if (!_MMFileSearchID3Tag(fp, &sizeID3)) {
+               debug_error(RELEASE, "Error in searching the ID3 tag");
        /* goto exit; */
        }
 
-       ret = 0;
-
        /* set begin and end point at the file */
        startoffset += sizeID3;
        endoffset = startoffset + 10240;
@@ -216,12 +190,11 @@ int MMFileFormatIsValidAAC(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
                readed = mmfile_read(fp, buffer, _MMFILE_AAC_BUFFER_LENGTH);
 
                if (readed < _MMFILE_AAC_HEADER_LENGTH) {
-                       debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-                       ret = 0;
+                       debug_error(RELEASE, "read error");
                        break;
                }
 
-               debug_msg(RELEASE, "read error. size = %d. i = %d\n", readed, i);
+               debug_msg(RELEASE, "read error. size = %d. i = %d", readed, i);
 
                for (j = 0; (j < readed - _MMFILE_AAC_HEADER_LENGTH); j++) {
 
@@ -238,7 +211,7 @@ int MMFileFormatIsValidAAC(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
                                        goto fail;
                                }
                                if ((j + frameSize) >= (readed - 2)) {
-                                       debug_msg(RELEASE, "AAC coner hit %d %d\n", j, frameSize);
+                                       debug_msg(RELEASE, "AAC coner hit %d %d", j, frameSize);
                                        break;
                                }
 
@@ -246,12 +219,12 @@ int MMFileFormatIsValidAAC(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 
                                if ((sync & 0xFFF6) == 0xFFF0) {
                                        ret = 1;
-                                       debug_msg(RELEASE, "AAC ADTS Header Detected at %d\n", i + j);
+                                       debug_msg(RELEASE, "AAC ADTS Header Detected at %d", i + j);
                                        goto exit;
                                }
                        } else if (!memcmp((buffer + j), "ADIF", 4)) {
                                ret = 1;
-                               debug_msg(RELEASE, "AAC ADIF Header Detected at %d\n", i + j);
+                               debug_msg(RELEASE, "AAC ADIF Header Detected at %d", i + j);
                                goto exit;
                        }
                }
@@ -263,7 +236,7 @@ int MMFileFormatIsValidAAC(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 
 
 fail:
-       debug_msg(RELEASE, "Header Detected Failed\n");
+       debug_msg(RELEASE, "Header Detected Failed");
 exit:
        if (pFileIO == NULL && fp != NULL)
                mmfile_close(fp);
@@ -293,32 +266,22 @@ int MMFileFormatIsValidOGG(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
        int ret = 0;
        int check_limit = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       ret = 0;
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        filesize = mmfile_get_size(fp);
 
        if (filesize < _MMFILE_OGG_HEADER_LENGTH) {
-               debug_error(DEBUG, "header is too small.\n");
-               ret = 0;
+               debug_error(DEBUG, "header is too small.");
                goto exit;
        }
 
        /* Search the existance of ID3 tag */
-       ret = _MMFileSearchID3Tag(fp, &sizeID3);
-       if (ret == 0) {
-               debug_error(RELEASE, "Error in searching the ID3 tag\n");
+       if (!_MMFileSearchID3Tag(fp, &sizeID3)) {
+               debug_error(RELEASE, "Error in searching the ID3 tag");
        /* goto exit; */
        }
 
-       ret = 0;
-
        /* set begin and end point at the file */
        startoffset += sizeID3;
        endoffset = filesize - _MMFILE_OGG_HEADER_LENGTH;
@@ -330,15 +293,14 @@ int MMFileFormatIsValidOGG(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
                mmfile_seek(fp, i, MMFILE_SEEK_SET);
                readed = mmfile_read(fp, buffer, _MMFILE_OGG_BUFFER_LENGTH);
                if (readed < _MMFILE_OGG_HEADER_LENGTH) {
-                       debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-                       ret = 0;
+                       debug_error(RELEASE, "read error");
                        break;
                }
 
                for (j = 0; (j <= readed - _MMFILE_OGG_HEADER_LENGTH); j++) {
                        if (!memcmp(buffer + j, "OggS", 4)) {
                                ret = 1;
-                               debug_msg(RELEASE, "Header Detected at %d\n", i + j);
+                               debug_msg(RELEASE, "Header Detected at %d", i + j);
                                goto exit;
                        }
                }
@@ -376,24 +338,16 @@ int MMFileFormatIsValidMID(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
        int ret = 0;
        int check_limit = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        filesize = mmfile_get_size(fp);
 
        if (filesize < _MMFILE_MIDI_HEADER_LENGTH) {
-               debug_error(DEBUG, "header is too small.\n");
-               ret = 0;
+               debug_error(DEBUG, "header is too small.");
                goto exit;
        }
 
-       ret = 0;
-
        /* set begin and end point at the file */
        startoffset = 0;
        endoffset = filesize - _MMFILE_MIDI_HEADER_LENGTH;
@@ -405,15 +359,14 @@ int MMFileFormatIsValidMID(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
                mmfile_seek(fp, i, MMFILE_SEEK_SET);
                readed = mmfile_read(fp, buffer, _MMFILE_MIDI_BUFFER_LENGTH);
                if (readed < _MMFILE_MIDI_HEADER_LENGTH) {
-                       debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-                       ret = 0;
+                       debug_error(RELEASE, "read error");
                        break;
                }
 
                for (j = 0; (j <= readed - _MMFILE_MIDI_HEADER_LENGTH); j++) {
-                       if (1 == _MMFileIsMIDHeader(buffer + j)) {
+                       if (!memcmp(buffer + j, "MThd", 4) || !memcmp(buffer + j, "XMF_", 4) || !memcmp(buffer + j, "IREZ", 4)) {
                                ret = 1;
-                               debug_msg(RELEASE, "Header Detected at %d\n", i + j);
+                               debug_msg(RELEASE, "Header Detected at %d", i + j);
                                goto exit;
                        }
                }
@@ -441,31 +394,21 @@ int MMFileFormatIsValidWAV(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_WAV_HEADER_LENGTH] = {0, };
-       int           readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_WAV_HEADER_LENGTH);
-
-       if (_MMFILE_WAV_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_WAV_HEADER_LENGTH) != _MMFILE_WAV_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        if (!memcmp(buffer, "RIFF", 4) && !memcmp(buffer + 8, "WAVE", 4)) {
-               debug_msg(RELEASE, "Header Detected\n");
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -488,44 +431,35 @@ int MMFileFormatIsValidMP4(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_MP4_HEADER_LENGTH] = {0, };
        long long     filesize = 0;
-       int           readed = 0;
        unsigned int  startoffset = 0;
        int ret = 0;
        unsigned int check_limit = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        filesize = mmfile_get_size(fp);
 
        if (filesize < _MMFILE_MP4_HEADER_LENGTH) {
-               debug_error(DEBUG, "header is too small.\n");
-               ret = 0;
+               debug_error(DEBUG, "header is too small.");
                goto exit;
        }
 
-       ret = 0;
-
        /**@note weak check*/
        check_limit = (filesize > _MMFILE_MP4_CHECK_LIMIT) ? _MMFILE_MP4_CHECK_LIMIT : filesize;
        for (startoffset = 0; check_limit - (startoffset + _MMFILE_MP4_HEADER_LENGTH) > 0; startoffset++) {
                mmfile_seek(fp, startoffset, MMFILE_SEEK_SET);
 
-               readed = mmfile_read(fp, buffer, _MMFILE_MP4_HEADER_LENGTH);
-               if (readed != _MMFILE_MP4_HEADER_LENGTH) {
-                       debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-                       ret = 0;
+               if (mmfile_read(fp, buffer, _MMFILE_MP4_HEADER_LENGTH) != _MMFILE_MP4_HEADER_LENGTH) {
+                       debug_error(RELEASE, "read error");
                        goto exit;
                }
 
                /*input is 4byte*/
-               if (1 == _MMFileIsMP4Header(buffer)) {
-                       debug_msg(RELEASE, "MP4 Header Detected\n");
+               if (!memcmp(buffer, "moov", 4) || !memcmp(buffer, "mdat", 4) || !memcmp(buffer, "ftyp", 4) ||
+                       !memcmp(buffer, "free", 4) || !memcmp(buffer, "uuid", 4) || !memcmp(buffer, "skip", 4) ||
+                       !memcmp(buffer, "PICT", 4) || !memcmp(buffer, "wide", 4) || !memcmp(buffer, "prfl", 4)) {
+                       debug_msg(RELEASE, "MP4 Header Detected");
                        ret = 1;
                        goto exit;
                }
@@ -549,31 +483,21 @@ int MMFileFormatIsValidAVI(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_AVI_HEADER_LENGTH] = {0, };
-       int           readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_AVI_HEADER_LENGTH);
-
-       if (_MMFILE_AVI_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_AVI_HEADER_LENGTH) != _MMFILE_AVI_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        if (!memcmp(buffer, "RIFF", 4) && !memcmp(buffer + 8, "AVI", 3)) {
-               debug_msg(RELEASE, "Header Detected \n");
+               debug_msg(RELEASE, "Header Detected ");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -594,31 +518,25 @@ int MMFileFormatIsValidASF(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 #define _MMFILE_ASF_HEADER_LENGTH 16
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_ASF_HEADER_LENGTH] = {0, };
-       int           readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_ASF_HEADER_LENGTH);
-
-       if (_MMFILE_ASF_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_ASF_HEADER_LENGTH) != _MMFILE_ASF_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
-       if (1 == _MMFileIsASFHeader(buffer)) {
-               debug_msg(RELEASE, "Header Detected\n");
+       /* ID: 30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C */
+       if ((buffer[0] == 0x30) && (buffer[1] == 0x26) && (buffer[2] == 0xB2) && (buffer[3] == 0x75) &&
+           (buffer[4] == 0x8E) && (buffer[5] == 0x66) && (buffer[6] == 0xCF) && (buffer[7] == 0x11) &&
+           (buffer[8] == 0xA6) && (buffer[9] == 0xD9) && (buffer[10] == 0x00) && (buffer[11] == 0xAA) &&
+           (buffer[12] == 0x00) && (buffer[13] == 0x62) && (buffer[14] == 0xCE) && (buffer[15] == 0x6C)) {
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -659,31 +577,21 @@ int MMFileFormatIsValidMMF(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_MMF_HEADER_LENGTH] = {0, };
-       int           readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_MMF_HEADER_LENGTH);
-
-       if (_MMFILE_MMF_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_MMF_HEADER_LENGTH) != _MMFILE_MMF_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
-       if (1 == _MMFileIsMMFHeader(buffer)) {
-               debug_msg(RELEASE, "Header Detected\n");
+       if (_MMFileIsMMFHeader(buffer)) {
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -705,31 +613,21 @@ int MMFileFormatIsValidIMY(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_IMY_HEADER_LENGTH] = {0, };
-       int           readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_IMY_HEADER_LENGTH);
-
-       if (_MMFILE_IMY_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_IMY_HEADER_LENGTH) != _MMFILE_IMY_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        if (!memcmp(buffer, "BEGIN:IMELODY", 13)) {
-               debug_msg(RELEASE, "Header Detected\n");
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -752,29 +650,23 @@ int MMFileFormatIsValidAMR(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_AMR_MAX_HEADER_SIZE] = {0, };
-       int           readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_AMR_MAX_HEADER_SIZE);
-
-       if (_MMFILE_AMR_MAX_HEADER_SIZE != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_AMR_MAX_HEADER_SIZE) != _MMFILE_AMR_MAX_HEADER_SIZE) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
-       if (1 == _MMFileIsAMRHeader(buffer)) {
-               debug_msg(RELEASE, "Header Detected\n");
+       if (!memcmp(buffer, "#!AMR\n", 6) ||
+           !memcmp(buffer, "#!AMR-WB\n", 9) ||
+           !memcmp(buffer, "#!AMR_MC1.0\n", 12) ||
+           !memcmp(buffer, "#!AMR-WB_MC1.0\n", 15)) {
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
                goto exit;
        }
@@ -797,42 +689,32 @@ int MMFileFormatIsValidMatroska(MMFileIOHandle *pFileIO, const char *mmfileuri,
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_MKV_READ_BUFFER_LENGTH] = {0, };
-       int           readed = 0;
        int ret = 0;
        int len_mask = 0x80;
        unsigned int size = 1, n = 1, total = 0;
        //char probe_data[] = { 'm', 'a', 't', 'r', 'o', 's', 'k', 'a' };
        /*support webm, add probe data*/
        const char * probe_data[2] = { "matroska", "webm" };
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_MKV_READ_BUFFER_LENGTH);
-
-       if (_MMFILE_MKV_READ_BUFFER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_MKV_READ_BUFFER_LENGTH) != _MMFILE_MKV_READ_BUFFER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        /* ebml header? */
        if (buffer[0] != 0x1A || buffer[1] != 0x45 || buffer[2] != 0xDF || buffer[3] != 0xA3) {
-               debug_msg(RELEASE, "This is not a EBML format\n");
-               ret = 0;
+               debug_msg(RELEASE, "This is not a EBML format");
                goto exit;
        }
 
        /* length of header */
        total = buffer[4];
 
-       debug_msg(RELEASE, "Initial total header size = [0x%x]\n", total);
+       debug_msg(RELEASE, "Initial total header size = [0x%x]", total);
 
        while (size <= 8 && !(total & len_mask)) {
                debug_msg(DEBUG, "This case can not be handled yet....");
@@ -840,11 +722,10 @@ int MMFileFormatIsValidMatroska(MMFileIOHandle *pFileIO, const char *mmfileuri,
                len_mask >>= 1;
        }
 
-       debug_msg(RELEASE, "Final total header size = [%d]\n", total);
+       debug_msg(RELEASE, "Final total header size = [%d]", total);
 
        if (size > 8) {
                debug_msg(DEBUG, "This case can not be handled yet....");
-               ret = 0;
                goto exit;
        }
 
@@ -866,7 +747,7 @@ int MMFileFormatIsValidMatroska(MMFileIOHandle *pFileIO, const char *mmfileuri,
                        continue;
                for (n = 4 + size ; n <= 4 + size + total - probelen; n++) {
                        if (!memcmp(&buffer[n], probe_data[i], probelen)) {
-                               debug_msg(RELEASE, "String %s found!!!\n", probe_data[i]);
+                               debug_msg(RELEASE, "String %s found!!!", probe_data[i]);
                                ret = 1;
                                goto exit;
                        }
@@ -899,31 +780,21 @@ int MMFileFormatIsValidFLAC(MMFileIOHandle *pFileIO, const char *mmfileuri, int
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_FLAC_HEADER_LENGTH] = {0, };
-       int readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_FLAC_HEADER_LENGTH);
-
-       if (_MMFILE_FLAC_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_FLAC_HEADER_LENGTH) != _MMFILE_FLAC_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        if (!memcmp(buffer, "fLaC", 4)) {
-               debug_msg(RELEASE, "Header Detected\n");
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -943,31 +814,21 @@ int MMFileFormatIsValidFLV(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_FLV_HEADER_LENGTH] = {0, };
-       int readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_FLV_HEADER_LENGTH);
-
-       if (_MMFILE_FLV_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_FLV_HEADER_LENGTH) != _MMFILE_FLV_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        if (!memcmp(buffer, "FLV", 3)) {
-               debug_msg(RELEASE, "Header Detected\n");
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -988,32 +849,21 @@ int MMFileFormatIsValidREAL(MMFileIOHandle *pFileIO, const char *mmfileuri, int
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_RMVB_HEADER_LENGTH] = {0, };
-       int readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_RMVB_HEADER_LENGTH);
-
-       if (_MMFILE_RMVB_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_RMVB_HEADER_LENGTH) != _MMFILE_RMVB_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        if (!memcmp(buffer, ".RMF", 4)) {
-               debug_msg(RELEASE, "Header Detected\n");
-
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -1041,31 +891,21 @@ int MMFileFormatIsValidMPEGTS(MMFileIOHandle *pFileIO, const char *mmfileuri, in
 {
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[TS_MAX_PACKET_SIZE] = {0, };
-       int readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, TS_MAX_PACKET_SIZE);
-
-       if (TS_MAX_PACKET_SIZE != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, TS_MAX_PACKET_SIZE) != TS_MAX_PACKET_SIZE) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        if (_MMFileIsMPEGTSHeader(fp) != MPEGTS_NONE) {
-               debug_msg(RELEASE, "Header Detected\n");
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -1085,31 +925,21 @@ int MMFileFormatIsValidMPEGPS(MMFileIOHandle *pFileIO, const char *mmfileuri, in
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_MPEGPS_HEADER_LENGTH] = {0, };
-       int readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_MPEGPS_HEADER_LENGTH);
-
-       if (_MMFILE_MPEGPS_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_MPEGPS_HEADER_LENGTH) != _MMFILE_MPEGPS_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
-       if (1 == _MMFileIsMPEGPSHeader(buffer)) {
-               debug_msg(RELEASE, "Header Detected\n");
+       if ((buffer[0] == 0x00) && (buffer[1] == 0x00) && (buffer[2] == 0x01) && (buffer[3] == 0xba)) {
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -1129,31 +959,22 @@ int MMFileFormatIsValidMPEGAUDIO(MMFileIOHandle *pFileIO, const char *mmfileuri,
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_MPEGAUDIO_HEADER_LENGTH] = {0, };
-       int readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_MPEGAUDIO_HEADER_LENGTH);
-
-       if (_MMFILE_MPEGAUDIO_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_MPEGAUDIO_HEADER_LENGTH) != _MMFILE_MPEGAUDIO_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
-
-       if (1 == _MMFileIsMPEGAUDIOHeader(buffer)) {
-               debug_msg(RELEASE, "Header Detected\n");
+       /* mpeg audio version 1, layer 1 header, FE: protected by CRC ,FF: not protected */
+       /* mpeg audio version 2, layer 1 header, F7: not protected */
+       if ((buffer[0] == 0xFF) && ((buffer[1] == 0xFE) || (buffer[1] == 0xFF) || (buffer[1] == 0xF7))) {
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -1173,31 +994,21 @@ int MMFileFormatIsValidMPEGVIDEO(MMFileIOHandle *pFileIO, const char *mmfileuri,
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_MPEGVIDEO_HEADER_LENGTH] = {0, };
-       int readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_MPEGVIDEO_HEADER_LENGTH);
-
-       if (_MMFILE_MPEGVIDEO_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_MPEGVIDEO_HEADER_LENGTH) != _MMFILE_MPEGVIDEO_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
-       if (1 == _MMFileIsMPEGVIDEOHeader(buffer)) {
-               debug_msg(RELEASE, "Header Detected\n");
+       if ((buffer[0] == 0x00) && (buffer[1] == 0x00) && (buffer[2] == 0x01) && (buffer[3] == 0xb3)) {
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -1217,31 +1028,21 @@ int MMFileFormatIsValidAIFF(MMFileIOHandle *pFileIO, const char *mmfileuri, int
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_AIFF_HEADER_LENGTH] = {0, };
-       int           readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_AIFF_HEADER_LENGTH);
-
-       if (_MMFILE_AIFF_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_AIFF_HEADER_LENGTH) != _MMFILE_AIFF_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        if (!memcmp(buffer, "FORM", 4) && !memcmp(buffer + 8, "AIFF", 4)) {
-               debug_msg(RELEASE, "Header Detected\n");
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -1258,31 +1059,21 @@ int MMFileFormatIsValidAPE(MMFileIOHandle *pFileIO, const char *mmfileuri, int d
 
        MMFileIOHandle *fp = pFileIO;
        unsigned char buffer[_MMFILE_APE_HEADER_LENGTH] = {0, };
-       int readed = 0;
        int ret = 0;
 
-       if (fp == NULL) {
-               ret = mmfile_open(&fp, mmfileuri, MMFILE_RDONLY);
-               if (ret == MMFILE_UTIL_FAIL) {
-                       debug_error(DEBUG, "error: mmfile_open\n");
-                       goto exit;
-               }
-       }
+       if (fp == NULL)
+               mm_file_retvm_if_fails(DEBUG, mmfile_open(&fp, mmfileuri, MMFILE_RDONLY) == MMFILE_UTIL_SUCCESS, MMFILE_UTIL_FAIL);
 
        mmfile_seek(fp, 0L, MMFILE_SEEK_SET);
 
-       readed = mmfile_read(fp, buffer, _MMFILE_APE_HEADER_LENGTH);
-
-       if (_MMFILE_APE_HEADER_LENGTH != readed) {
-               debug_error(RELEASE, "read error. size = %d. Maybe end of file.\n", readed);
-               ret = 0;
+       if (mmfile_read(fp, buffer, _MMFILE_APE_HEADER_LENGTH) != _MMFILE_APE_HEADER_LENGTH) {
+               debug_error(RELEASE, "read error");
                goto exit;
        }
 
        if (!memcmp(buffer, "MAC ", 4)) {
-               debug_msg(RELEASE, "Header Detected\n");
+               debug_msg(RELEASE, "Header Detected");
                ret = 1;
-               goto exit;
        }
 
 exit:
@@ -1295,103 +1086,26 @@ exit:
 /***********************************************************************/
 /*            Implementation of Internal Functions                     */
 /***********************************************************************/
-static int _MMFileIsASFHeader(void *header)
+static bool _MMFileIsMMFHeader(void *header)
 {
-       /* ID: 30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C */
+#define _MMFILE_MMF_TYPE_POSITION      0x11
        unsigned char *s = header;
 
-       if ((*(s +  0) == 0x30) &&
-           (*(s +  1) == 0x26) &&
-           (*(s +  2) == 0xB2) &&
-           (*(s +  3) == 0x75) &&
-           (*(s +  4) == 0x8E) &&
-           (*(s +  5) == 0x66) &&
-           (*(s +  6) == 0xCF) &&
-           (*(s +  7) == 0x11) &&
-           (*(s +  8) == 0xA6) &&
-           (*(s +  9) == 0xD9) &&
-           (*(s + 10) == 0x00) &&
-           (*(s + 11) == 0xAA) &&
-           (*(s + 12) == 0x00) &&
-           (*(s + 13) == 0x62) &&
-           (*(s + 14) == 0xCE) &&
-           (*(s + 15) == 0x6C)) {
-
-               return 1;
-       }
+       mm_file_retv_if_fails(memcmp(s, "MMMD", 4) == 0, false);
 
-       return 0;
-}
+       /* warning: comparison is always true due to limited range of data type */
+       if (s[_MMFILE_MMF_TYPE_POSITION] <= 0x2F)
+               return true;
 
-static int _MMFileIsAMRHeader(void *header)
-{
-       unsigned char *s = header;
+       if (((s[_MMFILE_MMF_TYPE_POSITION] >= 0x30) && (s[_MMFILE_MMF_TYPE_POSITION] <= 0x38)) /* MA3, MA5 type */
+               || ((s[_MMFILE_MMF_TYPE_POSITION] >= 0x40) && (s[_MMFILE_MMF_TYPE_POSITION] <= 0x48))
+               || ((s[_MMFILE_MMF_TYPE_POSITION] >= 0x50) && (s[_MMFILE_MMF_TYPE_POSITION] <= 0x58))
+               || ((s[_MMFILE_MMF_TYPE_POSITION] == 0xF0))) {
 
-       if (!memcmp(s, "#!AMR\n", 6) ||
-           !memcmp(s, "#!AMR-WB\n", 9) ||
-           !memcmp(s, "#!AMR_MC1.0\n", 12) ||
-           !memcmp(s, "#!AMR-WB_MC1.0\n", 15)) {
-
-               return 1;
+               return true;
        }
 
-       return 0;
-}
-
-static int _MMFileIsMIDHeader(void *header)
-{
-       unsigned char *s = header;
-
-       if (!memcmp(s, "MThd", 4)) {    /*general MIDI*/
-               return 1;
-       } else if (!memcmp(s, "XMF_", 4)) {     /*XMF*/
-               return 1;
-       } else if (!memcmp(s, "IREZ", 4)) {
-               return 1;       /*RMF format*/
-       }
-
-       return 0;
-}
-
-static int _MMFileIsMMFHeader(void *header)
-{
-#define _MMFILE_MMF_TYPE_POSITION    ((char)0x11)
-       unsigned char *s = header;
-
-       if (!memcmp(s, "MMMD", 4)) {
-               /* warning: comparison is always true due to limited range of data type */
-               if (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x2F) {
-                       return 1;
-               } else if (((*(s + _MMFILE_MMF_TYPE_POSITION) >= 0x30) && (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x38)) /* MA3, MA5 type */
-                       || ((*(s + _MMFILE_MMF_TYPE_POSITION) >= 0x40) && (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x48))
-                       || ((*(s + _MMFILE_MMF_TYPE_POSITION) >= 0x50) && (*(s + _MMFILE_MMF_TYPE_POSITION) <= 0x58))
-                       || ((*(s + _MMFILE_MMF_TYPE_POSITION) == 0xF0))) {
-
-                       return 1;
-               }
-       }
-
-       return 0;
-}
-
-static int _MMFileIsMP4Header(void *header)
-{
-       unsigned char *s = header;
-
-       if (!memcmp(s, "moov", 4) ||
-           !memcmp(s, "mdat", 4) ||
-           !memcmp(s, "ftyp", 4) ||
-           !memcmp(s, "free", 4) ||
-           !memcmp(s, "uuid", 4) ||
-           !memcmp(s, "skip", 4) ||
-
-           !memcmp(s, "PICT", 4) ||
-           !memcmp(s, "wide", 4) ||
-           !memcmp(s, "prfl", 4)) {
-               return 1;
-       }
-
-       return 0;
+       return false;
 }
 
 static int _MMFileIsMPEGTSHeader(MMFileIOHandle *fp)
@@ -1437,47 +1151,6 @@ static int _MMFileIsMPEGTSHeader(MMFileIOHandle *fp)
        return MPEGTS_NONE;
 }
 
-static int _MMFileIsMPEGPSHeader(void *header)
-{
-       unsigned char *s = header;
-
-       if ((*(s +  0) == 0x00) &&
-           (*(s +  1) == 0x00) &&
-           (*(s +  2) == 0x01) &&
-           (*(s +  3) == 0xba)) {      /* mpeg-ps header */
-               return 1;
-       }
-
-       return 0;
-}
-
-static int _MMFileIsMPEGAUDIOHeader(void *header)
-{
-       unsigned char *s = header;
-
-       if ((*(s + 0) == 0xFF) &&
-           ((*(s + 1) == 0xFE) || (*(s + 1) == 0xFF) /* mpeg audio version 1, layer 1 header, FE: protected by CRC ,FF: not protected */
-           || (*(s + 1) == 0xF7))) {                           /* mpeg audio version 2, layer 1 header, F7: not protected */
-               return 1;
-       }
-
-       return 0;
-}
-
-static int _MMFileIsMPEGVIDEOHeader(void *header)
-{
-       unsigned char *s = header;
-
-       if ((*(s +  0) == 0x00) &&
-           (*(s +  1) == 0x00) &&
-           (*(s +  2) == 0x01) &&
-           (*(s +  3) == 0xb3)) {      /* mpeg1 video header */
-               return 1;
-       }
-
-       return 0;
-}
-
 static int _MMFileIsMP3Header(void *header)
 {
        unsigned long head = 0;
@@ -1510,9 +1183,7 @@ static int _MMFileIsMP3Header(void *header)
 
        /* header */
        head = MMFILE_CONVERT_INT(headc);
-       if ((head & 0xffe00000) != 0xffe00000) {
-               return 0;
-       }
+       mm_file_retv_if_fails((head & 0xffe00000) == 0xffe00000, 0);
 
        /* we don't need extension, copyright, original or
        * emphasis for the frame length */
@@ -1528,33 +1199,26 @@ static int _MMFileIsMP3Header(void *header)
 
        /* sampling frequency */
        samplerate = head & 0x3;
-       if (samplerate == 3) {
-               return 0;
-       }
+       mm_file_retv_if_fails(samplerate != 3, 0);
+
        head >>= 2;
 
        /* bitrate index */
        bitrate = head & 0xF;
-
-       if (bitrate == 15) {
-               return 0;
-       }
+       mm_file_retv_if_fails(bitrate != 15, 0);
 
        /* ignore error correction, too */
        head >>= 5;
 
        /* layer */
        layer = 4 - (head & 0x3);
-       if (layer == 4) {
-               return 0;
-       }
+       mm_file_retv_if_fails(layer != 4, 0);
+
        head >>= 2;
 
        /* version 0=MPEG2.5; 2=MPEG2; 3=MPEG1 */
        version = head & 0x3;
-       if (version == 1) {
-               return 0;
-       }
+       mm_file_retv_if_fails(version != 1, 0);
 
        /* lookup */
        /*channels = (mode == 3) ? 1 : 2;*/
@@ -1572,7 +1236,7 @@ static int _MMFileIsMP3Header(void *header)
        return length;
 }
 
-static int _MMFileSearchID3Tag(MMFileIOHandle *fp, unsigned int *offset)
+static bool _MMFileSearchID3Tag(MMFileIOHandle *fp, unsigned int *offset)
 {
 #define _MMFILE_MP3_TAGV2_HEADER_LEN 10
 
@@ -1581,8 +1245,7 @@ static int _MMFileSearchID3Tag(MMFileIOHandle *fp, unsigned int *offset)
        unsigned int acc_tagsize = 0;
        int tagVersion = 0;
        int encSize = 0;
-       int readed = 0;
-       int ret = 0;
+       bool ret = 0;
 
        /*init offset*/
        *offset = 0;
@@ -1591,51 +1254,44 @@ static int _MMFileSearchID3Tag(MMFileIOHandle *fp, unsigned int *offset)
 
 _START_TAG_SEARCH:
 
-       readed = mmfile_read(fp, tagHeader, _MMFILE_MP3_TAGV2_HEADER_LEN);
-       if (readed != _MMFILE_MP3_TAGV2_HEADER_LEN) {
-               debug_error(RELEASE, "read error occured.\n");
-               return 0;
+       if (mmfile_read(fp, tagHeader, _MMFILE_MP3_TAGV2_HEADER_LEN) != _MMFILE_MP3_TAGV2_HEADER_LEN) {
+               debug_error(RELEASE, "read error occured.");
+               return false;
        }
 
        if (memcmp(tagHeader, "ID3", 3) == 0) {
-               debug_msg(RELEASE, "'ID3' found.\n");
+               debug_msg(RELEASE, "'ID3' found.");
        } else {
-               debug_msg(RELEASE, "'ID3' not found.\n");
-               goto search_end;
+               debug_msg(RELEASE, "'ID3' not found.");
+               return ret;
        }
 
        /**@note weak id3v2 tag checking*/
        if (tagHeader[3] != 0xFF && tagHeader[4] != 0xFF &&
            (tagHeader[6] & 0x80) == 0 && (tagHeader[7] & 0x80) == 0 &&
            (tagHeader[8] & 0x80) == 0 && (tagHeader[9] & 0x80) == 0) {
-               debug_msg(RELEASE, "good ID3V2 tag.\n");
+               debug_msg(RELEASE, "good ID3V2 tag.");
        } else {
-               debug_warning(DEBUG, "It's bad ID3V2 tag.\n");
-               goto search_end;
+               debug_warning(DEBUG, "It's bad ID3V2 tag.");
+               return ret;
        }
 
        tagVersion = tagHeader[3];
 
-       if (tagVersion > 4) {
-               debug_msg(RELEASE, "Tag version not supported\n");
-               goto search_end;
-       }
+       mm_file_retvm_if_fails(RELEASE, tagVersion <= 4, ret);
 
        encSize = MMFILE_CONVERT_INT(&tagHeader[6]);
        tagInfoSize = _MMFILE_MP3_TAGV2_HEADER_LEN;
        tagInfoSize += (((encSize & 0x0000007F) >> 0) | ((encSize & 0x00007F00) >> 1) | ((encSize & 0x007F0000) >> 2) | ((encSize & 0x7F000000) >> 3));
 
-       /**@note unfortunately, some contents has many id3 tag.*/
        acc_tagsize += tagInfoSize;
-       debug_msg(RELEASE, "tag size: %u, offset: %u\n", tagInfoSize, acc_tagsize);
+       debug_msg(RELEASE, "tag size: %u, offset: %u", tagInfoSize, acc_tagsize);
 
        mmfile_seek(fp, acc_tagsize, MMFILE_SEEK_SET);
        *offset = acc_tagsize;
 
-       ret = 1;
+       ret = true;
 
+       /** Some contents has many ID3 tag. Use last one */
        goto _START_TAG_SEARCH;
-
-search_end:
-       return ret;
 }