comparison libvo/vo_xv.c @ 5566:e01c664def74

VFCAP added
author arpi
date Thu, 11 Apr 2002 21:07:00 +0000
parents 1e90dd889c34
children 1972c3475d93
comparison
equal deleted inserted replaced
5565:0b301fec999a 5566:e01c664def74
705 return VO_TRUE; 705 return VO_TRUE;
706 } 706 }
707 return VO_FALSE; 707 return VO_FALSE;
708 } 708 }
709 709
710
711 static uint32_t query_format(uint32_t format) 710 static uint32_t query_format(uint32_t format)
712 { 711 {
713 int flag=1; 712 int flag=3|VFCAP_HWSCALE_UP|VFCAP_HWSCALE_DOWN|VFCAP_OSD; // FIXME! check for DOWN
714 /* check image formats */ 713 /* check image formats */
715 fo = XvListImageFormats(mDisplay, xv_port, (int*)&formats); 714 if(format==IMGFMT_BGR24){ format=IMGFMT_YV12;flag&=~2;flag|=VFCAP_FLIP;} // conversion!
716 if(format==IMGFMT_BGR24){ format=IMGFMT_YV12;flag|=2;} // conversion!
717 for(i = 0; i < formats; i++){ 715 for(i = 0; i < formats; i++){
718 // printf("Xvideo image format: 0x%x (%4.4s) %s\n", fo[i].id,(char*)&fo[i].id, (fo[i].format == XvPacked) ? "packed" : "planar"); 716 // printf("Xvideo image format: 0x%x (%4.4s) %s\n", fo[i].id,(char*)&fo[i].id, (fo[i].format == XvPacked) ? "packed" : "planar");
719 if (fo[i].id == format) return flag; //xv_format = fo[i].id; 717 if (fo[i].id == format) return flag; //xv_format = fo[i].id;
720 } 718 }
721 return 0; 719 return 0;
789 } 787 }
790 if(!xv_port){ 788 if(!xv_port){
791 printf("Couldn't find free Xvideo port - maybe other applications keep open it\n"); 789 printf("Couldn't find free Xvideo port - maybe other applications keep open it\n");
792 return -1; 790 return -1;
793 } 791 }
792
793 fo = XvListImageFormats(mDisplay, xv_port, (int*)&formats);
794 794
795 return 0; 795 return 0;
796 } 796 }
797 797
798 static void query_vaa(vo_vaa_t *vaa) 798 static void query_vaa(vo_vaa_t *vaa)