+ /* Input format ie from demuxer (XXX: a lot of field could be invalid) */
+ es_format_t fmt_in;
+
+ /* Output format of decoder/packetizer */
+ es_format_t fmt_out;
+
+ /* Some decoders only accept packetized data (ie. not truncated) */
+ bool b_need_packetized;
+
+ /* Tell the decoder if it is allowed to drop frames */
+ bool b_pace_control;
+
+ /* */
+ picture_t * ( * pf_decode_video )( decoder_t *, block_t ** );
+ aout_buffer_t * ( * pf_decode_audio )( decoder_t *, block_t ** );
+ subpicture_t * ( * pf_decode_sub) ( decoder_t *, block_t ** );
+ block_t * ( * pf_packetize ) ( decoder_t *, block_t ** );
+
+ /* Closed Caption (CEA 608/708) extraction.
+ * If set, it *may* be called after pf_decode_video/pf_packetize
+ * returned data. It should return CC for the pictures returned by the
+ * last pf_packetize/pf_decode_video call only,
+ * pb_present will be used to known which cc channel are present (but
+ * 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.
+ */
+
+ /* Video output callbacks
+ * XXX use decoder_NewPicture/decoder_DeletePicture
+ * and decoder_LinkPicture/decoder_UnlinkPicture */
+ picture_t *(*pf_vout_buffer_new)( decoder_t * );
+ void (*pf_vout_buffer_del)( decoder_t *, picture_t * );
+ void (*pf_picture_link) ( decoder_t *, picture_t * );
+ void (*pf_picture_unlink) ( decoder_t *, picture_t * );
+
+ /* Audio output callbacks
+ * XXX use decoder_NewAudioBuffer/decoder_DeleteAudioBuffer */
+ aout_buffer_t *(*pf_aout_buffer_new)( decoder_t *, int );
+
+ /* SPU output callbacks
+ * XXX use decoder_NewSubpicture and decoder_DeleteSubpicture */
+ subpicture_t *(*pf_spu_buffer_new)( decoder_t *, const subpicture_updater_t * );
+ void (*pf_spu_buffer_del)( decoder_t *, subpicture_t * );