Add error check and log for EOS event 25/47425/1
authorJeongmo Yang <jm80.yang@samsung.com>
Thu, 3 Sep 2015 08:38:28 +0000 (17:38 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 3 Sep 2015 08:38:28 +0000 (17:38 +0900)
Change-Id: I63a996ddf94ef98f3631840012ef0e4e8ee1bce2
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
src/mm_camcorder_attribute.c
src/mm_camcorder_audiorec.c
src/mm_camcorder_gstcommon.c
src/mm_camcorder_videorec.c

index 2f8050a..0402f3b 100644 (file)
@@ -3211,7 +3211,7 @@ bool _mmcamcorder_commit_display_handle(MMHandleType handle, int attr_idx, const
 
                        context = gst_wayland_display_handle_context_new((struct wl_display *)wl_info->display);
                        if (context) {
-                               gst_element_set_context(GST_VIDEO_OVERLAY(sc->element[_MMCAMCORDER_VIDEOSINK_SINK].gst), context);
+                               gst_element_set_context(sc->element[_MMCAMCORDER_VIDEOSINK_SINK].gst, context);
                        } else {
                                _mmcam_dbg_warn("gst_wayland_display_handle_context_new failed");
                        }
index fdf2a64..4ef36e5 100644 (file)
@@ -573,7 +573,15 @@ _mmcamcorder_audio_command(MMHandleType handle, int command)
                }
 
                if (audioSrc) {
-                       ret = gst_element_send_event(audioSrc, gst_event_new_eos());
+                       if (gst_element_send_event(audioSrc, gst_event_new_eos()) == FALSE) {
+                               _mmcam_dbg_err("send EOS failed");
+                               info->b_commiting = FALSE;
+                               ret = MM_ERROR_CAMCORDER_INTERNAL;
+                               goto _ERR_CAMCORDER_AUDIO_COMMAND;
+                       }
+
+                       _mmcam_dbg_log("send EOS done");
+
                        /* for pause -> commit case */
                        if (_mmcamcorder_get_state((MMHandleType)hcamcorder) == MM_CAMCORDER_STATE_PAUSED) {
                                ret = _mmcamcorder_gst_set_state(handle, pipeline, GST_STATE_PLAYING);
@@ -582,6 +590,11 @@ _mmcamcorder_audio_command(MMHandleType handle, int command)
                                        goto _ERR_CAMCORDER_AUDIO_COMMAND;
                                }
                        }
+               } else {
+                       _mmcam_dbg_err("No audio stream source");
+                       info->b_commiting = FALSE;
+                       ret = MM_ERROR_CAMCORDER_INTERNAL;
+                       goto _ERR_CAMCORDER_AUDIO_COMMAND;
                }
 
                /* wait until finishing EOS */
index 3015466..e8a4dd6 100644 (file)
@@ -315,7 +315,6 @@ int _mmcamcorder_create_preview_elements(MMHandleType handle)
                        goto pipeline_creation_error;
                }
        } else if ( strcmp(videosink_name, "shmsink") == 0 ) {
-               GstCaps *caps = NULL;
                _mmcam_dbg_log("socket_path : %s", socket_path);
                g_object_set(G_OBJECT(sc->element[_MMCAMCORDER_VIDEOSINK_SINK].gst),
                                "socket-path", socket_path,
@@ -1690,7 +1689,6 @@ static GstPadProbeReturn __mmcamcorder_video_dataprobe_push_buffer_to_record(Gst
            sc->encode_element[_MMCAMCORDER_ENCSINK_SRC].gst) {
                int ret = 0;
                GstClock *clock = NULL;
-               GstPad *capsfilter_pad = NULL;
 
                /*
                _mmcam_dbg_log("GST_BUFFER_FLAG_DELTA_UNIT is set : %d",
index 7aa6cdd..61868be 100644 (file)
@@ -1000,13 +1000,32 @@ int _mmcamcorder_video_command(MMHandleType handle, int command)
                _mmcam_dbg_log("block push buffer to appsrc");
 
                if (sc->encode_element[_MMCAMCORDER_ENCSINK_SRC].gst != NULL) {
-                       ret = gst_element_send_event(sc->encode_element[_MMCAMCORDER_ENCSINK_SRC].gst, gst_event_new_eos());
-                       _mmcam_dbg_warn("send eos to appsrc result : %d", ret);
+                       if (gst_element_send_event(sc->encode_element[_MMCAMCORDER_ENCSINK_SRC].gst, gst_event_new_eos())) {
+                               _mmcam_dbg_warn("VIDEO: send eos to appsrc done");
+                       } else {
+                               _mmcam_dbg_err("VIDEO: send EOS failed");
+                               info->b_commiting = FALSE;
+                               ret = MM_ERROR_CAMCORDER_INTERNAL;
+                               goto _ERR_CAMCORDER_VIDEO_COMMAND;
+                       }
+               } else {
+                       _mmcam_dbg_err("No video stream source");
+                       info->b_commiting = FALSE;
+                       ret = MM_ERROR_CAMCORDER_INTERNAL;
+                       goto _ERR_CAMCORDER_VIDEO_COMMAND;
                }
 
                if (sc->encode_element[_MMCAMCORDER_AUDIOSRC_SRC].gst != NULL) {
-                       ret = gst_element_send_event(sc->encode_element[_MMCAMCORDER_AUDIOSRC_SRC].gst, gst_event_new_eos());
-                       _mmcam_dbg_warn("send eos to audiosrc result : %d", ret);
+                       if (gst_element_send_event(sc->encode_element[_MMCAMCORDER_AUDIOSRC_SRC].gst, gst_event_new_eos())) {
+                               _mmcam_dbg_warn("AUDIO: send eos to audiosrc done");
+                       } else {
+                               _mmcam_dbg_err("AUDIO: send EOS failed");
+                               info->b_commiting = FALSE;
+                               ret = MM_ERROR_CAMCORDER_INTERNAL;
+                               goto _ERR_CAMCORDER_VIDEO_COMMAND;
+                       }
+               } else {
+                       _mmcam_dbg_log("No audio stream");
                }
 
                /* sc */