mirror of https://github.com/mpv-player/mpv
filter: add/use a convenience function
I guess this is generally useful for filters which buffer data internally.
This commit is contained in:
parent
afb167cfd2
commit
debc17663d
|
@ -251,8 +251,7 @@ static void fixed_aframe_size_process(struct mp_filter *f)
|
||||||
p->out = NULL;
|
p->out = NULL;
|
||||||
p->out_written = 0;
|
p->out_written = 0;
|
||||||
} else {
|
} else {
|
||||||
if (mp_pin_out_request_data(f->ppins[0]))
|
mp_pin_out_request_data_next(f->ppins[0]);
|
||||||
mp_filter_internal_mark_progress(f);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -256,6 +256,12 @@ bool mp_pin_out_request_data(struct mp_pin *p)
|
||||||
return mp_pin_out_has_data(p);
|
return mp_pin_out_has_data(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mp_pin_out_request_data_next(struct mp_pin *p)
|
||||||
|
{
|
||||||
|
if (mp_pin_out_request_data(p))
|
||||||
|
update_filter(p->owner, p->conn->manual_connection);
|
||||||
|
}
|
||||||
|
|
||||||
struct mp_frame mp_pin_out_read(struct mp_pin *p)
|
struct mp_frame mp_pin_out_read(struct mp_pin *p)
|
||||||
{
|
{
|
||||||
if (!mp_pin_out_request_data(p))
|
if (!mp_pin_out_request_data(p))
|
||||||
|
|
|
@ -47,6 +47,11 @@ bool mp_pin_in_write(struct mp_pin *p, struct mp_frame frame);
|
||||||
// buffered in mp_pins goes against this.
|
// buffered in mp_pins goes against this.
|
||||||
bool mp_pin_out_request_data(struct mp_pin *p);
|
bool mp_pin_out_request_data(struct mp_pin *p);
|
||||||
|
|
||||||
|
// Same as mp_pin_out_request_data(), but call the filter's process() function
|
||||||
|
// next time even if there is new data. the intention is that the filter reads
|
||||||
|
// the data in the next iteration, without checking for the data now.
|
||||||
|
void mp_pin_out_request_data_next(struct mp_pin *p);
|
||||||
|
|
||||||
// Same as mp_pin_out_request_data(), but does not attempt to procure new frames
|
// Same as mp_pin_out_request_data(), but does not attempt to procure new frames
|
||||||
// if the return value is false.
|
// if the return value is false.
|
||||||
bool mp_pin_out_has_data(struct mp_pin *p);
|
bool mp_pin_out_has_data(struct mp_pin *p);
|
||||||
|
|
Loading…
Reference in New Issue