core: Properly std::move things around

This commit is contained in:
zhupengfei 2020-01-28 22:19:36 +08:00
parent 06a0d86e9c
commit 3c6765e87c
No known key found for this signature in database
GPG Key ID: DD129E108BD09378
8 changed files with 16 additions and 15 deletions

View File

@ -38,14 +38,14 @@ void DspInterface::EnableStretching(bool enable) {
perform_time_stretching = enable;
}
void DspInterface::OutputFrame(StereoFrame16& frame) {
void DspInterface::OutputFrame(StereoFrame16 frame) {
if (!sink)
return;
fifo.Push(frame.data(), frame.size());
if (Core::System::GetInstance().VideoDumper().IsDumping()) {
Core::System::GetInstance().VideoDumper().AddAudioFrame(frame);
Core::System::GetInstance().VideoDumper().AddAudioFrame(std::move(frame));
}
}
@ -56,7 +56,7 @@ void DspInterface::OutputSample(std::array<s16, 2> sample) {
fifo.Push(&sample, 1);
if (Core::System::GetInstance().VideoDumper().IsDumping()) {
Core::System::GetInstance().VideoDumper().AddAudioSample(sample);
Core::System::GetInstance().VideoDumper().AddAudioSample(std::move(sample));
}
}

View File

@ -100,7 +100,7 @@ public:
void EnableStretching(bool enable);
protected:
void OutputFrame(StereoFrame16& frame);
void OutputFrame(StereoFrame16 frame);
void OutputSample(std::array<s16, 2> sample);
private:

View File

@ -400,7 +400,7 @@ bool DspHle::Impl::Tick() {
// shared memory region)
current_frame = GenerateCurrentFrame();
parent.OutputFrame(current_frame);
parent.OutputFrame(std::move(current_frame));
return true;
}

View File

@ -483,7 +483,8 @@ DspLle::DspLle(Memory::MemorySystem& memory, bool multithread)
*memory.GetFCRAMPointer(address - Memory::FCRAM_PADDR) = value;
};
impl->teakra.SetAHBMCallback(ahbm);
impl->teakra.SetAudioCallback([this](std::array<s16, 2> sample) { OutputSample(sample); });
impl->teakra.SetAudioCallback(
[this](std::array<s16, 2> sample) { OutputSample(std::move(sample)); });
}
DspLle::~DspLle() = default;

View File

@ -30,8 +30,8 @@ public:
virtual ~Backend();
virtual bool StartDumping(const std::string& path, const std::string& format,
const Layout::FramebufferLayout& layout) = 0;
virtual void AddVideoFrame(const VideoFrame& frame) = 0;
virtual void AddAudioFrame(const AudioCore::StereoFrame16& frame) = 0;
virtual void AddVideoFrame(VideoFrame frame) = 0;
virtual void AddAudioFrame(AudioCore::StereoFrame16 frame) = 0;
virtual void AddAudioSample(const std::array<s16, 2>& sample) = 0;
virtual void StopDumping() = 0;
virtual bool IsDumping() const = 0;
@ -45,8 +45,8 @@ public:
const Layout::FramebufferLayout& /*layout*/) override {
return false;
}
void AddVideoFrame(const VideoFrame& /*frame*/) override {}
void AddAudioFrame(const AudioCore::StereoFrame16& /*frame*/) override {}
void AddVideoFrame(VideoFrame /*frame*/) override {}
void AddAudioFrame(AudioCore::StereoFrame16 /*frame*/) override {}
void AddAudioSample(const std::array<s16, 2>& /*sample*/) override {}
void StopDumping() override {}
bool IsDumping() const override {

View File

@ -450,13 +450,13 @@ bool FFmpegBackend::StartDumping(const std::string& path, const std::string& for
return true;
}
void FFmpegBackend::AddVideoFrame(const VideoFrame& frame) {
void FFmpegBackend::AddVideoFrame(VideoFrame frame) {
event1.Wait();
video_frame_buffers[next_buffer] = std::move(frame);
event2.Set();
}
void FFmpegBackend::AddAudioFrame(const AudioCore::StereoFrame16& frame) {
void FFmpegBackend::AddAudioFrame(AudioCore::StereoFrame16 frame) {
std::array<std::array<s16, 160>, 2> refactored_frame;
for (std::size_t i = 0; i < frame.size(); i++) {
refactored_frame[0][i] = frame[i][0];

View File

@ -163,8 +163,8 @@ public:
~FFmpegBackend() override;
bool StartDumping(const std::string& path, const std::string& format,
const Layout::FramebufferLayout& layout) override;
void AddVideoFrame(const VideoFrame& frame) override;
void AddAudioFrame(const AudioCore::StereoFrame16& frame) override;
void AddVideoFrame(VideoFrame frame) override;
void AddAudioFrame(AudioCore::StereoFrame16 frame) override;
void AddAudioSample(const std::array<s16, 2>& sample) override;
void StopDumping() override;
bool IsDumping() const override;

View File

@ -67,7 +67,7 @@ void FrameDumperOpenGL::PresentLoop() {
glBindBuffer(GL_PIXEL_PACK_BUFFER, pbos[next_pbo].handle);
GLubyte* pixels = static_cast<GLubyte*>(glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_ONLY));
VideoDumper::VideoFrame frame_data{layout.width, layout.height, pixels};
video_dumper.AddVideoFrame(frame_data);
video_dumper.AddVideoFrame(std::move(frame_data));
glUnmapBuffer(GL_PIXEL_PACK_BUFFER);
glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);