summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-05-22 13:50:10 +0200
committerwm4 <wm4@nowhere>2014-05-22 13:50:10 +0200
commit2f2b3f8d5c614090b5d168b05d22021ae7b0ca92 (patch)
tree9c061e4fff57b985845d118f791f6197090bb46f /player
parentb37e3cc0eeb890793681a3fe03303503cc3b1c88 (diff)
downloadmpv-2f2b3f8d5c614090b5d168b05d22021ae7b0ca92.tar.bz2
mpv-2f2b3f8d5c614090b5d168b05d22021ae7b0ca92.tar.xz
video: fix display of cover art with vo_vdpau
vo_vdpau currently has a video queue larger than 1 entry, which causes the video display code to never queue display the video frame. This is because we consider cover art an endless stream of frames decoded from the same source packet, and include special logic to actually only decode and display 1 frame. Also, make decode_image() also signal EOF in the cover art case.
Diffstat (limited to 'player')
-rw-r--r--player/video.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/player/video.c b/player/video.c
index dad8aaaf84..50f0956f1e 100644
--- a/player/video.c
+++ b/player/video.c
@@ -311,7 +311,7 @@ static int decode_image(struct MPContext *mpctx)
if (d_video->header->attached_picture) {
d_video->waiting_decoded_mpi =
video_decode(d_video, d_video->header->attached_picture, 0);
- return 1;
+ return 0;
}
struct demux_packet *pkt = demux_read_packet(d_video->header);
@@ -516,8 +516,10 @@ int update_video(struct MPContext *mpctx, double endpts, bool reconfig_ok,
struct vo *video_out = mpctx->video_out;
if (mpctx->d_video->header->attached_picture) {
- if (video_out->hasframe || vo_has_next_frame(video_out, true))
+ if (video_out->hasframe)
return 0;
+ if (vo_has_next_frame(video_out, true))
+ return 2;
}
int r = video_output_image(mpctx, endpts, reconfig_ok);