/* gstreamer element creation macro */
#define _MMCAMCORDER_PIPELINE_MAKE(sub_context, element, eid, name /*char* */, err) \
+do { \
if (element[eid].gst != NULL) { \
_mmcam_dbg_err("The element(Pipeline) is existed. element_id=[%d], name=[%s]", eid, name); \
gst_object_unref(element[eid].gst); \
goto pipeline_creation_error; \
} else { \
g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \
- }
+ } \
+} while (0)
#define _MMCAMCORDER_BIN_MAKE(sub_context, element, eid, name /*char* */, err) \
+do { \
if (element[eid].gst != NULL) { \
_mmcam_dbg_err("The element(Bin) is existed. element_id=[%d], name=[%s]", eid, name); \
gst_object_unref(element[eid].gst); \
goto pipeline_creation_error; \
} else { \
g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \
- }
+ } \
+} while (0)
#define _MMCAMCORDER_ELEMENT_MAKE(sub_context, element, eid, name /*char* */, nickname /*char* */, elist, err) \
+do { \
if (element[eid].gst != NULL) { \
_mmcam_dbg_err("The element is existed. element_id=[%d], name=[%s]", eid, name); \
gst_object_unref(element[eid].gst); \
g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \
err = MM_ERROR_NONE; \
} \
- elist = g_list_append(elist, &(element[eid]));
+ elist = g_list_append(elist, &(element[eid])); \
+} while (0)
#define _MMCAMCORDER_ELEMENT_MAKE2(sub_context, element, eid, name /*char* */, nickname /*char* */, err) \
+do { \
if (element[eid].gst != NULL) { \
_mmcam_dbg_err("The element is existed. element_id=[%d], name=[%s]", eid, name); \
gst_object_unref(element[eid].gst); \
g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \
err = MM_ERROR_NONE; \
} \
+} while (0)
#define _MMCAMCORDER_ELEMENT_MAKE_IGNORE_ERROR(sub_context, element, eid, name /*char* */, nickname /*char* */, elist) \
+do { \
if (element[eid].gst != NULL) { \
_mmcam_dbg_err("The element is existed. element_id=[%d], name=[%s]", eid, name); \
gst_object_unref(element[eid].gst); \
element[eid].id = eid; \
g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \
elist = g_list_append(elist, &(element[eid])); \
- }
+ } \
+} while (0)
#define _MMCAMCORDER_ELEMENT_ADD(sub_context, element, eid, gst_element, elist, err) \
+do { \
if (element[eid].gst != NULL) { \
_mmcam_dbg_err("The element is existed. element_id=[%d]", eid); \
gst_object_unref(element[eid].gst); \
g_object_weak_ref(G_OBJECT(element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \
err = MM_ERROR_NONE; \
} \
- elist = g_list_append(elist, &(element[eid]));
+ elist = g_list_append(elist, &(element[eid])); \
+} while (0)
#define _MMCAMCORDER_ENCODEBIN_ELMGET(sub_context, eid, name /*char* */, err) \
+do { \
if (sub_context->encode_element[eid].gst != NULL) { \
_mmcam_dbg_err("The element is existed. element_id=[%d], name=[%s]", eid, name); \
gst_object_unref(sub_context->encode_element[eid].gst); \
} else{ \
gst_object_unref(sub_context->encode_element[eid].gst); \
g_object_weak_ref(G_OBJECT(sub_context->encode_element[eid].gst), (GWeakNotify)_mmcamcorder_element_release_noti, sub_context); \
- }
+ } \
+} while (0)
/* GStreamer element remove macro */
#define _MMCAMCORDER_ELEMENT_REMOVE(element, eid) \
#define _MM_GST_PAD_LINK gst_pad_link
#define _MM_GST_PAD_LINK_UNREF(srcpad, sinkpad, err, if_fail_goto) \
-{ \
+do { \
GstPadLinkReturn ret = GST_PAD_LINK_OK; \
if (srcpad == NULL || sinkpad == NULL) { \
if (srcpad == NULL) { \
} \
gst_object_unref(srcpad); srcpad = NULL; \
gst_object_unref(sinkpad); sinkpad = NULL; \
-}
+} while (0)
#define _MM_GST_PAD_UNLINK_UNREF(srcpad, sinkpad) \
+do { \
if (srcpad && sinkpad) { \
gst_pad_unlink(srcpad, sinkpad); \
} else { \
} \
if (sinkpad) { \
gst_object_unref(sinkpad); sinkpad = NULL; \
- }
+ } \
+} while (0)
#define _MMCAMCORDER_STATE_SET_COUNT 3 /* checking interval */
#define _MMCAMCORDER_STATE_CHECK_TOTALTIME 5000000L /* total wating time for state change */
/* add orientation info */
if (fseeko(f, internal_pos, SEEK_SET) < 0) {
- _mmcam_dbg_err("fseek failed : errno %d", errno);
+ _mmcam_dbg_err("fseeko failed : errno %d", errno);
goto fail;
}
_mmcam_dbg_log("found [tkhd] tag");
/* seek to start position of composition matrix */
- fseek(f, _OFFSET_COMPOSITION_MATRIX, SEEK_CUR);
-
- /* update composition matrix for orientation */
- _mmcamcorder_update_composition_matrix(f, orientation);
+ if (fseek(f, _OFFSET_COMPOSITION_MATRIX, SEEK_CUR) == 0) {
+ /* update composition matrix for orientation */
+ _mmcamcorder_update_composition_matrix(f, orientation);
+ } else {
+ _mmcam_dbg_err("fseek failed : errno %d", errno);
+ goto fail;
+ }
} else {
_mmcam_dbg_err("No 'moov' container");
goto fail;