h = xv_image->height;
if(!XShmAttach(top_level->display, &shm_info))
perror("BC_XvShmImage::BC_XvShmImage XShmAttach");
- if( color_model == BC_YUV422 ) {
+ if( color_model == BC_YUV422 || color_model == BC_UVY422 ) {
bytesPerLine = w*2;
bitsPerPixel = 12;
row_data = new unsigned char*[h];
xv_image->data = (char *) data;
w = xv_image->width;
h = xv_image->height;
- if( color_model == BC_YUV422 ) {
+ if( color_model == BC_YUV422 || color_model == BC_UVY422 ) {
int bytesPerLine = w*2;
row_data = new unsigned char*[h];
for( int i=0; i<h; ++i )
this->parent_window = parent_window;
this->top_level = parent_window->top_level;
this->xv_portid = resources->use_xvideo ? top_level->xvideo_port_id : -1;
+ if( w < 1 ) w = 1;
+ if( h < 1 ) h = 1;
this->w = w;
this->h = h;
this->color_model = color_model;
break;
default:
case BC_YUV422:
+ case BC_UVY422:
memcpy(get_data(), frame->get_data(), w * h + w * h);
break;
}