VideoRenderCallback::RenderFrame: Make I420VideoFrame& ref const.
RenderFrame should not modify the I420VideoFrame (and we don't).
This CL changes the declaration of RenderFrame from:
int32_t RenderFrame(const uint32_t streamId, I420VideoFrame& videoFrame)
to:
int32_t RenderFrame(const uint32_t streamId, const I420VideoFrame& videoFrame)
BUG=1128
R=mflodman@webrtc.org, perkj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/46689005
Cr-Commit-Position: refs/heads/master@{#8902}
diff --git a/talk/media/webrtc/webrtcpassthroughrender.cc b/talk/media/webrtc/webrtcpassthroughrender.cc
index 0c6029d..179dd11 100644
--- a/talk/media/webrtc/webrtcpassthroughrender.cc
+++ b/talk/media/webrtc/webrtcpassthroughrender.cc
@@ -44,7 +44,7 @@
virtual ~PassthroughStream() {
}
virtual int32_t RenderFrame(const uint32_t stream_id,
- webrtc::I420VideoFrame& videoFrame) {
+ const webrtc::I420VideoFrame& videoFrame) {
rtc::CritScope cs(&stream_critical_);
// Send frame for rendering directly
if (running_ && renderer_) {
diff --git a/talk/media/webrtc/webrtcpassthroughrender_unittest.cc b/talk/media/webrtc/webrtcpassthroughrender_unittest.cc
index 72aa549..9bbba0e 100644
--- a/talk/media/webrtc/webrtcpassthroughrender_unittest.cc
+++ b/talk/media/webrtc/webrtcpassthroughrender_unittest.cc
@@ -44,7 +44,7 @@
}
virtual int32_t RenderFrame(const uint32_t stream_id,
- webrtc::I420VideoFrame& videoFrame) {
+ const webrtc::I420VideoFrame& videoFrame) {
++frame_num_;
LOG(INFO) << "RenderFrame stream_id: " << stream_id
<< " frame_num: " << frame_num_;
diff --git a/webrtc/modules/video_render/android/video_render_android_native_opengl2.cc b/webrtc/modules/video_render/android/video_render_android_native_opengl2.cc
index bba89d7..170b733 100644
--- a/webrtc/modules/video_render/android/video_render_android_native_opengl2.cc
+++ b/webrtc/modules/video_render/android/video_render_android_native_opengl2.cc
@@ -383,7 +383,7 @@
int32_t AndroidNativeOpenGl2Channel::RenderFrame(
const uint32_t /*streamId*/,
- I420VideoFrame& videoFrame) {
+ const I420VideoFrame& videoFrame) {
// WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer,_id, "%s:" ,__FUNCTION__);
_renderCritSect.Enter();
_bufferToRender = videoFrame;
diff --git a/webrtc/modules/video_render/android/video_render_android_native_opengl2.h b/webrtc/modules/video_render/android/video_render_android_native_opengl2.h
index f5e5b57e..a006f2e 100644
--- a/webrtc/modules/video_render/android/video_render_android_native_opengl2.h
+++ b/webrtc/modules/video_render/android/video_render_android_native_opengl2.h
@@ -35,7 +35,7 @@
//Implement VideoRenderCallback
virtual int32_t RenderFrame(
const uint32_t streamId,
- I420VideoFrame& videoFrame);
+ const I420VideoFrame& videoFrame);
//Implements AndroidStream
virtual void DeliverFrame(JNIEnv* jniEnv);
diff --git a/webrtc/modules/video_render/android/video_render_android_surface_view.cc b/webrtc/modules/video_render/android/video_render_android_surface_view.cc
index c430702..eca8a1a 100644
--- a/webrtc/modules/video_render/android/video_render_android_surface_view.cc
+++ b/webrtc/modules/video_render/android/video_render_android_surface_view.cc
@@ -412,7 +412,7 @@
int32_t AndroidSurfaceViewChannel::RenderFrame(
const uint32_t /*streamId*/,
- I420VideoFrame& videoFrame) {
+ const I420VideoFrame& videoFrame) {
// WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer,_id, "%s:" ,__FUNCTION__);
_renderCritSect.Enter();
_bufferToRender = videoFrame;
diff --git a/webrtc/modules/video_render/android/video_render_android_surface_view.h b/webrtc/modules/video_render/android/video_render_android_surface_view.h
index ac58bca..acafa46 100644
--- a/webrtc/modules/video_render/android/video_render_android_surface_view.h
+++ b/webrtc/modules/video_render/android/video_render_android_surface_view.h
@@ -33,7 +33,7 @@
//Implement VideoRenderCallback
virtual int32_t RenderFrame(const uint32_t streamId,
- I420VideoFrame& videoFrame);
+ const I420VideoFrame& videoFrame);
//Implements AndroidStream
virtual void DeliverFrame(JNIEnv* jniEnv);
diff --git a/webrtc/modules/video_render/external/video_render_external_impl.cc b/webrtc/modules/video_render/external/video_render_external_impl.cc
index 04ae205..d37b30f 100644
--- a/webrtc/modules/video_render/external/video_render_external_impl.cc
+++ b/webrtc/modules/video_render/external/video_render_external_impl.cc
@@ -188,9 +188,8 @@
}
// VideoRenderCallback
-int32_t VideoRenderExternalImpl::RenderFrame(
- const uint32_t streamId,
- I420VideoFrame& videoFrame)
+int32_t VideoRenderExternalImpl::RenderFrame(const uint32_t streamId,
+ const I420VideoFrame& videoFrame)
{
return 0;
}
diff --git a/webrtc/modules/video_render/external/video_render_external_impl.h b/webrtc/modules/video_render/external/video_render_external_impl.h
index e83d842..43182b1 100644
--- a/webrtc/modules/video_render/external/video_render_external_impl.h
+++ b/webrtc/modules/video_render/external/video_render_external_impl.h
@@ -115,7 +115,7 @@
// VideoRenderCallback
virtual int32_t RenderFrame(const uint32_t streamId,
- I420VideoFrame& videoFrame);
+ const I420VideoFrame& videoFrame);
private:
CriticalSectionWrapper& _critSect;
diff --git a/webrtc/modules/video_render/include/video_render_defines.h b/webrtc/modules/video_render/include/video_render_defines.h
index e5da2bb..4eb8409 100644
--- a/webrtc/modules/video_render/include/video_render_defines.h
+++ b/webrtc/modules/video_render/include/video_render_defines.h
@@ -49,7 +49,7 @@
{
public:
virtual int32_t RenderFrame(const uint32_t streamId,
- I420VideoFrame& videoFrame) = 0;
+ const I420VideoFrame& videoFrame) = 0;
protected:
virtual ~VideoRenderCallback()
diff --git a/webrtc/modules/video_render/incoming_video_stream.cc b/webrtc/modules/video_render/incoming_video_stream.cc
index 3fcdac1..04fc6ec 100644
--- a/webrtc/modules/video_render/incoming_video_stream.cc
+++ b/webrtc/modules/video_render/incoming_video_stream.cc
@@ -85,7 +85,7 @@
}
int32_t IncomingVideoStream::RenderFrame(const uint32_t stream_id,
- I420VideoFrame& video_frame) {
+ const I420VideoFrame& video_frame) {
CriticalSectionScoped csS(&stream_critsect_);
WEBRTC_TRACE(kTraceStream, kTraceVideoRenderer, module_id_,
"%s for stream %d, render time: %u", __FUNCTION__, stream_id_,
diff --git a/webrtc/modules/video_render/incoming_video_stream.h b/webrtc/modules/video_render/incoming_video_stream.h
index 5f7a001..833ffe2 100644
--- a/webrtc/modules/video_render/incoming_video_stream.h
+++ b/webrtc/modules/video_render/incoming_video_stream.h
@@ -31,7 +31,7 @@
// Get callback to deliver frames to the module.
VideoRenderCallback* ModuleCallback();
virtual int32_t RenderFrame(const uint32_t stream_id,
- I420VideoFrame& video_frame);
+ const I420VideoFrame& video_frame);
// Set callback to the platform dependent code.
int32_t SetRenderCallback(VideoRenderCallback* render_callback);
diff --git a/webrtc/modules/video_render/ios/video_render_ios_channel.h b/webrtc/modules/video_render/ios/video_render_ios_channel.h
index 2d635a7..97f1efd 100644
--- a/webrtc/modules/video_render/ios/video_render_ios_channel.h
+++ b/webrtc/modules/video_render/ios/video_render_ios_channel.h
@@ -25,7 +25,7 @@
// Implementation of VideoRenderCallback.
int32_t RenderFrame(const uint32_t stream_id,
- I420VideoFrame& video_frame) override;
+ const I420VideoFrame& video_frame) override;
int SetStreamSettings(const float z_order,
const float left,
diff --git a/webrtc/modules/video_render/ios/video_render_ios_channel.mm b/webrtc/modules/video_render/ios/video_render_ios_channel.mm
index 02814b2..33f1423 100644
--- a/webrtc/modules/video_render/ios/video_render_ios_channel.mm
+++ b/webrtc/modules/video_render/ios/video_render_ios_channel.mm
@@ -24,10 +24,9 @@
VideoRenderIosChannel::~VideoRenderIosChannel() { delete current_frame_; }
int32_t VideoRenderIosChannel::RenderFrame(const uint32_t stream_id,
- I420VideoFrame& video_frame) {
- video_frame.set_render_time_ms(0);
-
+ const I420VideoFrame& video_frame) {
current_frame_->CopyFrame(video_frame);
+ current_frame_->set_render_time_ms(0);
buffer_is_updated_ = true;
return 0;
diff --git a/webrtc/modules/video_render/linux/video_x11_channel.cc b/webrtc/modules/video_render/linux/video_x11_channel.cc
index d33dace..92b990d 100644
--- a/webrtc/modules/video_render/linux/video_x11_channel.cc
+++ b/webrtc/modules/video_render/linux/video_x11_channel.cc
@@ -44,7 +44,7 @@
}
int32_t VideoX11Channel::RenderFrame(const uint32_t streamId,
- I420VideoFrame& videoFrame) {
+ const I420VideoFrame& videoFrame) {
CriticalSectionScoped cs(&_crit);
if (_width != videoFrame.width() || _height
!= videoFrame.height()) {
diff --git a/webrtc/modules/video_render/linux/video_x11_channel.h b/webrtc/modules/video_render/linux/video_x11_channel.h
index 35c004c..4a83a60 100644
--- a/webrtc/modules/video_render/linux/video_x11_channel.h
+++ b/webrtc/modules/video_render/linux/video_x11_channel.h
@@ -34,7 +34,7 @@
virtual ~VideoX11Channel();
virtual int32_t RenderFrame(const uint32_t streamId,
- I420VideoFrame& videoFrame);
+ const I420VideoFrame& videoFrame);
int32_t FrameSizeChange(int32_t width, int32_t height,
int32_t numberOfStreams);
diff --git a/webrtc/modules/video_render/mac/video_render_nsopengl.h b/webrtc/modules/video_render/mac/video_render_nsopengl.h
index 7143e69..b52e66b 100644
--- a/webrtc/modules/video_render/mac/video_render_nsopengl.h
+++ b/webrtc/modules/video_render/mac/video_render_nsopengl.h
@@ -63,7 +63,7 @@
// ********** new module functions ************ //
virtual int32_t RenderFrame(const uint32_t streamId,
- I420VideoFrame& videoFrame);
+ const I420VideoFrame& videoFrame);
// ********** new module helper functions ***** //
int ChangeContext(NSOpenGLContext *nsglContext);
diff --git a/webrtc/modules/video_render/mac/video_render_nsopengl.mm b/webrtc/modules/video_render/mac/video_render_nsopengl.mm
index 603ca89..d176b5d 100644
--- a/webrtc/modules/video_render/mac/video_render_nsopengl.mm
+++ b/webrtc/modules/video_render/mac/video_render_nsopengl.mm
@@ -90,7 +90,7 @@
}
int32_t VideoChannelNSOpenGL::RenderFrame(
- const uint32_t /*streamId*/, I420VideoFrame& videoFrame) {
+ const uint32_t /*streamId*/, const I420VideoFrame& videoFrame) {
_owner->LockAGLCntx();
diff --git a/webrtc/modules/video_render/test/testAPI/testAPI.cc b/webrtc/modules/video_render/test/testAPI/testAPI.cc
index 3ec68dd..14f9791 100644
--- a/webrtc/modules/video_render/test/testAPI/testAPI.cc
+++ b/webrtc/modules/video_render/test/testAPI/testAPI.cc
@@ -262,7 +262,7 @@
}
;
virtual int32_t RenderFrame(const uint32_t streamId,
- I420VideoFrame& videoFrame)
+ const I420VideoFrame& videoFrame)
{
_cnt++;
if (_cnt % 100 == 0)
diff --git a/webrtc/modules/video_render/windows/video_render_direct3d9.cc b/webrtc/modules/video_render/windows/video_render_direct3d9.cc
index 4cc26e0..b94e078 100644
--- a/webrtc/modules/video_render/windows/video_render_direct3d9.cc
+++ b/webrtc/modules/video_render/windows/video_render_direct3d9.cc
@@ -142,7 +142,7 @@
}
int32_t D3D9Channel::RenderFrame(const uint32_t streamId,
- I420VideoFrame& videoFrame)
+ const I420VideoFrame& videoFrame)
{
CriticalSectionScoped cs(_critSect);
if (_width != videoFrame.width() || _height != videoFrame.height())
diff --git a/webrtc/modules/video_render/windows/video_render_direct3d9.h b/webrtc/modules/video_render/windows/video_render_direct3d9.h
index aface8a..a8b0999 100644
--- a/webrtc/modules/video_render/windows/video_render_direct3d9.h
+++ b/webrtc/modules/video_render/windows/video_render_direct3d9.h
@@ -45,7 +45,7 @@
// A new frame is delivered.
virtual int DeliverFrame(const I420VideoFrame& videoFrame);
virtual int32_t RenderFrame(const uint32_t streamId,
- I420VideoFrame& videoFrame);
+ const I420VideoFrame& videoFrame);
// Called to check if the video frame is updated.
int IsUpdated(bool& isUpdated);
diff --git a/webrtc/video_engine/vie_renderer.cc b/webrtc/video_engine/vie_renderer.cc
index a2c90cb..bfeeba2 100644
--- a/webrtc/video_engine/vie_renderer.cc
+++ b/webrtc/video_engine/vie_renderer.cc
@@ -155,8 +155,9 @@
return 0;
}
-int32_t ViEExternalRendererImpl::RenderFrame(const uint32_t stream_id,
- I420VideoFrame& video_frame) {
+int32_t ViEExternalRendererImpl::RenderFrame(
+ const uint32_t stream_id,
+ const I420VideoFrame& video_frame) {
if (external_renderer_format_ != kVideoI420)
return ConvertAndRenderFrame(stream_id, video_frame);
@@ -173,7 +174,7 @@
int32_t ViEExternalRendererImpl::ConvertAndRenderFrame(
uint32_t stream_id,
- I420VideoFrame& video_frame) {
+ const I420VideoFrame& video_frame) {
if (video_frame.native_handle() != NULL) {
NotifyFrameSizeChange(stream_id, video_frame);
@@ -239,7 +240,7 @@
void ViEExternalRendererImpl::NotifyFrameSizeChange(
const uint32_t stream_id,
- I420VideoFrame& video_frame) {
+ const I420VideoFrame& video_frame) {
if (external_renderer_width_ != video_frame.width() ||
external_renderer_height_ != video_frame.height()) {
external_renderer_width_ = video_frame.width();
diff --git a/webrtc/video_engine/vie_renderer.h b/webrtc/video_engine/vie_renderer.h
index fcd80ab..5a7fdc1 100644
--- a/webrtc/video_engine/vie_renderer.h
+++ b/webrtc/video_engine/vie_renderer.h
@@ -33,13 +33,13 @@
// Implements VideoRenderCallback.
virtual int32_t RenderFrame(const uint32_t stream_id,
- I420VideoFrame& video_frame);
+ const I420VideoFrame& video_frame);
private:
void NotifyFrameSizeChange(const uint32_t stream_id,
- I420VideoFrame& video_frame);
+ const I420VideoFrame& video_frame);
int32_t ConvertAndRenderFrame(uint32_t stream_id,
- I420VideoFrame& video_frame);
+ const I420VideoFrame& video_frame);
ExternalRenderer* external_renderer_;
RawVideoType external_renderer_format_;
int external_renderer_width_;