diff --git a/src/audio_call.c b/src/audio_call.c index dfccbeb..1b93731 100644 --- a/src/audio_call.c +++ b/src/audio_call.c @@ -295,6 +295,7 @@ void callstate_cb(ToxAV *av, uint32_t friend_number, uint32_t state, void *user_ callback_call_ended(friend_number); #ifdef VIDEO + callback_recv_video_end(friend_number); callback_video_end(friend_number); #endif /* VIDEO */ diff --git a/src/video_call.c b/src/video_call.c index 2d6b6a3..eb8e7d5 100644 --- a/src/video_call.c +++ b/src/video_call.c @@ -120,10 +120,7 @@ void write_video_device_callback(uint32_t friend_number, uint16_t width, uint16_ int32_t ystride, int32_t ustride, int32_t vstride, void *user_data) { - if ( write_video_out(width, height, y, u, v, ystride, ustride, vstride, user_data) == vde_DeviceNotActive ) { - //callback_recv_video_starting(friend_number); - return; - } + write_video_out(width, height, y, u, v, ystride, ustride, vstride, user_data); } int start_video_transmission(ToxWindow *self, ToxAV *av, Call *call) diff --git a/src/video_device.c b/src/video_device.c index c490bc8..33721cb 100644 --- a/src/video_device.c +++ b/src/video_device.c @@ -462,6 +462,10 @@ VideoDeviceError open_video_device(VideoDeviceType type, int32_t selection, uint return vde_FailedStart; } + /* Disable user from manually closing the X11 window */ + Atom wm_delete_window = XInternAtom(device->x_display, "WM_DELETE_WINDOW", false); + XSetWMProtocols(device->x_display, device->x_window, &wm_delete_window, 1); + XMapWindow(device->x_display, device->x_window); XClearWindow(device->x_display, device->x_window); XMapRaised(device->x_display, device->x_window); @@ -497,6 +501,10 @@ VideoDeviceError open_video_device(VideoDeviceType type, int32_t selection, uint return vde_FailedStart; } + /* Disable user from manually closing the X11 window */ + Atom wm_delete_window = XInternAtom(device->x_display, "WM_DELETE_WINDOW", false); + XSetWMProtocols(device->x_display, device->x_window, &wm_delete_window, 1); + XMapWindow(device->x_display, device->x_window); XClearWindow(device->x_display, device->x_window); XMapRaised(device->x_display, device->x_window); @@ -694,7 +702,6 @@ VideoDeviceError close_video_device(VideoDeviceType type, uint32_t device_idx) } } close(device->fd); - vpx_img_free(&device->input); XDestroyWindow(device->x_display, device->x_window); XFlush(device->x_display); XCloseDisplay(device->x_display);