diff --git a/rpcs3/Emu/Cell/Modules/cellCamera.cpp b/rpcs3/Emu/Cell/Modules/cellCamera.cpp index a9be5d36b0..fe4fb6c665 100644 --- a/rpcs3/Emu/Cell/Modules/cellCamera.cpp +++ b/rpcs3/Emu/Cell/Modules/cellCamera.cpp @@ -1692,6 +1692,7 @@ error_code camera_context::start_camera() handler->set_mirrored(!!attr[CELL_CAMERA_MIRRORFLAG].v1); handler->set_frame_rate(info.framerate); handler->set_resolution(info.width, info.height); + handler->set_format(info.format, info.bytesize); atomic_t wake_up = false; diff --git a/rpcs3/Emu/Io/Null/null_camera_handler.h b/rpcs3/Emu/Io/Null/null_camera_handler.h index 84bf45a131..6f00301c8b 100644 --- a/rpcs3/Emu/Io/Null/null_camera_handler.h +++ b/rpcs3/Emu/Io/Null/null_camera_handler.h @@ -12,10 +12,10 @@ public: void start_camera() override { m_state = camera_handler_state::running; }; void stop_camera() override { m_state = camera_handler_state::open; }; - void set_format(s32 format, u32 bytes_per_pixel) override + void set_format(s32 format, u32 bytesize) override { m_format = format; - m_bytes_per_pixel = bytes_per_pixel; + m_bytesize = bytesize; } void set_frame_rate(u32 frame_rate) override diff --git a/rpcs3/Emu/Io/camera_handler_base.h b/rpcs3/Emu/Io/camera_handler_base.h index 5329e77398..adcd2653f1 100644 --- a/rpcs3/Emu/Io/camera_handler_base.h +++ b/rpcs3/Emu/Io/camera_handler_base.h @@ -36,7 +36,7 @@ protected: atomic_t m_state = camera_handler_state::not_available; bool m_mirrored = false; s32 m_format = 2; // CELL_CAMERA_RAW8 - u32 m_bytes_per_pixel = 1; + u32 m_bytesize = 0; u32 m_width = 640; u32 m_height = 480; u32 m_frame_rate = 30; diff --git a/rpcs3/rpcs3qt/qt_camera_handler.cpp b/rpcs3/rpcs3qt/qt_camera_handler.cpp index 582ccbd6bb..71969abbf0 100644 --- a/rpcs3/rpcs3qt/qt_camera_handler.cpp +++ b/rpcs3/rpcs3qt/qt_camera_handler.cpp @@ -181,10 +181,10 @@ void qt_camera_handler::stop_camera() m_camera->stop(); } -void qt_camera_handler::set_format(s32 format, u32 bytes_per_pixel) +void qt_camera_handler::set_format(s32 format, u32 bytesize) { m_format = format; - m_bytes_per_pixel = bytes_per_pixel; + m_bytesize = bytesize; update_camera_settings(); } @@ -299,7 +299,7 @@ void qt_camera_handler::update_camera_settings() if (m_surface) { m_surface->set_resolution(m_width, m_height); - m_surface->set_format(m_format, m_bytes_per_pixel); + m_surface->set_format(m_format, m_bytesize); m_surface->set_mirrored(m_mirrored); } } diff --git a/rpcs3/rpcs3qt/qt_camera_handler.h b/rpcs3/rpcs3qt/qt_camera_handler.h index 523a53643c..edbd2aff9f 100644 --- a/rpcs3/rpcs3qt/qt_camera_handler.h +++ b/rpcs3/rpcs3qt/qt_camera_handler.h @@ -20,7 +20,7 @@ public: void close_camera() override; void start_camera() override; void stop_camera() override; - void set_format(s32 format, u32 bytes_per_pixel) override; + void set_format(s32 format, u32 bytesize) override; void set_frame_rate(u32 frame_rate) override; void set_resolution(u32 width, u32 height) override; void set_mirrored(bool mirrored) override; diff --git a/rpcs3/rpcs3qt/qt_camera_video_surface.cpp b/rpcs3/rpcs3qt/qt_camera_video_surface.cpp index 8d5ac101ac..a23ce5c022 100644 --- a/rpcs3/rpcs3qt/qt_camera_video_surface.cpp +++ b/rpcs3/rpcs3qt/qt_camera_video_surface.cpp @@ -93,7 +93,7 @@ bool qt_camera_video_surface::present(const QVideoFrame& frame) } } - const u64 new_size = m_width * m_height * m_bytes_per_pixel; + const u64 new_size = m_bytesize; image_buffer& image_buffer = m_image_buffer[m_write_index]; // Reset buffer if necessary @@ -226,8 +226,8 @@ bool qt_camera_video_surface::present(const QVideoFrame& frame) // Unmap frame memory tmp.unmap(); - camera_log.trace("Wrote image to video surface. index=%d, m_frame_number=%d, width=%d, height=%d, bytes_per_pixel=%d", - m_write_index, m_frame_number.load(), m_width, m_height, m_bytes_per_pixel); + camera_log.trace("Wrote image to video surface. index=%d, m_frame_number=%d, width=%d, height=%d, bytesize=%d", + m_write_index, m_frame_number.load(), m_width, m_height, m_bytesize); // Toggle write/read index std::lock_guard lock(m_mutex); @@ -237,12 +237,12 @@ bool qt_camera_video_surface::present(const QVideoFrame& frame) return true; } -void qt_camera_video_surface::set_format(s32 format, u32 bytes_per_pixel) +void qt_camera_video_surface::set_format(s32 format, u32 bytesize) { - camera_log.notice("Setting format: format=%d, bytes_per_pixel=%d", format, bytes_per_pixel); + camera_log.notice("Setting format: format=%d, bytesize=%d", format, bytesize); m_format = format; - m_bytes_per_pixel = bytes_per_pixel; + m_bytesize = bytesize; } void qt_camera_video_surface::set_resolution(u32 width, u32 height) diff --git a/rpcs3/rpcs3qt/qt_camera_video_surface.h b/rpcs3/rpcs3qt/qt_camera_video_surface.h index 070323e881..4cd42a4cd5 100644 --- a/rpcs3/rpcs3qt/qt_camera_video_surface.h +++ b/rpcs3/rpcs3qt/qt_camera_video_surface.h @@ -14,7 +14,7 @@ public: QList supportedPixelFormats(QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle) const override; bool present(const QVideoFrame& frame) override; - void set_format(s32 format, u32 bytes_per_pixel); + void set_format(s32 format, u32 bytesize); void set_resolution(u32 width, u32 height); void set_mirrored(bool mirrored); @@ -28,7 +28,7 @@ private: bool m_front_facing = false; bool m_mirrored = false; // Set by cellCamera s32 m_format = 2; // CELL_CAMERA_RAW8, set by cellCamera - u32 m_bytes_per_pixel = 1; + u32 m_bytesize = 0; u32 m_width = 640; u32 m_height = 480;