]> git.sesse.net Git - vlc/commitdiff
Added decoder_t::i_extra_picture_buffers field.
authorLaurent Aimar <fenrir@videolan.org>
Tue, 10 Jan 2012 21:45:46 +0000 (22:45 +0100)
committerLaurent Aimar <fenrir@videolan.org>
Tue, 10 Jan 2012 21:45:46 +0000 (22:45 +0100)
It will allow to specify the number of needed extra picture buffers due
to decoder latency.

include/vlc_codec.h
src/input/decoder.c

index 0237aa4447fed2f8eae051a766d34c916e68587d..beac8fd83d01576098e0fde46deb093ef75ba63d 100644 (file)
@@ -102,6 +102,12 @@ 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 );
index 891645f348e57920147cddef00666e3f09022efe..6b6d7f39ecd895203a98580263237cfe339a369c 100644 (file)
@@ -2413,7 +2413,9 @@ static picture_t *vout_new_buffer( decoder_t *p_dec )
         }
         p_vout = input_resource_RequestVout( p_owner->p_resource,
                                              p_vout, &fmt,
-                                             dpb_size + 1 + DECODER_MAX_BUFFERING_COUNT,
+                                             dpb_size +
+                                             p_dec->i_extra_picture_buffers +
+                                             1 + DECODER_MAX_BUFFERING_COUNT,
                                              true );
         vlc_mutex_lock( &p_owner->lock );
         p_owner->p_vout = p_vout;