diff --git a/app/src/main/rs/decoder.rs b/app/src/main/rs/decoder.rs index a2feb69..f60177f 100644 --- a/app/src/main/rs/decoder.rs +++ b/app/src/main/rs/decoder.rs @@ -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); } diff --git a/app/src/main/rs/modes.rsh b/app/src/main/rs/modes.rsh index cc81b35..cb22c5a 100644 --- a/app/src/main/rs/modes.rsh +++ b/app/src/main/rs/modes.rsh @@ -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;