diff --git a/main/audio/audio_service.cc b/main/audio/audio_service.cc index e4e5522f..bd45c7d5 100644 --- a/main/audio/audio_service.cc +++ b/main/audio/audio_service.cc @@ -39,15 +39,6 @@ AudioService::AudioService() { event_group_ = xEventGroupCreate(); - - demuxer_.OnDemuxerFinished([this](const uint8_t* data, int sample_rate, size_t size){ - auto packet = std::make_unique(); - packet->sample_rate = sample_rate; - packet->frame_duration = 60; - packet->payload.resize(size); - std::memcpy(packet->payload.data(), data, size); - PushPacketToDecodeQueue(std::move(packet), true); - }); } AudioService::~AudioService() { @@ -648,8 +639,18 @@ void AudioService::PlaySound(const std::string_view& ogg) { const auto* buf = reinterpret_cast(ogg.data()); size_t size = ogg.size(); - demuxer_.Reset(); - demuxer_.Process(buf, size); + + auto demuxer = std::make_unique(); + demuxer->OnDemuxerFinished([this](const uint8_t* data, int sample_rate, size_t size){ + auto packet = std::make_unique(); + packet->sample_rate = sample_rate; + packet->frame_duration = 60; + packet->payload.resize(size); + std::memcpy(packet->payload.data(), data, size); + PushPacketToDecodeQueue(std::move(packet), true); + }); + demuxer->Reset(); + demuxer->Process(buf, size); } bool AudioService::IsIdle() { diff --git a/main/audio/audio_service.h b/main/audio/audio_service.h index 20b2d513..99db5461 100644 --- a/main/audio/audio_service.h +++ b/main/audio/audio_service.h @@ -146,8 +146,6 @@ private: std::mutex input_resampler_mutex_; esp_ae_rate_cvt_handle_t input_resampler_ = nullptr; esp_ae_rate_cvt_handle_t output_resampler_ = nullptr; - - OggDemuxer demuxer_; // Encoder/Decoder state int encoder_sample_rate_ = 16000; diff --git a/main/boards/lichuang-dev/lichuang_dev_board.cc b/main/boards/lichuang-dev/lichuang_dev_board.cc index 42b287e4..8b136f4b 100644 --- a/main/boards/lichuang-dev/lichuang_dev_board.cc +++ b/main/boards/lichuang-dev/lichuang_dev_board.cc @@ -230,7 +230,7 @@ private: config.pin_reset = CAMERA_PIN_RESET; config.xclk_freq_hz = XCLK_FREQ_HZ; config.pixel_format = PIXFORMAT_RGB565; - config.frame_size = FRAMESIZE_VGA; + config.frame_size = FRAMESIZE_QVGA; config.jpeg_quality = 12; config.fb_count = 1; config.fb_location = CAMERA_FB_IN_PSRAM;