From d1d0359895d401f9f2ae54cedff9a07367b011ef Mon Sep 17 00:00:00 2001 From: philipel Date: Fri, 1 Mar 2019 13:53:55 +0100 Subject: [PATCH] Remove memsets of CodecSpecificInfo. CodecSpecificInfo has a default constructor, so initializing by memset is not necessary and is in the way of adding non-trivial members. Related chromium CL: https://chromium-review.googlesource.com/c/chromium/src/+/1495533 Bug: webrtc:10342 Change-Id: I36046f919f5fc34ea51de7288ff5c9cc0f2950b8 Reviewed-on: https://webrtc-review.googlesource.com/c/125093 Commit-Queue: Philip Eliasson Reviewed-by: Stefan Holmer Cr-Commit-Position: refs/heads/master@{#26924} --- call/rtp_payload_params_unittest.cc | 13 +++---------- call/rtp_video_sender_unittest.cc | 2 -- media/engine/simulcast_encoder_adapter_unittest.cc | 1 - modules/video_coding/codecs/vp9/vp9_impl.cc | 4 ++-- .../video_coding/include/video_codec_interface.h | 1 + sdk/android/src/jni/video_encoder_wrapper.cc | 1 - test/fake_encoder.cc | 2 -- 7 files changed, 6 insertions(+), 18 deletions(-) diff --git a/call/rtp_payload_params_unittest.cc b/call/rtp_payload_params_unittest.cc index ff3589effb..149bd729f5 100644 --- a/call/rtp_payload_params_unittest.cc +++ b/call/rtp_payload_params_unittest.cc @@ -52,7 +52,6 @@ TEST(RtpPayloadParamsTest, InfoMappedToRtpVideoHeader_Vp8) { encoded_image.SetSpatialIndex(1); CodecSpecificInfo codec_info; - memset(&codec_info, 0, sizeof(CodecSpecificInfo)); codec_info.codecType = kVideoCodecVP8; codec_info.codecSpecific.VP8.temporalIdx = 0; codec_info.codecSpecific.VP8.keyIdx = kNoKeyIdx; @@ -93,7 +92,6 @@ TEST(RtpPayloadParamsTest, InfoMappedToRtpVideoHeader_Vp9) { encoded_image.content_type_ = VideoContentType::SCREENSHARE; encoded_image.SetSpatialIndex(0); CodecSpecificInfo codec_info; - memset(&codec_info, 0, sizeof(CodecSpecificInfo)); codec_info.codecType = kVideoCodecVP9; codec_info.codecSpecific.VP9.num_spatial_layers = 3; codec_info.codecSpecific.VP9.first_frame_in_picture = true; @@ -152,7 +150,6 @@ TEST(RtpPayloadParamsTest, InfoMappedToRtpVideoHeader_H264) { EncodedImage encoded_image; CodecSpecificInfo codec_info; CodecSpecificInfoH264 *h264info = &codec_info.codecSpecific.H264; - memset(&codec_info, 0, sizeof(CodecSpecificInfo)); codec_info.codecType = kVideoCodecH264; h264info->packetization_mode = H264PacketizationMode::SingleNalUnit; h264info->temporal_idx = kNoTemporalIdx; @@ -199,7 +196,6 @@ TEST(RtpPayloadParamsTest, PictureIdIsSetForVp8) { EncodedImage encoded_image; CodecSpecificInfo codec_info; - memset(&codec_info, 0, sizeof(CodecSpecificInfo)); codec_info.codecType = kVideoCodecVP8; RtpPayloadParams params(kSsrc1, &state); @@ -222,7 +218,6 @@ TEST(RtpPayloadParamsTest, PictureIdWraps) { EncodedImage encoded_image; CodecSpecificInfo codec_info; - memset(&codec_info, 0, sizeof(CodecSpecificInfo)); codec_info.codecType = kVideoCodecVP8; codec_info.codecSpecific.VP8.temporalIdx = kNoTemporalIdx; @@ -247,7 +242,6 @@ TEST(RtpPayloadParamsTest, Tl0PicIdxUpdatedForVp8) { // Modules are sending for this test. // OnEncodedImage, temporalIdx: 1. CodecSpecificInfo codec_info; - memset(&codec_info, 0, sizeof(CodecSpecificInfo)); codec_info.codecType = kVideoCodecVP8; codec_info.codecSpecific.VP8.temporalIdx = 1; @@ -283,7 +277,6 @@ TEST(RtpPayloadParamsTest, Tl0PicIdxUpdatedForVp9) { // Modules are sending for this test. // OnEncodedImage, temporalIdx: 1. CodecSpecificInfo codec_info; - memset(&codec_info, 0, sizeof(CodecSpecificInfo)); codec_info.codecType = kVideoCodecVP9; codec_info.codecSpecific.VP9.temporal_idx = 1; codec_info.codecSpecific.VP9.first_frame_in_picture = true; @@ -327,7 +320,7 @@ TEST(RtpPayloadParamsTest, PictureIdForOldGenericFormat) { RtpPayloadState state{}; EncodedImage encoded_image; - CodecSpecificInfo codec_info{}; + CodecSpecificInfo codec_info; codec_info.codecType = kVideoCodecGeneric; RtpPayloadParams params(kSsrc1, &state); @@ -364,7 +357,7 @@ class RtpPayloadParamsVp8ToGenericTest : public ::testing::Test { encoded_image._encodedWidth = width; encoded_image._encodedHeight = height; - CodecSpecificInfo codec_info{}; + CodecSpecificInfo codec_info; codec_info.codecType = kVideoCodecVP8; codec_info.codecSpecific.VP8.temporalIdx = temporal_index; codec_info.codecSpecific.VP8.layerSync = layer_sync == kSync; @@ -403,7 +396,7 @@ TEST_F(RtpPayloadParamsVp8ToGenericTest, TooHighTemporalIndex) { EncodedImage encoded_image; encoded_image._frameType = kVideoFrameDelta; - CodecSpecificInfo codec_info{}; + CodecSpecificInfo codec_info; codec_info.codecType = kVideoCodecVP8; codec_info.codecSpecific.VP8.temporalIdx = RtpGenericFrameDescriptor::kMaxTemporalLayers; diff --git a/call/rtp_video_sender_unittest.cc b/call/rtp_video_sender_unittest.cc index 4d1964efad..192d185fe5 100644 --- a/call/rtp_video_sender_unittest.cc +++ b/call/rtp_video_sender_unittest.cc @@ -176,7 +176,6 @@ TEST(RtpVideoSenderTest, SendSimulcastSetActive) { RtpVideoSenderTestFixture test({kSsrc1, kSsrc2}, kPayloadType, {}); CodecSpecificInfo codec_info; - memset(&codec_info, 0, sizeof(CodecSpecificInfo)); codec_info.codecType = kVideoCodecVP8; test.router()->SetActive(true); @@ -223,7 +222,6 @@ TEST(RtpVideoSenderTest, SendSimulcastSetActiveModules) { RtpVideoSenderTestFixture test({kSsrc1, kSsrc2}, kPayloadType, {}); CodecSpecificInfo codec_info; - memset(&codec_info, 0, sizeof(CodecSpecificInfo)); codec_info.codecType = kVideoCodecVP8; // Only setting one stream to active will still set the payload router to diff --git a/media/engine/simulcast_encoder_adapter_unittest.cc b/media/engine/simulcast_encoder_adapter_unittest.cc index c02a585a28..78cdceda8e 100644 --- a/media/engine/simulcast_encoder_adapter_unittest.cc +++ b/media/engine/simulcast_encoder_adapter_unittest.cc @@ -236,7 +236,6 @@ class MockVideoEncoder : public VideoEncoder { image._encodedWidth = width; image._encodedHeight = height; CodecSpecificInfo codec_specific_info; - memset(&codec_specific_info, 0, sizeof(codec_specific_info)); codec_specific_info.codecType = webrtc::kVideoCodecVP8; callback_->OnEncodedImage(image, &codec_specific_info, nullptr); } diff --git a/modules/video_coding/codecs/vp9/vp9_impl.cc b/modules/video_coding/codecs/vp9/vp9_impl.cc index 50aea4831a..09b17db88f 100644 --- a/modules/video_coding/codecs/vp9/vp9_impl.cc +++ b/modules/video_coding/codecs/vp9/vp9_impl.cc @@ -174,7 +174,7 @@ VP9EncoderImpl::VP9EncoderImpl(const cricket::VideoCodec& codec) first_frame_in_picture_(true), ss_info_needed_(false), is_flexible_mode_(false) { - memset(&codec_, 0, sizeof(codec_)); + codec_ = {}; memset(&svc_params_, 0, sizeof(vpx_svc_extra_cfg_t)); } @@ -1279,7 +1279,7 @@ int VP9EncoderImpl::GetEncodedLayerFrame(const vpx_codec_cx_pkt* pkt) { } RTC_DCHECK_LE(encoded_image_.size(), encoded_image_.capacity()); - memset(&codec_specific_, 0, sizeof(codec_specific_)); + codec_specific_ = {}; absl::optional spatial_index; PopulateCodecSpecific(&codec_specific_, &spatial_index, *pkt, input_image_->timestamp()); diff --git a/modules/video_coding/include/video_codec_interface.h b/modules/video_coding/include/video_codec_interface.h index 0a6c12d1a1..cde551212f 100644 --- a/modules/video_coding/include/video_codec_interface.h +++ b/modules/video_coding/include/video_codec_interface.h @@ -103,6 +103,7 @@ struct CodecSpecificInfo { CodecSpecificInfo() : codecType(kVideoCodecGeneric) { memset(&codecSpecific, 0, sizeof(codecSpecific)); } + VideoCodecType codecType; CodecSpecificInfoUnion codecSpecific; }; diff --git a/sdk/android/src/jni/video_encoder_wrapper.cc b/sdk/android/src/jni/video_encoder_wrapper.cc index 77c1850fb0..58556dde7e 100644 --- a/sdk/android/src/jni/video_encoder_wrapper.cc +++ b/sdk/android/src/jni/video_encoder_wrapper.cc @@ -374,7 +374,6 @@ CodecSpecificInfo VideoEncoderWrapper::ParseCodecSpecificInfo( const bool key_frame = frame._frameType == kVideoFrameKey; CodecSpecificInfo info; - memset(&info, 0, sizeof(info)); info.codecType = codec_settings_.codecType; switch (codec_settings_.codecType) { diff --git a/test/fake_encoder.cc b/test/fake_encoder.cc index f4645ad268..4adeffb344 100644 --- a/test/fake_encoder.cc +++ b/test/fake_encoder.cc @@ -122,7 +122,6 @@ int32_t FakeEncoder::Encode(const VideoFrame& input_image, } CodecSpecificInfo specifics; - memset(&specifics, 0, sizeof(specifics)); specifics.codecType = kVideoCodecGeneric; std::unique_ptr encoded_buffer( new uint8_t[frame_info.layers[i].size]); @@ -338,7 +337,6 @@ EncodedImageCallback::Result FakeH264Encoder::OnEncodedImage( } } CodecSpecificInfo specifics; - memset(&specifics, 0, sizeof(specifics)); specifics.codecType = kVideoCodecH264; specifics.codecSpecific.H264.packetization_mode = H264PacketizationMode::NonInterleaved;