X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_codec.h;h=beac8fd83d01576098e0fde46deb093ef75ba63d;hb=b6f678aa0fabb3e240f54457271c69c44e8ce0bd;hp=512dcf3ae652faa9f9564a1e6ab1e67bddaa2e85;hpb=ad77d955a5dc051976d94d6e08ee0f717ec3a938;p=vlc diff --git a/include/vlc_codec.h b/include/vlc_codec.h index 512dcf3ae6..beac8fd83d 100644 --- a/include/vlc_codec.h +++ b/include/vlc_codec.h @@ -1,24 +1,24 @@ /***************************************************************************** * vlc_codec.h: Definition of the decoder and encoder structures ***************************************************************************** - * Copyright (C) 1999-2003 the VideoLAN team + * Copyright (C) 1999-2003 VLC authors and VideoLAN * $Id$ * * Authors: Gildas Bazin * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ #ifndef VLC_CODEC_H @@ -102,14 +102,19 @@ struct decoder_t void (*pf_picture_link) ( decoder_t *, picture_t * ); void (*pf_picture_unlink) ( decoder_t *, picture_t * ); + /** + * Number of extra (ie in addition to the DPB) picture buffers + * needed for decoding. + */ + int i_extra_picture_buffers; + /* Audio output callbacks * XXX use decoder_NewAudioBuffer/decoder_DeleteAudioBuffer */ aout_buffer_t *(*pf_aout_buffer_new)( decoder_t *, int ); - void (*pf_aout_buffer_del)( decoder_t *, aout_buffer_t * ); /* SPU output callbacks * XXX use decoder_NewSubpicture and decoder_DeleteSubpicture */ - subpicture_t *(*pf_spu_buffer_new)( decoder_t * ); + subpicture_t *(*pf_spu_buffer_new)( decoder_t *, const subpicture_updater_t * ); void (*pf_spu_buffer_del)( decoder_t *, subpicture_t * ); /* Input attachments @@ -126,6 +131,8 @@ struct decoder_t /* Private structure for the owner of the decoder */ decoder_owner_sys_t *p_owner; + + bool b_error; }; /** @@ -133,7 +140,7 @@ struct decoder_t */ /** - * \defgroup decoder Encoder + * \defgroup encoder Encoder * * The structure describing a Encoder * @@ -178,67 +185,62 @@ struct encoder_t * buffer. You have to release it using decoder_DeletePicture or by returning * it to the caller as a pf_decode_video return value. */ -VLC_EXPORT( picture_t *, decoder_NewPicture, ( decoder_t * ) ); +VLC_API picture_t * decoder_NewPicture( decoder_t * ) VLC_USED; /** * This function will release a picture create by decoder_NewPicture. */ -VLC_EXPORT( void, decoder_DeletePicture, ( decoder_t *, picture_t *p_picture ) ); +VLC_API void decoder_DeletePicture( decoder_t *, picture_t *p_picture ); /** * This function will increase the picture reference count. * (picture_Hold is not usable.) */ -VLC_EXPORT( void, decoder_LinkPicture, ( decoder_t *, picture_t * ) ); +VLC_API void decoder_LinkPicture( decoder_t *, picture_t * ); /** * This function will decrease the picture reference count. * (picture_Release is not usable.) */ -VLC_EXPORT( void, decoder_UnlinkPicture, ( decoder_t *, picture_t * ) ); +VLC_API void decoder_UnlinkPicture( decoder_t *, picture_t * ); /** * This function will return a new audio buffer usable by a decoder as an * output buffer. You have to release it using decoder_DeleteAudioBuffer * or by returning it to the caller as a pf_decode_audio return value. */ -VLC_EXPORT( aout_buffer_t *, decoder_NewAudioBuffer, ( decoder_t *, int i_size ) ); - -/** - * This function will release a audio buffer created by decoder_NewAudioBuffer. - */ -VLC_EXPORT( void, decoder_DeleteAudioBuffer, ( decoder_t *, aout_buffer_t *p_buffer ) ); +VLC_API aout_buffer_t * decoder_NewAudioBuffer( decoder_t *, int i_size ) VLC_USED; /** * This function will return a new subpicture usable by a decoder as an output * buffer. You have to release it using decoder_DeleteSubpicture or by returning * it to the caller as a pf_decode_sub return value. */ -VLC_EXPORT( subpicture_t *, decoder_NewSubpicture, ( decoder_t * ) ); +VLC_API subpicture_t * decoder_NewSubpicture( decoder_t *, const subpicture_updater_t * ) VLC_USED; /** * This function will release a subpicture created by decoder_NewSubicture. */ -VLC_EXPORT( void, decoder_DeleteSubpicture, ( decoder_t *, subpicture_t *p_subpicture ) ); +VLC_API void decoder_DeleteSubpicture( decoder_t *, subpicture_t *p_subpicture ); /** * This function gives all input attachments at once. * * You MUST release the returned values */ -VLC_EXPORT( int, decoder_GetInputAttachments, ( decoder_t *, input_attachment_t ***ppp_attachment, int *pi_attachment ) ); +VLC_API int decoder_GetInputAttachments( decoder_t *, input_attachment_t ***ppp_attachment, int *pi_attachment ); /** * This function converts a decoder timestamp into a display date comparable * to mdate(). * You MUST use it *only* for gathering statistics about speed. */ -VLC_EXPORT( mtime_t, decoder_GetDisplayDate, ( decoder_t *, mtime_t ) LIBVLC_USED ); +VLC_API mtime_t decoder_GetDisplayDate( decoder_t *, mtime_t ) VLC_USED; /** * This function returns the current input rate. * You MUST use it *only* for gathering statistics about speed. */ -VLC_EXPORT( int, decoder_GetDisplayRate, ( decoder_t * ) ); +VLC_API int decoder_GetDisplayRate( decoder_t * ) VLC_USED; #endif /* _VLC_CODEC_H */