From 1e6b80fb113f70977d31703d15c6150990daafbf Mon Sep 17 00:00:00 2001 From: Deepak Srivastava Date: Thu, 26 Nov 2015 16:50:16 +0530 Subject: [PATCH] Sync with 2.4 [Fixed prevent issues]. Change-Id: Ia51931316598785c1822398a0e24d04b0c4ad6ff Signed-off-by: Deepak Srivastava --- include/port_gst/mediademuxer_port_gst.h | 2 +- src/mediademuxer_ini.c | 4 ++-- src/mediademuxer_port.c | 22 ++++++++++++---------- src/port_gst/mediademuxer_port_gst.c | 7 +++---- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/include/port_gst/mediademuxer_port_gst.h b/include/port_gst/mediademuxer_port_gst.h index 520b186..0499c39 100755 --- a/include/port_gst/mediademuxer_port_gst.h +++ b/include/port_gst/mediademuxer_port_gst.h @@ -30,7 +30,7 @@ extern "C" { #endif -#define POLLING_INTERVAL 1000 +#define POLLING_INTERVAL 10000 #define MAX_APP_BUFFER 100 #define MEDIADEMUXER_SET_STATE(x_element, x_state, error) \ diff --git a/src/mediademuxer_ini.c b/src/mediademuxer_ini.c index 5619ced..e0178fe 100755 --- a/src/mediademuxer_ini.c +++ b/src/mediademuxer_ini.c @@ -48,9 +48,9 @@ static void _md_ini_check_ini_status(void); if (str && \ (strlen(str) > 0) && \ (strlen(str) < MEDIADEMUXER_INI_MAX_STRLEN)) { \ - strcpy(x_item, str); \ + strncpy(x_item, str, MEDIADEMUXER_INI_MAX_STRLEN - 1); \ } else { \ - strcpy(x_item, x_default); \ + strncpy(x_item, x_default, MEDIADEMUXER_INI_MAX_STRLEN - 1); \ } \ } while (0) diff --git a/src/mediademuxer_port.c b/src/mediademuxer_port.c index ed3d43a..fe5385e 100755 --- a/src/mediademuxer_port.c +++ b/src/mediademuxer_port.c @@ -33,6 +33,8 @@ #include #include +#define MAX_ERR_LEN 256 + /* function type */ extern int gst_port_register(media_port_demuxer_ops *pOps); extern int ffmpeg_port_register(media_port_demuxer_ops *pOps); @@ -108,11 +110,15 @@ int __md_util_exist_file_path(const char *file_path) fd = open(file_path, O_RDONLY); if (fd < 0) { - MD_E("failed to open file by %s (%d)\n", strerror(errno), errno); - if (EACCES == errno) { - MEDIADEMUXER_FLEAVE(); - return MD_ERROR_FILE_NOT_FOUND; - } + char buf[MAX_ERR_LEN]; + int ret_err = 0; + ret_err = strerror_r(errno, buf, MAX_ERR_LEN); + if (0 == ret_err) + MD_E("failed to open file by %s (%d)\n", buf, errno); + else + MD_E("File not found, strerror_r() failed with errno (%d)\n", errno); + MEDIADEMUXER_FLEAVE(); + return MD_ERROR_FILE_NOT_FOUND; } if (fstat(fd, &stat_results) < 0) { @@ -227,10 +233,6 @@ mediademuxer_src_type __md_util_media_type(char **uri) MEDIADEMUXER_FLEAVE(); return MD_ERROR_NONE; ERROR: - if (new_uristr) - free(new_uristr); - if (old_uristr) - free(old_uristr); MEDIADEMUXER_FLEAVE(); return MEDIADEMUXER_SRC_INVALID; } @@ -251,8 +253,8 @@ int _md_util_parse(MMHandleType demuxer, const char *type) strncpy(media_type_string, type, lenght_string + 1); /*Set media_type depending upon the header of string else consider using file protocol */ if (new_demuxer->uri_src) { - free(new_demuxer->uri_src); MD_L("new_demuxer->uri_src deallocating %p\n", new_demuxer->uri_src); + free(new_demuxer->uri_src); } new_demuxer->uri_src_media_type = __md_util_media_type(&media_type_string); if (new_demuxer->uri_src_media_type != MEDIADEMUXER_SRC_INVALID) { diff --git a/src/port_gst/mediademuxer_port_gst.c b/src/port_gst/mediademuxer_port_gst.c index ec4eaf0..2e7835f 100755 --- a/src/port_gst/mediademuxer_port_gst.c +++ b/src/port_gst/mediademuxer_port_gst.c @@ -462,7 +462,7 @@ static int __gst_create_audio_only_pipeline(gpointer data, GstCaps *caps) gst_object_unref(aud_srcpad); trck = head_track->head; - while (aud_srcpad != trck->pad && trck != NULL) + while (trck != NULL && aud_srcpad != trck->pad) trck = trck->next; if (trck != NULL) { trck->caps = caps; @@ -491,8 +491,7 @@ ERROR: gst_object_unref(queue_sinkpad); if (queue_srcpad) gst_object_unref(queue_srcpad); - if (type) - g_free(type); + g_free(type); MEDIADEMUXER_FLEAVE(); return MD_ERROR; } @@ -1265,7 +1264,7 @@ static int gst_demuxer_seek(MMHandleType pHandle, gint64 pos1) MEDIADEMUXER_CHECK_NULL(pHandle); mdgst_handle_t *gst_handle = (mdgst_handle_t *) pHandle; - gint64 pos, len; + gint64 pos = 0, len = 0; gdouble rate = 1; if (gst_element_query_position(gst_handle->pipeline, GST_FORMAT_TIME, &pos) && gst_element_query_duration(gst_handle->pipeline, GST_FORMAT_TIME, &len)) { -- 2.7.4