summaryrefslogtreecommitdiff
path: root/src/call.c
diff options
context:
space:
mode:
authorAlfred E. Heggestad <aeh@db.org>2015-03-21 18:28:58 +0100
committerAlfred E. Heggestad <aeh@db.org>2015-03-21 18:28:58 +0100
commitd24e5bff254efd7a9f1dbc8d5bf82ed8fd2a52d8 (patch)
tree3267ef00ffb9881f664bde2a4da21a292a633e31 /src/call.c
parent02799812b5d8b87630b9f7d6056c4830f6957060 (diff)
add video error handler
Diffstat (limited to 'src/call.c')
-rw-r--r--src/call.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/call.c b/src/call.c
index 752a2bd..d9a4a94 100644
--- a/src/call.c
+++ b/src/call.c
@@ -391,6 +391,18 @@ static void audio_error_handler(int err, const char *str, void *arg)
}
+static void video_error_handler(int err, const char *str, void *arg)
+{
+ struct call *call = arg;
+ MAGIC_CHECK(call);
+
+ warning("call: video device error: %m (%s)\n", err, str);
+
+ call_stream_stop(call);
+ call_event_handler(call, CALL_EVENT_CLOSED, str);
+}
+
+
static void menc_error_handler(int err, void *arg)
{
struct call *call = arg;
@@ -523,7 +535,8 @@ int call_alloc(struct call **callp, const struct config *cfg, struct list *lst,
acc->mnat, call->mnats,
acc->menc, call->mencs,
"main",
- account_vidcodecl(call->acc));
+ account_vidcodecl(call->acc),
+ video_error_handler, call);
if (err)
goto out;
}