[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