#include <math.h>#include <stdio.h>#include <string.h>#include <stdint.h>#include <stdlib.h>#include <unistd.h>#include "clip.h"#include "edl.inc"#include "mutex.h"#include "overlayframe.h"#include "units.h"#include "vframe.h"Go to the source code of this file.
Defines | |
| #define | BLEND_3(max, temp_type, type, chroma_offset) |
| #define | BLEND_4(max, temp_type, type, chroma_offset) |
| #define | NO_TRANSLATION1 |
| #define | NO_BLEND |
| #define | NO_TRANSLATION2 |
| #define | NO_SCALE |
| #define | PIXEL_REDUCE_MACRO(type, components, row) |
| #define | BILINEAR_REDUCE(max, type, components) |
| #define | BILINEAR_ENLARGE(max, type, components) |
| #define | BICUBIC(max, type, components) |
| #define | CUBE(x) ((x) * (x) * (x)) |
| #define | TRANSLATE(max, temp_type, type, components, chroma_offset) |
| #define | SCALE_TRANSLATE(max, temp_type, type, components, chroma_offset) |
| #define | BLEND_ONLY(temp_type, type, max, components, chroma_offset) |
| #define | BLEND_ONLY_TRANSFER_REPLACE(type, components) |
| #define | BLEND_ONLY_4_NORMAL(temp_type, type, max, chroma_offset) |
| #define | BLEND_ONLY_3_NORMAL(temp_type, type, max, chroma_offset) |
Functions | |
| static int | my_abs (int32_t x) |
| static int | my_abs (uint32_t x) |
| static int | my_abs (int64_t x) |
| static int | my_abs (uint64_t x) |
| static float | my_abs (float x) |
|
|
Definition at line 1174 of file overlayframe.C. Referenced by ScaleUnit::process_package(). |
|
|
Definition at line 1055 of file overlayframe.C. Referenced by ScaleUnit::process_package(). |
|
|
Definition at line 943 of file overlayframe.C. Referenced by ScaleUnit::process_package(). |
|
|
Definition at line 82 of file overlayframe.C. |
|
|
Definition at line 176 of file overlayframe.C. |
|
|
Definition at line 2422 of file overlayframe.C. Referenced by BlendUnit::process_package(). |
|
|
Value: { \
const int bits = sizeof(type) * 8; \
temp_type opacity = (temp_type)(alpha * ((temp_type)1 << bits) + 0.5); \
temp_type transparency = ((temp_type)1 << bits) - opacity; \
\
type** output_rows = (type**)output->get_rows(); \
type** input_rows = (type**)input->get_rows(); \
int w = input->get_w() * 3; \
int h = input->get_h(); \
\
for(int i = pkg->out_row1; i < pkg->out_row2; i++) \
{ \
type* in_row = input_rows[i]; \
type* output = output_rows[i]; \
\
for(int j = 0; j < w; j++) /* w = 3x width! */ \
{ \
*output = ((temp_type)*in_row * opacity + *output * transparency) >> bits; \
in_row ++; \
output ++; \
} \
} \
}
Definition at line 2527 of file overlayframe.C. Referenced by BlendUnit::process_package(). |
|
|
Definition at line 2482 of file overlayframe.C. Referenced by BlendUnit::process_package(). |
|
|
Value: { \
\
type** output_rows = (type**)output->get_rows(); \
type** input_rows = (type**)input->get_rows(); \
int w = input->get_w(); \
int h = input->get_h(); \
int line_len = w * sizeof(type) * components; \
\
for(int i = pkg->out_row1; i < pkg->out_row2; i++) \
{ \
memcpy(output_rows[i], input_rows[i], line_len); \
} \
}
Definition at line 2466 of file overlayframe.C. Referenced by BlendUnit::process_package(). |
|
|
Definition at line 1265 of file overlayframe.C. Referenced by ScaleUnit::cubic_bspline(). |
|
|
Value: (EQUIV(alpha, 1) && \
(mode == TRANSFER_REPLACE || \
(mode == TRANSFER_NORMAL && cmodel_components(input->get_color_model()) == 3)))
Referenced by OverlayFrame::overlay(). |
|
|
Value: (EQUIV(out_x2 - out_x1, in_x2 - in_x1) && \
EQUIV(out_y2 - out_y1, in_y2 - in_y1))
Referenced by OverlayFrame::overlay(). |
|
|
Value: (EQUIV(in_x1, 0) && \
EQUIV(in_y1, 0) && \
EQUIV(out_x1, 0) && \
EQUIV(out_y1, 0) && \
EQUIV(in_x2, in_x2_int) && \
EQUIV(in_y2, in_y2_int) && \
EQUIV(out_x2, temp_w) && \
EQUIV(out_y2, temp_h))
Referenced by OverlayFrame::overlay(). |
|
|
Value: (EQUIV(in_x1, 0) && \
EQUIV(in_y1, 0) && \
EQUIV(in_x2, translation_input->get_w()) && \
EQUIV(in_y2, translation_input->get_h()) && \
EQUIV(out_x1, 0) && \
EQUIV(out_y1, 0) && \
EQUIV(out_x2, output->get_w()) && \
EQUIV(out_y2, output->get_h())) \
Referenced by OverlayFrame::overlay(). |
|
|
Value: { \
type *input_row = &in_rows[row][x_entry->input_pixel1 * components]; \
type *input_end = &in_rows[row][x_entry->input_pixel2 * components]; \
\
/* Do first pixel */ \
temp_f1 += input_scale1 * input_row[0]; \
temp_f2 += input_scale1 * input_row[1]; \
temp_f3 += input_scale1 * input_row[2]; \
if(components == 4) temp_f4 += input_scale1 * input_row[3]; \
\
/* Do last pixel */ \
/* if(input_row < input_end) */\
{ \
temp_f1 += input_scale3 * input_end[0]; \
temp_f2 += input_scale3 * input_end[1]; \
temp_f3 += input_scale3 * input_end[2]; \
if(components == 4) temp_f4 += input_scale3 * input_end[3]; \
} \
\
/* Do middle pixels */ \
for(input_row += components; input_row < input_end; input_row += components) \
{ \
temp_f1 += input_scale2 * input_row[0]; \
temp_f2 += input_scale2 * input_row[1]; \
temp_f3 += input_scale2 * input_row[2]; \
if(components == 4) temp_f4 += input_scale2 * input_row[3]; \
} \
}
Definition at line 911 of file overlayframe.C. |
|
|
Definition at line 2124 of file overlayframe.C. Referenced by ScaleTranslateUnit::process_package(). |
|
|
Definition at line 1840 of file overlayframe.C. Referenced by TranslateUnit::process_package(). |
|
|
Definition at line 37 of file overlayframe.C. |
|
|
Definition at line 32 of file overlayframe.C. |
|
|
Definition at line 27 of file overlayframe.C. |
|
|
Definition at line 22 of file overlayframe.C. |
|
|
Definition at line 17 of file overlayframe.C. |
1.4.4