return;
} else {
layer = 4 - ((header >> 17) & 0x3);
-
- if (layer < 1) {
- *have_frame = FALSE;
- return;
- }
}
/* if it's an invalid bitrate */
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");
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;
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;
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;
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;
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)
{
app->frame = atoi(cmd);
- if (app->frame > 0)
+ if (app->frame > 0 && app->frame < 10)
_mediacodec_process_input(app);
reset_menu_state();
}