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)
#include <unistd.h>
#include <fcntl.h>
+#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);
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) {
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;
}
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) {
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;
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;
}
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)) {