int (*stop)(MMHandleType pHandle);
int (*unprepare)(MMHandleType pHandle);
int (*destroy)(MMHandleType pHandle);
- int (*set_error_cb)(MMHandleType demuxer, md_error_cb callback, void* user_data);
- int (*set_eos_cb)(MMHandleType demuxer, md_eos_cb callback, void* user_data);
+ int (*set_error_cb)(MMHandleType demuxer, md_error_cb callback, void *user_data);
+ int (*set_eos_cb)(MMHandleType demuxer, md_eos_cb callback, void *user_data);
int (*get_data)(MMHandleType pHandle, char *buffer);
} media_port_demuxer_ops;
#endif
#define MEDIADEMUXER_CHECK_NULL(x_var) \
- if (!x_var) { \
- MD_E("[%s] is NULL\n", #x_var); \
- return MD_ERROR_INVALID_ARGUMENT; \
- }
+ do { \
+ if (!x_var) { \
+ MD_E("[%s] is NULL\n", #x_var); \
+ return MD_ERROR_INVALID_ARGUMENT; \
+ } \
+ } while (0)
#define MEDIADEMUXER_CHECK_SET_AND_PRINT(x_var, x_cond, ret, ret_val, err_text) \
- if (x_var != x_cond) { \
- ret = ret_val; \
- MD_E("%s\n", #err_text); \
- goto ERROR; \
- }
+ do { \
+ if (x_var != x_cond) { \
+ ret = ret_val; \
+ MD_E("%s\n", #err_text); \
+ goto ERROR; \
+ } \
+ } while (0)
#ifdef __cplusplus
}
Name: capi-mediademuxer
Summary: A Media Demuxer library in Tizen Native API
-Version: 0.1.10
+Version: 0.1.11
Release: 1
Group: Multimedia/API
License: Apache-2.0
handle = NULL;
return MEDIADEMUXER_ERROR_INVALID_OPERATION;
} else {
- *demuxer = (mediademuxer_h) handle;
+ *demuxer = (mediademuxer_h)handle;
handle->is_stopped = false;
MD_I("[CoreAPI][%s] new handle : %p", __FUNCTION__, *demuxer);
}
/* set callback */
md_set_error_cb(handle->md_handle,
- (mediademuxer_error_cb) _mediademuxer_error_cb,
- handle);
+ (mediademuxer_error_cb)_mediademuxer_error_cb, handle);
md_set_eos_cb(handle->md_handle,
- (mediademuxer_eos_cb) _mediademuxer_eos_cb,
- handle);
+ (mediademuxer_eos_cb)_mediademuxer_eos_cb, handle);
handle->demux_state = MEDIADEMUXER_STATE_IDLE;
return MEDIADEMUXER_ERROR_NONE;
mediademuxer_error_e ret = MEDIADEMUXER_ERROR_NONE;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && path && handle->demux_state == MEDIADEMUXER_STATE_IDLE) {
- ret = md_set_data_source((MMHandleType) (handle->md_handle), path);
+ ret = md_set_data_source((MMHandleType)handle->md_handle, path);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)", __FUNCTION__,
MEDIADEMUXER_ERROR_INVALID_PATH);
mediademuxer_error_e ret = MEDIADEMUXER_ERROR_NONE;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && handle->demux_state == MEDIADEMUXER_STATE_IDLE && handle->eos_cb != NULL) {
- ret = md_prepare((MMHandleType) (handle->md_handle));
+ ret = md_prepare((MMHandleType)handle->md_handle);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && handle->demux_state == MEDIADEMUXER_STATE_READY) {
- ret = md_get_track_count((MMHandleType) (handle->md_handle), count);
+ ret = md_get_track_count((MMHandleType)handle->md_handle, count);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && handle->demux_state == MEDIADEMUXER_STATE_READY) {
- ret = md_select_track((MMHandleType) (handle->md_handle), track_index);
+ ret = md_select_track((MMHandleType)handle->md_handle, track_index);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && handle->demux_state == MEDIADEMUXER_STATE_READY) {
- ret = md_start((MMHandleType) (handle->md_handle));
+ ret = md_start((MMHandleType)handle->md_handle);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (track_index < 0 || format == NULL) {
MD_E("Invalid input parameters\n");
return MEDIADEMUXER_ERROR_INVALID_PARAMETER;
}
if (handle && (handle->demux_state == MEDIADEMUXER_STATE_READY
|| handle->demux_state == MEDIADEMUXER_STATE_DEMUXING)) {
- ret = md_get_track_info((MMHandleType) (handle->md_handle), track_index, format);
+ ret = md_get_track_info((MMHandleType)handle->md_handle, track_index, format);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (outbuf == NULL || track_index < 0)
return MEDIADEMUXER_ERROR_INVALID_PARAMETER;
if (handle && handle->demux_state == MEDIADEMUXER_STATE_DEMUXING) {
- ret = md_read_sample((MMHandleType) (handle->md_handle), track_index, outbuf);
+ ret = md_read_sample((MMHandleType)handle->md_handle, track_index, outbuf);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && handle->demux_state == MEDIADEMUXER_STATE_DEMUXING) {
- ret = md_seek((MMHandleType) (handle->md_handle), pos);
+ ret = md_seek((MMHandleType)handle->md_handle, pos);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && (handle->demux_state == MEDIADEMUXER_STATE_READY
|| handle->demux_state == MEDIADEMUXER_STATE_DEMUXING)) {
- ret = md_unselect_track((MMHandleType) (handle->md_handle), track_index);
+ ret = md_unselect_track((MMHandleType)handle->md_handle, track_index);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && handle->demux_state == MEDIADEMUXER_STATE_DEMUXING) {
- ret = md_stop((MMHandleType) (handle->md_handle));
+ ret = md_stop((MMHandleType)handle->md_handle);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && handle->demux_state == MEDIADEMUXER_STATE_READY) {
- ret = md_unprepare((MMHandleType) (handle->md_handle));
+ ret = md_unprepare((MMHandleType)handle->md_handle);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
mediademuxer_error_e ret;
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle && handle->demux_state == MEDIADEMUXER_STATE_IDLE) {
- ret = md_destroy(handle->md_handle);
+ ret = md_destroy((MMHandleType)handle->md_handle);
if (ret != MEDIADEMUXER_ERROR_NONE) {
MD_E("[CoreAPI][%s] DEMUXER_ERROR_INVALID_OPERATION(0x%08x)",
__FUNCTION__, MEDIADEMUXER_ERROR_INVALID_OPERATION);
{
mediademuxer_error_e ret = MEDIADEMUXER_ERROR_NONE;
DEMUXER_INSTANCE_CHECK(demuxer);
- mediademuxer_s *handle = (mediademuxer_s *)(demuxer);
+ mediademuxer_s *handle = (mediademuxer_s *)demuxer;
if (state != NULL) {
*state = handle->demux_state;
} else {
{
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle->demux_state != MEDIADEMUXER_STATE_IDLE)
return MEDIADEMUXER_ERROR_INVALID_STATE;
handle->error_cb = callback;
{
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle->demux_state != MEDIADEMUXER_STATE_IDLE)
return MEDIADEMUXER_ERROR_INVALID_STATE;
handle->error_cb = NULL;
MD_I("_mediademuxer_error_cb: ERROR %d to report. But call back is not set\n", error);
return 0;
}
- mediademuxer_s * handle = (mediademuxer_s *) user_data;
+ mediademuxer_s * handle = (mediademuxer_s *)user_data;
if (handle->demux_state != MEDIADEMUXER_STATE_IDLE)
return MEDIADEMUXER_ERROR_INVALID_STATE;
if (handle->error_cb)
{
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle->demux_state != MEDIADEMUXER_STATE_IDLE)
return MEDIADEMUXER_ERROR_INVALID_STATE;
handle->eos_cb = callback;
{
DEMUXER_INSTANCE_CHECK(demuxer);
mediademuxer_s *handle;
- handle = (mediademuxer_s *)(demuxer);
+ handle = (mediademuxer_s *)demuxer;
if (handle->demux_state != MEDIADEMUXER_STATE_IDLE)
return MEDIADEMUXER_ERROR_INVALID_STATE;
handle->eos_cb = NULL;
media_port_demuxer_ops *pOps = NULL;
md_handle_t *new_demuxer = NULL;
MEDIADEMUXER_FENTER();
- new_demuxer = (md_handle_t *) g_malloc(sizeof(md_handle_t));
+ new_demuxer = (md_handle_t *)g_malloc(sizeof(md_handle_t));
MD_I("md_create allocatiing new_demuxer %p:\n", new_demuxer);
MEDIADEMUXER_CHECK_NULL(new_demuxer);
memset(new_demuxer, 0, sizeof(md_handle_t));
/* alloc ops structure */
- pOps = (media_port_demuxer_ops *) g_malloc(sizeof(media_port_demuxer_ops));
+ pOps = (media_port_demuxer_ops *)g_malloc(sizeof(media_port_demuxer_ops));
MEDIADEMUXER_CHECK_NULL(pOps);
new_demuxer->demuxer_ops = pOps;
result = pOps->init(&new_demuxer->mdport_handle);
MEDIADEMUXER_CHECK_SET_AND_PRINT(result, MD_ERROR_NONE, result,
MD_NOT_INITIALIZED, "md_create failed");
- *demuxer = (MMHandleType) new_demuxer;
+ *demuxer = (MMHandleType)new_demuxer;
MEDIADEMUXER_FLEAVE();
return result;
ERROR:
- *demuxer = (MMHandleType) 0;
+ *demuxer = (MMHandleType)0;
if (pOps)
g_free(pOps);
if (new_demuxer)
md_handle_t *new_demuxer = NULL;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(demuxer);
- new_demuxer = (md_handle_t *) demuxer;
+ new_demuxer = (md_handle_t *)demuxer;
lenght_string = strlen(type);
media_type_string = (char *)g_malloc(sizeof(char) * (lenght_string + 1));
MEDIADEMUXER_CHECK_NULL(media_type_string);
int md_prepare(MMHandleType demuxer)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_get_track_count(MMHandleType demuxer, int *count)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_select_track(MMHandleType demuxer, int track)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_start(MMHandleType demuxer)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_get_track_info(MMHandleType demuxer, int track, media_format_h *format)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_read_sample(MMHandleType demuxer, int track_indx, media_packet_h *outbuf)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_seek(MMHandleType demuxer, int64_t pos)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_unselect_track(MMHandleType demuxer, int track)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_stop(MMHandleType demuxer)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_unprepare(MMHandleType demuxer)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
int md_destroy(MMHandleType demuxer)
{
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_CHECK_NULL(md_handle);
MEDIADEMUXER_FENTER();
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
{
MEDIADEMUXER_FENTER();
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
MEDIADEMUXER_CHECK_NULL(pOps);
{
MEDIADEMUXER_FENTER();
int result = MD_ERROR_NONE;
- md_handle_t *md_handle = (md_handle_t *) demuxer;
+ md_handle_t *md_handle = (md_handle_t *)demuxer;
MEDIADEMUXER_CHECK_NULL(md_handle);
media_port_demuxer_ops *pOps = md_handle->demuxer_ops;
MEDIADEMUXER_CHECK_NULL(pOps);
static int gst_demuxer_unprepare(MMHandleType pHandle);
static int gst_demuxer_destroy(MMHandleType pHandle);
static int gst_set_error_cb(MMHandleType pHandle,
- gst_error_cb callback, void* user_data);
+ gst_error_cb callback, void *user_data);
static int gst_set_eos_cb(MMHandleType pHandle,
gst_eos_cb callback, void *user_data);
-static int __gst_eos_callback(int track_num, void* user_data);
+static int __gst_eos_callback(int track_num, void *user_data);
/* Media Demuxer API common */
static media_port_demuxer_ops def_demux_ops = {
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
mdgst_handle_t *new_mediademuxer = NULL;
- new_mediademuxer = (mdgst_handle_t *) g_malloc(sizeof(mdgst_handle_t));
+ new_mediademuxer = (mdgst_handle_t *)g_malloc(sizeof(mdgst_handle_t));
MD_I("gst_demuxer_init allocating new_mediademuxer:%p\n", new_mediademuxer);
if (!new_mediademuxer) {
MD_E("Cannot allocate memory for demuxer\n");
(new_mediademuxer->info).num_subtitle_track = 0;
(new_mediademuxer->info).num_other_track = 0;
(new_mediademuxer->info).head = NULL;
- *pHandle = (MMHandleType) new_mediademuxer;
+ *pHandle = (MMHandleType)new_mediademuxer;
new_mediademuxer->total_tracks = 0;
MEDIADEMUXER_FLEAVE();
return ret;
static void __gst_no_more_pad(GstElement *element, gpointer data)
{
MEDIADEMUXER_FENTER();
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) data;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)data;
int loop_track;
track_info *head_track = &(gst_handle->info);
track *head = head_track->head;
MD_E("factory not able to make h264parse");
goto ERROR;
}
- } else if(strstr(temp->caps_string, "mpeg")) {
+ } else if (strstr(temp->caps_string, "mpeg")) {
parse_element = gst_element_factory_make("mpeg4videoparse", NULL);
if (!parse_element) {
MD_E("factory not able to make h264parse");
g_object_set(G_OBJECT(parse_element), "config-interval", 1, NULL);
}
- if(parse_element) {
+ if (parse_element) {
gst_bin_add(GST_BIN(pipeline), parse_element);
parse_sink_pad = gst_element_get_static_pad(parse_element, "sink");
if (!parse_sink_pad) {
MEDIADEMUXER_LINK_PAD(queue_src_pad, apppad, ERROR);
}
}
- } else if(strstr(name, "audio")) {
+ } else if (strstr(name, "audio")) {
//Create Parse
if (strstr(temp->caps_string, "audio/mpeg")) {
int mpegversion = 0;
GstStructure *structure = NULL;
structure = gst_caps_get_structure(temp->caps, 0);
gst_structure_get_int (structure, "mpegversion", &mpegversion);
- if(mpegversion == 2 || mpegversion == 4)
+ if (mpegversion == 2 || mpegversion == 4)
parse_element = gst_element_factory_make("aacparse", NULL);
- else if(mpegversion == 1)
+ else if (mpegversion == 1)
parse_element = gst_element_factory_make("mpegaudioparse", NULL);
} else if (strstr(temp->caps_string, "application/x-id3")) {
parse_element = gst_element_factory_make("mpegaudioparse", NULL);
MEDIADEMUXER_FENTER();
MD_I("Dynamic pad created, linking demuxer/decoder\n");
track *tmp = NULL;
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) data;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)data;
track_info *head_track = &(gst_handle->info);
gchar *name = gst_pad_get_name(pad);
gst_handle->total_tracks++;
static int __gst_create_audio_only_pipeline(gpointer data, GstCaps *caps)
{
MEDIADEMUXER_FENTER();
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) data;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)data;
GstPad *pad = NULL;
GstPad *aud_pad = NULL;
GstPad *aud_srcpad = NULL;
GstCaps *caps, gpointer data)
{
MEDIADEMUXER_FENTER();
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) data;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)data;
GstPad *pad = NULL;
GstPad *demuxer_pad = NULL;
GstPad *fake_pad = NULL;
if (type) {
MD_I("Media type %s found, probability %d%%\n", type, probability);
if (strstr(type, "quicktime") || (strstr(type, "audio/x-m4a")) || strstr(type, "x-3gp")
- || strstr(type, "ogg") || strstr(type, "flv")) {
+ || strstr(type, "ogg") || strstr(type, "flv") || strstr(type, "x-msvideo")) {
gst_handle->is_valid_container = true;
if (strstr(type, "ogg"))
gst_handle->demux = gst_element_factory_make("oggdemux", NULL);
else if (strstr(type, "flv"))
gst_handle->demux = gst_element_factory_make("flvdemux", NULL);
+ else if (strstr(type, "x-msvideo"))
+ gst_handle->demux = gst_element_factory_make("avidemux", NULL);
else
gst_handle->demux = gst_element_factory_make("qtdemux", NULL);
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *)pHandle;
MD_I("gst_demuxer_prepare Creating pipeline %p", new_mediademuxer);
ret = _gst_create_pipeline(new_mediademuxer, uri);
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *)pHandle;
*count = (new_mediademuxer->info).num_video_track +
(new_mediademuxer->info).num_audio_track +
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *)pHandle;
MD_I("total_tracks (%d) :: selected track (%d)", new_mediademuxer->total_tracks, track);
if (track >= new_mediademuxer->total_tracks || track < 0) {
goto ERROR;
}
new_mediademuxer->selected_tracks[track] = true;
- _gst_set_appsink((((mdgst_handle_t *) pHandle)->info).head, track,
+ _gst_set_appsink((((mdgst_handle_t *)pHandle)->info).head, track,
new_mediademuxer->total_tracks);
MEDIADEMUXER_FLEAVE();
return MD_ERROR_NONE;
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)pHandle;
int indx;
for (indx = 0; indx < gst_handle->total_tracks; indx++) {
_gst_demuxer_unset(pHandle, indx);
*/
if (gst_handle->selected_tracks[indx] != true) {
- if (_gst_unlink_unselected_track((((mdgst_handle_t *) pHandle)->info).head, indx) != MD_ERROR_NONE) {
+ if (_gst_unlink_unselected_track((((mdgst_handle_t *)pHandle)->info).head, indx) != MD_ERROR_NONE) {
MD_E("Failed to unlink unselected tracks\n");
ret = MD_INTERNAL_ERROR;
goto ERROR;
goto ERROR;
}
if (gst_structure_has_name(struc, "video/x-h264")) {
- const gchar *version = gst_structure_get_string(struc, "stream-format");
- if (strncmp(version, "avc", 3) == 0) {
- mime_type = MEDIA_FORMAT_H264_SP;
- } else {
- MD_W("Video mime (%s) not supported so far\n", gst_structure_get_name(struc));
- goto ERROR;
- }
+ mime_type = MEDIA_FORMAT_H264_SP;
} else if (gst_structure_has_name(struc, "video/x-h263")) {
mime_type = MEDIA_FORMAT_H263;
} else if (gst_structure_has_name(struc, "video/mpeg")) {
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *)pHandle;
track *temp = NULL;
int loop;
ret = MD_ERROR_UNKNOWN;
goto ERROR;
}
- if (media_packet_set_codec_data(out_pkt, (void*)codec_data_map.data,
+ if (media_packet_set_codec_data(out_pkt, (void *)codec_data_map.data,
(unsigned int)codec_data_map.size)) {
MD_E("unable to set the codec data\n");
ret = MD_ERROR_UNKNOWN;
MEDIADEMUXER_FLEAVE();
return ret;
- ERROR:
+ERROR:
if (mediabuf)
media_packet_destroy(mediabuf);
*outbuf = NULL;
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *demuxer = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *demuxer = (mdgst_handle_t *)pHandle;
media_packet_h mediabuf = NULL;
int indx = 0;
{
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)pHandle;
- gint64 pos = 0, len = 0;
+ gint64 pos = 0;
gdouble rate = 1;
track_info *head_track = &(gst_handle->info);
track *temp = head_track->head;
pos = pos1 * GST_MSECOND;
- MD_I("\n\n");
- MD_I("NEW Time: %" GST_TIME_FORMAT " / %" GST_TIME_FORMAT "\r",
- GST_TIME_ARGS(pos1), GST_TIME_ARGS(len));
+ MD_I("NEW Time: %" GST_TIME_FORMAT, GST_TIME_ARGS(pos));
indx = 0;
while (temp) {
temp = temp->next;
count++;
}
- gst_app_sink_set_max_buffers((GstAppSink *)(temp->appsink), (guint) 0);
+ gst_app_sink_set_max_buffers((GstAppSink *)(temp->appsink), (guint)0);
gst_app_sink_set_drop((GstAppSink *)(temp->appsink), true);
MEDIADEMUXER_FLEAVE();
return ret;
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *)pHandle;
if (track >= new_mediademuxer->total_tracks || track < 0) {
MD_E("total tracks is less then unselected track, So not support this track");
goto ERROR;
}
new_mediademuxer->selected_tracks[track] = false;
- _gst_unset_appsink((((mdgst_handle_t *) pHandle)->info).head, track,
+ _gst_unset_appsink((((mdgst_handle_t *)pHandle)->info).head, track,
new_mediademuxer->total_tracks);
MEDIADEMUXER_FLEAVE();
return ret;
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)pHandle;
MD_I("gst_demuxer_stop pipeine %p", gst_handle);
if (gst_element_set_state(gst_handle->pipeline, GST_STATE_PAUSED) ==
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)pHandle;
_gst_clear_struct(gst_handle);
if (gst_handle->bus_watch_id) {
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *)pHandle;
MD_I("gst_demuxer_destroy deallocating new_mediademuxer:%p\n",
new_mediademuxer);
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)pHandle;
if (gst_handle->user_cb[_GST_EVENT_TYPE_ERROR]) {
MD_E("Already set mediademuxer_error_cb\n");
MD_I("Set event handler callback(cb = %p, data = %p)\n", callback, user_data);
- gst_handle->user_cb[_GST_EVENT_TYPE_ERROR] = (gst_error_cb) callback;
+ gst_handle->user_cb[_GST_EVENT_TYPE_ERROR] = (gst_error_cb)callback;
gst_handle->user_data[_GST_EVENT_TYPE_ERROR] = user_data;
MEDIADEMUXER_FLEAVE();
return MD_ERROR_NONE;
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) pHandle;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)pHandle;
if (gst_handle->user_cb[_GST_EVENT_TYPE_EOS]) {
MD_E("Already set mediademuxer_eos_cb\n");
}
MD_I("Set event handler callback(cb = %p, data = %p)\n", callback, user_data);
- gst_handle->user_cb[_GST_EVENT_TYPE_EOS] = (gst_eos_cb) callback;
+ gst_handle->user_cb[_GST_EVENT_TYPE_EOS] = (gst_eos_cb)callback;
gst_handle->user_data[_GST_EVENT_TYPE_EOS] = user_data;
MEDIADEMUXER_FLEAVE();
return MD_ERROR_NONE;
MD_E("Invalid argument");
return MD_ERROR;
}
- mdgst_handle_t *gst_handle = (mdgst_handle_t *) user_data;
+ mdgst_handle_t *gst_handle = (mdgst_handle_t *)user_data;
if (gst_handle->user_cb[_GST_EVENT_TYPE_EOS])
((gst_eos_cb)gst_handle->user_cb[_GST_EVENT_TYPE_EOS])(track_num,
gst_handle->user_data[_GST_EVENT_TYPE_EOS]);
g_print("test_mediademuxer_set_data_source\n");
#if DEMUXER_OUTPUT_DUMP
- fp_audio_out = fopen("/opt/usr/dump_audio.out", "wb");
+ fp_audio_out = fopen("/tmp/dump_audio.out", "wb");
if (fp_audio_out != NULL) {
validate_dump = true;
- fp_video_out = fopen("/opt/usr/dump_video.out", "wb");
- fp_text_out = fopen("/opt/usr/dump_text.out", "wb");
+ fp_video_out = fopen("/tmp/dump_video.out", "wb");
+ fp_text_out = fopen("/tmp/dump_text.out", "wb");
} else {
g_print("Error - Cannot open file for file dump, Please chek root\n");
}