[fix] fix crash during termination

This commit is contained in:
dijunkun
2024-09-06 13:07:20 +08:00
parent 2f72e3957e
commit 890615e13a
3 changed files with 5 additions and 3 deletions

View File

@@ -171,6 +171,7 @@ class Render {
int video_width_ = 1280; int video_width_ = 1280;
int video_height_ = 720; int video_height_ = 720;
int video_size_ = 1280 * 720 * 3;
SDL_Window *main_window_; SDL_Window *main_window_;
SDL_Renderer *main_renderer_ = nullptr; SDL_Renderer *main_renderer_ = nullptr;

View File

@@ -134,6 +134,7 @@ void Render::OnReceiveVideoBufferCb(const XVideoFrame *video_frame,
memcpy(render->dst_buffer_, video_frame->data, video_frame->size); memcpy(render->dst_buffer_, video_frame->data, video_frame->size);
render->video_width_ = video_frame->width; render->video_width_ = video_frame->width;
render->video_height_ = video_frame->height; render->video_height_ = video_frame->height;
render->video_size_ = video_frame->size;
SDL_Event event; SDL_Event event;
event.type = REFRESH_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_)); memset(render->remote_password_, 0, sizeof(render->remote_password_));
} }
if (render->dst_buffer_) { 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_, SDL_UpdateTexture(render->stream_texture_, NULL, render->dst_buffer_,
1280); render->texture_width_);
} }
} else if (ConnectionStatus::IncorrectPassword == status) { } else if (ConnectionStatus::IncorrectPassword == status) {
render->connection_status_str_ = "Incorrect password"; render->connection_status_str_ = "Incorrect password";