# HG changeset patch # User reimar # Date 1133971454 0 # Node ID 34f870d8e8a83f7a3db4ae3e518c7cc222d55f72 # Parent f650267ecc3aea60c7e5a0e8503796ea25fd5a32 really clear frames to black instead of grey, and make sure one of those cleared frames is actually shown (and not a leftover from last film, which happened at least with ATI cards). diff -r f650267ecc3a -r 34f870d8e8a8 libvo/vosub_vidix.c --- a/libvo/vosub_vidix.c Wed Dec 07 15:56:27 2005 +0000 +++ b/libvo/vosub_vidix.c Wed Dec 07 16:04:14 2005 +0000 @@ -404,6 +404,7 @@ unsigned dst_height,unsigned format,unsigned dest_bpp, unsigned vid_w,unsigned vid_h) { + void *tmp, *tmpa; size_t i; int err; uint32_t sstride,apitch; @@ -495,14 +496,22 @@ vidix_mem = vidix_play.dga_addr; - /* select first frame */ - next_frame = 0; -// vdlPlaybackFrameSelect(vidix_handler,next_frame); - + tmp = calloc(image_width, image_height); + tmpa = malloc(image_width * image_height); + memset(tmpa, 1, image_width * image_height); /* clear every frame with correct address and frame_size */ - for (i = 0; i < vidix_play.num_frames; i++) + /* HACK: use draw_alpha to clear Y component */ + for (i = 0; i < vidix_play.num_frames; i++) { + next_frame = i; memset(vidix_mem + vidix_play.offsets[i], 0x80, vidix_play.frame_size); + draw_alpha(0, 0, image_width, image_height, tmp, tmpa, image_width); + } + free(tmp); + free(tmpa); + /* show one of the "clear" frames */ + vidix_flip_page(); + switch(format) { case IMGFMT_YV12: