[MPlayer-cvslog] CVS: main/libmpcodecs vf_expand.c,1.27,1.28
Jindrich Makovicka CVS
syncmail at mplayerhq.hu
Sun Apr 10 17:37:45 CEST 2005
CVS change done by Jindrich Makovicka CVS
Update of /cvsroot/mplayer/main/libmpcodecs
In directory mail:/var2/tmp/cvs-serv31906
Modified Files:
vf_expand.c
Log Message:
fix displaying of the subtitles when using slices
Index: vf_expand.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpcodecs/vf_expand.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- vf_expand.c 1 Dec 2004 09:32:48 -0000 1.27
+++ vf_expand.c 10 Apr 2005 15:37:43 -0000 1.28
@@ -141,7 +141,10 @@
// yep, we're expanding image, not just copy.
if(vf->dmpi->planes[0]!=vf->priv->fb_ptr){
// double buffering, so we need full clear :(
- remove_func(0,0,vf->priv->exp_w,vf->priv->exp_h);
+ if (vf->priv->exp_y > 0)
+ remove_func_2(0,0,vf->priv->exp_w,vf->priv->exp_y);
+ if (vf->priv->exp_y+h < vf->priv->exp_h)
+ remove_func_2(0,vf->priv->exp_y+h,vf->priv->exp_w,vf->priv->exp_h-h-vf->priv->exp_y);
} else {
// partial clear:
vo_remove_text(vf->priv->exp_w,vf->priv->exp_h,remove_func);
@@ -261,10 +264,23 @@
vf_next_draw_slice(vf, vf->dmpi->planes, vf->dmpi->stride,
vf->dmpi->w,vf->priv->exp_y,0,0);
vf_next_draw_slice(vf,src,stride,w,h,x+vf->priv->exp_x,y+vf->priv->exp_y);
- if(vf->priv->exp_y+vf->h<vf->dmpi->h && y+h == vf->h)
- vf_next_draw_slice(vf, vf->dmpi->planes, vf->dmpi->stride,
+ if(vf->priv->exp_y+vf->h<vf->dmpi->h && y+h == vf->h) {
+ unsigned char *src2[MP_MAX_PLANES];
+ src2[0] = vf->dmpi->planes[0]
+ + (vf->priv->exp_y+vf->h)*vf->dmpi->stride[0];
+ if(vf->dmpi->flags&MP_IMGFLAG_PLANAR){
+ src2[1] = vf->dmpi->planes[1]
+ + ((vf->priv->exp_y+vf->h)>>vf->dmpi->chroma_y_shift)*vf->dmpi->stride[1];
+ src2[2] = vf->dmpi->planes[2]
+ + ((vf->priv->exp_y+vf->h)>>vf->dmpi->chroma_y_shift)*vf->dmpi->stride[2];
+ } else {
+ src2[1] = vf->dmpi->planes[1]; // passthrough rgb8 palette
+ }
+
+ vf_next_draw_slice(vf, src2, vf->dmpi->stride,
vf->dmpi->w,vf->dmpi->h-(vf->priv->exp_y+vf->h),
0,vf->priv->exp_y+vf->h);
+ }
}
static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){
More information about the MPlayer-cvslog
mailing list