From 82def2739445a06e342ea9ea595e798cf4930b5c Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Wed, 6 May 2020 09:24:09 +0900 Subject: [PATCH] Improve allocation related code Change-Id: I1c296b0d36420c47edf27ae232f4026b26f70292 Signed-off-by: Minje Ahn --- codecs/ffmpeg/mm_file_codecs.c | 6 +- formats/ffmpeg/include/mm_file_format_aac.h | 2 +- formats/ffmpeg/include/mm_file_format_amr.h | 2 +- formats/ffmpeg/mm_file_format_aac.c | 79 ++++----------- formats/ffmpeg/mm_file_format_amr.c | 75 ++++---------- formats/ffmpeg/mm_file_format_ffmpeg.c | 52 +++------- formats/ffmpeg/mm_file_format_frame.c | 13 +-- formats/ffmpeg/mm_file_format_imelody.c | 24 +---- formats/ffmpeg/mm_file_format_midi.c | 47 ++------- formats/ffmpeg/mm_file_format_mmf.c | 21 +--- formats/ffmpeg/mm_file_format_mp3.c | 74 ++++---------- formats/ffmpeg/mm_file_format_tags.c | 22 +--- formats/ffmpeg/mm_file_format_wav.c | 40 ++------ formats/ffmpeg/mm_file_formats.c | 73 +------------ mm_file.c | 31 ++---- utils/Makefile.am | 3 +- utils/include/mm_file_utils.h | 25 +---- utils/mm_file_util_io.c | 7 +- utils/mm_file_util_io_file.c | 7 +- utils/mm_file_util_io_mem.c | 6 +- utils/mm_file_util_io_mmap.c | 8 +- utils/mm_file_util_memory.c | 131 ------------------------ utils/mm_file_util_tag.c | 152 +++++++--------------------- 23 files changed, 161 insertions(+), 739 deletions(-) delete mode 100755 utils/mm_file_util_memory.c diff --git a/codecs/ffmpeg/mm_file_codecs.c b/codecs/ffmpeg/mm_file_codecs.c index 8dbb70a..69716a7 100644 --- a/codecs/ffmpeg/mm_file_codecs.c +++ b/codecs/ffmpeg/mm_file_codecs.c @@ -73,11 +73,7 @@ int mmfile_codec_open(MMFileCodecContext **codecContext, int codecType, int code return MMFILE_CODEC_FAIL; } - codecObject = mmfile_malloc(sizeof(MMFileCodecContext)); - if (NULL == codecObject) { - debug_error(DEBUG, "error: mmfile_malloc fail for codecObject\n"); - return MMFILE_CODEC_FAIL; - } + codecObject = g_new0(MMFileCodecContext, 1); *codecContext = codecObject; diff --git a/formats/ffmpeg/include/mm_file_format_aac.h b/formats/ffmpeg/include/mm_file_format_aac.h index 355b227..7e1ab04 100755 --- a/formats/ffmpeg/include/mm_file_format_aac.h +++ b/formats/ffmpeg/include/mm_file_format_aac.h @@ -77,7 +77,7 @@ typedef struct _mmfileaactaginfo { } tMMFILE_AAC_TAG_INFO; -int mmfile_aacparser_open(MMFileAACHandle *handle, const char *src); +int mmfile_aacparser_open(MMFileAACHandle *handle, const char *path); int mmfile_aacparser_get_stream_info(MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo); int mmfile_aacparser_get_tag_info(MMFileAACHandle handle, tMMFILE_AAC_TAG_INFO *info); int mmfile_aacparser_get_next_frame(MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo); diff --git a/formats/ffmpeg/include/mm_file_format_amr.h b/formats/ffmpeg/include/mm_file_format_amr.h index 6b4fc4f..08df8fc 100755 --- a/formats/ffmpeg/include/mm_file_format_amr.h +++ b/formats/ffmpeg/include/mm_file_format_amr.h @@ -44,7 +44,7 @@ typedef struct _mmfileamrstreaminfo { } tMMFILE_AMR_STREAM_INFO; -int mmfile_amrparser_open(MMFileAMRHandle *handle, const char *src); +int mmfile_amrparser_open(MMFileAMRHandle *handle, const char *path); int mmfile_amrparser_get_stream_info(MMFileAMRHandle handle, tMMFILE_AMR_STREAM_INFO *amrinfo); int mmfile_amrparser_close(MMFileAMRHandle handle); diff --git a/formats/ffmpeg/mm_file_format_aac.c b/formats/ffmpeg/mm_file_format_aac.c index 5b03950..d6eb637 100644 --- a/formats/ffmpeg/mm_file_format_aac.c +++ b/formats/ffmpeg/mm_file_format_aac.c @@ -205,12 +205,8 @@ int _parse_id3_tag(tMMFILE_AAC_HANDLE *pData) int readed = 0; mmfile_seek(pData->hFile, pData->tagOffset, MMFILE_SEEK_SET); - tagBuff = (unsigned char *) mmfile_malloc(hTag->fileLen); - if (tagBuff == NULL) { - ret = MMFILE_AAC_PARSER_FAIL; - debug_error(DEBUG, "failed to memory allocation. %lld\n", hTag->fileLen); - goto failure; - } + mm_file_retvm_if_fails(DEBUG, hTag->fileLen > 0, MMFILE_AAC_PARSER_FAIL); + tagBuff = g_malloc0(hTag->fileLen); readed = mmfile_read(pData->hFile, tagBuff, hTag->fileLen); if (readed != hTag->fileLen) { @@ -512,8 +508,7 @@ function_end: return ret; } - -int mmfile_aacparser_open(MMFileAACHandle *handle, const char *filenamec) +int mmfile_aacparser_open(MMFileAACHandle *handle, const char *path) { tMMFILE_AAC_HANDLE *privateData = NULL; int ret = 0; @@ -521,18 +516,11 @@ int mmfile_aacparser_open(MMFileAACHandle *handle, const char *filenamec) int firstFrameLen = 0; int readed = 0; - if (NULL == filenamec) { - debug_error(DEBUG, "file source is NULL\n"); - return MMFILE_AAC_PARSER_FAIL; - } + mm_file_retvm_if_fails(DEBUG, path, MMFILE_AAC_PARSER_FAIL); - privateData = mmfile_malloc(sizeof(tMMFILE_AAC_HANDLE)); - if (NULL == privateData) { - debug_error(DEBUG, "file source is NULL\n"); - return MMFILE_AAC_PARSER_FAIL; - } + privateData = g_new0(tMMFILE_AAC_HANDLE, 1); - ret = mmfile_open(&privateData->hFile, filenamec, MMFILE_RDONLY); + ret = mmfile_open(&privateData->hFile, path, MMFILE_RDONLY); if (ret == MMFILE_UTIL_FAIL) { debug_error(DEBUG, "error: mmfile_open\n"); goto exception; @@ -759,26 +747,17 @@ int mmfile_format_open_aac(MMFileFormatContext *formatContext) EXPORT_API int mmfile_format_read_stream_aac(MMFileFormatContext *formatContext) { - MMFileAACHandle handle = NULL; - tMMFILE_AAC_STREAM_INFO aacinfo = {0, }; - MMFileFormatStream *audioStream = NULL; - + MMFileAACHandle handle = NULL; + tMMFILE_AAC_STREAM_INFO aacinfo = {0, }; + MMFileFormatStream *audioStream = NULL; int ret = MMFILE_FORMAT_FAIL; - if (NULL == formatContext) { - debug_error(DEBUG, "error: invalid params\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + mm_file_retvm_if_fails(DEBUG, formatContext, MMFILE_FORMAT_FAIL); handle = formatContext->privateFormatData; ret = mmfile_aacparser_get_stream_info(handle, &aacinfo); - if (MMFILE_FORMAT_SUCCESS != ret) { - debug_error(DEBUG, "error: mmfile_aacparser_get_stream_info\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + mm_file_retvm_if_fails(DEBUG, ret == MMFILE_FORMAT_SUCCESS, ret); formatContext->isseekable = aacinfo.iseekable; formatContext->duration = aacinfo.duration; @@ -787,12 +766,7 @@ int mmfile_format_read_stream_aac(MMFileFormatContext *formatContext) formatContext->audioTotalTrackNum = aacinfo.numTracks; formatContext->nbStreams = 1; - audioStream = mmfile_malloc(sizeof(MMFileFormatStream)); - if (NULL == audioStream) { - debug_error(DEBUG, "error: calloc_audiostream\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + audioStream = g_new0(MMFileFormatStream, 1); audioStream->streamType = MMFILE_AUDIO_STREAM; audioStream->codecId = MM_AUDIO_CODEC_AAC; @@ -808,33 +782,22 @@ int mmfile_format_read_stream_aac(MMFileFormatContext *formatContext) mmfile_format_print_contents(formatContext); #endif - return MMFILE_FORMAT_SUCCESS; - -exception: return ret; } EXPORT_API int mmfile_format_read_tag_aac(MMFileFormatContext *formatContext) { - MMFileAACHandle handle = NULL; - tMMFILE_AAC_TAG_INFO aacinfo = {0, }; + MMFileAACHandle handle = NULL; + tMMFILE_AAC_TAG_INFO aacinfo = {0, }; int ret = MMFILE_FORMAT_FAIL; - if (NULL == formatContext) { - debug_error(DEBUG, "error: invalid params\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + mm_file_retvm_if_fails(DEBUG, formatContext, MMFILE_FORMAT_FAIL); handle = formatContext->privateFormatData; ret = mmfile_aacparser_get_tag_info(handle, &aacinfo); - if (MMFILE_FORMAT_SUCCESS != ret) { - debug_warning(DEBUG, "error: mmfile_aacparser_get_tag_info\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + mm_file_retvm_if_fails(DEBUG, ret == MMFILE_FORMAT_SUCCESS, ret); formatContext->title = g_strdup(aacinfo.title); formatContext->author = g_strdup(aacinfo.author); @@ -853,21 +816,13 @@ int mmfile_format_read_tag_aac(MMFileFormatContext *formatContext) formatContext->artworkMime = g_strdup(aacinfo.artworkMime); if (aacinfo.artwork) { formatContext->artworkSize = aacinfo.artworkSize; - formatContext->artwork = mmfile_malloc(aacinfo.artworkSize); - if (!formatContext->artwork) { - ret = MMFILE_FORMAT_FAIL; - goto exception; - } - memcpy(formatContext->artwork, aacinfo.artwork, aacinfo.artworkSize); + formatContext->artwork = g_memdup(aacinfo.artwork, aacinfo.artworkSize); } #ifdef __MMFILE_TEST_MODE__ mmfile_format_print_contents(formatContext); #endif - return MMFILE_FORMAT_SUCCESS; - -exception: return ret; } diff --git a/formats/ffmpeg/mm_file_format_amr.c b/formats/ffmpeg/mm_file_format_amr.c index 7548358..39a8674 100644 --- a/formats/ffmpeg/mm_file_format_amr.c +++ b/formats/ffmpeg/mm_file_format_amr.c @@ -187,11 +187,7 @@ int _parse_amr_stream(tMMFILE_AMR_HANDLE *pData) long long sum_bitrate = 0; long long frames_bitrate = 0; - buf = mmfile_malloc(AMR_MAX_READ_BUF_SZ); - if (!buf) { - debug_error(DEBUG, "failed to memory allocaion.\n"); - return MMFILE_AMR_PARSER_FAIL; - } + buf = g_malloc0(AMR_MAX_READ_BUF_SZ); for (readed = 0;;) { readed = mmfile_read(pData->hFile, buf, AMR_MAX_READ_BUF_SZ); @@ -220,34 +216,27 @@ int _parse_amr_stream(tMMFILE_AMR_HANDLE *pData) pData->duration = pData->numFrames * MMFILE_AMR_FRAME_DUR; pData->frameRate = 1000 / MMFILE_AMR_FRAME_DUR; - if (frames_bitrate) { + if (frames_bitrate) pData->bitRate = sum_bitrate / frames_bitrate; - } return ret; } -int mmfile_amrparser_open(MMFileAMRHandle *handle, const char *filenamec) +int mmfile_amrparser_open(MMFileAMRHandle *handle, const char *path) { tMMFILE_AMR_HANDLE *privateData = NULL; int ret = 0; - if (NULL == filenamec || NULL == handle) { - debug_error(DEBUG, "file source is NULL\n"); - return MMFILE_AMR_PARSER_FAIL; - } + mm_file_retvm_if_fails(DEBUG, handle, MMFILE_AMR_PARSER_FAIL); + mm_file_retvm_if_fails(DEBUG, path, MMFILE_AMR_PARSER_FAIL); - privateData = mmfile_malloc(sizeof(tMMFILE_AMR_HANDLE)); - if (NULL == privateData) { - debug_error(DEBUG, "file source is NULL\n"); - return MMFILE_AMR_PARSER_FAIL; - } + privateData = g_new0(tMMFILE_AMR_HANDLE, 1); /* Initialize the members of handle */ _amr_init_handle(privateData); - ret = mmfile_open(&privateData->hFile, filenamec, MMFILE_RDONLY); + ret = mmfile_open(&privateData->hFile, path, MMFILE_RDONLY); if (ret == MMFILE_UTIL_FAIL) { debug_error(DEBUG, "error: mmfile_open\n"); goto exception; @@ -292,20 +281,15 @@ int mmfile_amrparser_get_stream_info(MMFileAMRHandle handle, tMMFILE_AMR_STREAM_ tMMFILE_AMR_HANDLE *privateData = NULL; int ret; - if (NULL == handle || NULL == amrinfo) { - debug_error(DEBUG, "handle is NULL\n"); - return MMFILE_AMR_PARSER_FAIL; - } + mm_file_retvm_if_fails(DEBUG, handle, MMFILE_AMR_PARSER_FAIL); + mm_file_retvm_if_fails(DEBUG, amrinfo, MMFILE_AMR_PARSER_FAIL); privateData = (tMMFILE_AMR_HANDLE *) handle; mmfile_seek(privateData->hFile, privateData->streamOffset, MMFILE_SEEK_SET); ret = _parse_amr_stream(privateData); - if (ret == MMFILE_AMR_PARSER_FAIL) { - debug_error(DEBUG, "Error in parsing the stream\n"); - return ret; - } + mm_file_retvm_if_fails(DEBUG, ret == MMFILE_AMR_PARSER_SUCCESS, ret); amrinfo->duration = privateData->duration; amrinfo->fileSize = privateData->fileSize; @@ -314,11 +298,10 @@ int mmfile_amrparser_get_stream_info(MMFileAMRHandle handle, tMMFILE_AMR_STREAM_ amrinfo->numAudioChannels = 1; amrinfo->numTracks = 1; - if (privateData->amrFormat == AMR_FORMAT_NB) { + if (privateData->amrFormat == AMR_FORMAT_NB) amrinfo->samplingRate = AMR_NB_SAMPLES_PER_SEC; - } else { + else amrinfo->samplingRate = AMR_WB_SAMPLES_PER_SEC; - } return MMFILE_AMR_PARSER_SUCCESS; } @@ -328,10 +311,7 @@ int mmfile_amrparser_close(MMFileAMRHandle handle) { tMMFILE_AMR_HANDLE *privateData = NULL; - if (NULL == handle) { - debug_error(DEBUG, "handle is NULL\n"); - return MMFILE_AMR_PARSER_FAIL; - } + mm_file_retvm_if_fails(DEBUG, handle, MMFILE_AMR_PARSER_FAIL); privateData = (tMMFILE_AMR_HANDLE *) handle; @@ -382,26 +362,17 @@ int mmfile_format_open_amr(MMFileFormatContext *formatContext) EXPORT_API int mmfile_format_read_stream_amr(MMFileFormatContext *formatContext) { - MMFileAMRHandle handle = NULL; - tMMFILE_AMR_STREAM_INFO amrinfo = {0, }; - MMFileFormatStream *audioStream = NULL; - + MMFileAMRHandle handle = NULL; + tMMFILE_AMR_STREAM_INFO amrinfo = {0, }; + MMFileFormatStream *audioStream = NULL; int ret = MMFILE_FORMAT_FAIL; - if (NULL == formatContext) { - debug_error(DEBUG, "error: invalid params\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + mm_file_retvm_if_fails(DEBUG, formatContext, MMFILE_FORMAT_FAIL); handle = formatContext->privateFormatData; ret = mmfile_amrparser_get_stream_info(handle, &amrinfo); - if (MMFILE_FORMAT_SUCCESS != ret) { - debug_error(DEBUG, "error: mmfile_amrparser_get_stream_info\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + mm_file_retvm_if_fails(DEBUG, ret == MMFILE_FORMAT_SUCCESS, ret); formatContext->duration = amrinfo.duration; formatContext->videoStreamId = -1; @@ -409,12 +380,7 @@ int mmfile_format_read_stream_amr(MMFileFormatContext *formatContext) formatContext->audioTotalTrackNum = amrinfo.numTracks; formatContext->nbStreams = 1; - audioStream = mmfile_malloc(sizeof(MMFileFormatStream)); - if (NULL == audioStream) { - debug_error(DEBUG, "error: calloc_audiostream\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + audioStream = g_new0(MMFileFormatStream, 1); audioStream->streamType = MMFILE_AUDIO_STREAM; audioStream->codecId = MM_AUDIO_CODEC_AMR; @@ -430,9 +396,6 @@ int mmfile_format_read_stream_amr(MMFileFormatContext *formatContext) mmfile_format_print_contents(formatContext); #endif - return MMFILE_FORMAT_SUCCESS; - -exception: return ret; } diff --git a/formats/ffmpeg/mm_file_format_ffmpeg.c b/formats/ffmpeg/mm_file_format_ffmpeg.c index 24cbdd8..0d7f293 100644 --- a/formats/ffmpeg/mm_file_format_ffmpeg.c +++ b/formats/ffmpeg/mm_file_format_ffmpeg.c @@ -107,11 +107,7 @@ static int _mmf_mem_open(MMFmemIOHandle **handle, const char *filename) goto exception; } - memHandle = mmfile_malloc(sizeof(MMFmemIOHandle)); - if (!memHandle) { - debug_error(DEBUG, "error: mmfile_malloc memHandle\n"); - goto exception; - } + memHandle = g_new0(MMFmemIOHandle, 1); memHandle->ptr = (unsigned char *)atoll(splitedString[0]); /*memory allocation address changed. memHandle->ptr = (unsigned char*)atoi(splitedString[0]); */ memHandle->size = atoi(splitedString[1]); @@ -374,19 +370,16 @@ static bool __check_uhqa(int sample_rate, enum AVSampleFormat sample_fmt_info) EXPORT_API int mmfile_format_read_stream_ffmpg(MMFileFormatContext *formatContext) { - AVFormatContext *pFormatCtx = NULL; - AVCodecParameters *pAudioCodecCtx = NULL; - AVCodecParameters *pVideoCodecCtx = NULL; - - MMFileFormatStream *videoStream = NULL; - MMFileFormatStream *audioStream = NULL; + AVFormatContext *pFormatCtx = NULL; + AVCodecParameters *pAudioCodecCtx = NULL; + AVCodecParameters *pVideoCodecCtx = NULL; + MMFileFormatStream *videoStream = NULL; + MMFileFormatStream *audioStream = NULL; unsigned int i = 0; int ret = 0; - if (NULL == formatContext || NULL == formatContext->privateFormatData) { - debug_error(DEBUG, "invalid param\n"); - return MMFILE_FORMAT_FAIL; - } + mm_file_retvm_if_fails(DEBUG, formatContext, MMFILE_FORMAT_FAIL); + mm_file_retvm_if_fails(DEBUG, formatContext->privateFormatData, MMFILE_FORMAT_FAIL); pFormatCtx = formatContext->privateFormatData; pFormatCtx->start_time = -1; @@ -430,11 +423,7 @@ int mmfile_format_read_stream_ffmpg(MMFileFormatContext *formatContext) for (i = 0; i < pFormatCtx->nb_streams; i++) { if (pFormatCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { if (formatContext->videoStreamId == -1) { - videoStream = mmfile_malloc(sizeof(MMFileFormatStream)); - if (NULL == videoStream) { - debug_error(DEBUG, "mmfile_malloc error\n"); - goto exception; - } + videoStream = g_new0(MMFileFormatStream, 1); videoStream->streamType = MMFILE_VIDEO_STREAM; formatContext->streams[MMFILE_VIDEO_STREAM] = videoStream; @@ -479,11 +468,7 @@ int mmfile_format_read_stream_ffmpg(MMFileFormatContext *formatContext) } } else if (pFormatCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { if (formatContext->audioStreamId == -1) { - audioStream = mmfile_malloc(sizeof(MMFileFormatStream)); - if (NULL == audioStream) { - debug_error(DEBUG, "mmfile_malloc error\n"); - goto exception; - } + audioStream = g_new0(MMFileFormatStream, 1); audioStream->streamType = MMFILE_AUDIO_STREAM; formatContext->streams[MMFILE_AUDIO_STREAM] = audioStream; @@ -589,9 +574,7 @@ static void __fill_picture_in_context(char *value, MMFileFormatContext *formatCo current_pos = mime_len + description_len + (DATA_LENGTH * 8); /*current position is picture data */ mmfile_free(formatContext->artwork); - formatContext->artwork = mmfile_malloc(data_len); - if (formatContext->artwork) - memcpy(formatContext->artwork, meta_data + current_pos, data_len); + formatContext->artwork = g_memdup(meta_data + current_pos, data_len); g_free(meta_data); } @@ -621,9 +604,7 @@ static void __fill_artwork_in_context(AVStream *st, MMFileFormatContext *formatC mmfile_free(formatContext->artwork); formatContext->artworkSize = pkt.size; - formatContext->artwork = mmfile_malloc(pkt.size); - if (formatContext->artwork) - memcpy(formatContext->artwork, pkt.data, pkt.size); + formatContext->artwork = g_memdup(pkt.data, pkt.size); } static void __fill_metainfo_in_context(AVDictionary *metainfo, MMFileFormatContext *formatContext) @@ -849,18 +830,13 @@ int mmfile_format_read_frame_ffmpg(MMFileFormatContext *formatContext, unsigned } numBytes = av_image_get_buffer_size(AV_PIX_FMT_RGB24, width, height, 1); - if (numBytes < 0) { + if (numBytes <= 0) { debug_error(DEBUG, "error: av_image_get_buffer_size. [%d x %d]\n", width, height); ret = MMFILE_FORMAT_FAIL; goto exception; } - frame->frameData = mmfile_malloc(numBytes); - if (NULL == frame->frameData) { - debug_error(DEBUG, "error: mmfile_malloc. [%d]\n", numBytes); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + frame->frameData = g_malloc0(numBytes); uint8_t *dst_data[4]; int dst_linesize[4]; diff --git a/formats/ffmpeg/mm_file_format_frame.c b/formats/ffmpeg/mm_file_format_frame.c index 795d8ba..9c10e3c 100755 --- a/formats/ffmpeg/mm_file_format_frame.c +++ b/formats/ffmpeg/mm_file_format_frame.c @@ -82,11 +82,7 @@ static int _mmf_mem_open(MMFmemIOHandle **handle, const char *filename) goto exception; } - memHandle = mmfile_malloc(sizeof(MMFmemIOHandle)); - if (!memHandle) { - debug_error(DEBUG, "error: mmfile_malloc memHandle\n"); - goto exception; - } + memHandle = g_new0(MMFmemIOHandle, 1); memHandle->ptr = (unsigned char *)atoll(splitedString[0]); /*memory allocation address changed. memHandle->ptr = (unsigned char*)atoi(splitedString[0]); */ memHandle->size = atoi(splitedString[1]); @@ -567,12 +563,7 @@ static int __mmfile_get_frame(AVFormatContext *pFormatCtx, int64_t timestamp, bo goto exception; } - *frame = mmfile_malloc(*size); - if (!(*frame)) { - debug_error(DEBUG, "error: avpicture_get_size. [%d]\n", *size); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + *frame = g_malloc0(*size); debug_msg(RELEASE, "size : %d", *size); debug_msg(RELEASE, "width : %d", *width); diff --git a/formats/ffmpeg/mm_file_format_imelody.c b/formats/ffmpeg/mm_file_format_imelody.c index df9851d..133355f 100755 --- a/formats/ffmpeg/mm_file_format_imelody.c +++ b/formats/ffmpeg/mm_file_format_imelody.c @@ -179,13 +179,7 @@ int mmfile_format_read_stream_imy(MMFileFormatContext *formatContext) formatContext->audioTotalTrackNum = info->track_num; formatContext->nbStreams = 1; - - audioStream = mmfile_malloc(sizeof(MMFileFormatStream)); - if (NULL == audioStream) { - debug_error(DEBUG, "error: mmfile_malloc audiostream\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + audioStream = g_new0(MMFileFormatStream, 1); audioStream->streamType = MMFILE_AUDIO_STREAM; audioStream->codecId = MM_AUDIO_CODEC_IMELODY; @@ -445,10 +439,7 @@ __get_load_memory(char *src, int *out_size) } /*alloc read buffer*/ - if ((buf = mmfile_malloc(src_size)) == NULL) { - debug_error(DEBUG, "memory allocation failed.\n"); - goto failed; - } + buf = g_malloc0(src_size); /*read data*/ if ((readed = mmfile_read(fp, buf, src_size)) != src_size) { @@ -827,7 +818,6 @@ __get_imelody_notetotal(int number) static unsigned char * __AvConvertIMelody2MIDI(char *pMelodyBuf, unsigned int *pBufLen) { - unsigned char *pConvertBuf; char *pStart; char *pMelodyStart; int octaveCount; @@ -1276,15 +1266,7 @@ __AvConvertIMelody2MIDI(char *pMelodyBuf, unsigned int *pBufLen) *pBufLen = 6 * (count * (repeat + 1) + (noteCount - count)) + 56 - 1; - pConvertBuf = (unsigned char *) mmfile_malloc(*pBufLen); - if (pConvertBuf == NULL) { - debug_error(DEBUG, "__AvConvertIMelody2MIDI: malloc failed!\n"); - return NULL; - } - - memcpy(pConvertBuf, midiData, *pBufLen); - - return pConvertBuf; + return g_memdup(midiData, *pBufLen); } static unsigned char diff --git a/formats/ffmpeg/mm_file_format_midi.c b/formats/ffmpeg/mm_file_format_midi.c index 4391612..19312d5 100755 --- a/formats/ffmpeg/mm_file_format_midi.c +++ b/formats/ffmpeg/mm_file_format_midi.c @@ -303,12 +303,7 @@ int mmfile_format_read_stream_mid(MMFileFormatContext *formatContext) formatContext->audioTotalTrackNum = info->track_num; formatContext->nbStreams = 1; - audioStream = mmfile_malloc(sizeof(MMFileFormatStream)); - if (NULL == audioStream) { - debug_error(DEBUG, "error: mmfile_malloc audiostream\n"); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } + audioStream = g_new0(MMFileFormatStream, 1); audioStream->streamType = MMFILE_AUDIO_STREAM; audioStream->codecId = (info->is_xmf == 1) ? MM_AUDIO_CODEC_MXMF : MM_AUDIO_CODEC_MIDI; @@ -428,29 +423,12 @@ int mmfile_format_close_mid(MMFileFormatContext *formatContext) return MMFILE_FORMAT_SUCCESS; } -static char *_lc_strdup(const char *str, unsigned int size) -{ - char *t = NULL; - t = mmfile_malloc(size + 1); - if (t) { - memset(t, 0x00, size + 1); - memcpy(t, str, size); - } - return t; -} - MIDI_INFO_SIMPLE * mmfile_format_get_midi_infomation(char *szFileName) { - /*int duration = -1;*/ - MIDI_INFO_SIMPLE *info = NULL; - - info = mmfile_malloc(sizeof(MIDI_INFO_SIMPLE)); - if (!info) - return NULL; + MIDI_INFO_SIMPLE *info = g_new0(MIDI_INFO_SIMPLE, 1); - /*get infomation*/ - /*duration = */__AvGetMidiDuration(szFileName, info); + __AvGetMidiDuration(szFileName, info); return info; } @@ -521,11 +499,7 @@ __AvGetMidiDuration(char *szFileName, MIDI_INFO_SIMPLE *info) } /*alloc read buffer*/ - pbFile = (UINT8 *) mmfile_malloc(sizeof(UINT8) * (dFileSize + 1)); - if (!pbFile) { - debug_error(DEBUG, "memory allocation failed.\n"); - goto _RELEASE_RESOURCE; - } + pbFile = g_malloc0(dFileSize + 1); /*read data*/ if ((readed = mmfile_read(hFile, pbFile, dFileSize)) != dFileSize) { @@ -584,9 +558,9 @@ __AvGetMidiDuration(char *szFileName, MIDI_INFO_SIMPLE *info) info->track_num = gPi->dNumOfTracks; info->is_xmf = is_xmf; - info->title = _lc_strdup((const char *)gPi->pbTitle, gPi->dSizeTitle); - info->copyright = _lc_strdup((const char *)gPi->pbCopyright, gPi->dSizeCopyright); - info->comment = _lc_strdup((const char *)gPi->pbText, gPi->dSizeText); + info->title = g_strndup((const char *)gPi->pbTitle, gPi->dSizeTitle); + info->copyright = g_strndup((const char *)gPi->pbCopyright, gPi->dSizeCopyright); + info->comment = g_strndup((const char *)gPi->pbText, gPi->dSizeText); } _RELEASE_RESOURCE: @@ -603,12 +577,7 @@ _RELEASE_RESOURCE: static SINT32 __AvMidFile_Initialize(void) { - gpMidInfo = mmfile_malloc(sizeof(MIDGLOBAL)); - - if (!gpMidInfo) - return (AvSMW_ERROR); - - memset(gpMidInfo, 0x00, sizeof(MIDGLOBAL)); + gpMidInfo = g_new0(MIDGLOBAL, 1); gpMidInfo->sdSeqID = -1; /* Sequence ID */ gpMidInfo->sdFileID = -1; /* File ID */ diff --git a/formats/ffmpeg/mm_file_format_mmf.c b/formats/ffmpeg/mm_file_format_mmf.c index 6571527..32452ff 100755 --- a/formats/ffmpeg/mm_file_format_mmf.c +++ b/formats/ffmpeg/mm_file_format_mmf.c @@ -608,21 +608,12 @@ int mmfile_format_read_stream_mmf(MMFileFormatContext *formatContext) int total = 0; total = mmf_file_mmf_get_duration(formatContext->uriFileName, 0 /*not XMF*/); - if (total < 0) { - debug_error(DEBUG, "error: get duration\n"); - return MMFILE_FORMAT_FAIL; - } - + mm_file_retvm_if_fails(DEBUG, total >= 0, MMFILE_FORMAT_FAIL); formatContext->duration = total; formatContext->audioTotalTrackNum = 1; formatContext->nbStreams = 1; - formatContext->streams[MMFILE_AUDIO_STREAM] = mmfile_malloc(sizeof(MMFileFormatStream)); - if (NULL == formatContext->streams[MMFILE_AUDIO_STREAM]) { - debug_error(DEBUG, "error: mmfile_malloc, audido stream\n"); - return MMFILE_FORMAT_FAIL; - } - + formatContext->streams[MMFILE_AUDIO_STREAM] = g_new0(MMFileFormatStream, 1); formatContext->streams[MMFILE_AUDIO_STREAM]->codecId = MM_AUDIO_CODEC_MMF; formatContext->streams[MMFILE_AUDIO_STREAM]->nbChannel = 1; @@ -2632,13 +2623,7 @@ mmf_file_mmf_get_duration(char *src, int is_xmf) } /*alloc work buffer*/ - buf = mmfile_malloc(src_size + 1); - if (!buf) { - debug_error(DEBUG, "failed to memory allocaion.\n"); - ret_msec = -1; - goto _RELEASE_RESOURCE; - } - + buf = g_malloc0(src_size + 1); /*read data*/ if ((readed = mmfile_read(fp, buf, src_size)) <= 0) { diff --git a/formats/ffmpeg/mm_file_format_mp3.c b/formats/ffmpeg/mm_file_format_mp3.c index 130c22a..5b98ec0 100644 --- a/formats/ffmpeg/mm_file_format_mp3.c +++ b/formats/ffmpeg/mm_file_format_mp3.c @@ -94,10 +94,7 @@ int mmfile_format_open_mp3(MMFileFormatContext *formatContext) debug_fenter(RELEASE); - if (NULL == formatContext) { - debug_error(DEBUG, "formatContext is NULL\n"); - return MMFILE_FORMAT_FAIL; - } + mm_file_retvm_if_fails(DEBUG, formatContext, MMFILE_FORMAT_FAIL); ret = MMFileFormatIsValidMP3(NULL, formatContext->uriFileName, 5); if (ret == 0) { @@ -113,11 +110,7 @@ int mmfile_format_open_mp3(MMFileFormatContext *formatContext) formatContext->videoTotalTrackNum = 0; formatContext->audioTotalTrackNum = 1; - privateData = mmfile_malloc(sizeof(AvFileContentInfo)); - if (!privateData) { - debug_error(DEBUG, "error: mmfile_malloc MP3 privateData\n"); - return MMFILE_FORMAT_FAIL; - } + privateData = g_new0(AvFileContentInfo, 1); formatContext->privateFormatData = privateData; @@ -132,10 +125,8 @@ int mmfile_format_read_stream_mp3(MMFileFormatContext *formatContext) debug_fenter(RELEASE); - if (!formatContext || !formatContext->privateFormatData) { - debug_error(DEBUG, "formatContext is NULL\n"); - return MMFILE_FORMAT_FAIL; - } + mm_file_retvm_if_fails(DEBUG, formatContext, MMFILE_FORMAT_FAIL); + mm_file_retvm_if_fails(DEBUG, formatContext->privateFormatData, MMFILE_FORMAT_FAIL); if (MMFILE_FORMAT_SUCCESS != mmf_file_mp3_get_stream_info(formatContext->uriFileName, formatContext->privateFormatData)) { debug_error(DEBUG, "getting stream information is failed"); @@ -148,12 +139,7 @@ int mmfile_format_read_stream_mp3(MMFileFormatContext *formatContext) formatContext->videoTotalTrackNum = 0; formatContext->audioTotalTrackNum = 1; formatContext->nbStreams = 1; - formatContext->streams[MMFILE_AUDIO_STREAM] = mmfile_malloc(sizeof(MMFileFormatStream)); - if (!formatContext->streams[MMFILE_AUDIO_STREAM]) { - debug_error(DEBUG, "formatContext->streams[MMFILE_AUDIO_STREAM] is NULL\n"); - return MMFILE_FORMAT_FAIL; - } - + formatContext->streams[MMFILE_AUDIO_STREAM] = g_new0(MMFileFormatStream, 1); formatContext->streams[MMFILE_AUDIO_STREAM]->streamType = MMFILE_AUDIO_STREAM; formatContext->streams[MMFILE_AUDIO_STREAM]->codecId = MM_AUDIO_CODEC_MP3; formatContext->streams[MMFILE_AUDIO_STREAM]->bitRate = (privateData->bitRate * 1000); @@ -180,10 +166,8 @@ int mmfile_format_read_tag_mp3(MMFileFormatContext *formatContext) debug_fenter(RELEASE); - if (!formatContext || !formatContext->privateFormatData) { - debug_error(DEBUG, "formatContext is NULL\n"); - return MMFILE_FORMAT_FAIL; - } + mm_file_retvm_if_fails(DEBUG, formatContext, MMFILE_FORMAT_FAIL); + mm_file_retvm_if_fails(DEBUG, formatContext->privateFormatData, MMFILE_FORMAT_FAIL); if (MMFILE_FORMAT_SUCCESS != mmf_file_mp3_get_tag_info(formatContext->uriFileName, formatContext->privateFormatData)) { debug_error(DEBUG, "getting tag information is failed"); @@ -211,18 +195,16 @@ int mmfile_format_read_tag_mp3(MMFileFormatContext *formatContext) formatContext->part_of_set = g_strdup(privateData->tagInfo[AV_ID3TAG_PART_OF_SET].value); if (privateData->imageInfo.imageLen > 0) { - formatContext->artwork = mmfile_malloc(privateData->imageInfo.imageLen); - if (formatContext->artwork) { - formatContext->artworkSize = privateData->imageInfo.imageLen; - memcpy(formatContext->artwork, privateData->imageInfo.pImageBuf, privateData->imageInfo.imageLen); - if (strlen(privateData->imageInfo.imageMIMEType) > 0) - formatContext->artworkMime = g_strdup(privateData->imageInfo.imageMIMEType); - else if (strlen(privateData->imageInfo.imageExt) > 0) { - debug_msg(RELEASE, "ID3 tag V2 File"); - formatContext->artworkMime = g_strdup(privateData->imageInfo.imageExt); - } else { - debug_error(DEBUG, "Album art image exist but there is no type information of album art\n"); - } + formatContext->artworkSize = privateData->imageInfo.imageLen; + formatContext->artwork = g_memdup(privateData->imageInfo.pImageBuf, privateData->imageInfo.imageLen); + + if (strlen(privateData->imageInfo.imageMIMEType) > 0) + formatContext->artworkMime = g_strdup(privateData->imageInfo.imageMIMEType); + else if (strlen(privateData->imageInfo.imageExt) > 0) { + debug_msg(RELEASE, "ID3 tag V2 File"); + formatContext->artworkMime = g_strdup(privateData->imageInfo.imageExt); + } else { + debug_error(DEBUG, "Album art image exist but there is no type information of album art\n"); } } @@ -873,11 +855,7 @@ __AvFindStartOfMp3Header(unsigned char *buf, unsigned long bufLen, AvFileContent if (buf[0] == 0xff) { if (VALID_SYNC(buf)) { if (bufLen - index > 256) { - pHeader = mmfile_malloc(256); - if (pHeader == NULL) { - debug_error(DEBUG, "malloc failed.\n"); - return -1; - } + pHeader = g_malloc0(256); strncpy((char *)pHeader, (char *)buf, 256); } else { debug_error(DEBUG, "Header field is not exist\n"); @@ -1029,11 +1007,7 @@ static int mmf_file_mp3_get_tag_info(char *filename, AvFileContentInfo *pInfo) } /* read file to check ID3v2 header */ - v2TagExistCheck = mmfile_malloc(MP3_TAGv2_HEADER_LEN); - if (!v2TagExistCheck) { - debug_error(DEBUG, "malloc failed.\n"); - goto EXCEPTION; - } + v2TagExistCheck = g_malloc0(MP3_TAGv2_HEADER_LEN); if (mmfile_read(hFile, v2TagExistCheck, MP3_TAGv2_HEADER_LEN) != MP3_TAGv2_HEADER_LEN) { debug_error(DEBUG, "v2TagExistCheck value read fail!\n"); @@ -1056,11 +1030,7 @@ static int mmf_file_mp3_get_tag_info(char *filename, AvFileContentInfo *pInfo) debug_msg(RELEASE, "buf size(%d)\n", pInfo->tagV2Info.tagLen); - buf = mmfile_malloc(pInfo->tagV2Info.tagLen); - if (!buf) { - debug_error(DEBUG, "malloc failed.\n"); - goto EXCEPTION; - } + buf = g_malloc0(pInfo->tagV2Info.tagLen); if (mmfile_read(hFile, buf, pInfo->tagV2Info.tagLen) != pInfo->tagV2Info.tagLen) { mmfile_free(buf); @@ -1190,9 +1160,7 @@ static int mmf_file_mp3_get_stream_info(char *filename, AvFileContentInfo *pInfo debug_msg(RELEASE, "buf size(%lu)\n", bufLen); - buf = mmfile_malloc(bufLen); - if (!buf) - goto EXCEPTION; + buf = g_malloc0(bufLen); if (mmfile_read(hFile, buf, bufLen) != (int)bufLen) { mmfile_free(buf); diff --git a/formats/ffmpeg/mm_file_format_tags.c b/formats/ffmpeg/mm_file_format_tags.c index 5ad77b9..58ed7c8 100755 --- a/formats/ffmpeg/mm_file_format_tags.c +++ b/formats/ffmpeg/mm_file_format_tags.c @@ -62,11 +62,7 @@ int MMFileOpenTags(MMFileTagsHandle *tagsHandle, const char *uriName) tMMFileTagsData *privateData = NULL; int ret = 0; - privateData = mmfile_malloc(sizeof(tMMFileTagsData)); - if (!privateData) { - debug_error(DEBUG, "mmfile_malloc: tMMFileTagsData\n"); - return MMFILE_TAGS_FAIL; - } + privateData = g_new0(tMMFileTagsData, 1); *tagsHandle = privateData; @@ -181,16 +177,10 @@ int _MMFileFindTags(tMMFileTagsData *privateData, MMFileFindTagFunc FindTag, uns tMMFileTags *tagData = NULL; int ret = 0; - if (!privateData || !privateData->fp) { - debug_error(DEBUG, "Invalid argument\n"); - return MMFILE_TAGS_FAIL; - } + mm_file_retvm_if_fails(DEBUG, privateData, MMFILE_TAGS_FAIL); + mm_file_retvm_if_fails(DEBUG, privateData->fp, MMFILE_TAGS_FAIL); - tagData = mmfile_malloc(sizeof(tMMFileTags)); - if (!tagData) { - debug_error(DEBUG, "mmfile_malloc tagData\n"); - return MMFILE_TAGS_FAIL; - } + tagData = g_new0(tMMFileTags, 1); ret = FindTag(privateData->fp, bAppended, privateData->startOffset, privateData->endOffset, tagData); if (ret) { @@ -200,10 +190,6 @@ int _MMFileFindTags(tMMFileTagsData *privateData, MMFileFindTagFunc FindTag, uns privateData->startOffset = tagData->endOffset; } - /* add tagData into privateData->tagList */ - - /*privateData->tagList = mmfile_list_append(privateData->tagList, tagData); */ - ret = MMFILE_TAGS_SUCCESS; } diff --git a/formats/ffmpeg/mm_file_format_wav.c b/formats/ffmpeg/mm_file_format_wav.c index 8327e2c..899c39b 100755 --- a/formats/ffmpeg/mm_file_format_wav.c +++ b/formats/ffmpeg/mm_file_format_wav.c @@ -242,31 +242,21 @@ int mmfile_format_read_stream_wav(MMFileFormatContext *formatContext) MMFileIOHandle *fp = NULL; int ret = 0; - if (formatContext == NULL) { - debug_error(DEBUG, "formatContext is NULL\n"); - return MMFILE_FORMAT_FAIL; - } + mm_file_retvm_if_fails(DEBUG, formatContext, MMFILE_FORMAT_FAIL); header = mmf_file_wave_get_header(formatContext->uriFileName); - if (header == NULL) { - debug_error(DEBUG, "error: mmf_file_wave_get_header\n"); - goto exception; - } + mm_file_retvm_if_fails(DEBUG, header, MMFILE_FORMAT_FAIL); - waveinfo = mmfile_malloc(sizeof(MM_FILE_WAVE_INFO)); - if (waveinfo == NULL) { - debug_error(DEBUG, "error: mmfile_malloc\n"); - goto exception; - } + waveinfo = g_new0(MM_FILE_WAVE_INFO, 1); ret = mmf_file_wave_get_info(header, waveinfo); + mmfile_free(header); if (ret == -1) { debug_error(DEBUG, "error: mmf_file_wave_get_info\n"); - goto exception; + mmfile_free(waveinfo); + return MMFILE_FORMAT_FAIL; } - mmfile_free(header); - /* Get file size. because sometimes waveinfo->size is wrong */ ret = mmfile_open(&fp, formatContext->uriFileName, MMFILE_RDONLY); if (fp) { @@ -285,13 +275,7 @@ int mmfile_format_read_stream_wav(MMFileFormatContext *formatContext) formatContext->audioTotalTrackNum = 1; formatContext->nbStreams = 1; - formatContext->streams[MMFILE_AUDIO_STREAM] = mmfile_malloc(sizeof(MMFileFormatStream)); - - if (!formatContext->streams[MMFILE_AUDIO_STREAM]) { - debug_error(DEBUG, "error: mmfile_malloc audio stream for wav\n"); - return MMFILE_FORMAT_FAIL; - } - + formatContext->streams[MMFILE_AUDIO_STREAM] = g_new0(MMFileFormatStream, 1); formatContext->streams[MMFILE_AUDIO_STREAM]->streamType = MMFILE_AUDIO_STREAM; switch (waveinfo->format) { @@ -323,12 +307,6 @@ int mmfile_format_read_stream_wav(MMFileFormatContext *formatContext) formatContext->streams[MMFILE_AUDIO_STREAM]->is_uhqa = __check_uhqa(waveinfo->sample_rate, waveinfo->bits_per_sample); return MMFILE_FORMAT_SUCCESS; - -exception: - mmfile_free(header); - mmfile_free(waveinfo); - - return MMFILE_FORMAT_FAIL; } @@ -415,9 +393,7 @@ mmf_file_wave_get_header(char *src) long long offset = 0; long long limit; - header = mmfile_malloc(MMF_FILE_WAVE_HEADER_LEN); - if (!header) - return NULL; + header = g_malloc0(MMF_FILE_WAVE_HEADER_LEN); /*open*/ ret = mmfile_open(&fp, src, MMFILE_RDONLY); diff --git a/formats/ffmpeg/mm_file_formats.c b/formats/ffmpeg/mm_file_formats.c index e400eac..cb75e23 100755 --- a/formats/ffmpeg/mm_file_formats.c +++ b/formats/ffmpeg/mm_file_formats.c @@ -303,22 +303,12 @@ _PreprocessFile(MMFileSourceType *fileSrc, char **urifilename, int *formatEnum) #else const char *uriStr = MMFILE_FILE_URI; #endif - int uriLen = strlen(uriStr); - fileName = (const char *)(fileSrc->file.path); filename_len = strlen(fileName); int pos = filename_len; - *urifilename = mmfile_malloc(uriLen + filename_len + 1); - if (!*urifilename) { - debug_error(DEBUG, "error: mmfile_malloc uriname\n"); - goto FILE_FORMAT_FAIL; - } - - memset(*urifilename, 0x00, uriLen + filename_len + 1); - SAFE_STRLCPY(*urifilename, uriStr, uriLen + filename_len + 1); - SAFE_STRLCAT(*urifilename, fileName, uriLen + filename_len + 1); + *urifilename = g_strconcat(uriStr, fileName, NULL); /** * Get file extension from file's name @@ -457,20 +447,10 @@ int mmfile_format_open(MMFileFormatContext **formatContext, MMFileSourceType *fi int ret = 0; MMFileFormatContext *formatObject = NULL; - if (NULL == fileSrc) { - debug_error(DEBUG, "error: invalid params\n"); - return MMFILE_FORMAT_FAIL; - } + mm_file_retvm_if_fails(DEBUG, fileSrc, MMFILE_FORMAT_FAIL); /* create formatContext object */ - formatObject = mmfile_malloc(sizeof(MMFileFormatContext)); - if (NULL == formatObject) { - debug_error(DEBUG, "error: mmfile_malloc fail for formatObject\n"); - *formatContext = NULL; - return MMFILE_FORMAT_FAIL; - } - - memset(formatObject, 0x00, sizeof(MMFileFormatContext)); + formatObject = g_new0(MMFileFormatContext, 1); mmfile_register_io_all(); @@ -490,62 +470,15 @@ int mmfile_format_open(MMFileFormatContext **formatContext, MMFileSourceType *fi /** * Open format function. */ -#if 0 - if (NULL == MMFileFunc[formatObject->formatType].Open) { - debug_error(DEBUG, "error: Not implemented \n"); - ret = MMFILE_FORMAT_FAIL; - goto find_valid_handler; - } -#endif ret = MMFileFunc[formatObject->formatType].Open(formatObject); if (MMFILE_FORMAT_FAIL == ret) { debug_error(DEBUG, "error: Try other formats\n"); ret = MMFILE_FORMAT_FAIL; -/* goto find_valid_handler; */ goto exception; } *formatContext = formatObject; return MMFILE_FORMAT_SUCCESS; - -#if 0 //Below code is duplicated with _PreprocessFile() -find_valid_handler: - formatObject->pre_checked = 0; /*do check file format*/ - - for (index = 0; index < MM_FILE_FORMAT_NUM + 1; index++) { - if (NULL == MMFileFunc[index].Open) { - debug_error(DEBUG, "error: Not implemented \n"); - ret = MMFILE_FORMAT_FAIL; - continue; - } - - if (formatObject->formatType == index) - continue; - - ret = MMFileFunc[index].Open(formatObject); - if (MMFILE_FORMAT_FAIL == ret) { -/* _CleanupFrameContext(formatObject, true); */ - continue; - } - - break; - } - - formatObject->formatType = index; - - if (index == MM_FILE_FORMAT_NUM + 1 && MMFILE_FORMAT_FAIL == ret) { - debug_error(DEBUG, "can't find file format handler\n"); - _CleanupFrameContext(formatObject, true); - ret = MMFILE_FORMAT_FAIL; - goto exception; - } - - formatObject->formatType = index; - *formatContext = formatObject; - - return MMFILE_FORMAT_SUCCESS; -#endif - exception: _mmfile_format_close(formatObject, true); *formatContext = NULL; diff --git a/mm_file.c b/mm_file.c index 7dcc15f..57e08bd 100644 --- a/mm_file.c +++ b/mm_file.c @@ -354,14 +354,11 @@ static int _info_set_attr_media(MMHandleType attrs, MMFileFormatContext *formatC mm_attrs_set_string_by_name(attrs, MM_FILE_TAG_UNSYNCLYRICS, formatContext->unsyncLyrics); if (formatContext->artwork && formatContext->artworkSize > 0) { - void *artworkCopy = NULL; - artworkCopy = mmfile_malloc((formatContext->artworkSize)); - if (artworkCopy) { - memcpy(artworkCopy, formatContext->artwork, formatContext->artworkSize); - mm_attrs_set_data_by_name(attrs, MM_FILE_TAG_ARTWORK, artworkCopy, formatContext->artworkSize); - mm_attrs_set_int_by_name(attrs, MM_FILE_TAG_ARTWORK_SIZE, formatContext->artworkSize); - mm_attrs_set_string_by_name(attrs, MM_FILE_TAG_ARTWORK_MIME, formatContext->artworkMime); - } + void *artworkCopy = g_memdup(formatContext->artwork, formatContext->artworkSize); + + mm_attrs_set_data_by_name(attrs, MM_FILE_TAG_ARTWORK, artworkCopy, formatContext->artworkSize); + mm_attrs_set_int_by_name(attrs, MM_FILE_TAG_ARTWORK_SIZE, formatContext->artworkSize); + mm_attrs_set_string_by_name(attrs, MM_FILE_TAG_ARTWORK_MIME, formatContext->artworkMime); } } else if (formatContext->commandType == MM_FILE_CONTENTS) { /*get duration*/ @@ -384,14 +381,11 @@ static int _info_set_attr_media(MMHandleType attrs, MMFileFormatContext *formatC if (formatContext->thumbNail && formatContext->thumbNail->frameData) { void *thumbNailCopy = NULL; - thumbNailCopy = mmfile_malloc(formatContext->thumbNail->frameSize); + thumbNailCopy = g_memdup(formatContext->thumbNail->frameData, formatContext->thumbNail->frameSize); - if (thumbNailCopy) { - memcpy(thumbNailCopy, formatContext->thumbNail->frameData, formatContext->thumbNail->frameSize); - mm_attrs_set_data_by_name(attrs, MM_FILE_CONTENT_VIDEO_THUMBNAIL, thumbNailCopy, formatContext->thumbNail->frameSize); - mm_attrs_set_int_by_name(attrs, MM_FILE_CONTENT_VIDEO_WIDTH, formatContext->thumbNail->frameWidth); - mm_attrs_set_int_by_name(attrs, MM_FILE_CONTENT_VIDEO_HEIGHT, formatContext->thumbNail->frameHeight); - } + mm_attrs_set_data_by_name(attrs, MM_FILE_CONTENT_VIDEO_THUMBNAIL, thumbNailCopy, formatContext->thumbNail->frameSize); + mm_attrs_set_int_by_name(attrs, MM_FILE_CONTENT_VIDEO_WIDTH, formatContext->thumbNail->frameWidth); + mm_attrs_set_int_by_name(attrs, MM_FILE_CONTENT_VIDEO_HEIGHT, formatContext->thumbNail->frameHeight); } } @@ -473,12 +467,7 @@ __get_contents_thumbnail(MMFileFormatContext *formatContext) } /* set video thumbnail */ - thumbnail = mmfile_malloc(sizeof(MMFileFormatFrame)); - if (!thumbnail) { - debug_error(DEBUG, "error: mmfile_malloc\n"); - ret = FILEINFO_ERROR_FILE_INTERNAL; - goto exception; - } + thumbnail = g_new0(MMFileFormatFrame, 1); if (frameContext.bCompressed) { ret = __decode_contents_frame(&frameContext, formatContext->streams[MMFILE_VIDEO_STREAM], &decodedFrame); diff --git a/utils/Makefile.am b/utils/Makefile.am index 57af938..71775b4 100755 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -2,8 +2,7 @@ lib_LTLIBRARIES = libmmfile_utils.la noinst_HEADERS = include/mm_file_utils.h -libmmfile_utils_la_SOURCES = mm_file_util_memory.c \ - mm_file_util_io.c \ +libmmfile_utils_la_SOURCES = mm_file_util_io.c \ mm_file_util_io_file.c \ mm_file_util_io_mem.c \ mm_file_util_io_mmap.c \ diff --git a/utils/include/mm_file_utils.h b/utils/include/mm_file_utils.h index a589e2f..e0199de 100755 --- a/utils/include/mm_file_utils.h +++ b/utils/include/mm_file_utils.h @@ -206,39 +206,18 @@ int mmfile_util_image_convert(unsigned char *src, eMMFilePixelFormat src_fmt, in /*////////////////////////////////////////////////////////////////////// */ /* MEMORY DEBUG API // */ /*////////////////////////////////////////////////////////////////////// */ -void *mmfile_malloc_debug(unsigned int size, const char *func, unsigned int line); -void *mmfile_calloc_debug(unsigned int nmemb, unsigned int size, const char *func, unsigned int line); -void mmfile_free_debug(void *ptr, const char *func, unsigned int line); -void *mmfile_realloc_debug(void *ptr, unsigned int size, const char *func, unsigned int line); -void *mmfile_memset_debug(void *s, int c, unsigned int n, const char *func, unsigned int line); -void *mmfile_memcpy_debug(void *dest, const void *src, unsigned int n, const char *func, unsigned int line); char *mmfile_string_convert_debug(const char *str, unsigned int len, const char *to_codeset, const char *from_codeset, int *bytes_read, int *bytes_written, const char *func, unsigned int line); -#define mmfile_malloc(size) mmfile_malloc_debug((size), __func__, __LINE__) -#define mmfile_calloc(nmemb, size) mmfile_calloc_debug((nmemb), (size), __func__, __LINE__) -#define mmfile_free(ptr) do { mmfile_free_debug((ptr), __func__, __LINE__); (ptr) = NULL; } while (0) -#define mmfile_realloc(ptr, size) mmfile_realloc_debug((ptr), (size), __func__, __LINE__) -#define mmfile_memset(ptr, c, n) mmfile_memset_debug((ptr), (c), (n), __func__, __LINE__) -#define mmfile_memcpy(dest, src, n) mmfile_memcpy_debug((ptr), (src), (n), __func__, __LINE__) #define mmfile_string_convert(str, len, to_codeset, from_codeset, bytes_read, bytes_written) mmfile_string_convert_debug((str), (len), (to_codeset), (from_codeset), (bytes_read), (bytes_written), __func__, __LINE__) -#else -/*////////////////////////////////////////////////////////////////////// */ -/* MEMORY API // */ -/*////////////////////////////////////////////////////////////////////// */ -void *mmfile_malloc(unsigned int size); -void *mmfile_calloc(unsigned int nmemb, unsigned int size); -#define mmfile_free(ptr) do { if ((ptr)) { mmfile_free_r((ptr)); (ptr) = NULL; } } while (0) -void mmfile_free_r(void *ptr); -void *mmfile_realloc(void *ptr, unsigned int size); -void *mmfile_memset(void *s, int c, unsigned int n); -void *mmfile_memcpy(void *dest, const void *src, unsigned int n); #endif +#define mmfile_free(ptr) do { g_free((ptr)); (ptr) = NULL; } while (0) + /*////////////////////////////////////////////////////////////////////// */ diff --git a/utils/mm_file_util_io.c b/utils/mm_file_util_io.c index b9cd6df..48e5312 100644 --- a/utils/mm_file_util_io.c +++ b/utils/mm_file_util_io.c @@ -105,12 +105,7 @@ static int _mmfile_open(MMFileIOHandle **handle, struct MMFileIOFunc *Func, cons goto fail; } - pHandle = mmfile_malloc(sizeof(MMFileIOHandle)); - if (!pHandle) { - debug_error(DEBUG, "mmfile_malloc: pHandle\n"); - err = MMFILE_IO_FAILED; - goto fail; - } + pHandle = g_new0(MMFileIOHandle, 1); *handle = pHandle; diff --git a/utils/mm_file_util_io_file.c b/utils/mm_file_util_io_file.c index de81b93..255affd 100755 --- a/utils/mm_file_util_io_file.c +++ b/utils/mm_file_util_io_file.c @@ -59,12 +59,7 @@ static int file_open(MMFileIOHandle *handle, const char *filename, int flags) return MMFILE_IO_FAILED; } - privateData = mmfile_malloc(sizeof(tMMFORMAT_FILEIO_DATA)); - if (!privateData) { - close(fd); - debug_error(DEBUG, "calloc privateData\n"); - return MMFILE_IO_FAILED; - } + privateData = g_new0(tMMFORMAT_FILEIO_DATA, 1); privateData->fd = fd; privateData->offset = 0; diff --git a/utils/mm_file_util_io_mem.c b/utils/mm_file_util_io_mem.c index c72b01e..72f6b06 100755 --- a/utils/mm_file_util_io_mem.c +++ b/utils/mm_file_util_io_mem.c @@ -54,11 +54,7 @@ static int mmf_mem_open(MMFileIOHandle *handle, const char *filename, int flags) goto exception; } - memHandle = mmfile_malloc(sizeof(MMFmemIOHandle)); - if (!memHandle) { - debug_error(DEBUG, "error: mmfile_malloc memHandle\n"); - goto exception; - } + memHandle = g_new0(MMFmemIOHandle, 1); memHandle->ptr = (unsigned char *)atoll(splitedString[0]); /*memory allocation address changed. memHandle->ptr = (unsigned char*)atoi(splitedString[0]); */ memHandle->size = atoi(splitedString[1]); diff --git a/utils/mm_file_util_io_mmap.c b/utils/mm_file_util_io_mmap.c index 633d34f..b6040fc 100755 --- a/utils/mm_file_util_io_mmap.c +++ b/utils/mm_file_util_io_mmap.c @@ -55,13 +55,7 @@ static int mmf_mmap_open(MMFileIOHandle *handle, const char *filename, int flags filename += strlen(handle->iofunc->handleName) + 3; /* :// */ - memset(&finfo, 0x00, sizeof(struct stat)); - - mmapHandle = mmfile_malloc(sizeof(MMFMMapIOHandle)); - if (!mmapHandle) { - debug_error(DEBUG, "error: mmfile_malloc mmapHandle\n"); - return MMFILE_IO_FAILED; - } + mmapHandle = g_new0(MMFMMapIOHandle, 1); #ifdef O_BINARY access |= O_BINARY; diff --git a/utils/mm_file_util_memory.c b/utils/mm_file_util_memory.c deleted file mode 100755 index 6ab5314..0000000 --- a/utils/mm_file_util_memory.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * libmm-fileinfo - * - * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: Haejeong Kim - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include "mm_file_utils.h" - -#ifdef __MMFILE_MEM_TRACE__ -EXPORT_API -void *mmfile_malloc_debug(unsigned int size, const char *func, unsigned int line) -{ - void *tmp = malloc(size); - - if (tmp) { - memset(tmp, 0x00, size); - debug_msg(RELEASE, "## DEBUG ## %p = malloc (%d) by %s() %d\n", tmp, size, func, line); - } - return tmp; -} - -EXPORT_API -void *mmfile_calloc_debug(unsigned int nmemb, unsigned int size, const char *func, unsigned int line) -{ - void *tmp = calloc(nmemb, size); - - if (tmp) { - debug_msg(RELEASE, "## DEBUG ## %p = calloc (%d, %d) by %s() %d\n", tmp, nmemb, size, func, line); - } - return tmp; -} - -EXPORT_API -void mmfile_free_debug(void *ptr, const char *func, unsigned int line) -{ - if (ptr) { - debug_msg(RELEASE, "## DEBUG ## free (%p) by %s() %d\n", ptr, func, line); - free(ptr); - } -} - - -EXPORT_API -void *mmfile_realloc_debug(void *ptr, unsigned int size, const char *func, unsigned int line) -{ - void *tmp = realloc(ptr, size); - - if (tmp) { - debug_msg(RELEASE, "## DEBUG ## %p = realloc (%p, %d) by %s() %d\n", tmp, ptr, size, func, line); - } - return tmp; -} - -EXPORT_API -void *mmfile_memset_debug(void *s, int c, unsigned int n, const char *func, unsigned int line) -{ - debug_msg(RELEASE, "## DEBUG ## memset (%p, %d, %d) by %s() %d\n", s, c, n, func, line); - - return memset(s, c, n); -} - -EXPORT_API -void *mmfile_memcpy_debug(void *dest, const void *src, unsigned int n, const char *func, unsigned int line) -{ - debug_msg(RELEASE, "## DEBUG ## memcpy (%p, %p, %d) by %s() %d\n", dest, src, n, func, line); - - return memcpy(dest, src, n); -} - -#else /* __MMFILE_MEM_TRACE__ : ------------------------------------------------------------------*/ - -EXPORT_API -void *mmfile_malloc(unsigned int size) -{ - void *tmp = malloc(size); - if (tmp) { - memset(tmp, 0x00, size); - } - return tmp; -} - -EXPORT_API -void *mmfile_calloc(unsigned int nmemb, unsigned int size) -{ - void *tmp = calloc(nmemb, size); - return tmp; -} - -EXPORT_API -void mmfile_free_r(void *ptr) -{ - if (ptr) free(ptr); -} - -EXPORT_API -void *mmfile_realloc(void *ptr, unsigned int size) -{ - return realloc(ptr, size); -} - -EXPORT_API -void *mmfile_memset(void *s, int c, unsigned int n) -{ - return memset(s, c, n); -} - -EXPORT_API -void *mmfile_memcpy(void *dest, const void *src, unsigned int n) -{ - return memcpy(dest, src, n); -} -#endif - diff --git a/utils/mm_file_util_tag.c b/utils/mm_file_util_tag.c index 22df22c..af5a544 100644 --- a/utils/mm_file_util_tag.c +++ b/utils/mm_file_util_tag.c @@ -321,12 +321,7 @@ static int GetStringFromTextTagBox(MMFileFormatContext *formatContext, MMFileIOH goto exception; } - texttag.text = mmfile_malloc(textBytes); - if (!texttag.text) { - debug_error(DEBUG, "malloc fail for text box\n"); - ret = MMFILE_UTIL_FAIL; - goto exception; - } + texttag.text = g_malloc0(textBytes); readed = mmfile_read(fp, (unsigned char *)texttag.text, textBytes); if (readed != textBytes) { @@ -459,11 +454,7 @@ static int GetAlbumFromAlbumTagBox(MMFileFormatContext *formatContext, MMFileIOH if (albumTitleLen > 1) { /* there exist only 00(null) */ debug_msg(RELEASE, "albumTitleLen=%d\n", albumTitleLen); - albumbox.albumtile = mmfile_malloc(albumTitleLen + 1); /* 1: for null char */ - if (!albumbox.albumtile) { - debug_error(DEBUG, "malloc fail for album title text\n"); - goto exception; - } + albumbox.albumtile = g_malloc0(albumTitleLen + 1); /* 1: for null char */ readed = mmfile_read(fp, (unsigned char *)albumbox.albumtile, albumTitleLen); if (readed != albumTitleLen) { @@ -553,11 +544,7 @@ static int GetRatingFromRatingTagBox(MMFileFormatContext *formatContext, MMFileI goto exception; } - ratingTag.ratingInfo = mmfile_malloc(ratinginfoLen); - if (!ratingTag.ratingInfo) { - debug_error(DEBUG, "rating info error\n"); - goto exception; - } + ratingTag.ratingInfo = g_malloc0(ratinginfoLen); readed = mmfile_read(fp, (unsigned char *)ratingTag.ratingInfo, ratinginfoLen); if (readed != ratinginfoLen) { @@ -618,11 +605,7 @@ static int GetClassficationFromClsfTagBox(MMFileFormatContext *formatContext, MM goto exception; } - classTag.classificationInfo = mmfile_malloc(classinfoLen); - if (!classTag.classificationInfo) { - debug_error(DEBUG, "class info error\n"); - goto exception; - } + classTag.classificationInfo = g_malloc0(classinfoLen); readed = mmfile_read(fp, (unsigned char *)classTag.classificationInfo, classinfoLen); if (readed != classinfoLen) { @@ -725,11 +708,7 @@ static int GetLocationFromLociTagBox(MMFileFormatContext *formatContext, MMFileI goto exception; } - buffer = mmfile_malloc(bufferLen); - if (!buffer) { - debug_error(DEBUG, "buffer malloc error\n"); - goto exception; - } + buffer = g_malloc0(bufferLen); readed = mmfile_read(fp, (unsigned char *)buffer, bufferLen); if (readed != bufferLen) { @@ -1577,7 +1556,7 @@ static int GetTagFromMetaBox(MMFileFormatContext *formatContext, MMFileIOHandle } debug_msg(RELEASE, "----------------------------------- new artist will be allocated with size (len+1) [%d] \n", artist_sz + 1); - formatContext->artist = mmfile_malloc(artist_sz + 1); + formatContext->artist = g_malloc0(artist_sz + 1); if (formatContext->artist) { readed = mmfile_read(fp, (unsigned char *)formatContext->artist, artist_sz); @@ -1646,7 +1625,7 @@ static int GetTagFromMetaBox(MMFileFormatContext *formatContext, MMFileIOHandle if (cover_sz > 0) { mmfile_seek(fp, cover_offset, SEEK_SET); - formatContext->artwork = mmfile_malloc(cover_sz); + formatContext->artwork = g_malloc0(cover_sz); formatContext->artworkSize = cover_sz; if (cover_type == _ITUNES_COVER_TYPE_JPEG) { formatContext->artworkMime = g_strdup("image/jpeg"); @@ -1708,11 +1687,7 @@ static int GetTagFromMetaBox(MMFileFormatContext *formatContext, MMFileIOHandle id3v2Len = id3v2BoxHeader.size - MMFILE_MP4_BASIC_BOX_HEADER_LEN - MMFILE_3GP_ID3V2_BOX_LEN; - id3v2Box.id3v2Data = mmfile_malloc(id3v2Len); - if (!id3v2Box.id3v2Data) { - debug_error(DEBUG, "malloc id3tag data error\n"); - goto exception; - } + id3v2Box.id3v2Data = g_malloc0(id3v2Len); readed = mmfile_read(fp, (unsigned char *)id3v2Box.id3v2Data, id3v2Len); if (readed != id3v2Len) { @@ -1785,10 +1760,9 @@ static int GetTagFromMetaBox(MMFileFormatContext *formatContext, MMFileIOHandle formatContext->classification = g_strdup((const char *)tagInfo.tagInfo[AV_ID3TAG_CONTENT_GROUP].value); formatContext->conductor = g_strdup((const char *)tagInfo.tagInfo[AV_ID3TAG_CONDUCTOR].value); - formatContext->artwork = mmfile_malloc(tagInfo.imageInfo.imageLen); - if ((tagInfo.imageInfo.imageLen > 0) && formatContext->artwork) { + if (tagInfo.imageInfo.pImageBuf && tagInfo.imageInfo.imageLen > 0) { formatContext->artworkSize = tagInfo.imageInfo.imageLen; - memcpy(formatContext->artwork, tagInfo.imageInfo.pImageBuf, tagInfo.imageInfo.imageLen); + formatContext->artwork = g_memdup(tagInfo.imageInfo.pImageBuf, tagInfo.imageInfo.imageLen); } mm_file_free_AvFileContentInfo(&tagInfo); @@ -2565,8 +2539,6 @@ static void init_content_info(AvFileContentInfo *pInfo) static void _mm_file_id3tag_add_bracket_at_genre(char **genre, int genre_len) { int int_genre = -1; - char tmp_genre[6] = {0, }; - int tmp_genre_len = 0; if (!genre || !(*genre) || genre_len <= 0) return; @@ -2585,15 +2557,8 @@ static void _mm_file_id3tag_add_bracket_at_genre(char **genre, int genre_len) /* Change int to string with bracket like "(123)" * mm_file_id3tag_restore_content_info convert it to string */ - memset(tmp_genre, 0, sizeof(tmp_genre)); - snprintf(tmp_genre, sizeof(tmp_genre), "(%d)", int_genre); - - tmp_genre_len = strlen(tmp_genre); - if (tmp_genre_len > 0) { - *genre = mmfile_realloc(*genre, sizeof(char) * (tmp_genre_len + 1)); - if (*genre) - SAFE_STRLCPY(*genre, tmp_genre, tmp_genre_len + 1); - } + mmfile_free(*genre); + *genre = g_strdup_printf("(%d)", int_genre); } static void __id3tag_skip_newline(unsigned char *pTagVal, int *nTagLen, int *offset) @@ -2696,26 +2661,18 @@ static void __id3tag_parse_SYLT(AvFileContentInfo *pInfo, unsigned char *pTagVal for (idx = 0; idx < nTagLen; idx++) { if (pTagVal[offset + idx] == 0x00) { - synclyrics_info = (AvSynclyricsInfo *)mmfile_malloc(sizeof(AvSynclyricsInfo)); - if (synclyrics_info) { - if (textEncodingType == AV_ID3V2_UTF8) { - synclyrics_info->lyric_info = mmfile_malloc(copy_len + 1); - if (synclyrics_info->lyric_info) { - memset(synclyrics_info->lyric_info, 0, copy_len + 1); - memcpy(synclyrics_info->lyric_info, pTagVal + copy_start_pos, copy_len); - synclyrics_info->lyric_info[copy_len] = '\0'; - } - } else { - synclyrics_info->lyric_info = mmfile_string_convert((const char *)&pTagVal[copy_start_pos], copy_len, "UTF-8", pCharSet, NULL, NULL); - } - - synclyrics_info->time_info = (unsigned long)pTagVal[offset + idx + 1] << 24 | (unsigned long)pTagVal[offset + idx + 2] << 16 | (unsigned long)pTagVal[offset + idx + 3] << 8 | (unsigned long)pTagVal[offset + idx + 4]; - idx += 4; - copy_start_pos = offset + idx + 1; - debug_msg(RELEASE, "[%lu][%s] idx[%d], copy_len[%d] copy_start_pos[%d]", synclyrics_info->time_info, synclyrics_info->lyric_info, idx, copy_len, copy_start_pos); - copy_len = 0; - synclyrics_info_list = g_list_append(synclyrics_info_list, synclyrics_info); - } + synclyrics_info = g_new0(AvSynclyricsInfo, 1); + if (textEncodingType == AV_ID3V2_UTF8) + synclyrics_info->lyric_info = g_memdup(pTagVal + copy_start_pos, copy_len + 1); + else + synclyrics_info->lyric_info = mmfile_string_convert((const char *)&pTagVal[copy_start_pos], copy_len, "UTF-8", pCharSet, NULL, NULL); + + synclyrics_info->time_info = (unsigned long)pTagVal[offset + idx + 1] << 24 | (unsigned long)pTagVal[offset + idx + 2] << 16 | (unsigned long)pTagVal[offset + idx + 3] << 8 | (unsigned long)pTagVal[offset + idx + 4]; + idx += 4; + copy_start_pos = offset + idx + 1; + debug_msg(RELEASE, "[%lu][%s] idx[%d], copy_len[%d] copy_start_pos[%d]", synclyrics_info->time_info, synclyrics_info->lyric_info, idx, copy_len, copy_start_pos); + copy_len = 0; + synclyrics_info_list = g_list_append(synclyrics_info_list, synclyrics_info); } copy_len++; } @@ -2836,16 +2793,13 @@ static void __id3tag_parse_APIC_desc(AvFileContentInfo *pInfo, unsigned char *pT tag_len = idx + 1; /* length of description + '\0' */ - tmp_desc = mmfile_calloc(1, sizeof(char) * tag_len); - if (tmp_desc) { - memcpy(tmp_desc, pTagVal + *offset, tag_len); + tmp_desc = g_memdup(pTagVal + *offset, tag_len); - /* convert description */ - pInfo->imageInfo.imageDescription = mmfile_string_convert(tmp_desc, tag_len, "UTF-8", pCharSet, NULL, &desc_len); - pInfo->imageInfo.imgDesLen = (int)desc_len; - mmfile_free(tmp_desc); - debug_msg(RELEASE, "new_desc %s(%d)\n", pInfo->imageInfo.imageDescription, pInfo->imageInfo.imgDesLen); - } + /* convert description */ + pInfo->imageInfo.imageDescription = mmfile_string_convert(tmp_desc, tag_len, "UTF-8", pCharSet, NULL, &desc_len); + pInfo->imageInfo.imgDesLen = (int)desc_len; + mmfile_free(tmp_desc); + debug_msg(RELEASE, "new_desc %s(%d)\n", pInfo->imageInfo.imageDescription, pInfo->imageInfo.imgDesLen); *offset += idx; if ((pTagVal[*offset] != '\0') || (nTagLen <= *offset)) { @@ -2873,12 +2827,7 @@ static void __id3tag_parse_APIC_picture(AvFileContentInfo *pInfo, unsigned char } pInfo->imageInfo.imageLen = nTagLen - *offset; - pInfo->imageInfo.pImageBuf = mmfile_malloc(pInfo->imageInfo.imageLen + 1); - - if (pInfo->imageInfo.pImageBuf) { - memcpy(pInfo->imageInfo.pImageBuf, pTagVal + *offset, pInfo->imageInfo.imageLen); - pInfo->imageInfo.pImageBuf[pInfo->imageInfo.imageLen] = 0; - } + pInfo->imageInfo.pImageBuf = g_memdup(pTagVal + *offset, pInfo->imageInfo.imageLen + 1); /* if mimetype is "-->", image date has an URL */ if (IS_INCLUDE_URL(pInfo->imageInfo.imageMIMEType)) @@ -2987,14 +2936,12 @@ bool mm_file_id3tag_parse_v110(AvFileContentInfo *pInfo, unsigned char *buffer) } if (pInfo->tagInfo[AV_ID3TAG_TRACKNUM].marked == false) { - pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value = mmfile_malloc(ID3TAG_V110_TRACK_NUM_DIGIT); - if (pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value != NULL) { - pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value[ID3TAG_V110_TRACK_NUM_DIGIT - 1] = 0; - snprintf(pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value, ID3TAG_V110_TRACK_NUM_DIGIT, "%04d", (int)buffer[126]); - pInfo->tagInfo[AV_ID3TAG_TRACKNUM].length = strlen(pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value); + pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value = g_malloc0(ID3TAG_V110_TRACK_NUM_DIGIT); + pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value[ID3TAG_V110_TRACK_NUM_DIGIT - 1] = 0; + snprintf(pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value, ID3TAG_V110_TRACK_NUM_DIGIT, "%04d", (int)buffer[126]); + pInfo->tagInfo[AV_ID3TAG_TRACKNUM].length = strlen(pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value); - debug_msg(RELEASE, "pInfo->pTrackNum returned =(%s), pInfo->tracknumLen(%d)\n", pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value, pInfo->tagInfo[AV_ID3TAG_TRACKNUM].length); - } + debug_msg(RELEASE, "pInfo->pTrackNum returned =(%s), pInfo->tracknumLen(%d)\n", pInfo->tagInfo[AV_ID3TAG_TRACKNUM].value, pInfo->tagInfo[AV_ID3TAG_TRACKNUM].length); } if (pInfo->tagInfo[AV_ID3TAG_GENRE].marked == false) { @@ -3114,14 +3061,7 @@ bool mm_file_id3tag_parse_v222(AvFileContentInfo *pInfo, unsigned char *buffer) realCpyFrameNum = purelyFramelen - encodingOffSet; mmfile_free(pExtContent); - pExtContent = mmfile_malloc(realCpyFrameNum + 3); - - if (pExtContent == NULL) { - debug_error(DEBUG, "out of memory for pExtContent\n"); - continue; - } - - memset(pExtContent, '\0', realCpyFrameNum + 3); + pExtContent = g_malloc0(realCpyFrameNum + 3); memcpy(pExtContent, &buffer[curPos - purelyFramelen + encodingOffSet], purelyFramelen - encodingOffSet); @@ -3307,14 +3247,7 @@ bool mm_file_id3tag_parse_v223(AvFileContentInfo *pInfo, unsigned char *buffer) if (encodingOffSet < purelyFramelen) { realCpyFrameNum = purelyFramelen - encodingOffSet; - pExtContent = mmfile_malloc(realCpyFrameNum + 3); - - if (pExtContent == NULL) { - debug_msg(DEBUG, "pExtContent malloc failed\n"); - continue; - } - - memset(pExtContent, '\0', realCpyFrameNum + 3); + pExtContent = g_malloc0(realCpyFrameNum + 3); if (textEncodingType != AV_ID3V2_UTF16 && textEncodingType != AV_ID3V2_UTF16_BE) { if (CompTmp[0] == 'T' || (strcmp(CompTmp, "APIC") == 0)) { @@ -3577,14 +3510,7 @@ bool mm_file_id3tag_parse_v224(AvFileContentInfo *pInfo, unsigned char *buffer) if (encodingOffSet < purelyFramelen) { realCpyFrameNum = purelyFramelen - encodingOffSet; - pExtContent = mmfile_malloc(realCpyFrameNum + 3); - - if (pExtContent == NULL) { - debug_error(DEBUG, "out of memoryu for id3tag parse\n"); - continue; - } - - memset(pExtContent, '\0', realCpyFrameNum + 3); + pExtContent = g_malloc0(realCpyFrameNum + 3); if (textEncodingType != AV_ID3V2_UTF16 && textEncodingType != AV_ID3V2_UTF16_BE) { if (CompTmp[0] == 'T' || (strcmp(CompTmp, "APIC") == 0)) { -- 2.7.4