appsrc: max-bytes is silently ignored for block=FALSE
@heinrich.fink
Submitted by Heinrich Fink Link to original bug (#762859)
Description
max-bytes is ignored when block=FALSE. A comment in appsrc.c (line 1659) says:
/* no need to wait for free space, we just pump more data into the
- queue hoping that the caller reacts to the enough-data signal and
- stops pushing buffers. */
In a live pipeline, if downstream of appsrc is slow (e.g. overwhelmed encoder), but buffers are pushed into the appsrc as they arrive, then appsrc will be growing its queue infinitely, which is unexpected to the application that simply pushes buffers (and doesn't care about the enough-data signal).
Couldn't we just drop buffers for block=FALSE when max-bytes is reached?