From 4fa2c858a71fe5a1324ead338d072c694ad4415b Mon Sep 17 00:00:00 2001 From: lizzie Date: Sun, 6 Sep 2026 22:55:40 +0000 Subject: [PATCH] 2026-09-06 22:55:40 Signed-off-by: lizzie --- .../adsp/apps/opus/opus_decode_object.cpp | 26 +++++++++---------- .../opus/opus_multistream_decode_object.cpp | 26 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/audio_core/adsp/apps/opus/opus_decode_object.cpp b/src/audio_core/adsp/apps/opus/opus_decode_object.cpp index 9e78b4cb96..cec78fb976 100644 --- a/src/audio_core/adsp/apps/opus/opus_decode_object.cpp +++ b/src/audio_core/adsp/apps/opus/opus_decode_object.cpp @@ -53,19 +53,19 @@ Result OpusDecodeObject::ResetDecoder() { Result OpusDecodeObject::Decode(u32& out_sample_count, u64 output_data, u64 output_data_size, u64 input_data, u64 input_data_size) { out_sample_count = 0; if (avctx) { - AVPacket* avpkt = av_packet_alloc(); - av_new_packet(avpkt, int(input_data_size)); - std::memcpy(avpkt->data, reinterpret_cast(input_data), input_data_size); - avcodec_send_packet(avctx, avpkt); - - AVFrame* frame = av_frame_alloc(); - avcodec_receive_frame(avctx, frame); - std::memcpy(reinterpret_cast(output_data), frame->data, output_data_size); - av_frame_free(&frame); - av_packet_free(&avpkt); - - out_sample_count = frame->nb_samples; - return ResultSuccess; + if (AVPacket* avpkt = av_packet_alloc(); avpkt) { + av_new_packet(avpkt, int(input_data_size)); + std::memcpy(avpkt->data, reinterpret_cast(input_data), input_data_size); + avcodec_send_packet(avctx, avpkt); + if (AVFrame* frame = av_frame_alloc(); frame) { + avcodec_receive_frame(avctx, frame); + std::memcpy(reinterpret_cast(output_data), frame->data, output_data_size); + out_sample_count = frame->nb_samples; + av_frame_free(&frame); + av_packet_free(&avpkt); + return ResultSuccess; + } + } } return Service::Audio::ResultLibOpusInvalidState; } diff --git a/src/audio_core/adsp/apps/opus/opus_multistream_decode_object.cpp b/src/audio_core/adsp/apps/opus/opus_multistream_decode_object.cpp index adacabac44..9541d870e7 100644 --- a/src/audio_core/adsp/apps/opus/opus_multistream_decode_object.cpp +++ b/src/audio_core/adsp/apps/opus/opus_multistream_decode_object.cpp @@ -63,19 +63,19 @@ Result OpusMultiStreamDecodeObject::ResetDecoder() { Result OpusMultiStreamDecodeObject::Decode(u32& out_sample_count, u64 output_data, u64 output_data_size, u64 input_data, u64 input_data_size) { out_sample_count = 0; if (avctx) { - AVPacket* avpkt = av_packet_alloc(); - av_new_packet(avpkt, int(input_data_size)); - std::memcpy(avpkt->data, reinterpret_cast(input_data), input_data_size); - avcodec_send_packet(avctx, avpkt); - - AVFrame* frame = av_frame_alloc(); - avcodec_receive_frame(avctx, frame); - std::memcpy(reinterpret_cast(output_data), frame->data, output_data_size); - av_frame_free(&frame); - av_packet_free(&avpkt); - - out_sample_count = frame->nb_samples; - return ResultSuccess; + if (AVPacket* avpkt = av_packet_alloc(); avpkt) { + av_new_packet(avpkt, int(input_data_size)); + std::memcpy(avpkt->data, reinterpret_cast(input_data), input_data_size); + avcodec_send_packet(avctx, avpkt); + if (AVFrame* frame = av_frame_alloc(); frame) { + avcodec_receive_frame(avctx, frame); + std::memcpy(reinterpret_cast(output_data), frame->data, output_data_size); + out_sample_count = frame->nb_samples; + av_frame_free(&frame); + av_packet_free(&avpkt); + return ResultSuccess; + } + } } return Service::Audio::ResultLibOpusInvalidState; }