mirror of
https://github.com/Tha14/toxic.git
synced 2024-11-22 20:53:01 +01:00
Fixed incorrect video device listing
This commit is contained in:
parent
8a66c3fa4c
commit
96162bf254
@ -132,6 +132,11 @@ void exit_toxic_success(Tox *m)
|
|||||||
|
|
||||||
#ifdef AUDIO
|
#ifdef AUDIO
|
||||||
terminate_audio();
|
terminate_audio();
|
||||||
|
|
||||||
|
#ifdef VIDEO
|
||||||
|
terminate_video();
|
||||||
|
#endif /* VIDEO */
|
||||||
|
|
||||||
#endif /* AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
free(DATA_FILE);
|
free(DATA_FILE);
|
||||||
|
@ -81,8 +81,14 @@ ToxAV *init_video(ToxWindow *self, Tox *tox)
|
|||||||
void terminate_video()
|
void terminate_video()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < MAX_CALLS; ++i)
|
for (i = 0; i < MAX_CALLS; ++i) {
|
||||||
stop_video_transmission(&CallControl.calls[i], i);
|
Call* this_call = &CallControl.calls[i];
|
||||||
|
|
||||||
|
stop_video_transmission(this_call, i);
|
||||||
|
|
||||||
|
if( this_call->vout_idx != -1 )
|
||||||
|
close_video_device(vdt_output, this_call->vout_idx);
|
||||||
|
}
|
||||||
|
|
||||||
terminate_video_devices();
|
terminate_video_devices();
|
||||||
}
|
}
|
||||||
|
@ -185,11 +185,17 @@ VideoDeviceError init_video_devices()
|
|||||||
char* video_input_name;
|
char* video_input_name;
|
||||||
|
|
||||||
/* Query V4L for capture capabilities */
|
/* Query V4L for capture capabilities */
|
||||||
if ( ioctl(fd, VIDIOC_QUERYCAP, &cap) != -1 ) {
|
if ( -1 != ioctl(fd, VIDIOC_QUERYCAP, &cap) ) {
|
||||||
//strcpy(video_input_name,cap.card);
|
video_input_name = (char*)malloc(strlen(cap.card) + strlen(device_address) + 4);
|
||||||
video_input_name = cap.card;
|
strcpy(video_input_name, (char*)cap.card);
|
||||||
|
strcat(video_input_name, " (");
|
||||||
|
strcat(video_input_name, (char*)device_address);
|
||||||
|
strcat(video_input_name, ")");
|
||||||
} else {
|
} else {
|
||||||
video_input_name = device_address;
|
video_input_name = (char*)malloc(strlen(device_address) + 3);
|
||||||
|
strcpy(video_input_name, "(");
|
||||||
|
strcat(video_input_name, device_address);
|
||||||
|
strcat(video_input_name, ")");
|
||||||
}
|
}
|
||||||
video_devices_names[vdt_input][size[vdt_input]] = video_input_name;
|
video_devices_names[vdt_input][size[vdt_input]] = video_input_name;
|
||||||
|
|
||||||
@ -226,6 +232,12 @@ VideoDeviceError terminate_video_devices()
|
|||||||
video_thread_running = false;
|
video_thread_running = false;
|
||||||
usleep(20000);
|
usleep(20000);
|
||||||
|
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < size[vdt_input]; ++i) {
|
||||||
|
const char* video_input_name = video_devices_names[vdt_input][i];
|
||||||
|
free(video_input_name);
|
||||||
|
}
|
||||||
|
|
||||||
if ( pthread_mutex_destroy(&video_mutex) != 0 )
|
if ( pthread_mutex_destroy(&video_mutex) != 0 )
|
||||||
return (VideoDeviceError) vde_InternalError;
|
return (VideoDeviceError) vde_InternalError;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user