X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fvframe.C;h=241a773f639d0509b8f8d7d853195720e929f0db;hb=b55798fc64eee00c6fab3b4763e791befb7275f9;hp=e8dad7ea1315ee913bb439c355767f4de725dc1b;hpb=af44bff549c39ac8bb6e42a791e7a211e1013526;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/vframe.C b/cinelerra-5.1/guicast/vframe.C index e8dad7ea..241a773f 100644 --- a/cinelerra-5.1/guicast/vframe.C +++ b/cinelerra-5.1/guicast/vframe.C @@ -280,7 +280,8 @@ int VFrame::reset_parameters(int do_opengl) timestamp = -1.; is_keyframe = 0; draw_point = 0; - set_pixel_color(BLACK); + pixel_rgb = 0x000000; // BLACK + pixel_yuv = 0x008080; stipple = 0; if(do_opengl) @@ -354,6 +355,7 @@ if( memory_type != VFrame::SHARED ) case BC_YUV444P: case BC_RGB_FLOATP: case BC_RGBA_FLOATP: + case BC_GBRP: break; default: @@ -445,6 +447,12 @@ void VFrame::create_row_pointers() this->u_offset = sz; this->v_offset = sz + sz; break; + case BC_GBRP: + if( this->v_offset ) break; + this->y_offset = 0; + this->u_offset = sz * sizeof(uint8_t); + this->v_offset = 2 * sz * sizeof(uint8_t); + break; case BC_RGBA_FLOATP: if( this->v_offset || a ) break; a = this->data + 3 * sz * sizeof(float); @@ -902,6 +910,12 @@ int VFrame::clear_frame() bzero(get_v(), sz / 2); break; + case BC_GBRP: + bzero(get_y(), sz); + bzero(get_u(), sz); + bzero(get_b(), sz); + break; + case BC_RGBA_FLOATP: if( a ) { float *ap = (float *)a; for( int i=sz; --i>=0; ++ap ) *ap = 1.f; }