]> git.sesse.net Git - vlc/blobdiff - include/vlc_codec.h
playlist, Qt: playlist browsing support
[vlc] / include / vlc_codec.h
index 5003e63f8a82922774368182e562e799fd7a3b08..9ddd6bc94d382d774231dabb286229be5d4acd6d 100644 (file)
@@ -26,6 +26,8 @@
 
 #include <vlc_block.h>
 #include <vlc_es.h>
+#include <vlc_picture.h>
+#include <vlc_subpicture.h>
 
 /**
  * \file
@@ -54,6 +56,7 @@ struct decoder_t
     /* Module properties */
     module_t *          p_module;
     decoder_sys_t *     p_sys;
+    bool                b_error;
 
     /* Input format ie from demuxer (XXX: a lot of field could be invalid) */
     es_format_t         fmt_in;
@@ -62,10 +65,10 @@ struct decoder_t
     es_format_t         fmt_out;
 
     /* Some decoders only accept packetized data (ie. not truncated) */
-    bool          b_need_packetized;
+    bool                b_need_packetized;
 
     /* Tell the decoder if it is allowed to drop frames */
-    bool          b_pace_control;
+    bool                b_pace_control;
 
     /* */
     picture_t *         ( * pf_decode_video )( decoder_t *, block_t ** );
@@ -81,6 +84,12 @@ struct decoder_t
      * globaly, not necessary for the current packet */
     block_t *           ( * pf_get_cc )      ( decoder_t *, bool pb_present[4] );
 
+    /* Meta data at codec level
+     *  The decoder owner set it back to NULL once it has retreived what it needs.
+     *  The decoder owner is responsible of its release except when you overwrite it.
+     */
+    vlc_meta_t          *p_description;
+
     /*
      * Owner fields
      * XXX You MUST not use them directly.
@@ -170,7 +179,7 @@ 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_EXPORT( picture_t *, decoder_NewPicture, ( decoder_t * ) LIBVLC_USED );
 
 /**
  * This function will release a picture create by decoder_NewPicture.
@@ -194,7 +203,7 @@ VLC_EXPORT( void, decoder_UnlinkPicture, ( decoder_t *, picture_t * ) );
  * 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 ) );
+VLC_EXPORT( aout_buffer_t *, decoder_NewAudioBuffer, ( decoder_t *, int i_size ) LIBVLC_USED );
 
 /**
  * This function will release a audio buffer created by decoder_NewAudioBuffer.
@@ -206,7 +215,7 @@ VLC_EXPORT( void, decoder_DeleteAudioBuffer, ( decoder_t *, aout_buffer_t *p_buf
  * 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_EXPORT( subpicture_t *, decoder_NewSubpicture, ( decoder_t * ) LIBVLC_USED );
 
 /**
  * This function will release a subpicture created by decoder_NewSubicture.
@@ -231,6 +240,6 @@ VLC_EXPORT( mtime_t, decoder_GetDisplayDate, ( decoder_t *, mtime_t ) LIBVLC_USE
  * 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_EXPORT( int, decoder_GetDisplayRate, ( decoder_t * ) LIBVLC_USED );
 
 #endif /* _VLC_CODEC_H */