[vlc-commits] v4l2: eliminate dead user pointer code

Rémi Denis-Courmont git at videolan.org
Tue Mar 20 22:46:53 CET 2012


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | 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 );



More information about the vlc-commits mailing list