[MPlayer-users] VDPAU errors, flickering black video display on aspect change in MPEG2 TS

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sun Dec 8 16:09:16 CET 2013


On Sun, Dec 08, 2013 at 03:53:11PM +0100, Ilja Sekler wrote:
> Am 08.12.2013 15:31, schrieb Reimar Döffinger:
> 
> >On Sun, Dec 08, 2013 at 03:18:28PM +0100, Ilja Sekler wrote:
> >
> >>The patch fixes this particular problem and brings back the issue
> >>with multithreaded VDPAU decoding for h264 as described in
> >>
> >>http://lists.mplayerhq.hu/pipermail/mplayer-users/2013-August/086498.html
> >
> >A more brute-force hack then, with the advantage that it will only
> >affect buggy drivers:
> >
> >--- a/libvo/vo_vdpau.c
> >+++ b/libvo/vo_vdpau.c
> >@@ -1031,6 +1031,12 @@ static int draw_slice(uint8_t *image[], int stride[], int w, int h,
> >          return VO_FALSE;
> >
> >      vdp_st = vdp_decoder_render(decoder, rndr->render_state->surface, rndr->info, rndr->bitstream_buffers_used, rndr->bitstream_buffers);
> >+    if (vdp_st == VDP_STATUS_INVALID_SIZE) {
> >+        // reinit to work around a NVidia bug on aspect change
> >+        if (!create_vdp_decoder(image_format, vid_width, vid_height, max_refs))
> >+            return VO_FALSE;
> >+        vdp_st = vdp_decoder_render(decoder, rndr->render_state->surface, rndr->info, rndr->bitstream_buffers_used, rndr->bitstream_buffers);
> >+    }
> >      CHECK_ST_WARNING("Failed VDPAU decoder rendering");
> >      return VO_TRUE;
> >  }
> 
> As far as I can tell, this one works fine, thanks!

Committed.
Note that I believe there is no issue for actual resolution changes
since libavcodec itself will have to drain the multithreading queue for
that (I hope... otherwise things might get interesting)


More information about the MPlayer-users mailing list