X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbccmdl.py;h=a8d8d0a7af75068938994dc3d52197b65f1e24df;hb=9f917bc27389ebc36568a1f465b42208f7e8e46a;hp=0c730de07c6ff6b61ab3a3bebef5450b52e1d5b3;hpb=1f78d86b5532943b2a3ea51f409a1fe5bd961e02;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bccmdl.py b/cinelerra-5.1/guicast/bccmdl.py index 0c730de0..a8d8d0a7 100755 --- a/cinelerra-5.1/guicast/bccmdl.py +++ b/cinelerra-5.1/guicast/bccmdl.py @@ -252,6 +252,16 @@ base = { "w": " yop[j] = y>>8; uop[j/2] = u>>8; vop[j/2] = v>>8;", }, }, + "yuv420pi": { + "i8": { + "r": " int32_t y = *yip*0x010101u, u = *uip, v = *vip;", + "w": " yop[j] = y; uop[j/2] = u; vop[j/2] = v;", + }, + "i16": { + "r": " int32_t y = *yip*0x010101u, u = *uip<<8, v = *vip<<8;", + "w": " yop[j] = y>>8; uop[j/2] = u>>8; vop[j/2] = v>>8;", + }, + }, "yuv422p": { "i8": { @@ -448,6 +458,7 @@ add_cmodel(17, "bc_yuv411p", "i8", "yuv411p") add_cmodel(28, "bc_yuv410p", "i8", "yuv410p") add_cmodel(32, "bc_rgb_floatp", "fp", "rgbfltp") add_cmodel(33, "bc_rgba_floatp", "fp", "rgbfltp", "afpp") +add_cmodel(34, "bc_yuv420pi", "i8", "yuv420pi") specialize("bc_rgba8888", "bc_transparency", "XFER_rgba8888_to_transparency") @@ -487,11 +498,11 @@ def is_rgb(nm): def is_yuv(nm): return nm in [ "bc_yuv888", "bc_yuva8888", "bc_yuv161616", \ "bc_yuva16161616", "bc_yuv422", "bc_uvy422", "bc_yuv101010", \ - "bc_vyu888", "bc_uyva8888", "bc_yuv420p", "bc_yuv422p", \ + "bc_vyu888", "bc_uyva8888", "bc_yuv420p", "bc_yuv420pi", "bc_yuv422p", \ "bc_yuv444p", "bc_yuv411p", "bc_yuv410p", ] def is_planar(nm): - return nm in [ "bc_yuv420p", "bc_yuv422p", "bc_yuv444p", \ + return nm in [ "bc_yuv420p", "bc_yuv420pi", "bc_yuv422p", "bc_yuv444p", \ "bc_yuv411p", "bc_yuv410p", "bc_rgb_floatp", "bc_rgba_floatp", ] def is_float(nm):