@@ -1415,9 +1415,7 @@ static void v4l2_device_select(struct context *cnt, struct video_dev *curdev)
14151415
14161416static int v4l2_device_open (struct context * cnt , struct video_dev * curdev )
14171417{
1418-
14191418 int fd_device ;
1420- /* Open the video device */
14211419
14221420 MOTION_LOG (NTC , TYPE_VIDEO , NO_ERRNO
14231421 ,_ ("Using videodevice %s and input %d" )
@@ -1427,13 +1425,14 @@ static int v4l2_device_open(struct context *cnt, struct video_dev *curdev)
14271425 cnt -> watchdog = (cnt -> conf .watchdog_tmo * 2 );
14281426
14291427 curdev -> video_device = cnt -> conf .video_device ;
1428+ src_v4l2_t * vid_source = (src_v4l2_t * ) curdev -> v4l2_private ;
14301429 curdev -> fd_device = -1 ;
1430+ vid_source -> fd_device = -1 ;
14311431 fd_device = -1 ;
14321432
14331433 fd_device = open (curdev -> video_device , O_RDWR |O_CLOEXEC );
14341434 if (fd_device > 0 ) {
14351435 curdev -> fd_device = fd_device ;
1436- src_v4l2_t * vid_source = (src_v4l2_t * ) curdev -> v4l2_private ;
14371436 vid_source -> fd_device = fd_device ;
14381437 return 0 ;
14391438 }
@@ -1447,39 +1446,35 @@ static int v4l2_device_open(struct context *cnt, struct video_dev *curdev)
14471446
14481447static void v4l2_device_close (struct video_dev * curdev )
14491448{
1450-
14511449 src_v4l2_t * vid_source = (src_v4l2_t * ) curdev -> v4l2_private ;
14521450 enum v4l2_buf_type type ;
14531451
14541452 type = V4L2_BUF_TYPE_VIDEO_CAPTURE ;
1455-
14561453 if (vid_source != NULL ) {
1457- xioctl (vid_source , VIDIOC_STREAMOFF , & type );
1458- }
1459-
1460- if (vid_source -> fd_device != -1 ) {
1461- close ( vid_source -> fd_device ) ;
1462- vid_source -> fd_device = -1 ;
1454+ if (vid_source -> fd_device != -1 ) {
1455+ MOTION_LOG ( DBG , TYPE_VIDEO , NO_ERRNO , "close" );
1456+ xioctl ( vid_source , VIDIOC_STREAMOFF , & type );
1457+ close (vid_source -> fd_device );
1458+ vid_source -> fd_device = -1 ;
1459+ }
14631460 }
14641461}
14651462
14661463static void v4l2_device_cleanup (struct video_dev * curdev )
14671464{
1468-
14691465 src_v4l2_t * vid_source = (src_v4l2_t * ) curdev -> v4l2_private ;
1470-
14711466 unsigned int indx ;
14721467 int indx2 ;
14731468
1474- if (vid_source -> buffers != NULL ) {
1475- for (indx = 0 ; indx < vid_source -> req .count ; indx ++ ) {
1476- munmap (vid_source -> buffers [indx ].ptr , vid_source -> buffers [indx ].size );
1477- }
1478- free (vid_source -> buffers );
1479- vid_source -> buffers = NULL ;
1480- }
1481-
14821469 if (vid_source != NULL ) {
1470+ MOTION_LOG (DBG , TYPE_VIDEO , NO_ERRNO , "vid_source" );
1471+ if (vid_source -> buffers != NULL ) {
1472+ for (indx = 0 ; indx < vid_source -> req .count ; indx ++ ) {
1473+ munmap (vid_source -> buffers [indx ].ptr , vid_source -> buffers [indx ].size );
1474+ }
1475+ free (vid_source -> buffers );
1476+ vid_source -> buffers = NULL ;
1477+ }
14831478 free (vid_source );
14841479 curdev -> v4l2_private = NULL ;
14851480 }
0 commit comments