int mc_set_buffer_status_cb(MMHandleType mediacodec, mediacodec_buffer_status_cb callback, void* user_data);
int mc_unset_buffer_status_cb(MMHandleType mediacodec);
-
-
+int mc_set_supported_codec_cb(MMHandleType mediacodec, mediacodec_supported_codec_cb callback, void* user_data);
+int _mediacodec_foreach_supported_codec(MMHandleType mediacodec, mediacodec_supported_codec_cb callback, void* user_data);
#ifdef __cplusplus
}
#endif
int __mc_fill_video_packet_with_mm_video_buffer(mc_gst_core_t *core, void *data, int size, media_packet_h *out_pkt);
int __mc_fill_vdec_packet_with_outbuf(mc_gst_core_t *core, void *data, int size, media_packet_h *pkt);
-int __mc_vdec_h264_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_venc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_vdec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_vdec_h263_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_vdec_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_h264dec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_sprddec_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_hw_h264enc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_sprddec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_sprdenc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_sprdenc_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_aenc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_adec_aac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_aenc_aac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_adec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_adec_aacv12_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_adec_mp3_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_adec_amrnb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_adec_amrwb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_aenc_amrnb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_adec_vorbis_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_adec_flac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
-int __mc_adec_wma_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config);
+int __mc_vdec_h264_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_venc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_vdec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_vdec_h263_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_vdec_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_h264dec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_sprddec_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_hw_h264enc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_sprddec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_sprdenc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_sprdenc_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_aenc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_adec_aac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_aenc_aac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_adec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_adec_aacv12_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_adec_mp3_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_adec_amrnb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_adec_amrwb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_aenc_amrnb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_adec_vorbis_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_adec_flac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
+int __mc_adec_wma_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config);
bool _mc_is_voss (unsigned char *p, int size, int *codec_size);
bool _mc_is_ivop (unsigned char *p, int size, int pos);
bool _mc_is_vop (unsigned char *p, int size, int pos);
mc_handle_t *new_mediacodec = NULL;
int ret = MC_ERROR_NONE;
int i;
- int support_list = sizeof(spec_emul) / sizeof(spec_emul[0]);
/* alloc mediacodec structure */
new_mediacodec = (mc_handle_t *)g_malloc(sizeof(mc_handle_t));
int stride_height;
uint32_t width;
uint32_t height;
- uint32_t plane_num;
uint32_t buf_size;
- uint32_t plane_size;
- int ret = MC_ERROR_NONE;
- void *pkt_data = NULL;
tbm_surface_h tsurf = NULL;
tbm_surface_info_s tsurf_info;
tbm_bo bo[MM_VIDEO_BUFFER_PLANE_MAX];
bool codec_config = FALSE;
bool sync_flag = FALSE;
bool slice = FALSE;
- int codec_data_size = 0;
int ret = MC_ERROR_NONE;
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
break;
case MEDIA_FORMAT_MPEG4_SP:
case MEDIA_FORMAT_MPEG4_ASP:
- codec_data_size = _mc_check_mpeg4_out_bytestream((unsigned char *)data, size, &codec_config, &sync_flag);
+ _mc_check_mpeg4_out_bytestream((unsigned char *)data, size, &codec_config, &sync_flag);
break;
case MEDIA_FORMAT_H263:
case MEDIA_FORMAT_H263P:
return core->vtable[create_caps](core, caps, buff, codec_config);
}
-int __mc_venc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_venc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_hw_h264enc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_hw_h264enc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_sprdenc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_sprdenc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_sprdenc_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff, bool codec_config)
+int __mc_sprdenc_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_h264dec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_h264dec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_sprddec_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_sprddec_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_sprddec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_sprddec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_vdec_h263_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_vdec_h263_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_vdec_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_vdec_mpeg4_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_vdec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_vdec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_vdec_h264_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_vdec_h264_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_aenc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_aenc_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_aenc_aac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_aenc_aac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_aenc_amrnb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_aenc_amrnb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_adec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_adec_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
int ret = MC_ERROR_NONE;
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return ret;
}
-int __mc_adec_aac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff, bool codec_config)
+int __mc_adec_aac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer* buff,gboolean codec_config)
{
int ret = MC_ERROR_NONE;
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return ret;
}
-int __mc_adec_aacv12_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff, bool codec_config)
+int __mc_adec_aacv12_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff,gboolean codec_config)
{
int ret = MC_ERROR_NONE;
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return ret;
}
-int __mc_adec_mp3_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff, bool codec_config)
+int __mc_adec_mp3_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_adec_amrnb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff, bool codec_config)
+int __mc_adec_amrnb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_adec_amrwb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff, bool codec_config)
+int __mc_adec_amrwb_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return MC_ERROR_NONE;
}
-int __mc_adec_vorbis_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff, bool codec_config)
+int __mc_adec_vorbis_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return ret;
}
-int __mc_adec_flac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff, bool codec_config)
+int __mc_adec_flac_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff,gboolean codec_config)
{
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
return ret;
}
-int __mc_adec_wma_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff, bool codec_config)
+int __mc_adec_wma_caps(mc_gst_core_t *core, GstCaps **caps, GstMCBuffer *buff,gboolean codec_config)
{
int ret = MC_ERROR_NONE;
g_return_val_if_fail(core != NULL, MC_PARAM_ERROR);
GstMemory *mem;
GstMapInfo map = GST_MAP_INFO_INIT;
MMVideoBuffer *mm_video_buf = NULL;
- mc_gst_core_t *core = NULL;
- core = (mc_gst_core_t*)user_data;
LOGD("packet finalized: %p", packet);
media_packet_get_extra(packet, &buffer);
int num_bos;
tbm_surface_h surface = NULL;
tbm_surface_info_s surface_info;
- mc_encoder_info_t *enc_info = (mc_encoder_info_t *)core->codec_info;
if (!pkt) {
LOGE("output is null");
LOGE("mm_vbuffer->handle.bo[%d] : %p", i, mm_vbuffer->handle.bo[i]);
}
- tbm_bo_handle handle = tbm_bo_get_handle(mm_vbuffer->handle.bo[0], TBM_DEVICE_CPU);
#ifdef TIZEN_PROFILE_LITE
int phy_addr = 0;
int phy_size = 0;
tbm_bo_handle handle_fd = tbm_bo_get_handle(mm_vbuffer->handle.bo[0], TBM_DEVICE_MM);
-
if (__tbm_get_physical_addr_bo(handle_fd, &phy_addr, &phy_size) == 0) {
mm_vbuffer->handle.paddr[0] = (void *)phy_addr;
LOGD("mm_vbuffer->paddr : %p", mm_vbuffer->handle.paddr[0]);
((state & (expected_state)) == (expected_state))
#define AAC_CODECDATA_SIZE 16
-static int samplerate = DEFAULT_SAMPPLERATE;
-static int channel = DEFAULT_CHANNEL;
-static int bit = DEFAULT_BIT;
-static int bitrate = DEFAULT_BITRATE;
+
static int samplebyte = DEFAULT_SAMPLEBYTE;
unsigned char buf_adts[ADTS_HEADER_SIZE];
/* For debugging */
static void mc_hex_dump(char *desc, void *addr, int len);
+#if DUMP_OUTBUF
static void decoder_output_dump(App *app, media_packet_h pkt);
-
+#endif
/* */
void (*extractor)(App *app, unsigned char** data, int *size, bool *have_frame);
void h264_extractor(App *app, unsigned char **data, int *size, bool *have_frame)
{
- int nal_length = 0;
unsigned char val, zero_count;
unsigned char *pNal = app->data + app->offset;
int max = app->length - app->offset;
- int i = 0;
int index = 0;
int nal_unit_type = 0;
bool init;
void h263_extractor(App * app, unsigned char **data, int *size, bool * have_frame)
{
int len = 0;
- size_t result;
int read_size = 1, state = 1, bStart = 0;
unsigned char val;
unsigned char *pH263 = app->data + app->offset;
void mpeg4_extractor(App * app, unsigned char **data, int *size, bool * have_frame)
{
- int static temp;
int len = 0;
- int result;
- int read_size = 1, state = 1, bType = 0, bStart = 0;
+ int result = 0;
+ int state = 1, bType = 0;
unsigned char val;
unsigned char *pMpeg4 = app->data + app->offset;
*data = pMpeg4;
while (1) {
if (len >= max) {
- read_size = (len - 1);
*have_frame = FALSE;
goto DONE;
}
void amrdec_extractor(App * app, unsigned char **data, int *size, bool * have_frame)
{
int readsize = 0, mode_temp;
- size_t result;
- unsigned int mime_size = AMR_NB_MIME_HDR_SIZE;
unsigned int fsize, mode;
unsigned char *pAmr = app->data + app->offset;
- int max = app->length - app->offset;
//change the below one to frame count
if (app->offset == 0) {
if (!memcmp(pAmr, AMR_header, AMR_NB_MIME_HDR_SIZE)) {
app->offset += AMR_NB_MIME_HDR_SIZE;
} else {
if (!memcmp(pAmr, AMRWB_header, AMR_WB_MIME_HDR_SIZE)) {
- mime_size = AMR_WB_MIME_HDR_SIZE;
blocksize_tbl = (int *)block_size_wb;
mode_temp = pAmr[AMR_WB_MIME_HDR_SIZE];
pAmr = pAmr + AMR_WB_MIME_HDR_SIZE;
g_print("[FAIL] Not found amr frame sync.....\n");
}
- DONE:
*size = readsize;
app->offset += readsize;
*data = pAmr;
{
int read_size;
guint header;
- guint padding, bitrate, lsf, layer, mpg25;
- guint hdr_bitrate, sf;
+ guint padding, bitrate, lsf=0, layer = 0, mpg25=0;
+ guint hdr_bitrate=0, sf=0;
int offset = app->length - app->offset;
unsigned char *pData = app->data + app->offset;
void extract_input_aacdec_m4a_test(App * app, unsigned char **data, int *size, bool * have_frame)
{
int readsize = 0, read_size = 0;
- size_t result;
unsigned int header_size = ADTS_HEADER_SIZE;
unsigned char buffer[100000];
unsigned char codecdata[AAC_CODECDATA_SIZE] = { 0, };
app->offset += *size;
}
*/
+#if 0
static void _mediacodec_empty_buffer_cb(media_packet_h pkt, void *user_data)
{
if (pkt != NULL) {
}
return;
}
-
-int _mediacodec_set_codec(int codecid, int flag, int *hardware)
+#endif
+int _mediacodec_set_codec(int codecid, int flag, bool *hardware)
{
bool encoder;
- media_format_mimetype_e mime;
+ media_format_mimetype_e mime = 0;
encoder = GET_IS_ENCODER(flag) ? 1 : 0;
*hardware = GET_IS_HW(flag) ? 1 : 0;
media_packet_h pkt = NULL;
unsigned char *tmp;
int read;
- int plane_num;
int offset;
int stride_width, stride_height;
g_main_loop_quit(app->loop);
return FALSE;
}
- g_print("length : %d, offset : %d\n", app->length, app->offset);
+ g_print("length : %d, offset : %d\n", (int)app->length, (int)app->offset);
if (app->offset + len > app->length)
len = app->length - app->offset;
}
}
-static bool _mediacodec_inbuf_used_cb(media_packet_h pkt, void *user_data)
+static gboolean _mediacodec_inbuf_used_cb(media_packet_h pkt, void *user_data)
{
g_print("_mediacodec_inbuf_used_cb!!!\n");
media_packet_destroy(pkt);
if (ret != MEDIACODEC_ERROR_NONE)
g_print("get_output failed\n");
- //decoder_output_dump(app, out_pkt);
-
#if DUMP_OUTBUF
void *data;
int buf_size;
int stride_width, stride_height;
+ decoder_output_dump(app, out_pkt);
media_packet_get_buffer_data_ptr(out_pkt, &data);
media_packet_get_buffer_size(out_pkt, &buf_size);
g_print("output data : %p, size %d\n", data, (int)buf_size);
static void _mediacodec_prepare(App *app)
{
int ret;
- media_format_mimetype_e mime;
#if DUMP_OUTBUF
fp_out = fopen("/tmp/codec_dump.out", "wb");
}
/* set callback */
- mediacodec_set_input_buffer_used_cb(app->mc_handle[0], _mediacodec_inbuf_used_cb, NULL);
- mediacodec_set_output_buffer_available_cb(app->mc_handle[0], _mediacodec_outbuf_available_cb, app);
- mediacodec_set_buffer_status_cb(app->mc_handle[0], _mediacodec_buffer_status_cb, app);
- mediacodec_set_eos_cb(app->mc_handle[0], _mediacodec_eos_cb, NULL);
- mediacodec_set_error_cb(app->mc_handle[0], _mediacodec_error_cb, NULL);
+ mediacodec_set_input_buffer_used_cb(app->mc_handle[0], (mediacodec_input_buffer_used_cb)_mediacodec_inbuf_used_cb, NULL);
+ mediacodec_set_output_buffer_available_cb(app->mc_handle[0], (mediacodec_output_buffer_available_cb) _mediacodec_outbuf_available_cb, app);
+ mediacodec_set_buffer_status_cb(app->mc_handle[0], (mediacodec_buffer_status_cb) _mediacodec_buffer_status_cb, app);
+ mediacodec_set_eos_cb(app->mc_handle[0], (mediacodec_eos_cb)_mediacodec_eos_cb, NULL);
+ mediacodec_set_error_cb(app->mc_handle[0], (mediacodec_error_cb)_mediacodec_error_cb, NULL);
/* prepare */
ret = mediacodec_prepare(app->mc_handle[0]);
break;
case CURRENT_STATUS_PROCESS_INPUT:
{
- static int num = 0;
- num = atoi(cmd);
reset_menu_state();
}
break;
case CURRENT_STATUS_GET_OUTPUT:
{
- static int num = 0;
- num = atoi(cmd);
reset_menu_state();
}
break;
{
App *app = &s_app;
- GError *error = NULL;
GIOChannel *stdin_channel;
stdin_channel = g_io_channel_unix_new(0);
g_io_channel_set_flags(stdin_channel, G_IO_FLAG_NONBLOCK, NULL);
printf(" %s\n", buff);
}
-
+#if DUMP_OUTBUF
static void decoder_output_dump(App *app, media_packet_h pkt)
{
- unsigned char *temp;
+ void *temp;
int i = 0;
int stride_width, stride_height;
char filename[100] = {0};
media_packet_get_video_plane_data_ptr(pkt, 0, &temp);
media_packet_get_video_stride_width(pkt, 0, &stride_width);
media_packet_get_video_stride_height(pkt, 0, &stride_height);
- g_printf("stride : %d, %d\n", stride_width, stride_height);
+ printf("stride : %d, %d\n", stride_width, stride_height);
for (i = 0; i < app->height; i++) {
ret = fwrite(temp, app->width, 1, fp);
fclose(fp);
}
-
+#endif