projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move bld scripts to blds, add yuri GL bsd patch
[goodguy/history.git]
/
cinelerra-5.1
/
guicast
/
vframe.C
diff --git
a/cinelerra-5.1/guicast/vframe.C
b/cinelerra-5.1/guicast/vframe.C
index 799041921aad42bed98d9154cc7d67ff95a2b47a..041887702435f4028f605bf07ebdfbb1720fb610 100644
(file)
--- a/
cinelerra-5.1/guicast/vframe.C
+++ b/
cinelerra-5.1/guicast/vframe.C
@@
-355,6
+355,7
@@
if( memory_type != VFrame::SHARED )
case BC_YUV444P:
case BC_RGB_FLOATP:
case BC_RGBA_FLOATP:
case BC_YUV444P:
case BC_RGB_FLOATP:
case BC_RGBA_FLOATP:
+ case BC_GBRP:
break;
default:
break;
default:
@@
-446,6
+447,12
@@
void VFrame::create_row_pointers()
this->u_offset = sz;
this->v_offset = sz + sz;
break;
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);
case BC_RGBA_FLOATP:
if( this->v_offset || a ) break;
a = this->data + 3 * sz * sizeof(float);
@@
-885,27
+892,33
@@
int VFrame::clear_frame()
case BC_YUV410P:
bzero(get_y(), sz);
case BC_YUV410P:
bzero(get_y(), sz);
-
bzero(get_u()
, w / 4 * h / 4);
-
bzero(get_v()
, w / 4 * h / 4);
+
memset(get_u(), 0x80
, w / 4 * h / 4);
+
memset(get_v(), 0x80
, w / 4 * h / 4);
break;
case BC_YUV411P:
case BC_YUV420P:
case BC_YUV420PI:
bzero(get_y(), sz);
break;
case BC_YUV411P:
case BC_YUV420P:
case BC_YUV420PI:
bzero(get_y(), sz);
-
bzero(get_u()
, sz / 4);
-
bzero(get_v()
, sz / 4);
+
memset(get_u(), 0x80
, sz / 4);
+
memset(get_v(), 0x80
, sz / 4);
break;
case BC_YUV422P:
bzero(get_y(), sz);
break;
case BC_YUV422P:
bzero(get_y(), sz);
- bzero(get_u(), sz / 2);
- bzero(get_v(), sz / 2);
+ memset(get_u(), 0x80, sz / 2);
+ memset(get_v(), 0x80, 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;
break;
case BC_RGBA_FLOATP: if( a ) {
float *ap = (float *)a;
- for( int i=sz; --i>=0; ++ap ) *ap =
1
.f; }
+ for( int i=sz; --i>=0; ++ap ) *ap =
0
.f; }
case BC_RGB_FLOATP: {
float *rp = (float *)y;
for( int i=sz; --i>=0; ++rp ) *rp = 0.f;
case BC_RGB_FLOATP: {
float *rp = (float *)y;
for( int i=sz; --i>=0; ++rp ) *rp = 0.f;
@@
-916,8
+929,8
@@
int VFrame::clear_frame()
break; }
case BC_YUV444P:
bzero(get_y(), sz);
break; }
case BC_YUV444P:
bzero(get_y(), sz);
-
bzero(get_u()
, sz);
-
bzero(get_v()
, sz);
+
memset(get_u(), 0x80
, sz);
+
memset(get_v(), 0x80
, sz);
break;
case BC_YUV888:
break;
case BC_YUV888: