#include <media_packet_internal.h>
//LCOV_EXCL_START
-static int gst_demuxer_init(MMHandleType *pHandle);
-static int gst_demuxer_prepare(MMHandleType pHandle, char *uri);
-static int gst_demuxer_get_data_count(MMHandleType pHandle, int *count);
-static int gst_demuxer_set_track(MMHandleType pHandle, int track);
-static int gst_demuxer_start(MMHandleType pHandle);
-static int gst_demuxer_read_sample(MMHandleType pHandle,
+static int __gst_demuxer_init(MMHandleType *pHandle);
+static int __gst_demuxer_prepare(MMHandleType pHandle, char *uri);
+static int __gst_demuxer_get_data_count(MMHandleType pHandle, int *count);
+static int __gst_demuxer_set_track(MMHandleType pHandle, int track);
+static int __gst_demuxer_start(MMHandleType pHandle);
+static int __gst_demuxer_read_sample(MMHandleType pHandle,
media_packet_h *outbuf, int track_indx);
-static int gst_demuxer_get_track_info(MMHandleType pHandle,
+static int __gst_demuxer_get_track_info(MMHandleType pHandle,
media_format_h *format, int index);
-static int gst_demuxer_seek(MMHandleType pHandle, gint64 pos1);
-static int gst_demuxer_unset_track(MMHandleType pHandle, int track);
-static int gst_demuxer_stop(MMHandleType pHandle);
-static int gst_demuxer_unprepare(MMHandleType pHandle);
-static int gst_demuxer_destroy(MMHandleType pHandle);
-static int gst_set_error_cb(MMHandleType pHandle,
+static int __gst_demuxer_seek(MMHandleType pHandle, gint64 pos1);
+static int __gst_demuxer_unset_track(MMHandleType pHandle, int track);
+static int __gst_demuxer_stop(MMHandleType pHandle);
+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);
-static int gst_set_eos_cb(MMHandleType pHandle,
+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 gint __gst_handle_core_error(mdgst_handle_t *gst_handle, int code);
-static gint __gst_handle_library_error(mdgst_handle_t *gst_handle, int code);
-static gint __gst_handle_resource_error(mdgst_handle_t *gst_handle, int code);
-static gint __gst_handle_stream_error(mdgst_handle_t *gst_handle, GError *error, GstMessage *message);
-static gint __gst_transform_gsterror(mdgst_handle_t *gst_handle, GstMessage *message, GError *error);
-
/* Media Demuxer API common */
static media_port_demuxer_ops def_demux_ops = {
.n_size = 0,
- .init = gst_demuxer_init,
- .prepare = gst_demuxer_prepare,
- .get_track_count = gst_demuxer_get_data_count,
- .set_track = gst_demuxer_set_track,
- .start = gst_demuxer_start,
- .get_track_info = gst_demuxer_get_track_info,
- .read_sample = gst_demuxer_read_sample,
- .seek = gst_demuxer_seek,
- .unset_track = gst_demuxer_unset_track,
- .stop = gst_demuxer_stop,
- .unprepare = gst_demuxer_unprepare,
- .destroy = gst_demuxer_destroy,
- .set_error_cb = gst_set_error_cb,
- .set_eos_cb = gst_set_eos_cb,
+ .init = __gst_demuxer_init,
+ .prepare = __gst_demuxer_prepare,
+ .get_track_count = __gst_demuxer_get_data_count,
+ .set_track = __gst_demuxer_set_track,
+ .start = __gst_demuxer_start,
+ .get_track_info = __gst_demuxer_get_track_info,
+ .read_sample = __gst_demuxer_read_sample,
+ .seek = __gst_demuxer_seek,
+ .unset_track = __gst_demuxer_unset_track,
+ .stop = __gst_demuxer_stop,
+ .unprepare = __gst_demuxer_unprepare,
+ .destroy = __gst_demuxer_destroy,
+ .set_error_cb = __gst_set_error_cb,
+ .set_eos_cb = __gst_set_eos_cb,
};
static gint __gst_handle_core_error(mdgst_handle_t *gst_handle, int code)
return trans_err;
}
-static gint __gst_handle_stream_error(mdgst_handle_t *gst_handle, GError *error, GstMessage *message)
-{
- gint trans_err = MEDIADEMUXER_ERROR_NONE;
-
- MEDIADEMUXER_CHECK_NULL(gst_handle);
- MEDIADEMUXER_CHECK_NULL(error);
- MEDIADEMUXER_CHECK_NULL(message);
-
- switch (error->code) {
- case GST_STREAM_ERROR_FAILED:
- case GST_STREAM_ERROR_TYPE_NOT_FOUND:
- case GST_STREAM_ERROR_DECODE:
- case GST_STREAM_ERROR_WRONG_TYPE:
- case GST_STREAM_ERROR_DECRYPT:
- case GST_STREAM_ERROR_DECRYPT_NOKEY:
- case GST_STREAM_ERROR_CODEC_NOT_FOUND:
- trans_err = __gst_transform_gsterror(gst_handle, message, error);
- break;
-
- case GST_STREAM_ERROR_NOT_IMPLEMENTED:
- case GST_STREAM_ERROR_TOO_LAZY:
- case GST_STREAM_ERROR_ENCODE:
- case GST_STREAM_ERROR_DEMUX:
- case GST_STREAM_ERROR_MUX:
- case GST_STREAM_ERROR_FORMAT:
- default:
- trans_err = MEDIADEMUXER_ERROR_INVALID_OPERATION;
- break;
- }
-
- return trans_err;
-}
-
static gint __gst_transform_gsterror(mdgst_handle_t *gst_handle, GstMessage *message, GError *error)
{
gchar *src_element_name = NULL;
return MEDIADEMUXER_ERROR_INVALID_PARAMETER;
}
+static gint __gst_handle_stream_error(mdgst_handle_t *gst_handle, GError *error, GstMessage *message)
+{
+ gint trans_err = MEDIADEMUXER_ERROR_NONE;
+
+ MEDIADEMUXER_CHECK_NULL(gst_handle);
+ MEDIADEMUXER_CHECK_NULL(error);
+ MEDIADEMUXER_CHECK_NULL(message);
+
+ switch (error->code) {
+ case GST_STREAM_ERROR_FAILED:
+ case GST_STREAM_ERROR_TYPE_NOT_FOUND:
+ case GST_STREAM_ERROR_DECODE:
+ case GST_STREAM_ERROR_WRONG_TYPE:
+ case GST_STREAM_ERROR_DECRYPT:
+ case GST_STREAM_ERROR_DECRYPT_NOKEY:
+ case GST_STREAM_ERROR_CODEC_NOT_FOUND:
+ trans_err = __gst_transform_gsterror(gst_handle, message, error);
+ break;
+
+ case GST_STREAM_ERROR_NOT_IMPLEMENTED:
+ case GST_STREAM_ERROR_TOO_LAZY:
+ case GST_STREAM_ERROR_ENCODE:
+ case GST_STREAM_ERROR_DEMUX:
+ case GST_STREAM_ERROR_MUX:
+ case GST_STREAM_ERROR_FORMAT:
+ default:
+ trans_err = MEDIADEMUXER_ERROR_INVALID_OPERATION;
+ break;
+ }
+
+ return trans_err;
+}
int gst_mediademxer_port_register(media_port_demuxer_ops *pOps)
{
return ret;
}
-static int gst_demuxer_init(MMHandleType *pHandle)
+static int __gst_demuxer_init(MMHandleType *pHandle)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
ret = MD_ERROR;
goto ERROR;
}
- MD_I("gst_demuxer_init allocating new_mediademuxer:%p\n", new_mediademuxer);
+ MD_I("__gst_demuxer_init allocating new_mediademuxer:%p\n", new_mediademuxer);
new_mediademuxer->is_prepared = false;
(new_mediademuxer->info).num_audio_track = 0;
(new_mediademuxer->info).num_video_track = 0;
return ret;
}
-gboolean __gst_bus_call(GstBus *bus, GstMessage *msg, gpointer data)
+static gboolean __gst_bus_call(GstBus *bus, GstMessage *msg, gpointer data)
{
mdgst_handle_t *gst_handle = (mdgst_handle_t *)data;
MEDIADEMUXER_FENTER();
MEDIADEMUXER_FLEAVE();
}
-void __gst_free_stuct(track **head)
+static void __gst_free_stuct(track **head)
{
MEDIADEMUXER_FENTER();
track *temp = NULL;
MEDIADEMUXER_FLEAVE();
}
-int __gst_add_track_info(GstPad *pad, GstCaps *caps, track **head,
+static int __gst_add_track_info(GstPad *pad, GstCaps *caps, track **head,
GstElement *pipeline)
{
MEDIADEMUXER_FENTER();
return;
}
-static int _gst_create_pipeline(mdgst_handle_t *gst_handle, char *uri)
+static int __gst_create_pipeline(mdgst_handle_t *gst_handle, char *uri)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
return ret;
}
-static int gst_demuxer_prepare(MMHandleType pHandle, char *uri)
+static int __gst_demuxer_prepare(MMHandleType pHandle, char *uri)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(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);
+ MD_I("__gst_demuxer_prepare Creating pipeline %p", new_mediademuxer);
+ ret = __gst_create_pipeline(new_mediademuxer, uri);
if (ret != MD_ERROR_NONE) {
- MD_E("_gst_create_pipeline() failed. returned %d\n", ret);
+ MD_E("__gst_create_pipeline() failed. returned %d\n", ret);
goto ERROR;
}
MEDIADEMUXER_FLEAVE();
return ret;
}
-static int gst_demuxer_get_data_count(MMHandleType pHandle, int *count)
+static int __gst_demuxer_get_data_count(MMHandleType pHandle, int *count)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
return ret;
}
-int _gst_set_appsink(track *temp, int index, int loop)
+static int __gst_set_appsink(track *temp, int index, int loop)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
return ret;
}
-static int gst_demuxer_set_track(MMHandleType pHandle, int track)
+static int __gst_demuxer_set_track(MMHandleType pHandle, int track)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
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;
return ret;
}
-static int _gst_unlink_unselected_track(track *temp, int index)
+static int __gst_unlink_unselected_track(track *temp, int index)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
return ret;
}
-static int gst_demuxer_start(MMHandleType pHandle)
+static int __gst_demuxer_start(MMHandleType pHandle)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
_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;
}
}
- MD_I("gst_demuxer_start pipeline %p", gst_handle);
+ MD_I("__gst_demuxer_start pipeline %p", gst_handle);
MEDIADEMUXER_FLEAVE();
return ret;
ERROR:
return MD_ERROR;
}
-static int gst_demuxer_get_track_info(MMHandleType pHandle,
+static int __gst_demuxer_get_track_info(MMHandleType pHandle,
media_format_h *format, int index)
{
MEDIADEMUXER_FENTER();
return ret;
}
-static int _gst_copy_buf_to_media_packet(media_packet_h out_pkt,
+static int __gst_copy_buf_to_media_packet(media_packet_h out_pkt,
GstBuffer *buffer, GstBuffer *codec_data)
{
MEDIADEMUXER_FENTER();
return ret;
}
-static int _gst_demuxer_create_eos_packet(media_format_h fmt, media_packet_h *outbuf)
+static int __gst_demuxer_create_eos_packet(media_format_h fmt, media_packet_h *outbuf)
{
media_packet_h mediabuf = NULL;
int ret = MD_ERROR_NONE;
return ret;
}
-static int gst_demuxer_read_sample(MMHandleType pHandle,
+static int __gst_demuxer_read_sample(MMHandleType pHandle,
media_packet_h *outbuf, int track_indx)
{
MEDIADEMUXER_FENTER();
__gst_eos_callback(track_indx, demuxer);
//Make EOS packet
- _gst_demuxer_create_eos_packet(atrack->format, outbuf);
+ __gst_demuxer_create_eos_packet(atrack->format, outbuf);
return ret;
} else {
- MD_E("gst_demuxer_read_sample failed\n");
+ MD_E("__gst_demuxer_read_sample failed\n");
*outbuf = NULL;
ret = MD_ERROR_UNKNOWN;
return ret;
/* Need to Check : Only the first frame need set codec_data, what about Resolution changed instance ...*/
if (atrack->need_codec_data) {
atrack->need_codec_data = FALSE;
- /* Create the codec data and pass to _gst_copy_buf_to_media_packet() to add into the media packet */
+ /* Create the codec data and pass to __gst_copy_buf_to_media_packet() to add into the media packet */
GstStructure *structure = NULL;
const GValue *value = NULL;
}
/* Fill the media_packet with proper information */
- ret = _gst_copy_buf_to_media_packet(mediabuf, buffer, codec_data_buffer);
+ ret = __gst_copy_buf_to_media_packet(mediabuf, buffer, codec_data_buffer);
gst_sample_unref(sample);
*outbuf = mediabuf;
return ret;
}
-static int gst_demuxer_seek(MMHandleType pHandle, gint64 pos1)
+static int __gst_demuxer_seek(MMHandleType pHandle, gint64 pos1)
{
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL(pHandle);
return MD_ERROR;
}
-int _gst_unset_appsink(track *temp, int index, int loop)
+static int __gst_unset_appsink(track *temp, int index, int loop)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
return ret;
}
-static int gst_demuxer_unset_track(MMHandleType pHandle, int track)
+static int __gst_demuxer_unset_track(MMHandleType pHandle, int track)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
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;
return ret;
}
-static int gst_demuxer_stop(MMHandleType pHandle)
+static int __gst_demuxer_stop(MMHandleType pHandle)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
mdgst_handle_t *gst_handle = (mdgst_handle_t *)pHandle;
- MD_I("gst_demuxer_stop pipeline %p", gst_handle);
+ MD_I("__gst_demuxer_stop pipeline %p", gst_handle);
if (gst_element_set_state(gst_handle->pipeline, GST_STATE_PAUSED) ==
GST_STATE_CHANGE_FAILURE) {
MD_E("Failed to set into PAUSE state");
return ret;
}
-void _gst_clear_struct(mdgst_handle_t *gst_handle)
+static void __gst_clear_struct(mdgst_handle_t *gst_handle)
{
MEDIADEMUXER_FENTER();
MEDIADEMUXER_CHECK_NULL_VOID(gst_handle);
return MD_ERROR;
}
-static int gst_demuxer_unprepare(MMHandleType pHandle)
+static int __gst_demuxer_unprepare(MMHandleType pHandle)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MD_I("Track [%d] Not selected\n", indx);
} else {
MD_I("Track [%d] to unset appsink...\n", indx);
- gst_demuxer_unset_track(pHandle, indx);
+ __gst_demuxer_unset_track(pHandle, indx);
}
if (atrack->next) {
track *next = atrack->next;
indx++;
}
- _gst_clear_struct(gst_handle);
+ __gst_clear_struct(gst_handle);
if (gst_handle->bus_watch_id) {
GSource *source = NULL;
source = g_main_context_find_source_by_id(gst_handle->thread_default, gst_handle->bus_watch_id);
gst_handle->bus_watch_id = 0;
}
- MD_I("gst_demuxer_stop pipeline %p\n", gst_handle->pipeline);
+ MD_I("__gst_demuxer_stop pipeline %p\n", gst_handle->pipeline);
if (_md_gst_destroy_pipeline(gst_handle->pipeline) != MD_ERROR_NONE) {
ret = MD_ERROR;
goto ERROR;
return ret;
}
-static int gst_demuxer_destroy(MMHandleType pHandle)
+static int __gst_demuxer_destroy(MMHandleType pHandle)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;
MEDIADEMUXER_CHECK_NULL(pHandle);
mdgst_handle_t *new_mediademuxer = (mdgst_handle_t *)pHandle;
- MD_I("gst_demuxer_destroy deallocating new_mediademuxer:%p\n",
+ MD_I("__gst_demuxer_destroy deallocating new_mediademuxer:%p\n",
new_mediademuxer);
g_free(new_mediademuxer);
MEDIADEMUXER_FLEAVE();
return ret;
}
-int gst_set_error_cb(MMHandleType pHandle,
+int __gst_set_error_cb(MMHandleType pHandle,
gst_error_cb callback, void *user_data)
{
MEDIADEMUXER_FENTER();
return ret;
}
-int gst_set_eos_cb(MMHandleType pHandle, gst_eos_cb callback, void *user_data)
+int __gst_set_eos_cb(MMHandleType pHandle, gst_eos_cb callback, void *user_data)
{
MEDIADEMUXER_FENTER();
int ret = MD_ERROR_NONE;