Remove typedefs.h from webrtc/ root (part 1)
Split out webrtc-specific #defines from typedefs.h, into rtc_base/annotations.h and rtc_base/arch.h. Also removes the curiously named WEBRTC_CPU_DETECTION #define. BUG=webrtc:6854 Review-Url: https://codereview.webrtc.org/3007253002 Cr-Commit-Position: refs/heads/master@{#19752}
This commit is contained in:
@ -160,12 +160,12 @@ SincResampler::SincResampler(double io_sample_rate_ratio,
|
|||||||
AlignedMalloc(sizeof(float) * kKernelStorageSize, 16))),
|
AlignedMalloc(sizeof(float) * kKernelStorageSize, 16))),
|
||||||
input_buffer_(static_cast<float*>(
|
input_buffer_(static_cast<float*>(
|
||||||
AlignedMalloc(sizeof(float) * input_buffer_size_, 16))),
|
AlignedMalloc(sizeof(float) * input_buffer_size_, 16))),
|
||||||
#if defined(WEBRTC_CPU_DETECTION)
|
#if (defined(WEBRTC_ARCH_X86_FAMILY) && !defined(__SSE2__))
|
||||||
convolve_proc_(nullptr),
|
convolve_proc_(nullptr),
|
||||||
#endif
|
#endif
|
||||||
r1_(input_buffer_.get()),
|
r1_(input_buffer_.get()),
|
||||||
r2_(input_buffer_.get() + kKernelSize / 2) {
|
r2_(input_buffer_.get() + kKernelSize / 2) {
|
||||||
#if defined(WEBRTC_CPU_DETECTION)
|
#if (defined(WEBRTC_ARCH_X86_FAMILY) && !defined(__SSE2__))
|
||||||
InitializeCPUSpecificFeatures();
|
InitializeCPUSpecificFeatures();
|
||||||
RTC_DCHECK(convolve_proc_);
|
RTC_DCHECK(convolve_proc_);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -149,7 +149,7 @@ class SincResampler {
|
|||||||
// TODO(ajm): Move to using a global static which must only be initialized
|
// TODO(ajm): Move to using a global static which must only be initialized
|
||||||
// once by the user. We're not doing this initially, because we don't have
|
// once by the user. We're not doing this initially, because we don't have
|
||||||
// e.g. a LazyInstance helper in webrtc.
|
// e.g. a LazyInstance helper in webrtc.
|
||||||
#if defined(WEBRTC_CPU_DETECTION)
|
#if (defined(WEBRTC_ARCH_X86_FAMILY) && !defined(__SSE2__))
|
||||||
typedef float (*ConvolveProc)(const float*, const float*, const float*,
|
typedef float (*ConvolveProc)(const float*, const float*, const float*,
|
||||||
double);
|
double);
|
||||||
ConvolveProc convolve_proc_;
|
ConvolveProc convolve_proc_;
|
||||||
|
|||||||
@ -935,7 +935,7 @@ int NetEqImpl::GetAudioInternal(AudioFrame* audio_frame, bool* muted) {
|
|||||||
static_cast<uint32_t>(output_size_samples_));
|
static_cast<uint32_t>(output_size_samples_));
|
||||||
// Skipping break on purpose. Execution should move on into the
|
// Skipping break on purpose. Execution should move on into the
|
||||||
// next case.
|
// next case.
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
}
|
}
|
||||||
case kAudioRepetition: {
|
case kAudioRepetition: {
|
||||||
// TODO(hlundin): Write test for this.
|
// TODO(hlundin): Write test for this.
|
||||||
|
|||||||
@ -434,12 +434,12 @@ void VoiceProcessingAudioUnit::DisposeAudioUnit() {
|
|||||||
case kStarted:
|
case kStarted:
|
||||||
Stop();
|
Stop();
|
||||||
// Fall through.
|
// Fall through.
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
case kInitialized:
|
case kInitialized:
|
||||||
Uninitialize();
|
Uninitialize();
|
||||||
break;
|
break;
|
||||||
case kUninitialized:
|
case kUninitialized:
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
case kInitRequired:
|
case kInitRequired:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -97,7 +97,7 @@ BweSender* CreateBweSender(BandwidthEstimatorType estimator,
|
|||||||
case kBbrEstimator:
|
case kBbrEstimator:
|
||||||
return new BbrBweSender(observer, clock);
|
return new BbrBweSender(observer, clock);
|
||||||
case kTcpEstimator:
|
case kTcpEstimator:
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
case kNullEstimator:
|
case kNullEstimator:
|
||||||
return new NullBweSender();
|
return new NullBweSender();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -574,7 +574,7 @@ bool RtpDepacketizerH264::ProcessStapAOrSingleNalu(
|
|||||||
}
|
}
|
||||||
case H264::NaluType::kIdr:
|
case H264::NaluType::kIdr:
|
||||||
parsed_payload->frame_type = kVideoFrameKey;
|
parsed_payload->frame_type = kVideoFrameKey;
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
case H264::NaluType::kSlice: {
|
case H264::NaluType::kSlice: {
|
||||||
rtc::Optional<uint32_t> pps_id = PpsParser::ParsePpsIdFromSlice(
|
rtc::Optional<uint32_t> pps_id = PpsParser::ParsePpsIdFromSlice(
|
||||||
&payload_data[start_offset], end_offset - start_offset);
|
&payload_data[start_offset], end_offset - start_offset);
|
||||||
|
|||||||
@ -749,7 +749,7 @@ VCMFrameBufferEnum VCMJitterBuffer::InsertPacket(const VCMPacket& packet,
|
|||||||
frame_event_->Set();
|
frame_event_->Set();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
}
|
}
|
||||||
// Note: There is no break here - continuing to kDecodableSession.
|
// Note: There is no break here - continuing to kDecodableSession.
|
||||||
case kDecodableSession: {
|
case kDecodableSession: {
|
||||||
|
|||||||
@ -71,7 +71,7 @@ void RtpFrameReferenceFinder::RetryStashedFrames() {
|
|||||||
case kHandOff:
|
case kHandOff:
|
||||||
complete_frame = true;
|
complete_frame = true;
|
||||||
frame_callback_->OnCompleteFrame(std::move(*frame_it));
|
frame_callback_->OnCompleteFrame(std::move(*frame_it));
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
case kDrop:
|
case kDrop:
|
||||||
frame_it = stashed_frames_.erase(frame_it);
|
frame_it = stashed_frames_.erase(frame_it);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,6 +98,8 @@ rtc_static_library("rtc_base_approved") {
|
|||||||
all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
|
all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
|
||||||
|
|
||||||
sources = [
|
sources = [
|
||||||
|
"annotations.h",
|
||||||
|
"arch.h",
|
||||||
"array_view.h",
|
"array_view.h",
|
||||||
"arraysize.h",
|
"arraysize.h",
|
||||||
"atomicops.h",
|
"atomicops.h",
|
||||||
|
|||||||
45
webrtc/rtc_base/annotations.h
Normal file
45
webrtc/rtc_base/annotations.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by a BSD-style license
|
||||||
|
* that can be found in the LICENSE file in the root of the source
|
||||||
|
* tree. An additional intellectual property rights grant can be found
|
||||||
|
* in the file PATENTS. All contributing project authors may
|
||||||
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef WEBRTC_RTC_BASE_ANNOTATIONS_H_
|
||||||
|
#define WEBRTC_RTC_BASE_ANNOTATIONS_H_
|
||||||
|
|
||||||
|
// Annotate a function indicating the caller must examine the return value.
|
||||||
|
// Use like:
|
||||||
|
// int foo() RTC_WARN_UNUSED_RESULT;
|
||||||
|
// To explicitly ignore a result, cast to void.
|
||||||
|
// TODO(kwiberg): Remove when we can use [[nodiscard]] from C++17.
|
||||||
|
#if defined(__clang__)
|
||||||
|
#define RTC_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
// gcc has a __warn_unused_result__ attribute, but you can't quiet it by
|
||||||
|
// casting to void, so we don't use it.
|
||||||
|
#define RTC_WARN_UNUSED_RESULT
|
||||||
|
#else
|
||||||
|
#define RTC_WARN_UNUSED_RESULT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Macro to be used for switch-case fallthrough (required for enabling
|
||||||
|
// -Wimplicit-fallthrough warning on Clang).
|
||||||
|
#if defined(__clang__)
|
||||||
|
#define RTC_FALLTHROUGH() [[clang::fallthrough]]
|
||||||
|
#else
|
||||||
|
#define RTC_FALLTHROUGH() do { } while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Prevent the compiler from warning about an unused variable. For example:
|
||||||
|
// int result = DoSomething();
|
||||||
|
// assert(result == 17);
|
||||||
|
// RTC_UNUSED(result);
|
||||||
|
// Note: In most cases it is better to remove the unused variable rather than
|
||||||
|
// suppressing the compiler warning.
|
||||||
|
#define RTC_UNUSED(x) static_cast<void>(x)
|
||||||
|
|
||||||
|
#endif // WEBRTC_RTC_BASE_ANNOTATIONS_H_
|
||||||
58
webrtc/rtc_base/arch.h
Normal file
58
webrtc/rtc_base/arch.h
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by a BSD-style license
|
||||||
|
* that can be found in the LICENSE file in the root of the source
|
||||||
|
* tree. An additional intellectual property rights grant can be found
|
||||||
|
* in the file PATENTS. All contributing project authors may
|
||||||
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// This file contains platform-specific defines.
|
||||||
|
// Much of it is derived from Chromium's build/build_config.h.
|
||||||
|
|
||||||
|
#ifndef WEBRTC_RTC_BASE_ARCH_H_
|
||||||
|
#define WEBRTC_RTC_BASE_ARCH_H_
|
||||||
|
|
||||||
|
// Processor architecture detection. For more info on what's defined, see:
|
||||||
|
// http://msdn.microsoft.com/en-us/library/b0084kay.aspx
|
||||||
|
// http://www.agner.org/optimize/calling_conventions.pdf
|
||||||
|
// or with gcc, run: "echo | gcc -E -dM -"
|
||||||
|
#if defined(_M_X64) || defined(__x86_64__)
|
||||||
|
#define WEBRTC_ARCH_X86_FAMILY
|
||||||
|
#define WEBRTC_ARCH_X86_64
|
||||||
|
#define WEBRTC_ARCH_64_BITS
|
||||||
|
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
||||||
|
#elif defined(__aarch64__)
|
||||||
|
#define WEBRTC_ARCH_ARM_FAMILY
|
||||||
|
#define WEBRTC_ARCH_64_BITS
|
||||||
|
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
||||||
|
#elif defined(_M_IX86) || defined(__i386__)
|
||||||
|
#define WEBRTC_ARCH_X86_FAMILY
|
||||||
|
#define WEBRTC_ARCH_X86
|
||||||
|
#define WEBRTC_ARCH_32_BITS
|
||||||
|
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
||||||
|
#elif defined(__ARMEL__)
|
||||||
|
#define WEBRTC_ARCH_ARM_FAMILY
|
||||||
|
#define WEBRTC_ARCH_32_BITS
|
||||||
|
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
||||||
|
#elif defined(__MIPSEL__)
|
||||||
|
#define WEBRTC_ARCH_MIPS_FAMILY
|
||||||
|
#if defined(__LP64__)
|
||||||
|
#define WEBRTC_ARCH_64_BITS
|
||||||
|
#else
|
||||||
|
#define WEBRTC_ARCH_32_BITS
|
||||||
|
#endif
|
||||||
|
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
||||||
|
#elif defined(__pnacl__)
|
||||||
|
#define WEBRTC_ARCH_32_BITS
|
||||||
|
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
||||||
|
#else
|
||||||
|
#error Please add support for your architecture in rtc_base/arch.h
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !(defined(WEBRTC_ARCH_LITTLE_ENDIAN) ^ defined(WEBRTC_ARCH_BIG_ENDIAN))
|
||||||
|
#error Define either WEBRTC_ARCH_LITTLE_ENDIAN or WEBRTC_ARCH_BIG_ENDIAN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // WEBRTC_RTC_BASE_ARCH_H_
|
||||||
@ -100,7 +100,7 @@ FatalMessage::FatalMessage(const char* file, int line, std::string* result) {
|
|||||||
delete result;
|
delete result;
|
||||||
}
|
}
|
||||||
|
|
||||||
NO_RETURN FatalMessage::~FatalMessage() {
|
RTC_NO_RETURN FatalMessage::~FatalMessage() {
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
stream_ << std::endl << "#" << std::endl;
|
stream_ << std::endl << "#" << std::endl;
|
||||||
@ -136,6 +136,8 @@ template std::string* MakeCheckOpString<std::string, std::string>(
|
|||||||
} // namespace rtc
|
} // namespace rtc
|
||||||
|
|
||||||
// Function to call from the C version of the RTC_CHECK and RTC_DCHECK macros.
|
// Function to call from the C version of the RTC_CHECK and RTC_DCHECK macros.
|
||||||
NO_RETURN void rtc_FatalMessage(const char* file, int line, const char* msg) {
|
RTC_NO_RETURN void rtc_FatalMessage(const char* file,
|
||||||
|
int line,
|
||||||
|
const char* msg) {
|
||||||
rtc::FatalMessage(file, line).stream() << msg;
|
rtc::FatalMessage(file, line).stream() << msg;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,8 +11,6 @@
|
|||||||
#ifndef WEBRTC_RTC_BASE_CHECKS_H_
|
#ifndef WEBRTC_RTC_BASE_CHECKS_H_
|
||||||
#define WEBRTC_RTC_BASE_CHECKS_H_
|
#define WEBRTC_RTC_BASE_CHECKS_H_
|
||||||
|
|
||||||
#include "webrtc/typedefs.h"
|
|
||||||
|
|
||||||
// If you for some reson need to know if DCHECKs are on, test the value of
|
// If you for some reson need to know if DCHECKs are on, test the value of
|
||||||
// RTC_DCHECK_IS_ON. (Test its value, not if it's defined; it'll always be
|
// RTC_DCHECK_IS_ON. (Test its value, not if it's defined; it'll always be
|
||||||
// defined, to either a true or a false value.)
|
// defined, to either a true or a false value.)
|
||||||
@ -22,10 +20,20 @@
|
|||||||
#define RTC_DCHECK_IS_ON 0
|
#define RTC_DCHECK_IS_ON 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Annotate a function that will not return control flow to the caller.
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#define RTC_NO_RETURN __declspec(noreturn)
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
#define RTC_NO_RETURN __attribute__ ((__noreturn__))
|
||||||
|
#else
|
||||||
|
#define RTC_NO_RETURN
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
NO_RETURN void rtc_FatalMessage(const char* file, int line, const char* msg);
|
RTC_NO_RETURN
|
||||||
|
void rtc_FatalMessage(const char* file, int line, const char* msg);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
#endif
|
#endif
|
||||||
@ -232,7 +240,7 @@ class FatalMessage {
|
|||||||
FatalMessage(const char* file, int line);
|
FatalMessage(const char* file, int line);
|
||||||
// Used for RTC_CHECK_EQ(), etc. Takes ownership of the given string.
|
// Used for RTC_CHECK_EQ(), etc. Takes ownership of the given string.
|
||||||
FatalMessage(const char* file, int line, std::string* result);
|
FatalMessage(const char* file, int line, std::string* result);
|
||||||
NO_RETURN ~FatalMessage();
|
RTC_NO_RETURN ~FatalMessage();
|
||||||
|
|
||||||
std::ostream& stream() { return stream_; }
|
std::ostream& stream() { return stream_; }
|
||||||
|
|
||||||
|
|||||||
@ -537,7 +537,7 @@ bool HttpBase::DoReceiveLoop(HttpError* error) {
|
|||||||
case SR_EOS:
|
case SR_EOS:
|
||||||
// Clean close, with no error.
|
// Clean close, with no error.
|
||||||
read_error = 0;
|
read_error = 0;
|
||||||
FALLTHROUGH(); // Fall through to HandleStreamClose.
|
RTC_FALLTHROUGH(); // Fall through to HandleStreamClose.
|
||||||
case SR_ERROR:
|
case SR_ERROR:
|
||||||
*error = HandleStreamClose(read_error);
|
*error = HandleStreamClose(read_error);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -8,118 +8,14 @@
|
|||||||
* be found in the AUTHORS file in the root of the source tree.
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// This file contains platform-specific typedefs and defines.
|
|
||||||
// Much of it is derived from Chromium's build/build_config.h.
|
|
||||||
|
|
||||||
#ifndef WEBRTC_TYPEDEFS_H_
|
#ifndef WEBRTC_TYPEDEFS_H_
|
||||||
#define WEBRTC_TYPEDEFS_H_
|
#define WEBRTC_TYPEDEFS_H_
|
||||||
|
|
||||||
// Processor architecture detection. For more info on what's defined, see:
|
// TODO(solenberg): Delete this file once downstream projects have been updated.
|
||||||
// http://msdn.microsoft.com/en-us/library/b0084kay.aspx
|
|
||||||
// http://www.agner.org/optimize/calling_conventions.pdf
|
|
||||||
// or with gcc, run: "echo | gcc -E -dM -"
|
|
||||||
#if defined(_M_X64) || defined(__x86_64__)
|
|
||||||
#define WEBRTC_ARCH_X86_FAMILY
|
|
||||||
#define WEBRTC_ARCH_X86_64
|
|
||||||
#define WEBRTC_ARCH_64_BITS
|
|
||||||
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
|
||||||
#elif defined(__aarch64__)
|
|
||||||
#define WEBRTC_ARCH_ARM_FAMILY
|
|
||||||
#define WEBRTC_ARCH_64_BITS
|
|
||||||
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
|
||||||
#elif defined(_M_IX86) || defined(__i386__)
|
|
||||||
#define WEBRTC_ARCH_X86_FAMILY
|
|
||||||
#define WEBRTC_ARCH_X86
|
|
||||||
#define WEBRTC_ARCH_32_BITS
|
|
||||||
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
|
||||||
#elif defined(__ARMEL__)
|
|
||||||
#define WEBRTC_ARCH_ARM_FAMILY
|
|
||||||
#define WEBRTC_ARCH_32_BITS
|
|
||||||
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
|
||||||
#elif defined(__MIPSEL__)
|
|
||||||
#define WEBRTC_ARCH_MIPS_FAMILY
|
|
||||||
#if defined(__LP64__)
|
|
||||||
#define WEBRTC_ARCH_64_BITS
|
|
||||||
#else
|
|
||||||
#define WEBRTC_ARCH_32_BITS
|
|
||||||
#endif
|
|
||||||
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
|
||||||
#elif defined(__pnacl__)
|
|
||||||
#define WEBRTC_ARCH_32_BITS
|
|
||||||
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
|
||||||
#else
|
|
||||||
#error Please add support for your architecture in typedefs.h
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !(defined(WEBRTC_ARCH_LITTLE_ENDIAN) ^ defined(WEBRTC_ARCH_BIG_ENDIAN))
|
|
||||||
#error Define either WEBRTC_ARCH_LITTLE_ENDIAN or WEBRTC_ARCH_BIG_ENDIAN
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// TODO(zhongwei.yao): WEBRTC_CPU_DETECTION is only used in one place; we should
|
|
||||||
// probably just remove it.
|
|
||||||
#if (defined(WEBRTC_ARCH_X86_FAMILY) && !defined(__SSE2__))
|
|
||||||
#define WEBRTC_CPU_DETECTION
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
// Annotate a function indicating the caller must examine the return value.
|
#include "webrtc/rtc_base/arch.h"
|
||||||
// Use like:
|
#include "webrtc/rtc_base/annotations.h"
|
||||||
// int foo() RTC_WARN_UNUSED_RESULT;
|
|
||||||
// To explicitly ignore a result, cast to void.
|
|
||||||
// TODO(kwiberg): Remove when we can use [[nodiscard]] from C++17.
|
|
||||||
#if defined(__clang__)
|
|
||||||
#define RTC_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
// gcc has a __warn_unused_result__ attribute, but you can't quiet it by
|
|
||||||
// casting to void, so we don't use it.
|
|
||||||
#define RTC_WARN_UNUSED_RESULT
|
|
||||||
#else
|
|
||||||
#define RTC_WARN_UNUSED_RESULT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Put after a variable that might not be used, to prevent compiler warnings:
|
|
||||||
// int result ATTRIBUTE_UNUSED = DoSomething();
|
|
||||||
// assert(result == 17);
|
|
||||||
// Deprecated since it only works with GCC & clang. See RTC_UNUSED below.
|
|
||||||
// TODO(terelius): Remove.
|
|
||||||
#ifndef ATTRIBUTE_UNUSED
|
|
||||||
#if defined(__GNUC__) || defined(__clang__)
|
|
||||||
#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
|
||||||
#else
|
|
||||||
#define ATTRIBUTE_UNUSED
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Macro to be used for switch-case fallthrough (required for enabling
|
|
||||||
// -Wimplicit-fallthrough warning on Clang).
|
|
||||||
#ifndef FALLTHROUGH
|
|
||||||
#if defined(__clang__)
|
|
||||||
#define FALLTHROUGH() [[clang::fallthrough]]
|
|
||||||
#else
|
|
||||||
#define FALLTHROUGH() do { } while (0)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef NO_RETURN
|
|
||||||
// Annotate a function that will not return control flow to the caller.
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
#define NO_RETURN __declspec(noreturn)
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
#define NO_RETURN __attribute__ ((__noreturn__))
|
|
||||||
#else
|
|
||||||
#define NO_RETURN
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Prevent the compiler from warning about an unused variable. For example:
|
|
||||||
// int result = DoSomething();
|
|
||||||
// assert(result == 17);
|
|
||||||
// RTC_UNUSED(result);
|
|
||||||
// Note: In most cases it is better to remove the unused variable rather than
|
|
||||||
// suppressing the compiler warning.
|
|
||||||
#ifndef RTC_UNUSED
|
|
||||||
#define RTC_UNUSED(x) static_cast<void>(x)
|
|
||||||
#endif // RTC_UNUSED
|
|
||||||
|
|
||||||
#endif // WEBRTC_TYPEDEFS_H_
|
#endif // WEBRTC_TYPEDEFS_H_
|
||||||
|
|||||||
@ -268,7 +268,7 @@ int32_t RtpVideoStreamReceiver::OnReceivedPayloadData(
|
|||||||
switch (tracker_.CopyAndFixBitstream(&packet)) {
|
switch (tracker_.CopyAndFixBitstream(&packet)) {
|
||||||
case video_coding::H264SpsPpsTracker::kRequestKeyframe:
|
case video_coding::H264SpsPpsTracker::kRequestKeyframe:
|
||||||
keyframe_request_sender_->RequestKeyFrame();
|
keyframe_request_sender_->RequestKeyFrame();
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
case video_coding::H264SpsPpsTracker::kDrop:
|
case video_coding::H264SpsPpsTracker::kDrop:
|
||||||
return 0;
|
return 0;
|
||||||
case video_coding::H264SpsPpsTracker::kInsert:
|
case video_coding::H264SpsPpsTracker::kInsert:
|
||||||
|
|||||||
@ -978,7 +978,7 @@ void VideoStreamEncoder::AdaptDown(AdaptReason reason) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Scale down resolution.
|
// Scale down resolution.
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
}
|
}
|
||||||
case VideoSendStream::DegradationPreference::kMaintainFramerate:
|
case VideoSendStream::DegradationPreference::kMaintainFramerate:
|
||||||
// Scale down resolution.
|
// Scale down resolution.
|
||||||
@ -1056,7 +1056,7 @@ void VideoStreamEncoder::AdaptUp(AdaptReason reason) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Scale up resolution.
|
// Scale up resolution.
|
||||||
FALLTHROUGH();
|
RTC_FALLTHROUGH();
|
||||||
}
|
}
|
||||||
case VideoSendStream::DegradationPreference::kMaintainFramerate: {
|
case VideoSendStream::DegradationPreference::kMaintainFramerate: {
|
||||||
// Scale up resolution.
|
// Scale up resolution.
|
||||||
|
|||||||
Reference in New Issue
Block a user