From ef1c97fb0b56da3100a6997c7ab16585a6ea830e Mon Sep 17 00:00:00 2001 From: zzm Date: Thu, 25 Jan 2024 14:14:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=A7=A3=E7=A0=81=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E5=92=8C=E9=87=8A=E6=94=BEavpacket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zzm --- .../codec/audio/encoder/audio_ffmpeg_aac_encoder_plugin.cpp | 2 ++ .../engine/codec/audio/encoder/audio_ffmpeg_encoder_plugin.cpp | 2 ++ .../audio_encoder/aac/ffmpeg_aac_encoder_plugin.cpp | 2 ++ .../ffmpeg_adapter/audio_encoder/ffmpeg_base_encoder.cpp | 2 ++ 4 files changed, 8 insertions(+) diff --git a/services/engine/codec/audio/encoder/audio_ffmpeg_aac_encoder_plugin.cpp b/services/engine/codec/audio/encoder/audio_ffmpeg_aac_encoder_plugin.cpp index 4741411be..f4d89bcd6 100644 --- a/services/engine/codec/audio/encoder/audio_ffmpeg_aac_encoder_plugin.cpp +++ b/services/engine/codec/audio/encoder/audio_ffmpeg_aac_encoder_plugin.cpp @@ -498,6 +498,7 @@ int32_t AudioFFMpegAacEncoderPlugin::PcmFillFrame(const std::shared_ptr &outBuffer) { + (void)memset_s(avPacket_.get(), sizeof(AVPacket), 0, sizeof(AVPacket)); auto ret = avcodec_receive_packet(avCodecContext_.get(), avPacket_.get()); int32_t status; if (ret >= 0) { @@ -513,6 +514,7 @@ int32_t AudioFFMpegAacEncoderPlugin::ReceiveBuffer(std::shared_ptr &outBuffer) { + (void)memset_s(avPacket_.get(), sizeof(AVPacket), 0, sizeof(AVPacket)); auto ret = avcodec_receive_packet(avCodecContext_.get(), avPacket_.get()); int32_t status; AVCodecBufferInfo initAttr = {0}; @@ -160,6 +161,7 @@ int32_t AudioFfmpegEncoderPlugin::ReceiveBuffer(std::shared_ptr AVCODEC_LOGE("audio encoder receive unknow error: %{public}s", FFMpegConverter::AVStrError(ret).c_str()); status = AVCodecServiceErrCode::AVCS_ERR_UNKNOWN; } + av_packet_unref(avPacket_.get()); return status; } diff --git a/services/media_engine/plugins/ffmpeg_adapter/audio_encoder/aac/ffmpeg_aac_encoder_plugin.cpp b/services/media_engine/plugins/ffmpeg_adapter/audio_encoder/aac/ffmpeg_aac_encoder_plugin.cpp index 0d99138f9..03e058946 100644 --- a/services/media_engine/plugins/ffmpeg_adapter/audio_encoder/aac/ffmpeg_aac_encoder_plugin.cpp +++ b/services/media_engine/plugins/ffmpeg_adapter/audio_encoder/aac/ffmpeg_aac_encoder_plugin.cpp @@ -326,6 +326,7 @@ Status FFmpegAACEncoderPlugin::ReceivePacketSucc(std::shared_ptr &outB Status FFmpegAACEncoderPlugin::ReceiveBuffer(std::shared_ptr &outBuffer) { + (void)memset_s(avPacket_.get(), sizeof(AVPacket), 0, sizeof(AVPacket)); auto ret = avcodec_receive_packet(avCodecContext_.get(), avPacket_.get()); Status status; if (ret >= 0) { @@ -343,6 +344,7 @@ Status FFmpegAACEncoderPlugin::ReceiveBuffer(std::shared_ptr &outBuffe MEDIA_LOG_E("audio encoder receive unknow error: %{public}s", OSAL::AVStrError(ret).c_str()); status = Status::ERROR_UNKNOWN; } + av_packet_unref(avPacket_.get()); return status; } diff --git a/services/media_engine/plugins/ffmpeg_adapter/audio_encoder/ffmpeg_base_encoder.cpp b/services/media_engine/plugins/ffmpeg_adapter/audio_encoder/ffmpeg_base_encoder.cpp index 9e7ea30ea..4a0dfad8e 100644 --- a/services/media_engine/plugins/ffmpeg_adapter/audio_encoder/ffmpeg_base_encoder.cpp +++ b/services/media_engine/plugins/ffmpeg_adapter/audio_encoder/ffmpeg_base_encoder.cpp @@ -153,6 +153,7 @@ Status FFmpegBaseEncoder::ProcessReceiveData(std::shared_ptr &outputBu Status FFmpegBaseEncoder::ReceiveBuffer(std::shared_ptr &outputBuffer) { + (void)memset_s(avPacket_.get(), sizeof(AVPacket), 0, sizeof(AVPacket)); auto ret = avcodec_receive_packet(avCodecContext_.get(), avPacket_.get()); Status status; if (ret >= 0) { @@ -168,6 +169,7 @@ Status FFmpegBaseEncoder::ReceiveBuffer(std::shared_ptr &outputBuffer) AVCODEC_LOGE("audio encoder receive unknow error: %{public}s", OSAL::AVStrError(ret).c_str()); status = Status::ERROR_UNKNOWN; } + av_packet_unref(avPacket_.get()); return status; } -- Gitee