From 0034438c9efdd6f7b6d2f128ad21f6d0b7dd9653 Mon Sep 17 00:00:00 2001 From: loki Date: Sun, 20 Jun 2021 15:58:13 +0200 Subject: [PATCH] fixed incorrect colors when scaling with software --- sunshine/config.cpp | 2 +- sunshine/video.cpp | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/sunshine/config.cpp b/sunshine/config.cpp index 28bdc2fa..ad86ef09 100644 --- a/sunshine/config.cpp +++ b/sunshine/config.cpp @@ -724,7 +724,7 @@ int parse(int argc, char *argv[]) { return -1; } - TUPLE_2D_REF(name, val, *var); + TUPLE_EL_REF(name, 0, *var); auto it = cmd_vars.find(name); if(it != std::end(cmd_vars)) { diff --git a/sunshine/video.cpp b/sunshine/video.cpp index 6fc672cc..0dc06c04 100644 --- a/sunshine/video.cpp +++ b/sunshine/video.cpp @@ -86,12 +86,12 @@ public: data[0] = sw_frame->data[0] + offset; if(sw_frame->format == AV_PIX_FMT_NV12) { - data[1] = sw_frame->data[1] + offset; + data[1] = sw_frame->data[1] + offset / 2; data[2] = nullptr; } else { - data[1] = sw_frame->data[1] + offset / 2; - data[2] = sw_frame->data[2] + offset / 2; + data[1] = sw_frame->data[1] + offset / 4; + data[2] = sw_frame->data[2] + offset / 4; data[3] = nullptr; } @@ -701,7 +701,6 @@ int encode(int64_t frame_nr, session_t &session, frame_t::pointer frame, packet_ auto &sps = session.sps; auto &vps = session.vps; - auto &pps = session.pps; /* send the frame to the encoder */ auto ret = avcodec_send_frame(ctx.get(), frame);