Fix compile errors in ViE with latest clang.
Rolling to the latest Chromium picks up a new clang, which catches a fresh error:
error: 'reinterpret_cast' to class 'webrtc::VideoEngineImpl *' from its base at non-zero offset 'webrtc::VideoEngine *' behaves differently from 'static_cast' [-Werror,-Wreinterpret-base-class]
VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../webrtc/video_engine/vie_codec_impl.cc:36:31: note: use 'static_cast' to adjust the pointer correctly while downcasting
VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
^~~~~~~~~~~~~~~~
static_cast
This was triggered by André's change here:
https://code.google.com/p/webrtc/source/detail?r=3986
which made VideoEngineImpl a derived class of VideoEngine (good).
Picked up one other error as well:
error: implicit conversion from 'long' to 'int' changes value from 9223372036854775807 to -1 [-Werror,-Wconstant-conversion]
AutoTestSleep(std::numeric_limits<long>::max());
~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This fixes the errors and is required before stable can be rolled in Chromium.
TBR=mflodman,andresp
Review URL: https://webrtc-codereview.appspot.com/1450004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3989 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/video_engine/test/auto_test/source/vie_autotest_custom_call.cc b/webrtc/video_engine/test/auto_test/source/vie_autotest_custom_call.cc
index 5e0642a..368fa89 100644
--- a/webrtc/video_engine/test/auto_test/source/vie_autotest_custom_call.cc
+++ b/webrtc/video_engine/test/auto_test/source/vie_autotest_custom_call.cc
@@ -578,7 +578,7 @@
"Keep the call running indefinitely\n")
.WithDefault("Keep the call running indefinitely").Choose();
if (selection == 3) {
- AutoTestSleep(std::numeric_limits<long>::max());
+ AutoTestSleep(std::numeric_limits<int>::max());
}
while (selection == 2) {
diff --git a/webrtc/video_engine/vie_base_impl.cc b/webrtc/video_engine/vie_base_impl.cc
index 82d9ab9..617ab40 100644
--- a/webrtc/video_engine/vie_base_impl.cc
+++ b/webrtc/video_engine/vie_base_impl.cc
@@ -35,7 +35,7 @@
if (!video_engine) {
return NULL;
}
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
ViEBaseImpl* vie_base_impl = vie_impl;
(*vie_base_impl)++; // Increase ref count.
diff --git a/webrtc/video_engine/vie_capture_impl.cc b/webrtc/video_engine/vie_capture_impl.cc
index 6c17f14..b5b6c02 100644
--- a/webrtc/video_engine/vie_capture_impl.cc
+++ b/webrtc/video_engine/vie_capture_impl.cc
@@ -28,7 +28,7 @@
if (!video_engine) {
return NULL;
}
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
ViECaptureImpl* vie_capture_impl = vie_impl;
// Increase ref count.
(*vie_capture_impl)++;
diff --git a/webrtc/video_engine/vie_codec_impl.cc b/webrtc/video_engine/vie_codec_impl.cc
index 67ac417..77b4d89 100644
--- a/webrtc/video_engine/vie_codec_impl.cc
+++ b/webrtc/video_engine/vie_codec_impl.cc
@@ -33,7 +33,7 @@
if (!video_engine) {
return NULL;
}
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
ViECodecImpl* vie_codec_impl = vie_impl;
// Increase ref count.
(*vie_codec_impl)++;
diff --git a/webrtc/video_engine/vie_encryption_impl.cc b/webrtc/video_engine/vie_encryption_impl.cc
index 8e14aa0..93e7ed8 100644
--- a/webrtc/video_engine/vie_encryption_impl.cc
+++ b/webrtc/video_engine/vie_encryption_impl.cc
@@ -25,7 +25,7 @@
if (video_engine == NULL) {
return NULL;
}
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
ViEEncryptionImpl* vie_encryption_impl = vie_impl;
// Increase ref count.
(*vie_encryption_impl)++;
diff --git a/webrtc/video_engine/vie_external_codec_impl.cc b/webrtc/video_engine/vie_external_codec_impl.cc
index f7f8fee..4d0bebe 100644
--- a/webrtc/video_engine/vie_external_codec_impl.cc
+++ b/webrtc/video_engine/vie_external_codec_impl.cc
@@ -26,7 +26,7 @@
if (video_engine == NULL) {
return NULL;
}
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
ViEExternalCodecImpl* vie_external_codec_impl = vie_impl;
// Increase ref count.
(*vie_external_codec_impl)++;
diff --git a/webrtc/video_engine/vie_image_process_impl.cc b/webrtc/video_engine/vie_image_process_impl.cc
index 79f574c..354a584 100644
--- a/webrtc/video_engine/vie_image_process_impl.cc
+++ b/webrtc/video_engine/vie_image_process_impl.cc
@@ -28,7 +28,7 @@
if (!video_engine) {
return NULL;
}
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
ViEImageProcessImpl* vie_image_process_impl = vie_impl;
// Increase ref count.
(*vie_image_process_impl)++;
diff --git a/webrtc/video_engine/vie_impl.cc b/webrtc/video_engine/vie_impl.cc
index d455a69..8a4067c 100644
--- a/webrtc/video_engine/vie_impl.cc
+++ b/webrtc/video_engine/vie_impl.cc
@@ -32,7 +32,7 @@
}
WEBRTC_TRACE(kTraceApiCall, kTraceVideo, kModuleId,
"VideoEngine::Delete(vie = 0x%p)", video_engine);
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
// Check all reference counters.
ViEBaseImpl* vie_base = vie_impl;
diff --git a/webrtc/video_engine/vie_network_impl.cc b/webrtc/video_engine/vie_network_impl.cc
index 9323879..3eeab17 100644
--- a/webrtc/video_engine/vie_network_impl.cc
+++ b/webrtc/video_engine/vie_network_impl.cc
@@ -31,7 +31,7 @@
if (!video_engine) {
return NULL;
}
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
ViENetworkImpl* vie_networkImpl = vie_impl;
// Increase ref count.
(*vie_networkImpl)++;
diff --git a/webrtc/video_engine/vie_render_impl.cc b/webrtc/video_engine/vie_render_impl.cc
index 4b400cc..260a3b8 100644
--- a/webrtc/video_engine/vie_render_impl.cc
+++ b/webrtc/video_engine/vie_render_impl.cc
@@ -33,7 +33,7 @@
if (!video_engine) {
return NULL;
}
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
ViERenderImpl* vie_render_impl = vie_impl;
// Increase ref count.
(*vie_render_impl)++;
diff --git a/webrtc/video_engine/vie_rtp_rtcp_impl.cc b/webrtc/video_engine/vie_rtp_rtcp_impl.cc
index 4233894..5a4d528 100644
--- a/webrtc/video_engine/vie_rtp_rtcp_impl.cc
+++ b/webrtc/video_engine/vie_rtp_rtcp_impl.cc
@@ -79,7 +79,7 @@
if (!video_engine) {
return NULL;
}
- VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
+ VideoEngineImpl* vie_impl = static_cast<VideoEngineImpl*>(video_engine);
ViERTP_RTCPImpl* vie_rtpimpl = vie_impl;
// Increase ref count.
(*vie_rtpimpl)++;