diff --git a/av_transport/av_trans_engine/filters/av_trans_coder/av_trans_audio_decoder_filter.h b/av_transport/av_trans_engine/filters/av_trans_coder/av_trans_audio_decoder_filter.h index fda8afec18700013449dc781742047db437dc55b..07c70e912dba8be99da5f22e01278d93d354550e 100644 --- a/av_transport/av_trans_engine/filters/av_trans_coder/av_trans_audio_decoder_filter.h +++ b/av_transport/av_trans_engine/filters/av_trans_coder/av_trans_audio_decoder_filter.h @@ -135,7 +135,13 @@ private: std::atomic isStoped_ = false; OH_AVFormat outputFormat_ = {}; - ADecInitParams initDecParams_ = {}; + ADecInitParams initDecParams_ = { + initDecParams_.codecType = AudioCodecType::AUDIO_CODEC_AAC, + initDecParams_.channel = 2, + initDecParams_.sampleRate = 44100, + initDecParams_.bitRate = 12800, + initDecParams_.sampleDepth = MediaAVCodec::SAMPLE_S16LE + }; OH_AVCodec *audioDecoder_ = nullptr; std::queue codecBufQueue_; std::queue codecIndexQueue_; diff --git a/av_transport/av_trans_engine/filters/av_trans_coder/av_trans_audio_encoder_filter.h b/av_transport/av_trans_engine/filters/av_trans_coder/av_trans_audio_encoder_filter.h index 8a3586da74a951e6f7ed908f12a65fc2a5241eb4..aff40982659134d5d93e5700d4172d498e9a89f8 100644 --- a/av_transport/av_trans_engine/filters/av_trans_coder/av_trans_audio_encoder_filter.h +++ b/av_transport/av_trans_engine/filters/av_trans_coder/av_trans_audio_encoder_filter.h @@ -133,7 +133,13 @@ private: std::atomic isStoped_ = false; OH_AVFormat outputFormat_ = {}; - AEncInitParams initEncParams_ = {}; + AEncInitParams initEncParams_ = { + initEncParams_.codecType = AudioCodecType::AUDIO_CODEC_AAC, + initEncParams_.channel = 2, + initEncParams_.sampleRate = 44100, + initEncParams_.bitRate = 128000, + initEncParams_.sampleDepth = MediaAVCodec::AudioSampleFormat::SAMPLE_S16LE + }; OH_AVCodec *audioEncoder_ = nullptr; std::queue codecBufQueue_; std::queue codecIndexQueue_; diff --git a/av_transport/av_trans_engine/plugin/plugins/av_trans_output/output_control/src/time_statistician.cpp b/av_transport/av_trans_engine/plugin/plugins/av_trans_output/output_control/src/time_statistician.cpp index ff17e0821df0670ab3862594ff0c417fa9e65bf1..151ca46f29707c5d5313dd0a19f77612a3954e8c 100644 --- a/av_transport/av_trans_engine/plugin/plugins/av_trans_output/output_control/src/time_statistician.cpp +++ b/av_transport/av_trans_engine/plugin/plugins/av_trans_output/output_control/src/time_statistician.cpp @@ -59,7 +59,12 @@ void TimeStatistician::CalAverPushInterval(const int64_t pushTime) } pushIndex_++; pushIntervalSum_ += pushInterval_; + if (pushIndex_ == 0) { + AVTRANS_LOGE("pushIndex_ is zero"); + return; + } averPushInterval_ = pushIntervalSum_ / pushIndex_; + lastPushTime_ = pushTime_; AVTRANS_LOGD("Statistic pushInterval: %{public}lld, pushIndex: %{public}" PRIu32 ", averPushInterval: %{public}lld", pushInterval_, pushIndex_, averPushInterval_); diff --git a/av_transport/common/src/av_sync_utils.cpp b/av_transport/common/src/av_sync_utils.cpp index 616871ce82350ea687a48b1858dc9a661ec17e33..aa6579324c385a607166e74a1a8bab60f12b9d5c 100644 --- a/av_transport/common/src/av_sync_utils.cpp +++ b/av_transport/common/src/av_sync_utils.cpp @@ -57,9 +57,8 @@ AVTransSharedMemory CreateAVTransSharedMemory(const std::string &name, size_t si (void)::munmap(addr, size); return AVTransSharedMemory{0, 0, name, nullptr}; } - uint64_t tmpsize = static_cast(size); - AVTRANS_LOGI("create av trans shared memory success, name=%{public}s, size=%{public}" PRIu64 ", fd=%{public}" - PRId32, name.c_str(), tmpsize, fd); + AVTRANS_LOGI("create av trans shared memory success, name=%{public}s, size=%{public}zu, fd=%{public}d" + PRId32, name.c_str(), size, fd); return AVTransSharedMemory{fd, size, name, addr}; } @@ -73,7 +72,7 @@ void CloseAVTransSharedMemory(AVTransSharedMemory &memory) noexcept } if (memory.fd > 0) { (void)::close(memory.fd); - memory.fd = 0; + memory.fd = -1; } if (memory.addr != nullptr) { (void)::munmap(memory.addr, memory.size); diff --git a/av_transport/common/src/softbus_channel_adapter.cpp b/av_transport/common/src/softbus_channel_adapter.cpp index 1a333b82054c18487e79f1b39a210256de5dbae2..853bcd49cea11e51ef0ff34ddb7911ce2b3240b9 100644 --- a/av_transport/common/src/softbus_channel_adapter.cpp +++ b/av_transport/common/src/softbus_channel_adapter.cpp @@ -196,7 +196,10 @@ int32_t SoftbusChannelAdapter::CreateChannelServer(const std::string& pkgName, c {.qos = QOS_TYPE_MAX_LATENCY, .value = 4000}, {.qos = QOS_TYPE_MIN_LATENCY, .value = 2000}, }; - + if (sizeof(qos[0]) == 0) { + AVTRANS_LOGE("qos[0] siez of zero"); + return ERR_DH_AVT_SESSION_ERROR; + } int32_t ret = Listen(socketId, qos, sizeof(qos) / sizeof(qos[0]), &sessListener_); if (ret != 0) { AVTRANS_LOGE("Listen socket error for sessionName:%{public}s", sessName.c_str()); @@ -276,18 +279,15 @@ int32_t SoftbusChannelAdapter::OpenSoftbusChannel(const std::string &mySessName, AVTRANS_LOGI("Softbus channel already opened, sessionId:%{public}" PRId32, existSessId); return ERR_DH_AVT_SESSION_HAS_OPENED; } - QosTV qos[] = { {.qos = QOS_TYPE_MIN_BW, .value = 40 * 1024 * 1024}, {.qos = QOS_TYPE_MAX_LATENCY, .value = 4000}, {.qos = QOS_TYPE_MIN_LATENCY, .value = 2000}, }; - TransDataType dataType = TransDataType::DATA_TYPE_BYTES; if (mySessName.find("avtrans.data") != std::string::npos) { dataType = TransDataType::DATA_TYPE_VIDEO_STREAM; } - SocketInfo clientInfo = { .name = const_cast((mySessName.c_str())), .peerName = const_cast(peerSessName.c_str()), @@ -295,10 +295,11 @@ int32_t SoftbusChannelAdapter::OpenSoftbusChannel(const std::string &mySessName, .pkgName = const_cast(PkgName.c_str()), .dataType = dataType, }; - int32_t socketId = Socket(clientInfo); if (socketId <0) { - AVTRANS_LOGE("Create OpenSoftbusChannel Socket error"); + return ERR_DH_AVT_SESSION_ERROR; + } + if (sizeof(qos[0]) == 0) { return ERR_DH_AVT_SESSION_ERROR; } int32_t ret = Bind(socketId, qos, sizeof(qos) / sizeof(qos[0]), &sessListener_);