mirror of
https://github.com/xdsopl/robot36.git
synced 2025-12-06 07:12:07 +01:00
fixed PD180 odd/even swap
Everyone seems to have their own interpretation of odd and even.
This commit is contained in:
parent
df64602ed3
commit
f3cd104895
|
|
@ -165,10 +165,10 @@ static void pd_decoder()
|
|||
int even_vpos = vpos;
|
||||
int odd_vpos = (vpos + 1) % freerun_height;
|
||||
for (int i = 0; i < bitmap_width; ++i) {
|
||||
uchar odd_y = value_blur(i, y_odd_begin + prev_sync_pos, y_odd_end + prev_sync_pos);
|
||||
uchar even_y = value_blur(i, y_even_begin + prev_sync_pos, y_even_end + prev_sync_pos);
|
||||
uchar u = value_blur(i, u_begin + prev_sync_pos, u_end + prev_sync_pos);
|
||||
uchar v = value_blur(i, v_begin + prev_sync_pos, v_end + prev_sync_pos);
|
||||
uchar even_y = value_blur(i, y_even_begin + prev_sync_pos, y_even_end + prev_sync_pos);
|
||||
uchar odd_y = value_blur(i, y_odd_begin + prev_sync_pos, y_odd_end + prev_sync_pos);
|
||||
pixel_buffer[bitmap_width * even_vpos + i] = yuv(even_y, u, v);
|
||||
pixel_buffer[bitmap_width * odd_vpos + i] = yuv(odd_y, u, v);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -140,23 +140,23 @@ void pd180_mode()
|
|||
const float yuv_scan_ms = 183.04f;
|
||||
sync_length = tolerance * (sync_ms * sample_rate) / 1000.0f;
|
||||
|
||||
float y_odd_begin_ms = porch_ms;
|
||||
float y_odd_end_ms = y_odd_begin_ms + yuv_scan_ms;
|
||||
float v_begin_ms = y_odd_end_ms;
|
||||
float y_even_begin_ms = porch_ms;
|
||||
float y_even_end_ms = y_even_begin_ms + yuv_scan_ms;
|
||||
float v_begin_ms = y_even_end_ms;
|
||||
float v_end_ms = v_begin_ms + yuv_scan_ms;
|
||||
float u_begin_ms = v_end_ms;
|
||||
float u_end_ms = u_begin_ms + yuv_scan_ms;
|
||||
float y_even_begin_ms = u_end_ms;
|
||||
float y_even_end_ms = y_even_begin_ms + yuv_scan_ms;
|
||||
float y_odd_begin_ms = u_end_ms;
|
||||
float y_odd_end_ms = y_odd_begin_ms + yuv_scan_ms;
|
||||
|
||||
y_odd_begin = round((y_odd_begin_ms * sample_rate) / 1000.0f);
|
||||
y_odd_end = round((y_odd_end_ms * sample_rate) / 1000.0f);
|
||||
y_even_begin = round((y_even_begin_ms * sample_rate) / 1000.0f);
|
||||
y_even_end = round((y_even_end_ms * sample_rate) / 1000.0f);
|
||||
v_begin = round((v_begin_ms * sample_rate) / 1000.0f);
|
||||
v_end = round((v_end_ms * sample_rate) / 1000.0f);
|
||||
u_begin = round((u_begin_ms * sample_rate) / 1000.0f);
|
||||
u_end = round((u_end_ms * sample_rate) / 1000.0f);
|
||||
y_even_begin = round((y_even_begin_ms * sample_rate) / 1000.0f);
|
||||
y_even_end = round((y_even_end_ms * sample_rate) / 1000.0f);
|
||||
y_odd_begin = round((y_odd_begin_ms * sample_rate) / 1000.0f);
|
||||
y_odd_end = round((y_odd_end_ms * sample_rate) / 1000.0f);
|
||||
|
||||
scanline_length = pd180_scanline_length;
|
||||
minimum_length = ((1.0f - scanline_tolerance) * pd180_scanline_ms * sample_rate) / 1000.0f;
|
||||
|
|
|
|||
Loading…
Reference in a new issue