Enable and fix chromium clang warnings in sdk/android targets.
Targets:
base_jni, internal_jni, video_jni, vp8_jni and vp9_jni
Bug: webrtc:163
Change-Id: I4aa68c81e6e7cbe5fdf78c90e464b46c55633252
Reviewed-on: https://webrtc-review.googlesource.com/66820
Commit-Queue: Paulina Hensman <phensman@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22744}
diff --git a/api/videosourceinterface.cc b/api/videosourceinterface.cc
index 5eda369..8cf8202 100644
--- a/api/videosourceinterface.cc
+++ b/api/videosourceinterface.cc
@@ -13,6 +13,7 @@
namespace rtc {
VideoSinkWants::VideoSinkWants() = default;
+VideoSinkWants::VideoSinkWants(const VideoSinkWants&) = default;
VideoSinkWants::~VideoSinkWants() = default;
} // namespace rtc
diff --git a/api/videosourceinterface.h b/api/videosourceinterface.h
index ffb017a..065e2dc 100644
--- a/api/videosourceinterface.h
+++ b/api/videosourceinterface.h
@@ -22,6 +22,7 @@
// should have when it is delivered to a certain sink.
struct VideoSinkWants {
VideoSinkWants();
+ VideoSinkWants(const VideoSinkWants&);
~VideoSinkWants();
// Tells the source whether the sink wants frames with rotation applied.
// By default, any rotation must be applied by the sink.
diff --git a/common_video/i420_buffer_pool.cc b/common_video/i420_buffer_pool.cc
index 48d6512..c403eeb 100644
--- a/common_video/i420_buffer_pool.cc
+++ b/common_video/i420_buffer_pool.cc
@@ -14,10 +14,14 @@
namespace webrtc {
+I420BufferPool::I420BufferPool() : I420BufferPool(false) {}
+I420BufferPool::I420BufferPool(bool zero_initialize)
+ : I420BufferPool(zero_initialize, std::numeric_limits<size_t>::max()) {}
I420BufferPool::I420BufferPool(bool zero_initialize,
size_t max_number_of_buffers)
: zero_initialize_(zero_initialize),
max_number_of_buffers_(max_number_of_buffers) {}
+I420BufferPool::~I420BufferPool() = default;
void I420BufferPool::Release() {
buffers_.clear();
diff --git a/common_video/include/i420_buffer_pool.h b/common_video/include/i420_buffer_pool.h
index 863eb10..1c425bb 100644
--- a/common_video/include/i420_buffer_pool.h
+++ b/common_video/include/i420_buffer_pool.h
@@ -29,11 +29,10 @@
// are created. This is to prevent memory leaks where frames are not returned.
class I420BufferPool {
public:
- I420BufferPool()
- : I420BufferPool(false) {}
- explicit I420BufferPool(bool zero_initialize)
- : I420BufferPool(zero_initialize, std::numeric_limits<size_t>::max()) {}
+ I420BufferPool();
+ explicit I420BufferPool(bool zero_initialize);
I420BufferPool(bool zero_initialze, size_t max_number_of_buffers);
+ ~I420BufferPool();
// Returns a buffer from the pool. If no suitable buffer exist in the pool
// and there are less than |max_number_of_buffers| pending, a buffer is
diff --git a/common_video/include/video_frame.h b/common_video/include/video_frame.h
index af363d4..ba6762f 100644
--- a/common_video/include/video_frame.h
+++ b/common_video/include/video_frame.h
@@ -34,6 +34,7 @@
static size_t GetBufferPaddingBytes(VideoCodecType codec_type);
EncodedImage();
+ EncodedImage(const EncodedImage&);
EncodedImage(uint8_t* buffer, size_t length, size_t size);
void SetEncodeTime(int64_t encode_start_ms, int64_t encode_finish_ms);
diff --git a/common_video/video_frame.cc b/common_video/video_frame.cc
index 1447fc1..f4ebac8 100644
--- a/common_video/video_frame.cc
+++ b/common_video/video_frame.cc
@@ -45,6 +45,8 @@
EncodedImage::EncodedImage() : EncodedImage(nullptr, 0, 0) {}
+EncodedImage::EncodedImage(const EncodedImage&) = default;
+
EncodedImage::EncodedImage(uint8_t* buffer, size_t length, size_t size)
: _buffer(buffer), _length(length), _size(size) {}
diff --git a/media/base/adaptedvideotracksource.cc b/media/base/adaptedvideotracksource.cc
index 5a7168b..84b39d8 100644
--- a/media/base/adaptedvideotracksource.cc
+++ b/media/base/adaptedvideotracksource.cc
@@ -22,6 +22,7 @@
: video_adapter_(required_alignment) {
thread_checker_.DetachFromThread();
}
+AdaptedVideoTrackSource::~AdaptedVideoTrackSource() = default;
bool AdaptedVideoTrackSource::GetStats(Stats* stats) {
rtc::CritScope lock(&stats_crit_);
diff --git a/media/base/adaptedvideotracksource.h b/media/base/adaptedvideotracksource.h
index 0db381f..e7edb9a 100644
--- a/media/base/adaptedvideotracksource.h
+++ b/media/base/adaptedvideotracksource.h
@@ -26,6 +26,7 @@
: public webrtc::Notifier<webrtc::VideoTrackSourceInterface> {
public:
AdaptedVideoTrackSource();
+ ~AdaptedVideoTrackSource() override;
protected:
// Allows derived classes to initialize |video_adapter_| with a custom
diff --git a/media/base/codec.cc b/media/base/codec.cc
index e4b6b78..f5a71cc 100644
--- a/media/base/codec.cc
+++ b/media/base/codec.cc
@@ -22,6 +22,7 @@
namespace cricket {
FeedbackParams::FeedbackParams() = default;
+FeedbackParams::~FeedbackParams() = default;
bool FeedbackParam::operator==(const FeedbackParam& other) const {
return _stricmp(other.id().c_str(), id().c_str()) == 0 &&
diff --git a/media/base/codec.h b/media/base/codec.h
index 6a2dcf4..a49fe4b 100644
--- a/media/base/codec.h
+++ b/media/base/codec.h
@@ -36,6 +36,7 @@
: id_(id),
param_(kParamValueEmpty) {
}
+
bool operator==(const FeedbackParam& other) const;
const std::string& id() const { return id_; }
@@ -49,6 +50,7 @@
class FeedbackParams {
public:
FeedbackParams();
+ ~FeedbackParams();
bool operator==(const FeedbackParams& other) const;
bool Has(const FeedbackParam& param) const;
diff --git a/media/base/videobroadcaster.cc b/media/base/videobroadcaster.cc
index d2a9c54..09d69f2 100644
--- a/media/base/videobroadcaster.cc
+++ b/media/base/videobroadcaster.cc
@@ -21,6 +21,7 @@
VideoBroadcaster::VideoBroadcaster() {
thread_checker_.DetachFromThread();
}
+VideoBroadcaster::~VideoBroadcaster() = default;
void VideoBroadcaster::AddOrUpdateSink(
VideoSinkInterface<webrtc::VideoFrame>* sink,
diff --git a/media/base/videobroadcaster.h b/media/base/videobroadcaster.h
index c19f3f7..078368e 100644
--- a/media/base/videobroadcaster.h
+++ b/media/base/videobroadcaster.h
@@ -33,6 +33,7 @@
public VideoSinkInterface<webrtc::VideoFrame> {
public:
VideoBroadcaster();
+ ~VideoBroadcaster() override;
void AddOrUpdateSink(VideoSinkInterface<webrtc::VideoFrame>* sink,
const VideoSinkWants& wants) override;
void RemoveSink(VideoSinkInterface<webrtc::VideoFrame>* sink) override;
diff --git a/media/base/videosourcebase.cc b/media/base/videosourcebase.cc
index 299795f..b193b9f 100644
--- a/media/base/videosourcebase.cc
+++ b/media/base/videosourcebase.cc
@@ -17,6 +17,7 @@
VideoSourceBase::VideoSourceBase() {
thread_checker_.DetachFromThread();
}
+VideoSourceBase::~VideoSourceBase() = default;
void VideoSourceBase::AddOrUpdateSink(
VideoSinkInterface<webrtc::VideoFrame>* sink,
diff --git a/media/base/videosourcebase.h b/media/base/videosourcebase.h
index 35f85bb..6222e61 100644
--- a/media/base/videosourcebase.h
+++ b/media/base/videosourcebase.h
@@ -23,6 +23,7 @@
class VideoSourceBase : public VideoSourceInterface<webrtc::VideoFrame> {
public:
VideoSourceBase();
+ ~VideoSourceBase() override;
void AddOrUpdateSink(VideoSinkInterface<webrtc::VideoFrame>* sink,
const VideoSinkWants& wants) override;
void RemoveSink(VideoSinkInterface<webrtc::VideoFrame>* sink) override;
diff --git a/media/engine/videodecodersoftwarefallbackwrapper.cc b/media/engine/videodecodersoftwarefallbackwrapper.cc
index eb4e98f..5c2d3e1 100644
--- a/media/engine/videodecodersoftwarefallbackwrapper.cc
+++ b/media/engine/videodecodersoftwarefallbackwrapper.cc
@@ -31,6 +31,8 @@
std::string(fallback_decoder_->ImplementationName()) +
" (fallback from: " + hw_decoder_->ImplementationName() + ")"),
callback_(nullptr) {}
+VideoDecoderSoftwareFallbackWrapper::~VideoDecoderSoftwareFallbackWrapper() =
+ default;
int32_t VideoDecoderSoftwareFallbackWrapper::InitDecode(
const VideoCodec* codec_settings,
diff --git a/media/engine/videodecodersoftwarefallbackwrapper.h b/media/engine/videodecodersoftwarefallbackwrapper.h
index f286943..48744f6 100644
--- a/media/engine/videodecodersoftwarefallbackwrapper.h
+++ b/media/engine/videodecodersoftwarefallbackwrapper.h
@@ -26,6 +26,7 @@
VideoDecoderSoftwareFallbackWrapper(
std::unique_ptr<VideoDecoder> sw_fallback_decoder,
std::unique_ptr<VideoDecoder> hw_decoder);
+ ~VideoDecoderSoftwareFallbackWrapper() override;
int32_t InitDecode(const VideoCodec* codec_settings,
int32_t number_of_cores) override;
diff --git a/media/engine/videoencodersoftwarefallbackwrapper.cc b/media/engine/videoencodersoftwarefallbackwrapper.cc
index b8f64c0..50bc3f2 100644
--- a/media/engine/videoencodersoftwarefallbackwrapper.cc
+++ b/media/engine/videoencodersoftwarefallbackwrapper.cc
@@ -86,6 +86,8 @@
1); // No HW below.
}
}
+VideoEncoderSoftwareFallbackWrapper::~VideoEncoderSoftwareFallbackWrapper() =
+ default;
bool VideoEncoderSoftwareFallbackWrapper::InitFallbackEncoder() {
RTC_LOG(LS_WARNING) << "Encoder falling back to software encoding.";
diff --git a/media/engine/videoencodersoftwarefallbackwrapper.h b/media/engine/videoencodersoftwarefallbackwrapper.h
index a9a349c..c54728e 100644
--- a/media/engine/videoencodersoftwarefallbackwrapper.h
+++ b/media/engine/videoencodersoftwarefallbackwrapper.h
@@ -28,6 +28,7 @@
VideoEncoderSoftwareFallbackWrapper(
std::unique_ptr<webrtc::VideoEncoder> sw_encoder,
std::unique_ptr<webrtc::VideoEncoder> hw_encoder);
+ ~VideoEncoderSoftwareFallbackWrapper() override;
int32_t InitEncode(const VideoCodec* codec_settings,
int32_t number_of_cores,
diff --git a/modules/video_coding/codecs/vp8/include/vp8.h b/modules/video_coding/codecs/vp8/include/vp8.h
index 00808e2..57be521 100644
--- a/modules/video_coding/codecs/vp8/include/vp8.h
+++ b/modules/video_coding/codecs/vp8/include/vp8.h
@@ -23,14 +23,14 @@
public:
static std::unique_ptr<VP8Encoder> Create();
- virtual ~VP8Encoder() {}
+ ~VP8Encoder() override {}
}; // end of VP8Encoder class
class VP8Decoder : public VideoDecoder {
public:
static std::unique_ptr<VP8Decoder> Create();
- virtual ~VP8Decoder() {}
+ ~VP8Decoder() override {}
}; // end of VP8Decoder class
} // namespace webrtc
diff --git a/modules/video_coding/codecs/vp9/include/vp9.h b/modules/video_coding/codecs/vp9/include/vp9.h
index 172e69e..39dc138 100644
--- a/modules/video_coding/codecs/vp9/include/vp9.h
+++ b/modules/video_coding/codecs/vp9/include/vp9.h
@@ -23,7 +23,7 @@
static bool IsSupported();
static std::unique_ptr<VP9Encoder> Create();
- virtual ~VP9Encoder() {}
+ ~VP9Encoder() override {}
};
class VP9Decoder : public VideoDecoder {
@@ -31,7 +31,7 @@
static bool IsSupported();
static std::unique_ptr<VP9Decoder> Create();
- virtual ~VP9Decoder() {}
+ ~VP9Decoder() override {}
};
} // namespace webrtc
diff --git a/modules/video_coding/utility/moving_average.cc b/modules/video_coding/utility/moving_average.cc
index 8076f93..025899c 100644
--- a/modules/video_coding/utility/moving_average.cc
+++ b/modules/video_coding/utility/moving_average.cc
@@ -15,6 +15,7 @@
namespace webrtc {
MovingAverage::MovingAverage(size_t s) : sum_history_(s + 1, 0) {}
+MovingAverage::~MovingAverage() = default;
void MovingAverage::AddSample(int sample) {
count_++;
diff --git a/modules/video_coding/utility/moving_average.h b/modules/video_coding/utility/moving_average.h
index 7df3d3d..0b7a700 100644
--- a/modules/video_coding/utility/moving_average.h
+++ b/modules/video_coding/utility/moving_average.h
@@ -19,6 +19,7 @@
class MovingAverage {
public:
explicit MovingAverage(size_t s);
+ ~MovingAverage();
void AddSample(int sample);
rtc::Optional<int> GetAverage() const;
rtc::Optional<int> GetAverage(size_t num_samples) const;
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 0d4b157..6df1e61 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -75,14 +75,6 @@
deps = [
"../../rtc_base:checks",
]
-
- if (is_clang) {
- # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
- suppressed_configs += [
- "//build/config/clang:extra_warnings",
- "//build/config/clang:find_bad_constructs",
- ]
- }
}
rtc_source_set("base_jni") {
@@ -112,14 +104,6 @@
"../../rtc_base:rtc_base_approved",
"../../system_wrappers:metrics_api",
]
-
- if (is_clang) {
- # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
- suppressed_configs += [
- "//build/config/clang:extra_warnings",
- "//build/config/clang:find_bad_constructs",
- ]
- }
}
rtc_static_library("audio_jni") {
@@ -373,14 +357,6 @@
configs += [ ":libjingle_peerconnection_jni_warnings_config" ]
- if (is_clang) {
- # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
- suppressed_configs += [
- "//build/config/clang:extra_warnings",
- "//build/config/clang:find_bad_constructs",
- ]
- }
-
# TODO(jschuh): Bug 1348: fix this warning.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
@@ -462,14 +438,6 @@
"src/jni/vp8codec.cc",
]
- if (is_clang) {
- # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
- suppressed_configs += [
- "//build/config/clang:extra_warnings",
- "//build/config/clang:find_bad_constructs",
- ]
- }
-
deps = [
":base_jni",
":generated_vp8_jni",
@@ -492,14 +460,6 @@
"src/jni/vp9codec.cc",
]
- if (is_clang) {
- # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
- suppressed_configs += [
- "//build/config/clang:extra_warnings",
- "//build/config/clang:find_bad_constructs",
- ]
- }
-
deps = [
":base_jni",
":generated_vp9_jni",
diff --git a/sdk/android/src/jni/androidmediadecoder.cc b/sdk/android/src/jni/androidmediadecoder.cc
index ca013dd..0a3d81a7 100644
--- a/sdk/android/src/jni/androidmediadecoder.cc
+++ b/sdk/android/src/jni/androidmediadecoder.cc
@@ -61,7 +61,7 @@
public:
explicit MediaCodecVideoDecoder(
JNIEnv* jni, VideoCodecType codecType, jobject render_egl_context);
- virtual ~MediaCodecVideoDecoder();
+ ~MediaCodecVideoDecoder() override;
int32_t InitDecode(const VideoCodec* codecSettings, int32_t numberOfCores)
override;
diff --git a/sdk/android/src/jni/androidmediadecoder_jni.h b/sdk/android/src/jni/androidmediadecoder_jni.h
index 1d8cc30..b984dc5 100644
--- a/sdk/android/src/jni/androidmediadecoder_jni.h
+++ b/sdk/android/src/jni/androidmediadecoder_jni.h
@@ -24,7 +24,7 @@
: public cricket::WebRtcVideoDecoderFactory {
public:
MediaCodecVideoDecoderFactory();
- virtual ~MediaCodecVideoDecoderFactory();
+ ~MediaCodecVideoDecoderFactory() override;
void SetEGLContext(JNIEnv* jni, jobject render_egl_context);
diff --git a/sdk/android/src/jni/androidmediaencoder.cc b/sdk/android/src/jni/androidmediaencoder.cc
index b190a65..adc6d50 100644
--- a/sdk/android/src/jni/androidmediaencoder.cc
+++ b/sdk/android/src/jni/androidmediaencoder.cc
@@ -93,7 +93,7 @@
// this is the encoder queue from ViE encoder.
class MediaCodecVideoEncoder : public VideoEncoder {
public:
- virtual ~MediaCodecVideoEncoder();
+ ~MediaCodecVideoEncoder() override;
MediaCodecVideoEncoder(JNIEnv* jni,
const cricket::VideoCodec& codec,
jobject egl_context);
diff --git a/sdk/android/src/jni/androidmediaencoder_jni.h b/sdk/android/src/jni/androidmediaencoder_jni.h
index bd9fc30..4fd06bb 100644
--- a/sdk/android/src/jni/androidmediaencoder_jni.h
+++ b/sdk/android/src/jni/androidmediaencoder_jni.h
@@ -24,7 +24,7 @@
: public cricket::WebRtcVideoEncoderFactory {
public:
MediaCodecVideoEncoderFactory();
- virtual ~MediaCodecVideoEncoderFactory();
+ ~MediaCodecVideoEncoderFactory() override;
void SetEGLContext(JNIEnv* jni, jobject egl_context);
diff --git a/sdk/android/src/jni/androidnetworkmonitor.cc b/sdk/android/src/jni/androidnetworkmonitor.cc
index 9555eff..84a545a 100644
--- a/sdk/android/src/jni/androidnetworkmonitor.cc
+++ b/sdk/android/src/jni/androidnetworkmonitor.cc
@@ -132,8 +132,18 @@
NetworkInformation::NetworkInformation() = default;
+NetworkInformation::NetworkInformation(const NetworkInformation&) = default;
+
+NetworkInformation::NetworkInformation(NetworkInformation&&) = default;
+
NetworkInformation::~NetworkInformation() = default;
+NetworkInformation& NetworkInformation::operator=(const NetworkInformation&) =
+ default;
+
+NetworkInformation& NetworkInformation::operator=(NetworkInformation&&) =
+ default;
+
std::string NetworkInformation::ToString() const {
std::stringstream ss;
ss << "NetInfo[name " << interface_name << "; handle " << handle << "; type "
diff --git a/sdk/android/src/jni/androidnetworkmonitor.h b/sdk/android/src/jni/androidnetworkmonitor.h
index 9e45d2b..58b6686 100644
--- a/sdk/android/src/jni/androidnetworkmonitor.h
+++ b/sdk/android/src/jni/androidnetworkmonitor.h
@@ -47,7 +47,11 @@
std::vector<rtc::IPAddress> ip_addresses;
NetworkInformation();
+ NetworkInformation(const NetworkInformation&);
+ NetworkInformation(NetworkInformation&&);
~NetworkInformation();
+ NetworkInformation& operator=(const NetworkInformation&);
+ NetworkInformation& operator=(NetworkInformation&&);
std::string ToString() const;
};
diff --git a/sdk/android/src/jni/androidvideotracksource.cc b/sdk/android/src/jni/androidvideotracksource.cc
index 7df2cb5..4733cdf 100644
--- a/sdk/android/src/jni/androidvideotracksource.cc
+++ b/sdk/android/src/jni/androidvideotracksource.cc
@@ -31,7 +31,7 @@
}
AndroidVideoTrackSource* AndroidVideoTrackSourceFromJavaProxy(jlong j_proxy) {
- auto proxy_source = reinterpret_cast<VideoTrackSourceProxy*>(j_proxy);
+ auto* proxy_source = reinterpret_cast<VideoTrackSourceProxy*>(j_proxy);
return reinterpret_cast<AndroidVideoTrackSource*>(proxy_source->internal());
}
@@ -51,6 +51,15 @@
RTC_LOG(LS_INFO) << "AndroidVideoTrackSource ctor";
camera_thread_checker_.DetachFromThread();
}
+AndroidVideoTrackSource::~AndroidVideoTrackSource() = default;
+
+bool AndroidVideoTrackSource::is_screencast() const {
+ return is_screencast_;
+}
+
+rtc::Optional<bool> AndroidVideoTrackSource::needs_denoising() const {
+ return false;
+}
void AndroidVideoTrackSource::SetState(SourceState state) {
if (rtc::Thread::Current() != signaling_thread_) {
@@ -66,6 +75,14 @@
}
}
+AndroidVideoTrackSource::SourceState AndroidVideoTrackSource::state() const {
+ return state_;
+}
+
+bool AndroidVideoTrackSource::remote() const {
+ return false;
+}
+
void AndroidVideoTrackSource::OnByteBufferFrameCaptured(const void* frame_data,
int length,
int width,
@@ -213,6 +230,11 @@
video_adapter()->OnOutputFormatRequest(format);
}
+rtc::scoped_refptr<SurfaceTextureHelper>
+AndroidVideoTrackSource::surface_texture_helper() {
+ return surface_texture_helper_;
+}
+
static void JNI_AndroidVideoTrackSourceObserver_OnByteBufferFrameCaptured(
JNIEnv* jni,
const JavaParamRef<jclass>&,
diff --git a/sdk/android/src/jni/androidvideotracksource.h b/sdk/android/src/jni/androidvideotracksource.h
index c40203d..fba5e84 100644
--- a/sdk/android/src/jni/androidvideotracksource.h
+++ b/sdk/android/src/jni/androidvideotracksource.h
@@ -32,20 +32,21 @@
JNIEnv* jni,
const JavaRef<jobject>& j_surface_texture_helper,
bool is_screencast = false);
+ ~AndroidVideoTrackSource() override;
- bool is_screencast() const override { return is_screencast_; }
+ bool is_screencast() const override;
// Indicates that the encoder should denoise video before encoding it.
// If it is not set, the default configuration is used which is different
// depending on video codec.
- rtc::Optional<bool> needs_denoising() const override { return false; }
+ rtc::Optional<bool> needs_denoising() const override;
// Called by the native capture observer
void SetState(SourceState state);
- SourceState state() const override { return state_; }
+ SourceState state() const override;
- bool remote() const override { return false; }
+ bool remote() const override;
void OnByteBufferFrameCaptured(const void* frame_data,
int length,
@@ -69,9 +70,7 @@
void OnOutputFormatRequest(int width, int height, int fps);
- rtc::scoped_refptr<SurfaceTextureHelper> surface_texture_helper() {
- return surface_texture_helper_;
- }
+ rtc::scoped_refptr<SurfaceTextureHelper> surface_texture_helper();
private:
rtc::Thread* signaling_thread_;
diff --git a/sdk/android/src/jni/video_renderer.cc b/sdk/android/src/jni/video_renderer.cc
index 6f7650a..02ea1b3 100644
--- a/sdk/android/src/jni/video_renderer.cc
+++ b/sdk/android/src/jni/video_renderer.cc
@@ -26,7 +26,7 @@
JavaVideoRendererWrapper(JNIEnv* jni, const JavaRef<jobject>& j_callbacks)
: j_callbacks_(jni, j_callbacks) {}
- virtual ~JavaVideoRendererWrapper() {}
+ ~JavaVideoRendererWrapper() override {}
void OnFrame(const VideoFrame& video_frame) override {
JNIEnv* env = AttachCurrentThreadIfNeeded();
diff --git a/sdk/android/src/jni/videodecoderfactorywrapper.cc b/sdk/android/src/jni/videodecoderfactorywrapper.cc
index 47c1362..be717f9 100644
--- a/sdk/android/src/jni/videodecoderfactorywrapper.cc
+++ b/sdk/android/src/jni/videodecoderfactorywrapper.cc
@@ -25,6 +25,7 @@
JNIEnv* jni,
const JavaRef<jobject>& decoder_factory)
: decoder_factory_(jni, decoder_factory) {}
+VideoDecoderFactoryWrapper::~VideoDecoderFactoryWrapper() = default;
std::unique_ptr<VideoDecoder> VideoDecoderFactoryWrapper::CreateVideoDecoder(
const SdpVideoFormat& format) {
diff --git a/sdk/android/src/jni/videodecoderfactorywrapper.h b/sdk/android/src/jni/videodecoderfactorywrapper.h
index 49ac849..a1716b1 100644
--- a/sdk/android/src/jni/videodecoderfactorywrapper.h
+++ b/sdk/android/src/jni/videodecoderfactorywrapper.h
@@ -25,6 +25,7 @@
public:
VideoDecoderFactoryWrapper(JNIEnv* jni,
const JavaRef<jobject>& decoder_factory);
+ ~VideoDecoderFactoryWrapper() override;
std::vector<SdpVideoFormat> GetSupportedFormats() const override;
std::unique_ptr<VideoDecoder> CreateVideoDecoder(
diff --git a/sdk/android/src/jni/videodecoderwrapper.cc b/sdk/android/src/jni/videodecoderwrapper.cc
index 6f34dd9..ec27b00 100644
--- a/sdk/android/src/jni/videodecoderwrapper.cc
+++ b/sdk/android/src/jni/videodecoderwrapper.cc
@@ -50,6 +50,8 @@
decoder_thread_checker_.DetachFromThread();
}
+VideoDecoderWrapper::~VideoDecoderWrapper() = default;
+
int32_t VideoDecoderWrapper::InitDecode(const VideoCodec* codec_settings,
int32_t number_of_cores) {
RTC_DCHECK_RUN_ON(&decoder_thread_checker_);
@@ -194,6 +196,11 @@
decoder_qp ? decoder_qp : frame_extra_info.qp);
}
+VideoDecoderWrapper::FrameExtraInfo::FrameExtraInfo() = default;
+VideoDecoderWrapper::FrameExtraInfo::FrameExtraInfo(const FrameExtraInfo&) =
+ default;
+VideoDecoderWrapper::FrameExtraInfo::~FrameExtraInfo() = default;
+
int32_t VideoDecoderWrapper::HandleReturnCode(JNIEnv* jni,
const JavaRef<jobject>& j_value,
const char* method_name) {
diff --git a/sdk/android/src/jni/videodecoderwrapper.h b/sdk/android/src/jni/videodecoderwrapper.h
index c3cda74..6e5b5c0 100644
--- a/sdk/android/src/jni/videodecoderwrapper.h
+++ b/sdk/android/src/jni/videodecoderwrapper.h
@@ -28,6 +28,7 @@
class VideoDecoderWrapper : public VideoDecoder {
public:
VideoDecoderWrapper(JNIEnv* jni, const JavaRef<jobject>& decoder);
+ ~VideoDecoderWrapper() override;
int32_t InitDecode(const VideoCodec* codec_settings,
int32_t number_of_cores) override;
@@ -67,6 +68,10 @@
uint32_t timestamp_rtp;
int64_t timestamp_ntp;
rtc::Optional<uint8_t> qp;
+
+ FrameExtraInfo();
+ FrameExtraInfo(const FrameExtraInfo&);
+ ~FrameExtraInfo();
};
int32_t InitDecodeInternal(JNIEnv* jni) RTC_RUN_ON(decoder_thread_checker_);
diff --git a/sdk/android/src/jni/videoencoderfactorywrapper.cc b/sdk/android/src/jni/videoencoderfactorywrapper.cc
index be29068..2c3d111 100644
--- a/sdk/android/src/jni/videoencoderfactorywrapper.cc
+++ b/sdk/android/src/jni/videoencoderfactorywrapper.cc
@@ -31,6 +31,7 @@
supported_formats_ = JavaToNativeVector<SdpVideoFormat>(
jni, j_supported_codecs, &VideoCodecInfoToSdpVideoFormat);
}
+VideoEncoderFactoryWrapper::~VideoEncoderFactoryWrapper() = default;
std::unique_ptr<VideoEncoder> VideoEncoderFactoryWrapper::CreateVideoEncoder(
const SdpVideoFormat& format) {
@@ -44,6 +45,11 @@
return JavaToNativeVideoEncoder(jni, encoder);
}
+std::vector<SdpVideoFormat> VideoEncoderFactoryWrapper::GetSupportedFormats()
+ const {
+ return supported_formats_;
+}
+
VideoEncoderFactory::CodecInfo VideoEncoderFactoryWrapper::QueryVideoEncoder(
const SdpVideoFormat& format) const {
JNIEnv* jni = AttachCurrentThreadIfNeeded();
diff --git a/sdk/android/src/jni/videoencoderfactorywrapper.h b/sdk/android/src/jni/videoencoderfactorywrapper.h
index af9557c..2c2dadc 100644
--- a/sdk/android/src/jni/videoencoderfactorywrapper.h
+++ b/sdk/android/src/jni/videoencoderfactorywrapper.h
@@ -27,14 +27,13 @@
public:
VideoEncoderFactoryWrapper(JNIEnv* jni,
const JavaRef<jobject>& encoder_factory);
+ ~VideoEncoderFactoryWrapper() override;
std::unique_ptr<VideoEncoder> CreateVideoEncoder(
const SdpVideoFormat& format) override;
// Returns a list of supported codecs in order of preference.
- std::vector<SdpVideoFormat> GetSupportedFormats() const override {
- return supported_formats_;
- }
+ std::vector<SdpVideoFormat> GetSupportedFormats() const override;
CodecInfo QueryVideoEncoder(const SdpVideoFormat& format) const override;
diff --git a/sdk/android/src/jni/videoencoderwrapper.cc b/sdk/android/src/jni/videoencoderwrapper.cc
index 63dd363..ae2f6ad 100644
--- a/sdk/android/src/jni/videoencoderwrapper.cc
+++ b/sdk/android/src/jni/videoencoderwrapper.cc
@@ -43,6 +43,7 @@
picture_id_ = random.Rand<uint16_t>() & 0x7FFF;
tl0_pic_idx_ = random.Rand<uint8_t>();
}
+VideoEncoderWrapper::~VideoEncoderWrapper() = default;
int32_t VideoEncoderWrapper::InitEncode(const VideoCodec* codec_settings,
int32_t number_of_cores,
@@ -207,6 +208,10 @@
}
}
+bool VideoEncoderWrapper::SupportsNativeHandle() const {
+ return true;
+}
+
const char* VideoEncoderWrapper::ImplementationName() const {
return implementation_name_.c_str();
}
diff --git a/sdk/android/src/jni/videoencoderwrapper.h b/sdk/android/src/jni/videoencoderwrapper.h
index fe553e9..f25e83d 100644
--- a/sdk/android/src/jni/videoencoderwrapper.h
+++ b/sdk/android/src/jni/videoencoderwrapper.h
@@ -30,6 +30,7 @@
class VideoEncoderWrapper : public VideoEncoder {
public:
VideoEncoderWrapper(JNIEnv* jni, const JavaRef<jobject>& j_encoder);
+ ~VideoEncoderWrapper() override;
int32_t InitEncode(const VideoCodec* codec_settings,
int32_t number_of_cores,
@@ -51,7 +52,7 @@
ScalingSettings GetScalingSettings() const override;
- bool SupportsNativeHandle() const override { return true; }
+ bool SupportsNativeHandle() const override;
// Should only be called by JNI.
void OnEncodedFrame(JNIEnv* jni,
diff --git a/sdk/android/src/jni/videoframe.cc b/sdk/android/src/jni/videoframe.cc
index 92e4a66..e1fb431 100644
--- a/sdk/android/src/jni/videoframe.cc
+++ b/sdk/android/src/jni/videoframe.cc
@@ -49,7 +49,7 @@
int width,
int height,
const JavaRef<jobject>& j_video_frame_buffer);
- ~AndroidVideoI420Buffer();
+ ~AndroidVideoI420Buffer() override;
private:
const uint8_t* DataY() const override { return data_y_; }