X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbccmodels.C;h=13df1c31ad11ee0ab7c7b5de7177dc45520a59bb;hp=7afaab7ad780fc935e74b132f69e56070f757207;hb=a19a685a46ddc630010788707d9e5b9d2342af46;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb diff --git a/cinelerra-5.1/guicast/bccmodels.C b/cinelerra-5.1/guicast/bccmodels.C index 7afaab7a..13df1c31 100644 --- a/cinelerra-5.1/guicast/bccmodels.C +++ b/cinelerra-5.1/guicast/bccmodels.C @@ -29,10 +29,12 @@ int BC_CModels::is_planar(int colormodel) case BC_YUV420PI: case BC_YUV422P: case BC_YUV444P: + case BC_GBRP: case BC_YUV411P: case BC_YUV410P: case BC_RGB_FLOATP: - case BC_RGBA_FLOATP: return 1; + case BC_RGBA_FLOATP: + return 1; } return 0; } @@ -40,23 +42,44 @@ int BC_CModels::is_planar(int colormodel) int BC_CModels::components(int colormodel) { switch(colormodel) { - case BC_A8: return 1; - case BC_A16: return 1; - case BC_A_FLOAT: return 1; - case BC_RGB888: return 3; - case BC_RGBA8888: return 4; - case BC_RGB161616: return 3; - case BC_RGBA16161616: return 4; - case BC_YUV888: return 3; - case BC_YUVA8888: return 4; - case BC_YUV161616: return 3; - case BC_YUVA16161616: return 4; - case BC_YUV101010: return 3; - case BC_RGB_FLOAT: return 3; - case BC_RGBA_FLOAT: return 4; - case BC_RGB_FLOATP: return 3; - case BC_RGBA_FLOATP: return 4; + case BC_RGB8: + case BC_RGB565: + case BC_BGR565: + case BC_BGR888: + case BC_RGB888: + case BC_RGB161616: + case BC_RGB_FLOAT: + case BC_BGR8888: + case BC_YUV888: + case BC_YUV161616: + case BC_UVY422: + case BC_YUV422: + case BC_YUV101010: + case BC_VYU888: + return 3; + case BC_RGBA8888: + case BC_RGBX8888: + case BC_ARGB8888: + case BC_ABGR8888: + case BC_RGBA16161616: + case BC_RGBX16161616: + case BC_RGBA_FLOAT: + case BC_RGBX_FLOAT: + case BC_YUVA8888: + case BC_YUVX8888: + case BC_YUVA16161616: + case BC_YUVX16161616: + case BC_UYVA8888: + case BC_AYUV16161616: + return 4; + case BC_A8: + case BC_A16: + case BC_A_FLOAT: + case BC_GREY8: + case BC_GREY16: + return 1; } +// planar, compressed, transparent return 0; } @@ -78,22 +101,31 @@ int BC_CModels::calculate_pixelsize(int colormodel) case BC_ARGB8888: return 4; case BC_ABGR8888: return 4; case BC_RGBA8888: return 4; + case BC_RGBX8888: return 4; case BC_RGB161616: return 6; case BC_RGBA16161616: return 8; + case BC_RGBX16161616: return 8; case BC_YUV888: return 3; case BC_YUVA8888: return 4; + case BC_YUVX8888: return 4; case BC_YUV161616: return 6; case BC_YUVA16161616: return 8; + case BC_YUVX16161616: return 8; + case BC_AYUV16161616: return 8; case BC_YUV101010: return 4; case BC_VYU888: return 3; case BC_UYVA8888: return 4; case BC_RGB_FLOAT: return 12; case BC_RGBA_FLOAT: return 16; + case BC_RGBX_FLOAT: return 16; + case BC_GREY8: return 1; + case BC_GREY16: return 2; // Planar case BC_YUV420P: return 1; case BC_YUV420PI: return 1; case BC_YUV422P: return 1; case BC_YUV444P: return 1; + case BC_GBRP: return 1; case BC_YUV422: return 2; case BC_UVY422: return 2; case BC_YUV411P: return 1; @@ -113,16 +145,25 @@ int BC_CModels::calculate_max(int colormodel) case BC_A_FLOAT: return 1; case BC_RGB888: return 0xff; case BC_RGBA8888: return 0xff; + case BC_RGBX8888: return 0xff; case BC_RGB161616: return 0xffff; case BC_RGBA16161616: return 0xffff; + case BC_RGBX16161616: return 0xffff; case BC_YUV888: return 0xff; case BC_YUVA8888: return 0xff; + case BC_YUVX8888: return 0xff; case BC_YUV161616: return 0xffff; case BC_YUVA16161616: return 0xffff; + case BC_YUVX16161616: return 0xffff; + case BC_AYUV16161616: return 0xffff; case BC_RGB_FLOAT: return 1; case BC_RGBA_FLOAT: return 1; + case BC_RGBX_FLOAT: return 1; case BC_RGB_FLOATP: return 1; case BC_RGBA_FLOATP: return 1; + case BC_GREY8: return 0xff; + case BC_GREY16: return 0xffff; + case BC_GBRP: return 0xff; } return 0; } @@ -136,6 +177,7 @@ int BC_CModels::calculate_datasize(int w, int h, int bytes_per_line, int color_m case BC_YUV411P: return w * h + w * h / 2 + 4; case BC_YUV422P: return w * h * 2 + 4; case BC_YUV444P: return w * h * 3 + 4; + case BC_GBRP: return w * h * 3 + 4; case BC_RGB_FLOATP: return w * h * 3 * sizeof(float) + 4; case BC_RGBA_FLOATP: return w * h * 4 * sizeof(float) + 4; } @@ -165,6 +207,7 @@ void BC_CModels::to_text(char *string, int cmodel) case BC_YUVA8888: strcpy(string, "YUVA-8 Bit"); break; case BC_YUV161616: strcpy(string, "YUV-16 Bit"); break; case BC_YUVA16161616: strcpy(string, "YUVA-16 Bit"); break; + case BC_AYUV16161616: strcpy(string, "AYUV-16 Bit"); break; case BC_RGB_FLOAT: strcpy(string, "RGB-FLOAT"); break; case BC_RGBA_FLOAT: strcpy(string, "RGBA-FLOAT"); break; case BC_RGB_FLOATP: strcpy(string, "RGB-FLOATP"); break; @@ -187,6 +230,7 @@ int BC_CModels::from_text(const char *text) if(!strcasecmp(text, "YUVA-8 Bit")) return BC_YUVA8888; if(!strcasecmp(text, "YUV-16 Bit")) return BC_YUV161616; if(!strcasecmp(text, "YUVA-16 Bit")) return BC_YUVA16161616; + if(!strcasecmp(text, "AYUV-16 Bit")) return BC_AYUV16161616; return BC_RGB888; } @@ -213,6 +257,7 @@ int BC_CModels::is_float(int colormodel) switch(colormodel) { case BC_RGB_FLOAT: case BC_RGBA_FLOAT: + case BC_RGBX_FLOAT: case BC_RGB_FLOATP: case BC_RGBA_FLOATP: return 1; @@ -226,8 +271,11 @@ int BC_CModels::is_yuv(int colormodel) switch(colormodel) { case BC_YUV888: case BC_YUVA8888: + case BC_YUVX8888: case BC_YUV161616: case BC_YUVA16161616: + case BC_YUVX16161616: + case BC_AYUV16161616: case BC_YUV422: case BC_UVY422: case BC_YUV101010: @@ -239,6 +287,8 @@ int BC_CModels::is_yuv(int colormodel) case BC_YUV444P: case BC_YUV411P: case BC_YUV410P: + case BC_GREY8: + case BC_GREY16: return 1; } return 0;