diff --git a/src/single_window/render.h b/src/single_window/render.h index 48639a5..085fb39 100644 --- a/src/single_window/render.h +++ b/src/single_window/render.h @@ -171,6 +171,7 @@ class Render { int video_width_ = 1280; int video_height_ = 720; + int video_size_ = 1280 * 720 * 3; SDL_Window *main_window_; SDL_Renderer *main_renderer_ = nullptr; diff --git a/src/single_window/render_callback_func.cpp b/src/single_window/render_callback_func.cpp index 25f3a53..e667c65 100644 --- a/src/single_window/render_callback_func.cpp +++ b/src/single_window/render_callback_func.cpp @@ -134,6 +134,7 @@ void Render::OnReceiveVideoBufferCb(const XVideoFrame *video_frame, memcpy(render->dst_buffer_, video_frame->data, video_frame->size); render->video_width_ = video_frame->width; render->video_height_ = video_frame->height; + render->video_size_ = video_frame->size; SDL_Event event; event.type = REFRESH_EVENT; @@ -233,9 +234,9 @@ void Render::OnConnectionStatusCb(ConnectionStatus status, void *user_data) { memset(render->remote_password_, 0, sizeof(render->remote_password_)); } if (render->dst_buffer_) { - memset(render->dst_buffer_, 0, 1280 * 720 * 3); + memset(render->dst_buffer_, 0, render->dst_buffer_capacity_); SDL_UpdateTexture(render->stream_texture_, NULL, render->dst_buffer_, - 1280); + render->texture_width_); } } else if (ConnectionStatus::IncorrectPassword == status) { render->connection_status_str_ = "Incorrect password"; diff --git a/thirdparty/projectx b/thirdparty/projectx index c477643..255ef0e 160000 --- a/thirdparty/projectx +++ b/thirdparty/projectx @@ -1 +1 @@ -Subproject commit c477643aed9535274371b9e1d53c514f326456c3 +Subproject commit 255ef0edec8058f856b7b9c36f7fcf1f548b384e