[vlc-devel] commit: v4l2: work around broken resolution detection (Pierre Ynard )
git version control
git at videolan.org
Mon Sep 14 08:34:27 CEST 2009
vlc | branch: master | Pierre Ynard <linkfanel at yahoo.fr> | Mon Sep 14 08:32:38 2009 +0200| [ce484549f98a63a51168a2bcc5c1385b34597fb5] | committer: Pierre Ynard
v4l2: work around broken resolution detection
This piece of code really ought to be fixed better than that
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ce484549f98a63a51168a2bcc5c1385b34597fb5
---
modules/access/v4l2.c | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/modules/access/v4l2.c b/modules/access/v4l2.c
index 01a7a01..0d85e84 100644
--- a/modules/access/v4l2.c
+++ b/modules/access/v4l2.c
@@ -2000,12 +2000,22 @@ static int OpenVideoDev( vlc_object_t *p_obj, demux_sys_t *p_sys, bool b_demux )
fmt.fmt.pix.pixelformat );
msg_Dbg( p_demux, "Found maximum framerate of %f", p_sys->f_fps );
}
+ uint32_t i_width, i_height;
GetMaxDimensions( p_demux, i_fd,
fmt.fmt.pix.pixelformat, p_sys->f_fps,
- &fmt.fmt.pix.width, &fmt.fmt.pix.height );
- msg_Dbg( p_demux, "Found optimal dimensions for framerate %f of %dx%d",
- p_sys->f_fps, fmt.fmt.pix.width, fmt.fmt.pix.height );
- if( v4l2_ioctl( i_fd, VIDIOC_S_FMT, &fmt ) < 0 ) {;}
+ &i_width, &i_height );
+ if( i_width || i_height )
+ {
+ msg_Dbg( p_demux, "Found optimal dimensions for framerate %f of %dx%d",
+ p_sys->f_fps, i_width, i_height );
+ fmt.fmt.pix.width = i_width;
+ fmt.fmt.pix.height = i_height;
+ if( v4l2_ioctl( i_fd, VIDIOC_S_FMT, &fmt ) < 0 ) {;}
+ }
+ else
+ {
+ msg_Warn( p_obj, "Could not find optimal width and height." );
+ }
}
/* Reassign width, height and chroma incase driver override */
More information about the vlc-devel
mailing list