- float **rows = (float **)frame->get_rows();
- if( min_row < max_row - 1 ) {
- float *row1 = (float *)rows[min_row];
- float *row2 = (float *)rows[max_row - 1];
-
- for( int i = 0; i < frame_w; i++ ) {
- for( int j = 0; j < 3; j++ ) {
- row1[j] = pix_max - row1[j];
- row2[j] = pix_max - row2[j];
- }
- if( has_alpha ) {
- row1[3] = pix_max;
- row2[3] = pix_max;
+ EDLSession *session = get_edlsession();
+ int line_w = bmax(session->output_w,session->output_h) / 600 + 1;
+ for( int j=0; j<line_w; ++j ) {
+ float **rows = (float **)frame->get_rows();
+ if( min_row < max_row - 1 ) {
+ float *row1 = (float *)rows[min_row+j];
+ float *row2 = (float *)rows[max_row-j - 1];
+
+ for( int i = 0; i < frame_w; i++ ) {
+ for( int j = 0; j < 3; j++ ) {
+ row1[j] = pix_max - row1[j];
+ row2[j] = pix_max - row2[j];
+ }
+ if( has_alpha ) {
+ row1[3] = pix_max;
+ row2[3] = pix_max;
+ }
+ row1 += pix_len;
+ row2 += pix_len;