[libdvdcss-devel] [PATCH 6/7] Directly expose struct iovec in the API instead of hiding it behind void*.

Jean-Baptiste Kempf jb at videolan.org
Wed Nov 5 11:37:07 CET 2014


Wouldn't that break a lot the applications?

On 04 Nov, Diego Biurrun wrote :
> ---
> 
> The new callback API should get a similar treatment.
> 
>  src/dvdcss/dvdcss.h |  3 ++-
>  src/libdvdcss.c     | 19 +++++++++----------
>  2 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/src/dvdcss/dvdcss.h b/src/dvdcss/dvdcss.h
> index a86b57c..db418fc 100644
> --- a/src/dvdcss/dvdcss.h
> +++ b/src/dvdcss/dvdcss.h
> @@ -69,6 +69,7 @@ typedef struct dvdcss* dvdcss_t;
>  #endif
>  
>  
> +struct iovec;
>  /*
>   * Exported prototypes.
>   */
> @@ -82,7 +83,7 @@ LIBDVDCSS_EXPORT int      dvdcss_read  ( struct dvdcss *,
>                                 int i_blocks,
>                                 int i_flags );
>  LIBDVDCSS_EXPORT int      dvdcss_readv ( struct dvdcss *,
> -                               void *p_iovec,
> +                               struct iovec *p_iovec,
>                                 int i_blocks,
>                                 int i_flags );
>  LIBDVDCSS_EXPORT const char *dvdcss_error ( const struct dvdcss * );
> diff --git a/src/libdvdcss.c b/src/libdvdcss.c
> index 6f5d3af..a72dffb 100644
> --- a/src/libdvdcss.c
> +++ b/src/libdvdcss.c
> @@ -704,16 +704,15 @@ LIBDVDCSS_EXPORT int dvdcss_read ( struct dvdcss *dvdcss, void *p_buffer,
>   *          Moreover, all iov_len members of the iovec structures should be
>   *          multiples of #DVDCSS_BLOCK_SIZE.
>   */
> -LIBDVDCSS_EXPORT int dvdcss_readv ( struct dvdcss *dvdcss, void *p_iovec,
> -                                           int i_blocks,
> -                                           int i_flags )
> +LIBDVDCSS_EXPORT int dvdcss_readv ( struct dvdcss *dvdcss,
> +                                    struct iovec *p_iovec,
> +                                    int i_blocks, int i_flags )
>  {
> -    struct iovec *_p_iovec = p_iovec;
>      int i_ret, i_index;
>      void *iov_base;
>      size_t iov_len;
>  
> -    i_ret = dvdcss->pf_readv( dvdcss, _p_iovec, i_blocks );
> +    i_ret = dvdcss->pf_readv( dvdcss, p_iovec, i_blocks );
>  
>      if( i_ret <= 0
>           || !dvdcss->b_scrambled
> @@ -723,8 +722,8 @@ LIBDVDCSS_EXPORT int dvdcss_readv ( struct dvdcss *dvdcss, void *p_iovec,
>      }
>  
>      /* Initialize loop for decryption */
> -    iov_base = _p_iovec->iov_base;
> -    iov_len = _p_iovec->iov_len;
> +    iov_base = p_iovec->iov_base;
> +    iov_len  = p_iovec->iov_len;
>  
>      /* Decrypt the blocks we managed to read */
>      for( i_index = i_ret; i_index; i_index-- )
> @@ -737,9 +736,9 @@ LIBDVDCSS_EXPORT int dvdcss_readv ( struct dvdcss *dvdcss, void *p_iovec,
>  
>          while( iov_len == 0 )
>          {
> -            _p_iovec++;
> -            iov_base = _p_iovec->iov_base;
> -            iov_len = _p_iovec->iov_len;
> +            p_iovec++;
> +            iov_base = p_iovec->iov_base;
> +            iov_len  = p_iovec->iov_len;
>          }
>  
>          dvdcss_unscramble( dvdcss->css.p_title_key, iov_base );
> -- 
> 1.9.1
> 
> _______________________________________________
> libdvdcss-devel mailing list
> libdvdcss-devel at videolan.org
> https://mailman.videolan.org/listinfo/libdvdcss-devel

-- 
With my kindest regards,

-- 
Jean-Baptiste Kempf
http://www.jbkempf.com/ - +33 672 704 734
Sent from my Electronic Device


More information about the libdvdcss-devel mailing list