Mercurial > mplayer.hg
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 |