Chromium Code Reviews| Index: content/renderer/media/webrtc/media_stream_remote_video_source.cc |
| diff --git a/content/renderer/media/webrtc/media_stream_remote_video_source.cc b/content/renderer/media/webrtc/media_stream_remote_video_source.cc |
| index b75272126ec13263c5201ba0f5db6324b75a01d2..fa1a9ab2e610baeafcb7d4acafca725b9eea82af 100644 |
| --- a/content/renderer/media/webrtc/media_stream_remote_video_source.cc |
| +++ b/content/renderer/media/webrtc/media_stream_remote_video_source.cc |
| @@ -18,6 +18,14 @@ |
| #include "media/base/video_util.h" |
| #include "third_party/libjingle/source/talk/media/base/videoframe.h" |
| +namespace { |
| + |
| +// Release |frame| when it goes out of scope. |
|
tommi (sloooow) - chröme
2015/01/29 14:21:41
nit: s/Release/Delete
(since Release usually refer
magjed_chromium
2015/01/30 12:27:44
Done.
|
| +void FreeCricketFrame(scoped_ptr<cricket::VideoFrame> frame) { |
| +} |
| + |
| +} // namespace |
| + |
| namespace content { |
| // Internal class used for receiving frames from the webrtc track on a |
| @@ -86,21 +94,28 @@ RemoteVideoSourceDelegate::RenderFrame( |
| video_frame->set_timestamp(timestamp); |
| } else { |
| gfx::Size size(frame->GetWidth(), frame->GetHeight()); |
| - video_frame = frame_pool_.CreateFrame( |
|
perkj_chrome
2015/01/30 08:57:40
frame_pool_ is not needed now. Please remove it an
magjed_chromium
2015/01/30 12:27:44
Done.
|
| - media::VideoFrame::YV12, size, gfx::Rect(size), size, timestamp); |
| // Non-square pixels are unsupported. |
| DCHECK_EQ(frame->GetPixelWidth(), 1u); |
| DCHECK_EQ(frame->GetPixelHeight(), 1u); |
| - int y_rows = frame->GetHeight(); |
| - int uv_rows = frame->GetChromaHeight(); |
| - CopyYPlane( |
| - frame->GetYPlane(), frame->GetYPitch(), y_rows, video_frame.get()); |
| - CopyUPlane( |
| - frame->GetUPlane(), frame->GetUPitch(), uv_rows, video_frame.get()); |
| - CopyVPlane( |
| - frame->GetVPlane(), frame->GetVPitch(), uv_rows, video_frame.get()); |
| + // Take a shallow copy. Both |frame| and |copied_frame| will share a single |
|
perkj_chrome
2015/01/30 08:57:40
nit Make a shallow copy...
magjed_chromium
2015/01/30 12:27:44
Done.
|
| + // reference counted frame buffer. |
| + scoped_ptr<cricket::VideoFrame> copied_frame(frame->Copy()); |
| + video_frame = |
| + media::VideoFrame::WrapExternalYuvData( |
| + media::VideoFrame::YV12, |
| + size, |
| + gfx::Rect(size), |
| + size, |
| + copied_frame->GetYPitch(), |
| + copied_frame->GetUPitch(), |
| + copied_frame->GetVPitch(), |
| + copied_frame->GetYPlane(), |
| + copied_frame->GetUPlane(), |
| + copied_frame->GetVPlane(), |
| + timestamp, |
| + base::Bind(&FreeCricketFrame, Passed(&copied_frame))); |
| } |
| media::VideoPixelFormat pixel_format = |