comparison libvo/vo_xv.c @ 8793:63e2ab74e0a6

fixed calculation of OSD coordinates w/ panscan
author henry
date Sun, 05 Jan 2003 13:29:38 +0000
parents 93f78fb709e6
children e59cda3414b6
comparison
equal deleted inserted replaced
8792:c2e0f2cd8666 8793:63e2ab74e0a6
88 static uint32_t dwidth,dheight; 88 static uint32_t dwidth,dheight;
89 89
90 static void (*draw_alpha_fnc)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride); 90 static void (*draw_alpha_fnc)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride);
91 91
92 static void draw_alpha_yv12(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride){ 92 static void draw_alpha_yv12(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride){
93 x0+=(vo_panscan_x>>2); 93 x0+=image_width*(vo_panscan_x>>1)/(vo_dwidth+vo_panscan_x);
94 vo_draw_alpha_yv12(w,h,src,srca,stride, 94 vo_draw_alpha_yv12(w,h,src,srca,stride,
95 xvimage[current_buf]->data+xvimage[current_buf]->offsets[0]+ 95 xvimage[current_buf]->data+xvimage[current_buf]->offsets[0]+
96 xvimage[current_buf]->pitches[0]*y0+x0,xvimage[current_buf]->pitches[0]); 96 xvimage[current_buf]->pitches[0]*y0+x0,xvimage[current_buf]->pitches[0]);
97 } 97 }
98 98
99 static void draw_alpha_yuy2(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride){ 99 static void draw_alpha_yuy2(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride){
100 x0+=(vo_panscan_x>>2); 100 x0+=image_width*(vo_panscan_x>>1)/(vo_dwidth+vo_panscan_x);
101 vo_draw_alpha_yuy2(w,h,src,srca,stride, 101 vo_draw_alpha_yuy2(w,h,src,srca,stride,
102 xvimage[current_buf]->data+xvimage[current_buf]->offsets[0]+ 102 xvimage[current_buf]->data+xvimage[current_buf]->offsets[0]+
103 xvimage[current_buf]->pitches[0]*y0+2*x0,xvimage[current_buf]->pitches[0]); 103 xvimage[current_buf]->pitches[0]*y0+2*x0,xvimage[current_buf]->pitches[0]);
104 } 104 }
105 105
106 static void draw_alpha_uyvy(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride){ 106 static void draw_alpha_uyvy(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride){
107 x0+=(vo_panscan_x>>2); 107 x0+=image_width*(vo_panscan_x>>1)/(vo_dwidth+vo_panscan_x);
108 vo_draw_alpha_yuy2(w,h,src,srca,stride, 108 vo_draw_alpha_yuy2(w,h,src,srca,stride,
109 xvimage[current_buf]->data+xvimage[current_buf]->offsets[0]+ 109 xvimage[current_buf]->data+xvimage[current_buf]->offsets[0]+
110 xvimage[current_buf]->pitches[0]*y0+2*x0+1,xvimage[current_buf]->pitches[0]); 110 xvimage[current_buf]->pitches[0]*y0+2*x0+1,xvimage[current_buf]->pitches[0]);
111 } 111 }
112 112
551 } 551 }
552 } 552 }
553 } 553 }
554 554
555 static void draw_osd(void) 555 static void draw_osd(void)
556 { vo_draw_text(image_width-(vo_panscan_x>>1),image_height,draw_alpha_fnc);} 556 { vo_draw_text(image_width-image_width*vo_panscan_x/(vo_dwidth+vo_panscan_x),image_height,draw_alpha_fnc);}
557 557
558 static void flip_page(void) 558 static void flip_page(void)
559 { 559 {
560 560
561 #ifdef HAVE_SHM 561 #ifdef HAVE_SHM