b_force picture flags are confusing (to me). The names and the (none) documentation don't really explain what they do.
They are used actually used for
- still pictures
- pictures that way not have a frame after (EOS)
- "first" pictures the decoder wants to display (not its choice to decide)
- adds some doc for each flag
- avoids forcing the first decoded picture
- does not flush the vout+filter+clock on EOS (!)
- merge the 2 flags which end up having exactly the same consequences
In the end it's a flag that signals there might not be a picture following this picture, at least for a while (EOS or still pictures). The vout can decide how to best handle them (less likely to drop).
Also simplify the vout flush calls which now all mean the same (there's a suspicious call at the end of preroll but it's unrelated to this patch).