Commit 3dc18b87 authored by Laurent Aimar's avatar Laurent Aimar

Reworked the way the vout select the pictures to be displayed.

It allows to:
 - properly support filters that do not have 1:1 input/output relation
 (yadif2x, bob, ... are back).
 - filter only once each picture (for the 'static' filter chain). It
 fixes filters with state behavior.
 - display as soon as possible the first frame after a flush.

There are still a few issues:
 - when paused, on filter changes, the picture displayed step forward the
 first time.
 - preventive frame dropping is not enough agressive.
parent 0441cf8f
This diff is collapsed.
......@@ -48,12 +48,6 @@
*/
#define VOUT_MAX_PICTURES (20)
/**
* Number of frames used to estimate the maximum filter chain latency.
* For performance, it is best to use a power of 2
*/
#define VOUT_FILTER_DELAYS (8)
/* */
struct vout_thread_sys_t
{
......@@ -107,6 +101,8 @@ struct vout_thread_sys_t
int qtype;
bool is_interlaced;
picture_t *decoded;
picture_t *current;
picture_t *next;
} displayed;
struct {
......@@ -134,8 +130,6 @@ struct vout_thread_sys_t
vlc_mutex_t lock;
filter_chain_t *chain_static;
filter_chain_t *chain_interactive;
unsigned delay_index;
mtime_t delay[VOUT_FILTER_DELAYS];
} filter;
/* */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment