]> git.sesse.net Git - vlc/blobdiff - include/vlc_codec.h
Use var_InheritString for --decklink-video-connection.
[vlc] / include / vlc_codec.h
index 5003e63f8a82922774368182e562e799fd7a3b08..aa36bbb331b0997bbe4b70f8e8c3a4edecc66eb7 100644 (file)
@@ -26,6 +26,8 @@
 
 #include <vlc_block.h>
 #include <vlc_es.h>
+#include <vlc_picture.h>
+#include <vlc_subpicture.h>
 
 /**
  * \file
@@ -62,10 +64,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 +83,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.
@@ -101,7 +109,7 @@ struct decoder_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
@@ -118,6 +126,8 @@ struct decoder_t
 
     /* Private structure for the owner of the decoder */
     decoder_owner_sys_t *p_owner;
+
+    bool                b_error;
 };
 
 /**
@@ -125,7 +135,7 @@ struct decoder_t
  */
 
 /**
- * \defgroup decoder Encoder
+ * \defgroup encoder Encoder
  *
  * The structure describing a Encoder
  *
@@ -170,7 +180,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 +204,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 +216,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 *, const subpicture_updater_t * ) LIBVLC_USED );
 
 /**
  * This function will release a subpicture created by decoder_NewSubicture.
@@ -231,6 +241,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 */