/***********************************************************************/
/* 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 */
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;
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;
}
}
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;
}
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 {
}
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);
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;
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++) {
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;
}
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;
}
}
fail:
- debug_msg(RELEASE, "Header Detected Failed\n");
+ debug_msg(RELEASE, "Header Detected Failed");
exit:
if (pFileIO == NULL && fp != NULL)
mmfile_close(fp);
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;
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;
}
}
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;
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;
}
}
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:
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;
}
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:
#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:
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:
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:
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;
}
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....");
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;
}
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;
}
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:
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:
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:
{
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:
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:
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:
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:
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:
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:
/***********************************************************************/
/* 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)
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;
/* 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 */
/* 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;*/
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
unsigned int acc_tagsize = 0;
int tagVersion = 0;
int encSize = 0;
- int readed = 0;
- int ret = 0;
+ bool ret = 0;
/*init offset*/
*offset = 0;
_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;
}