vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Tue Mar 20 23:03:26 2012 +0200| [edd6b80ca8c45f5570c0a900e0f02a6ef80a6fa6] | committer: Rémi Denis-Courmont
v4l2: eliminate dead user pointer code > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=edd6b80ca8c45f5570c0a900e0f02a6ef80a6fa6 --- modules/access/v4l2/video.c | 116 +------------------------------------------ 1 files changed, 2 insertions(+), 114 deletions(-) diff --git a/modules/access/v4l2/video.c b/modules/access/v4l2/video.c index 8569868..6ccc13c 100644 --- a/modules/access/v4l2/video.c +++ b/modules/access/v4l2/video.c @@ -868,54 +868,6 @@ block_t* GrabVideo( vlc_object_t *p_demux, demux_sys_t *p_sys ) } break; - - case IO_METHOD_USERPTR: - memset( &buf, 0, sizeof(buf) ); - buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - buf.memory = V4L2_MEMORY_USERPTR; - - /* Wait for next frame */ - if (v4l2_ioctl( p_sys->i_fd, VIDIOC_DQBUF, &buf ) < 0 ) - { - switch( errno ) - { - case EAGAIN: - return NULL; - case EIO: - /* Could ignore EIO, see spec. */ - /* fall through */ - default: - msg_Err( p_demux, "Failed to wait (VIDIOC_DQBUF)" ); - return NULL; - } - } - - /* Find frame? */ - unsigned int i; - for( i = 0; i < p_sys->i_nbuffers; i++ ) - { - if( buf.m.userptr == (unsigned long)p_sys->p_buffers[i].start && - buf.length == p_sys->p_buffers[i].length ) break; - } - - if( i >= p_sys->i_nbuffers ) - { - msg_Err( p_demux, "Failed capturing new frame as i>=nbuffers" ); - return NULL; - } - - p_block = ProcessVideoFrame( p_demux, (uint8_t*)buf.m.userptr, buf.bytesused ); - if( !p_block ) - return NULL; - - /* Unlock */ - if( v4l2_ioctl( p_sys->i_fd, VIDIOC_QBUF, &buf ) < 0 ) - { - msg_Err( p_demux, "Failed to unlock (VIDIOC_QBUF)" ); - block_Release( p_block ); - return NULL; - } - break; default: assert(0); } @@ -1002,43 +954,6 @@ static int InitMmap( vlc_object_t *p_demux, demux_sys_t *p_sys, int i_fd ) return 0; } -/***************************************************************************** - * Helper function to initalise video IO using the userbuf method - *****************************************************************************/ -static int InitUserP( vlc_object_t *p_demux, demux_sys_t *p_sys, int i_fd, unsigned int i_buffer_size ) -{ - struct v4l2_requestbuffers req; - unsigned int i_page_size; - - i_page_size = sysconf(_SC_PAGESIZE); - i_buffer_size = ( i_buffer_size + i_page_size - 1 ) & ~( i_page_size - 1); - - memset( &req, 0, sizeof(req) ); - req.count = 4; - req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - req.memory = V4L2_MEMORY_USERPTR; - - if( v4l2_ioctl( i_fd, VIDIOC_REQBUFS, &req ) < 0 ) - { - msg_Err( p_demux, "device does not support user pointer i/o" ); - return -1; - } - - p_sys->p_buffers = calloc( 4, sizeof( *p_sys->p_buffers ) ); - if( !p_sys->p_buffers ) - return -1; - - for( p_sys->i_nbuffers = 0; p_sys->i_nbuffers < 4; ++p_sys->i_nbuffers ) - { - p_sys->p_buffers[p_sys->i_nbuffers].length = i_buffer_size; - if( posix_memalign( &p_sys->p_buffers[p_sys->i_nbuffers].start, - /* boundary */ i_page_size, i_buffer_size ) ) - return -1; - } - - return 0; -} - /** * \return true if the specified V4L2 pixel format is * in the array of supported formats returned by the driver @@ -1406,35 +1321,8 @@ int InitVideo( vlc_object_t *p_obj, int i_fd, demux_sys_t *p_sys, goto error; } break; - - case IO_METHOD_USERPTR: - if( InitUserP( p_obj, p_sys, i_fd, fmt.fmt.pix.sizeimage ) ) - goto error; - for( unsigned int i = 0; i < p_sys->i_nbuffers; ++i ) - { - struct v4l2_buffer buf; - - memset( &buf, 0, sizeof(buf) ); - buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - buf.memory = V4L2_MEMORY_USERPTR; - buf.index = i; - buf.m.userptr = (unsigned long)p_sys->p_buffers[i].start; - buf.length = p_sys->p_buffers[i].length; - - if( v4l2_ioctl( i_fd, VIDIOC_QBUF, &buf ) < 0 ) - { - msg_Err( p_obj, "VIDIOC_QBUF failed" ); - goto error; - } - } - - buf_type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - if( v4l2_ioctl( i_fd, VIDIOC_STREAMON, &buf_type ) < 0 ) - { - msg_Err( p_obj, "VIDIOC_STREAMON failed" ); - goto error; - } - break; + default: + assert(0); } free( codecs ); _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
