- case FOURCC_I411:
- p_pic->p[ Y_PLANE ].i_lines = i_height;
- p_pic->p[ Y_PLANE ].i_pitch = i_width;
- p_pic->p[ Y_PLANE ].i_visible_pitch = p_pic->p[ Y_PLANE ].i_pitch;
- p_pic->p[ U_PLANE ].i_lines = i_height;
- p_pic->p[ U_PLANE ].i_pitch = i_width / 4;
- p_pic->p[ U_PLANE ].i_visible_pitch = p_pic->p[ U_PLANE ].i_pitch;
- p_pic->p[ V_PLANE ].i_lines = i_height;
- p_pic->p[ V_PLANE ].i_pitch = i_width / 4;
- p_pic->p[ V_PLANE ].i_visible_pitch = p_pic->p[ V_PLANE ].i_pitch;
- p_pic->i_planes = 3;
- break;
-
- case FOURCC_I410:
- p_pic->p[ Y_PLANE ].i_lines = i_height;
- p_pic->p[ Y_PLANE ].i_pitch = i_width;
- p_pic->p[ Y_PLANE ].i_visible_pitch = p_pic->p[ Y_PLANE ].i_pitch;
- p_pic->p[ U_PLANE ].i_lines = i_height / 4;
- p_pic->p[ U_PLANE ].i_pitch = i_width / 4;
- p_pic->p[ U_PLANE ].i_visible_pitch = p_pic->p[ U_PLANE ].i_pitch;
- p_pic->p[ V_PLANE ].i_lines = i_height / 4;
- p_pic->p[ V_PLANE ].i_pitch = i_width / 4;
- p_pic->p[ V_PLANE ].i_visible_pitch = p_pic->p[ V_PLANE ].i_pitch;
- p_pic->i_planes = 3;
- break;
-
- case FOURCC_YV12:
- case FOURCC_I420:
- case FOURCC_IYUV:
- p_pic->p[ Y_PLANE ].i_lines = i_height;
- p_pic->p[ Y_PLANE ].i_pitch = i_width;
- p_pic->p[ Y_PLANE ].i_visible_pitch = p_pic->p[ Y_PLANE ].i_pitch;
- p_pic->p[ U_PLANE ].i_lines = i_height / 2;
- p_pic->p[ U_PLANE ].i_pitch = i_width / 2;
- p_pic->p[ U_PLANE ].i_visible_pitch = p_pic->p[ U_PLANE ].i_pitch;
- p_pic->p[ V_PLANE ].i_lines = i_height / 2;
- p_pic->p[ V_PLANE ].i_pitch = i_width / 2;
- p_pic->p[ V_PLANE ].i_visible_pitch = p_pic->p[ V_PLANE ].i_pitch;
- p_pic->i_planes = 3;
- break;
-
- case FOURCC_I422:
- p_pic->p[ Y_PLANE ].i_lines = i_height;
- p_pic->p[ Y_PLANE ].i_pitch = i_width;
- p_pic->p[ Y_PLANE ].i_visible_pitch = p_pic->p[ Y_PLANE ].i_pitch;
- p_pic->p[ U_PLANE ].i_lines = i_height;
- p_pic->p[ U_PLANE ].i_pitch = i_width / 2;
- p_pic->p[ U_PLANE ].i_visible_pitch = p_pic->p[ U_PLANE ].i_pitch;
- p_pic->p[ V_PLANE ].i_lines = i_height;
- p_pic->p[ V_PLANE ].i_pitch = i_width / 2;
- p_pic->p[ V_PLANE ].i_visible_pitch = p_pic->p[ V_PLANE ].i_pitch;
- p_pic->i_planes = 3;
- break;
-
- case FOURCC_I444:
- p_pic->p[ Y_PLANE ].i_lines = i_height;
- p_pic->p[ Y_PLANE ].i_pitch = i_width;
- p_pic->p[ Y_PLANE ].i_visible_pitch = p_pic->p[ Y_PLANE ].i_pitch;
- p_pic->p[ U_PLANE ].i_lines = i_height;
- p_pic->p[ U_PLANE ].i_pitch = i_width;
- p_pic->p[ U_PLANE ].i_visible_pitch = p_pic->p[ U_PLANE ].i_pitch;
- p_pic->p[ V_PLANE ].i_lines = i_height;
- p_pic->p[ V_PLANE ].i_pitch = i_width;
- p_pic->p[ V_PLANE ].i_visible_pitch = p_pic->p[ V_PLANE ].i_pitch;
- p_pic->i_planes = 3;
- break;
-
- case FOURCC_Y211:
- p_pic->p->i_lines = i_height;
- p_pic->p->i_pitch = i_width;
- p_pic->p->i_visible_pitch = p_pic->p->i_pitch;
- p_pic->p->i_pixel_pitch = 4;
- p_pic->i_planes = 1;
- break;
-
- case FOURCC_YUY2:
- p_pic->p->i_lines = i_height;
- p_pic->p->i_pitch = i_width * 2;
- p_pic->p->i_visible_pitch = p_pic->p->i_pitch;
- p_pic->p->i_pixel_pitch = 4;
- p_pic->i_planes = 1;
- break;
-
- case FOURCC_RGB2:
- p_pic->p->i_lines = i_height;
- p_pic->p->i_pitch = i_width;
- p_pic->p->i_visible_pitch = p_pic->p->i_pitch;
- p_pic->p->i_pixel_pitch = 1;
- p_pic->i_planes = 1;
- break;
-
- case FOURCC_RV15:
- p_pic->p->i_lines = i_height;
- p_pic->p->i_pitch = i_width * 2;
- p_pic->p->i_visible_pitch = p_pic->p->i_pitch;
- p_pic->p->i_pixel_pitch = 2;
-/* FIXME: p_heap isn't always reachable
- p_pic->p_heap->i_rmask = 0x001f;
- p_pic->p_heap->i_gmask = 0x03e0;
- p_pic->p_heap->i_bmask = 0x7c00; */
- p_pic->i_planes = 1;
- break;
-
- case FOURCC_RV16:
- p_pic->p->i_lines = i_height;
- p_pic->p->i_pitch = i_width * 2;
- p_pic->p->i_visible_pitch = p_pic->p->i_pitch;
- p_pic->p->i_pixel_pitch = 2;
-/* FIXME: p_heap isn't always reachable
- p_pic->p_heap->i_rmask = 0x001f;
- p_pic->p_heap->i_gmask = 0x07e0;
- p_pic->p_heap->i_bmask = 0xf800; */
- p_pic->i_planes = 1;
- break;
-
- case FOURCC_RV24:
- p_pic->p->i_lines = i_height;
-
- /* FIXME: Should be 3 here but x11 and our chroma conversion
- * routines assume 4. */
-#ifdef WIN32
- p_pic->p->i_pitch = i_width * 3;
- p_pic->p->i_pixel_pitch = 3;
-#else
- p_pic->p->i_pitch = i_width * 4;
- p_pic->p->i_pixel_pitch = 4;
-#endif
- p_pic->p->i_visible_pitch = p_pic->p->i_pitch;
-/* FIXME: p_heap isn't always reachable
- p_pic->p_heap->i_rmask = 0xff0000;
- p_pic->p_heap->i_gmask = 0x00ff00;
- p_pic->p_heap->i_bmask = 0x0000ff; */
- p_pic->i_planes = 1;
- break;
-
- case FOURCC_RV32:
- p_pic->p->i_lines = i_height;
- p_pic->p->i_pitch = i_width * 4;
- p_pic->p->i_visible_pitch = p_pic->p->i_pitch;
- p_pic->p->i_pixel_pitch = 4;
-/* FIXME: p_heap isn't always reachable
- p_pic->p_heap->i_rmask = 0xff0000;
- p_pic->p_heap->i_gmask = 0x00ff00;
- p_pic->p_heap->i_bmask = 0x0000ff; */
- p_pic->i_planes = 1;
- break;
-
- default:
- msg_Err( p_this, "unknown chroma type 0x%.8x (%4.4s)",
- i_chroma, (char*)&i_chroma );
- p_pic->i_planes = 0;
- return;