correctly move buffer

other fixes
This commit is contained in:
Green Sky
2025-12-19 16:06:50 +01:00
parent aef9593095
commit 811a673b0d
4 changed files with 23 additions and 3 deletions

View File

@@ -24,6 +24,24 @@ struct AudioFrame2 {
Span<int16_t> // non owning variant, for direct consumption
> buffer;
AudioFrame2(void) = default;
AudioFrame2(const AudioFrame2&) = default;
AudioFrame2(AudioFrame2&& other) :
sample_rate(other.sample_rate),
channels(other.channels),
buffer(std::move(other.buffer))
{}
AudioFrame2(uint32_t sample_rate_, size_t channels_, const std::variant<std::vector<int16_t>, Span<int16_t>>& buffer_) :
sample_rate(sample_rate_),
channels(channels_),
buffer(buffer_)
{}
AudioFrame2(uint32_t sample_rate_, size_t channels_, std::variant<std::vector<int16_t>, Span<int16_t>>&& buffer_) :
sample_rate(sample_rate_),
channels(channels_),
buffer(std::move(buffer_))
{}
// helpers
Span<int16_t> getSpan(void) const {
if (std::holds_alternative<std::vector<int16_t>>(buffer)) {

View File

@@ -28,7 +28,7 @@ struct LockedFrameStream2 : public FrameStream2I<FrameType> {
FrameType new_frame = std::move(_frames.front());
_frames.pop_front();
return std::move(new_frame);
return new_frame;
}
bool push(const FrameType& value) {

View File

@@ -7,7 +7,7 @@
#include "../audio_stream_pop_reframer.hpp"
// "thin" wrapper around sdl audio streams
// we dont needs to get fance, as they already provide everything we need
// we dont needs to get fancy, as they already provide everything we need
struct SDLAudio2StreamReader : public AudioFrame2Stream2I {
std::unique_ptr<SDL_AudioStream, decltype(&SDL_DestroyAudioStream)> _stream;

View File

@@ -15,11 +15,13 @@
#include "./start_screen.hpp"
#ifdef __ANDROID__
#include <filesystem>
#endif
#include <memory>
#include <iostream>
#include <string_view>
#include <thread>
#include <chrono>
#ifdef TOMATO_BREAKPAD