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}
This commit is contained in:
committed by
Commit Bot
parent
87c5463dfd
commit
a680a6a4af
@ -13,6 +13,7 @@
|
||||
namespace rtc {
|
||||
|
||||
VideoSinkWants::VideoSinkWants() = default;
|
||||
VideoSinkWants::VideoSinkWants(const VideoSinkWants&) = default;
|
||||
VideoSinkWants::~VideoSinkWants() = default;
|
||||
|
||||
} // namespace rtc
|
||||
|
||||
@ -22,6 +22,7 @@ namespace rtc {
|
||||
// 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.
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -29,11 +29,10 @@ namespace webrtc {
|
||||
// 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
|
||||
|
||||
@ -34,6 +34,7 @@ class EncodedImage {
|
||||
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);
|
||||
|
||||
@ -45,6 +45,8 @@ size_t EncodedImage::GetBufferPaddingBytes(VideoCodecType codec_type) {
|
||||
|
||||
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) {}
|
||||
|
||||
|
||||
@ -22,6 +22,7 @@ AdaptedVideoTrackSource::AdaptedVideoTrackSource(int required_alignment)
|
||||
: video_adapter_(required_alignment) {
|
||||
thread_checker_.DetachFromThread();
|
||||
}
|
||||
AdaptedVideoTrackSource::~AdaptedVideoTrackSource() = default;
|
||||
|
||||
bool AdaptedVideoTrackSource::GetStats(Stats* stats) {
|
||||
rtc::CritScope lock(&stats_crit_);
|
||||
|
||||
@ -26,6 +26,7 @@ class AdaptedVideoTrackSource
|
||||
: public webrtc::Notifier<webrtc::VideoTrackSourceInterface> {
|
||||
public:
|
||||
AdaptedVideoTrackSource();
|
||||
~AdaptedVideoTrackSource() override;
|
||||
|
||||
protected:
|
||||
// Allows derived classes to initialize |video_adapter_| with a custom
|
||||
|
||||
@ -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 &&
|
||||
|
||||
@ -36,6 +36,7 @@ class FeedbackParam {
|
||||
: id_(id),
|
||||
param_(kParamValueEmpty) {
|
||||
}
|
||||
|
||||
bool operator==(const FeedbackParam& other) const;
|
||||
|
||||
const std::string& id() const { return id_; }
|
||||
@ -49,6 +50,7 @@ class FeedbackParam {
|
||||
class FeedbackParams {
|
||||
public:
|
||||
FeedbackParams();
|
||||
~FeedbackParams();
|
||||
bool operator==(const FeedbackParams& other) const;
|
||||
|
||||
bool Has(const FeedbackParam& param) const;
|
||||
|
||||
@ -21,6 +21,7 @@ namespace rtc {
|
||||
VideoBroadcaster::VideoBroadcaster() {
|
||||
thread_checker_.DetachFromThread();
|
||||
}
|
||||
VideoBroadcaster::~VideoBroadcaster() = default;
|
||||
|
||||
void VideoBroadcaster::AddOrUpdateSink(
|
||||
VideoSinkInterface<webrtc::VideoFrame>* sink,
|
||||
|
||||
@ -33,6 +33,7 @@ class VideoBroadcaster : public VideoSourceBase,
|
||||
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;
|
||||
|
||||
@ -17,6 +17,7 @@ namespace rtc {
|
||||
VideoSourceBase::VideoSourceBase() {
|
||||
thread_checker_.DetachFromThread();
|
||||
}
|
||||
VideoSourceBase::~VideoSourceBase() = default;
|
||||
|
||||
void VideoSourceBase::AddOrUpdateSink(
|
||||
VideoSinkInterface<webrtc::VideoFrame>* sink,
|
||||
|
||||
@ -23,6 +23,7 @@ namespace rtc {
|
||||
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;
|
||||
|
||||
@ -31,6 +31,8 @@ VideoDecoderSoftwareFallbackWrapper::VideoDecoderSoftwareFallbackWrapper(
|
||||
std::string(fallback_decoder_->ImplementationName()) +
|
||||
" (fallback from: " + hw_decoder_->ImplementationName() + ")"),
|
||||
callback_(nullptr) {}
|
||||
VideoDecoderSoftwareFallbackWrapper::~VideoDecoderSoftwareFallbackWrapper() =
|
||||
default;
|
||||
|
||||
int32_t VideoDecoderSoftwareFallbackWrapper::InitDecode(
|
||||
const VideoCodec* codec_settings,
|
||||
|
||||
@ -26,6 +26,7 @@ class VideoDecoderSoftwareFallbackWrapper : public VideoDecoder {
|
||||
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;
|
||||
|
||||
@ -86,6 +86,8 @@ VideoEncoderSoftwareFallbackWrapper::VideoEncoderSoftwareFallbackWrapper(
|
||||
1); // No HW below.
|
||||
}
|
||||
}
|
||||
VideoEncoderSoftwareFallbackWrapper::~VideoEncoderSoftwareFallbackWrapper() =
|
||||
default;
|
||||
|
||||
bool VideoEncoderSoftwareFallbackWrapper::InitFallbackEncoder() {
|
||||
RTC_LOG(LS_WARNING) << "Encoder falling back to software encoding.";
|
||||
|
||||
@ -28,6 +28,7 @@ class VideoEncoderSoftwareFallbackWrapper : public VideoEncoder {
|
||||
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,
|
||||
|
||||
@ -23,14 +23,14 @@ class VP8Encoder : public VideoEncoder {
|
||||
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
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@ class VP9Encoder : public VideoEncoder {
|
||||
static bool IsSupported();
|
||||
static std::unique_ptr<VP9Encoder> Create();
|
||||
|
||||
virtual ~VP9Encoder() {}
|
||||
~VP9Encoder() override {}
|
||||
};
|
||||
|
||||
class VP9Decoder : public VideoDecoder {
|
||||
@ -31,7 +31,7 @@ class VP9Decoder : public VideoDecoder {
|
||||
static bool IsSupported();
|
||||
static std::unique_ptr<VP9Decoder> Create();
|
||||
|
||||
virtual ~VP9Decoder() {}
|
||||
~VP9Decoder() override {}
|
||||
};
|
||||
} // namespace webrtc
|
||||
|
||||
|
||||
@ -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_++;
|
||||
|
||||
@ -19,6 +19,7 @@ namespace webrtc {
|
||||
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;
|
||||
|
||||
@ -75,14 +75,6 @@ rtc_source_set("internal_jni") {
|
||||
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_source_set("base_jni") {
|
||||
"../../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 @@ rtc_static_library("video_jni") {
|
||||
|
||||
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 @@ rtc_static_library("vp8_jni") {
|
||||
"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 @@ rtc_static_library("vp9_jni") {
|
||||
"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",
|
||||
|
||||
@ -61,7 +61,7 @@ class MediaCodecVideoDecoder : public VideoDecoder, public rtc::MessageHandler {
|
||||
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;
|
||||
|
||||
@ -24,7 +24,7 @@ class MediaCodecVideoDecoderFactory
|
||||
: public cricket::WebRtcVideoDecoderFactory {
|
||||
public:
|
||||
MediaCodecVideoDecoderFactory();
|
||||
virtual ~MediaCodecVideoDecoderFactory();
|
||||
~MediaCodecVideoDecoderFactory() override;
|
||||
|
||||
void SetEGLContext(JNIEnv* jni, jobject render_egl_context);
|
||||
|
||||
|
||||
@ -93,7 +93,7 @@ namespace {
|
||||
// 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);
|
||||
|
||||
@ -24,7 +24,7 @@ class MediaCodecVideoEncoderFactory
|
||||
: public cricket::WebRtcVideoEncoderFactory {
|
||||
public:
|
||||
MediaCodecVideoEncoderFactory();
|
||||
virtual ~MediaCodecVideoEncoderFactory();
|
||||
~MediaCodecVideoEncoderFactory() override;
|
||||
|
||||
void SetEGLContext(JNIEnv* jni, jobject egl_context);
|
||||
|
||||
|
||||
@ -132,8 +132,18 @@ static NetworkInformation GetNetworkInformationFromJava(
|
||||
|
||||
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 "
|
||||
|
||||
@ -47,7 +47,11 @@ struct NetworkInformation {
|
||||
std::vector<rtc::IPAddress> ip_addresses;
|
||||
|
||||
NetworkInformation();
|
||||
NetworkInformation(const NetworkInformation&);
|
||||
NetworkInformation(NetworkInformation&&);
|
||||
~NetworkInformation();
|
||||
NetworkInformation& operator=(const NetworkInformation&);
|
||||
NetworkInformation& operator=(NetworkInformation&&);
|
||||
|
||||
std::string ToString() const;
|
||||
};
|
||||
|
||||
@ -31,7 +31,7 @@ VideoRotation jintToVideoRotation(jint rotation) {
|
||||
}
|
||||
|
||||
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 @@ AndroidVideoTrackSource::AndroidVideoTrackSource(
|
||||
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 @@ void AndroidVideoTrackSource::SetState(SourceState state) {
|
||||
}
|
||||
}
|
||||
|
||||
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 @@ void AndroidVideoTrackSource::OnOutputFormatRequest(int width,
|
||||
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>&,
|
||||
|
||||
@ -32,20 +32,21 @@ class AndroidVideoTrackSource : public rtc::AdaptedVideoTrackSource {
|
||||
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 @@ class AndroidVideoTrackSource : public rtc::AdaptedVideoTrackSource {
|
||||
|
||||
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_;
|
||||
|
||||
@ -26,7 +26,7 @@ class JavaVideoRendererWrapper : public rtc::VideoSinkInterface<VideoFrame> {
|
||||
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();
|
||||
|
||||
@ -25,6 +25,7 @@ VideoDecoderFactoryWrapper::VideoDecoderFactoryWrapper(
|
||||
JNIEnv* jni,
|
||||
const JavaRef<jobject>& decoder_factory)
|
||||
: decoder_factory_(jni, decoder_factory) {}
|
||||
VideoDecoderFactoryWrapper::~VideoDecoderFactoryWrapper() = default;
|
||||
|
||||
std::unique_ptr<VideoDecoder> VideoDecoderFactoryWrapper::CreateVideoDecoder(
|
||||
const SdpVideoFormat& format) {
|
||||
|
||||
@ -25,6 +25,7 @@ class VideoDecoderFactoryWrapper : public VideoDecoderFactory {
|
||||
public:
|
||||
VideoDecoderFactoryWrapper(JNIEnv* jni,
|
||||
const JavaRef<jobject>& decoder_factory);
|
||||
~VideoDecoderFactoryWrapper() override;
|
||||
|
||||
std::vector<SdpVideoFormat> GetSupportedFormats() const override;
|
||||
std::unique_ptr<VideoDecoder> CreateVideoDecoder(
|
||||
|
||||
@ -50,6 +50,8 @@ VideoDecoderWrapper::VideoDecoderWrapper(JNIEnv* jni,
|
||||
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 @@ void VideoDecoderWrapper::OnDecodedFrame(
|
||||
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) {
|
||||
|
||||
@ -28,6 +28,7 @@ namespace jni {
|
||||
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 @@ class VideoDecoderWrapper : public VideoDecoder {
|
||||
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_);
|
||||
|
||||
@ -31,6 +31,7 @@ VideoEncoderFactoryWrapper::VideoEncoderFactoryWrapper(
|
||||
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 @@ std::unique_ptr<VideoEncoder> VideoEncoderFactoryWrapper::CreateVideoEncoder(
|
||||
return JavaToNativeVideoEncoder(jni, encoder);
|
||||
}
|
||||
|
||||
std::vector<SdpVideoFormat> VideoEncoderFactoryWrapper::GetSupportedFormats()
|
||||
const {
|
||||
return supported_formats_;
|
||||
}
|
||||
|
||||
VideoEncoderFactory::CodecInfo VideoEncoderFactoryWrapper::QueryVideoEncoder(
|
||||
const SdpVideoFormat& format) const {
|
||||
JNIEnv* jni = AttachCurrentThreadIfNeeded();
|
||||
|
||||
@ -27,14 +27,13 @@ class VideoEncoderFactoryWrapper : public VideoEncoderFactory {
|
||||
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;
|
||||
|
||||
|
||||
@ -43,6 +43,7 @@ VideoEncoderWrapper::VideoEncoderWrapper(JNIEnv* jni,
|
||||
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 @@ VideoEncoderWrapper::ScalingSettings VideoEncoderWrapper::GetScalingSettings()
|
||||
}
|
||||
}
|
||||
|
||||
bool VideoEncoderWrapper::SupportsNativeHandle() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
const char* VideoEncoderWrapper::ImplementationName() const {
|
||||
return implementation_name_.c_str();
|
||||
}
|
||||
|
||||
@ -30,6 +30,7 @@ namespace jni {
|
||||
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 @@ class VideoEncoderWrapper : public VideoEncoder {
|
||||
|
||||
ScalingSettings GetScalingSettings() const override;
|
||||
|
||||
bool SupportsNativeHandle() const override { return true; }
|
||||
bool SupportsNativeHandle() const override;
|
||||
|
||||
// Should only be called by JNI.
|
||||
void OnEncodedFrame(JNIEnv* jni,
|
||||
|
||||
@ -49,7 +49,7 @@ class AndroidVideoI420Buffer : public I420BufferInterface {
|
||||
int width,
|
||||
int height,
|
||||
const JavaRef<jobject>& j_video_frame_buffer);
|
||||
~AndroidVideoI420Buffer();
|
||||
~AndroidVideoI420Buffer() override;
|
||||
|
||||
private:
|
||||
const uint8_t* DataY() const override { return data_y_; }
|
||||
|
||||
Reference in New Issue
Block a user