summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorblake tregre <blake@oblong.com>2011-10-31 18:56:23 -0700
committerDavid Schleef <ds@schleef.org>2012-03-17 14:24:51 -0700
commite37ce96b2c2a231f82f570892607a0aeed1f4edf (patch)
tree2238f5e94caba3a6ed423d90b344000db7f96e59 /sys
parent7cd0ac046ab13bd839ad108e82922a7a92fbd263 (diff)
downloadgstreamer-plugins-bad-e37ce96b2c2a231f82f570892607a0aeed1f4edf.tar.gz
decklinksrc: handle flow return properly and provide better message
* sys/decklink/gstdecklinksrc.cpp:
Diffstat (limited to 'sys')
-rw-r--r--sys/decklink/gstdecklinksrc.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/sys/decklink/gstdecklinksrc.cpp b/sys/decklink/gstdecklinksrc.cpp
index a6c5d89f4..37a306ce1 100644
--- a/sys/decklink/gstdecklinksrc.cpp
+++ b/sys/decklink/gstdecklinksrc.cpp
@@ -1269,8 +1269,12 @@ gst_decklink_src_task (void *priv)
gst_buffer_set_caps (buffer, decklinksrc->video_caps);
ret = gst_pad_push (decklinksrc->videosrcpad, buffer);
- if (ret != GST_FLOW_OK) {
- GST_ELEMENT_ERROR (decklinksrc, CORE, NEGOTIATION, (NULL), (NULL));
+ if (! (ret == GST_FLOW_OK || ret == GST_FLOW_NOT_LINKED ||
+ ret == GST_FLOW_WRONG_STATE)) {
+ GST_ELEMENT_ERROR (decklinksrc, STREAM, FAILED,
+ ("Internal data stream error."),
+ ("stream stopped, reason %s",
+ gst_flow_get_name (ret)));
}
if (gst_pad_is_linked (decklinksrc->audiosrcpad)) {
@@ -1299,8 +1303,12 @@ gst_decklink_src_task (void *priv)
gst_buffer_set_caps (audio_buffer, decklinksrc->audio_caps);
ret = gst_pad_push (decklinksrc->audiosrcpad, audio_buffer);
- if (ret != GST_FLOW_OK) {
- GST_ELEMENT_ERROR (decklinksrc, CORE, NEGOTIATION, (NULL), (NULL));
+ if (! (ret == GST_FLOW_OK || ret == GST_FLOW_NOT_LINKED ||
+ ret == GST_FLOW_WRONG_STATE)) {
+ GST_ELEMENT_ERROR (decklinksrc, STREAM, FAILED,
+ ("Internal data stream error."),
+ ("stream stopped, reason %s",
+ gst_flow_get_name (ret)));
}
}
audio_frame->Release ();