mirror of https://github.com/mpv-player/mpv
player: flush decoder even if cover art is decoded
Fixes PNG cover art not showing up immediately (for example when running with --pause). libavformat exports embedded cover art as a single packet. For example, a PNG attachment simply contains the PNG image, which can be sent to the decoder. Normally you would expect that the PNG decoder would return 1 frame for 1 packet, without any delays. But this stopped working, and it incurs a 1 frame delay. This is perfectly legal (even if unexpected), so let our code feed the decoder packets until we get something back. (In theory feeding the packet instead of a real flush packet is still somewhat questionable.)
This commit is contained in:
parent
8d31ad85ec
commit
e11abdbad2
|
@ -377,7 +377,7 @@ static int decode_image(struct MPContext *mpctx)
|
||||||
if (d_video->header->attached_picture) {
|
if (d_video->header->attached_picture) {
|
||||||
d_video->waiting_decoded_mpi =
|
d_video->waiting_decoded_mpi =
|
||||||
video_decode(d_video, d_video->header->attached_picture, 0);
|
video_decode(d_video, d_video->header->attached_picture, 0);
|
||||||
return VD_EOF;
|
return d_video->waiting_decoded_mpi ? VD_EOF : VD_PROGRESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct demux_packet *pkt;
|
struct demux_packet *pkt;
|
||||||
|
|
Loading…
Reference in New Issue