X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=test%2Fmedia_codec_test.c;h=67f0f68d2630339eea343005ad8eae8307907cbc;hb=48b40d4ffd885b8a9444fa9e1b2140cd4c9b2a30;hp=2ace30b233a3b6bedbdfb3ebde26dde8b29f431b;hpb=db577ccc97c1c5376b6b1fa58107befd2fdaec1b;p=platform%2Fcore%2Fapi%2Fmediacodec.git diff --git a/test/media_codec_test.c b/test/media_codec_test.c index 2ace30b..67f0f68 100755 --- a/test/media_codec_test.c +++ b/test/media_codec_test.c @@ -416,7 +416,7 @@ void mpeg4_extractor(App * app, unsigned char **data, int *size, bool * have_fra goto DONE; } if (!bType) { - if (have_frame && val == 0xB0) + if (val == 0xB0) *have_frame = TRUE; } bType = val; @@ -608,17 +608,20 @@ void mp3dec_extractor(App *app, unsigned char **data, int *size, bool *have_fram if (header == 0) { g_print ("[ERROR] read header size is 0\n"); *have_frame = FALSE; + return; } /* if it's not a valid sync */ if ((header & 0xffe00000) != 0xffe00000) { g_print ("[ERROR] invalid sync\n"); *have_frame = FALSE; + return; } if (((header >> 19) & 3) == 0x1) { g_print ("[ERROR] invalid MPEG version: %d\n", (header >> 19) & 3); *have_frame = FALSE; + return; } else { if (header & (1 << 20)) { lsf = (header & (1 << 19)) ? 0 : 1; @@ -633,6 +636,7 @@ void mp3dec_extractor(App *app, unsigned char **data, int *size, bool *have_fram if (!((header >> 17) & 3)) { g_print("[ERROR] invalid layer: %d\n", (header >> 17) & 3); *have_frame = FALSE; + return; } else { layer = 4 - ((header >> 17) & 0x3); } @@ -641,12 +645,15 @@ void mp3dec_extractor(App *app, unsigned char **data, int *size, bool *have_fram if (((header >> 12) & 0xf) == 0xf) { g_print ("[ERROR] invalid bitrate: %d\n", (header >> 12) & 0xf); *have_frame = FALSE; + return; } else { bitrate = (header >> 12) & 0xF; hdr_bitrate = mp3types_bitrates[lsf][layer - 1][bitrate] * 1000; /* The caller has ensured we have a valid header, so bitrate can't be zero here. */ - if (hdr_bitrate == 0) + if (hdr_bitrate == 0) { *have_frame = FALSE; + return; + } } /* if it's an invalid samplerate */ @@ -771,6 +778,13 @@ void extract_input_aacdec_m4a_test(App * app, unsigned char **data, int *size, b read_size = readsize; app->offset += header_size + readsize; + if (app->offset > app->length) { + read_size = 0; + *have_frame = FALSE; + g_print("[FAIL] offset error \n"); + return; + } + } else { read_size = 0; g_print("[FAIL] Not found aac frame sync. \n"); @@ -859,7 +873,7 @@ int _mediacodec_set_codec(App *app, int codecid, int flag, bool *hardware) case MEDIACODEC_AAC: if (encoder) { extractor = aacenc_extractor; - mime = MEDIA_FORMAT_PCM; + mime = MEDIA_FORMAT_PCM_F32LE; /* FIXME need to check according to verdor */ } else { extractor = aacdec_extractor; mime = MEDIA_FORMAT_AAC; @@ -868,7 +882,7 @@ int _mediacodec_set_codec(App *app, int codecid, int flag, bool *hardware) case MEDIACODEC_AAC_HE: if (encoder) { extractor = aacenc_extractor; - mime = MEDIA_FORMAT_PCM; + mime = MEDIA_FORMAT_PCM_F32LE; /* FIXME need to check according to verdor */ } else { extractor = extract_input_aacdec_m4a_test; mime = MEDIA_FORMAT_AAC_HE; @@ -895,7 +909,7 @@ int _mediacodec_set_codec(App *app, int codecid, int flag, bool *hardware) case MEDIACODEC_AMR_NB: if (encoder) { extractor = amrenc_extractor; - mime = MEDIA_FORMAT_PCM; + mime = MEDIA_FORMAT_PCM_F32LE; /* FIXME need to check according to verdor */ app->is_amr_nb = TRUE; } else { extractor = amrdec_extractor; @@ -905,7 +919,7 @@ int _mediacodec_set_codec(App *app, int codecid, int flag, bool *hardware) case MEDIACODEC_AMR_WB: if (encoder) { extractor = amrenc_extractor; - mime = MEDIA_FORMAT_PCM; + mime = MEDIA_FORMAT_PCM_F32LE; /* FIXME need to check according to verdor */ app->is_amr_nb = FALSE; } else { extractor = amrdec_extractor; @@ -1230,10 +1244,10 @@ static bool _mediacodec_eos_cb(void *user_data) return TRUE; } -void _foreach_cb(mediacodec_codec_type_e codec_type, void *user_data) +gboolean _foreach_cb(mediacodec_codec_type_e codec_type, void *user_data) { g_print("codec type : %x %s\n", codec_type, codec_type_to_string(codec_type)); - return; + return TRUE; } static void _mediacodec_prepare(App *app, bool frame_all) @@ -1749,7 +1763,9 @@ static void interpret(char *cmd, App *app) case CURRENT_STATUS_PROCESS_INPUT: { app->frame = atoi(cmd); - _mediacodec_process_input(app); + + if (app->frame > 0 && app->frame < 10) + _mediacodec_process_input(app); reset_menu_state(); } break; @@ -1871,11 +1887,11 @@ static void decoder_output_dump(App *app, media_packet_h pkt) void *temp; int i = 0; int stride_width, stride_height; - char filename[100] = {0}; + gchar filename[100] = {0}; FILE *fp = NULL; int ret = 0; - sprintf(filename, "/tmp/dec_output_dump_%d_%d.yuv", app->width, app->height); + g_snprintf(filename, MAX_STRING_LEN, "/tmp/dec_output_dump_%d_%d.yuv", app->width, app->height); fp = fopen(filename, "ab"); media_packet_get_video_plane_data_ptr(pkt, 0, &temp); @@ -1957,12 +1973,12 @@ static void output_dump(App *app, media_packet_h pkt) { void *temp; uint64_t buf_size; - char filename[100] = {0}; + gchar filename[100] = {0}; FILE *fp = NULL; int ret = 0; char adts[100] = {0, }; - sprintf(filename, "/tmp/dec_output_dump_%d.out", app->type); + g_snprintf(filename, MAX_STRING_LEN, "/tmp/dec_output_dump_%d.out", app->type); fp = fopen(filename, "ab"); media_packet_get_buffer_data_ptr(pkt, &temp);