Mostrando entradas con la etiqueta Suspender Vídeo. Mostrar todas las entradas
Mostrando entradas con la etiqueta Suspender Vídeo. Mostrar todas las entradas
lunes, 14 de diciembre de 2009
uvc_video_suspend
Ahora vamos a estudiar uvc_video_suspend:
/* --------------------------------------------------------------------------
* Suspend/resume
*/
/*
* Stop streaming without disabling the video queue.
*
* To let userspace applications resume without trouble, we must not touch the
* video buffers in any way. We mark the device as frozen to make sure the URB
* completion handler won't try to cancel the queue when we kill the URBs.
*/
int uvc_video_suspend(struct uvc_streaming *stream)
{
if (!uvc_queue_streaming(&stream->queue))
return 0;
stream->frozen = 1;
uvc_uninit_video(stream, 0);
usb_set_interface(stream->dev->udev, stream->intfnum, 0);
return 0;
}
Ahora voy a ir comentándolo para hacerlo más legible:
/* --------------------------------------------------------------------------
* Suspend/resume
*/
/**
* uvc_video_suspend - Stop streaming without disabling the video queue.
* @stream: the stream that will be suspended
*
* To let userspace applications resume without trouble, we must not touch the
* video buffers in any way. We mark the device as frozen to make sure the URB
* completion handler won't try to cancel the queue when we kill the URBs.
*/
int uvc_video_suspend(struct uvc_streaming *stream)
{
if (!uvc_queue_streaming(&stream->queue)) // if queue is STREAMING
return 0;
stream->frozen = 1; // uvc_video_device knowns if it's frozen or not
uvc_uninit_video(stream, 0); // it will kill all URBs and free them
// it will alternate to the 0 alternative setting
usb_set_interface(stream->dev->udev, stream->intfnum, 0);
return 0;
}
No es muy complejo, pero es curioso que exista una alternativa de configuración número 0 que se use en este caso.
Etiquetas:
Alternativa de Configuración,
Desinicializar Vídeo,
Dispositivo Suspendido,
Flujo de Vídeo,
Frozen,
Pausar,
Pausar Dispositivo,
Pausar Vídeo,
Suspender,
Suspender Dispositivo,
Suspender Vídeo
Publicado por
Palmax
en
14:24
Estudiando cómo se suspenden y resumen los flujos de vídeo
Como vimos, el primer paso sería suspender el flujo de vídeo para comenzar nuestra captura de la foto fija.
Para realizar este objetivo, el código de linux-uvc trae dos funciones muy interesantes: uvc_video_suspend y uvc_video_resume.
En próximos artículos explicaré como funcionan.
Etiquetas:
Flujo de Vídeo,
Foto Fija,
Linux-UVC,
LXR,
Resumir Vídeo,
Still Image,
Suspender Vídeo
Publicado por
Palmax
en
13:17
jueves, 3 de diciembre de 2009
Diagrama de secuencia del método 2 de Imágenes Fijas
Como base para estudiar el método 2 de Imágenes Fijas hice un diagrama de secuencia. Si bien no es 100% acorde a lo que se refiere un diagrama de secuencia, ya que utilizo objetos distintos cuando simplemente son subfunciones, expone los pasos que debe hacerse de una forma muy sencilla y eficaz.
Este diagrama lo he creado a partir de lo expuesto en la especificación de los dispositivos de la clase de vídeo USB (USB Video Class o directamente UVC) y utilizando el programa Umbrello.
Este diagrama lo he creado a partir de lo expuesto en la especificación de los dispositivos de la clase de vídeo USB (USB Video Class o directamente UVC) y utilizando el programa Umbrello.
Etiquetas:
Continuar Vídeo,
Diagramas,
Diagramas de secuencia,
Documentación,
imágenes fijas,
Método 2,
Método dos,
Still Image,
Suspender Vídeo,
Umbrello,
UVC
Publicado por
Palmax
en
11:35
Suscribirse a:
Entradas (Atom)




