| Index: content/renderer/pepper/pepper_media_stream_video_track_host.cc
|
| diff --git a/content/renderer/pepper/pepper_media_stream_video_track_host.cc b/content/renderer/pepper/pepper_media_stream_video_track_host.cc
|
| index 096820b2230715b5f1ce638837dfd1f4a72c4767..258ee564037c6dce034509157147daf1ede52924 100644
|
| --- a/content/renderer/pepper/pepper_media_stream_video_track_host.cc
|
| +++ b/content/renderer/pepper/pepper_media_stream_video_track_host.cc
|
| @@ -97,24 +97,24 @@ void ConvertFromMediaVideoFrame(const scoped_refptr<media::VideoFrame>& src,
|
| uint8_t* dst) {
|
| CHECK(src->format() == VideoFrame::YV12 || src->format() == VideoFrame::I420);
|
| if (dst_format == PP_VIDEOFRAME_FORMAT_BGRA) {
|
| - if (src->coded_size() == dst_size) {
|
| - libyuv::I420ToARGB(src->data(VideoFrame::kYPlane),
|
| + if (src->visible_rect().size() == dst_size) {
|
| + libyuv::I420ToARGB(src->visible_data(VideoFrame::kYPlane),
|
| src->stride(VideoFrame::kYPlane),
|
| - src->data(VideoFrame::kUPlane),
|
| + src->visible_data(VideoFrame::kUPlane),
|
| src->stride(VideoFrame::kUPlane),
|
| - src->data(VideoFrame::kVPlane),
|
| + src->visible_data(VideoFrame::kVPlane),
|
| src->stride(VideoFrame::kVPlane),
|
| dst,
|
| dst_size.width() * 4,
|
| dst_size.width(),
|
| dst_size.height());
|
| } else {
|
| - media::ScaleYUVToRGB32(src->data(VideoFrame::kYPlane),
|
| - src->data(VideoFrame::kUPlane),
|
| - src->data(VideoFrame::kVPlane),
|
| + media::ScaleYUVToRGB32(src->visible_data(VideoFrame::kYPlane),
|
| + src->visible_data(VideoFrame::kUPlane),
|
| + src->visible_data(VideoFrame::kVPlane),
|
| dst,
|
| - src->coded_size().width(),
|
| - src->coded_size().height(),
|
| + src->visible_rect().width(),
|
| + src->visible_rect().height(),
|
| dst_size.width(),
|
| dst_size.height(),
|
| src->stride(VideoFrame::kYPlane),
|
| @@ -135,21 +135,21 @@ void ConvertFromMediaVideoFrame(const scoped_refptr<media::VideoFrame>& src,
|
| const int plane_order = (dst_format == PP_VIDEOFRAME_FORMAT_YV12) ? 0 : 1;
|
| int dst_width = dst_size.width();
|
| int dst_height = dst_size.height();
|
| - libyuv::ScalePlane(src->data(kPlanesOrder[plane_order][0]),
|
| + libyuv::ScalePlane(src->visible_data(kPlanesOrder[plane_order][0]),
|
| src->stride(kPlanesOrder[plane_order][0]),
|
| - src->coded_size().width(),
|
| - src->coded_size().height(),
|
| + src->visible_rect().width(),
|
| + src->visible_rect().height(),
|
| dst,
|
| dst_width,
|
| dst_width,
|
| dst_height,
|
| kFilterMode);
|
| dst += dst_width * dst_height;
|
| - const int src_halfwidth = (src->coded_size().width() + 1) >> 1;
|
| - const int src_halfheight = (src->coded_size().height() + 1) >> 1;
|
| + const int src_halfwidth = (src->visible_rect().width() + 1) >> 1;
|
| + const int src_halfheight = (src->visible_rect().height() + 1) >> 1;
|
| const int dst_halfwidth = (dst_width + 1) >> 1;
|
| const int dst_halfheight = (dst_height + 1) >> 1;
|
| - libyuv::ScalePlane(src->data(kPlanesOrder[plane_order][1]),
|
| + libyuv::ScalePlane(src->visible_data(kPlanesOrder[plane_order][1]),
|
| src->stride(kPlanesOrder[plane_order][1]),
|
| src_halfwidth,
|
| src_halfheight,
|
| @@ -159,7 +159,7 @@ void ConvertFromMediaVideoFrame(const scoped_refptr<media::VideoFrame>& src,
|
| dst_halfheight,
|
| kFilterMode);
|
| dst += dst_halfwidth * dst_halfheight;
|
| - libyuv::ScalePlane(src->data(kPlanesOrder[plane_order][2]),
|
| + libyuv::ScalePlane(src->visible_data(kPlanesOrder[plane_order][2]),
|
| src->stride(kPlanesOrder[plane_order][2]),
|
| src_halfwidth,
|
| src_halfheight,
|
| @@ -186,15 +186,13 @@ class PepperMediaStreamVideoTrackHost::FrameDeliverer
|
| const scoped_refptr<base::MessageLoopProxy>& io_message_loop_proxy,
|
| const VideoCaptureDeliverFrameCB& new_frame_callback);
|
|
|
| - void DeliverVideoFrame(const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format);
|
| + void DeliverVideoFrame(const scoped_refptr<media::VideoFrame>& frame);
|
|
|
| private:
|
| friend class base::RefCountedThreadSafe<FrameDeliverer>;
|
| virtual ~FrameDeliverer();
|
|
|
| - void DeliverFrameOnIO(const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format);
|
| + void DeliverFrameOnIO(const scoped_refptr<media::VideoFrame>& frame);
|
|
|
| scoped_refptr<base::MessageLoopProxy> io_message_loop_;
|
| VideoCaptureDeliverFrameCB new_frame_callback_;
|
| @@ -213,21 +211,18 @@ PepperMediaStreamVideoTrackHost::FrameDeliverer::~FrameDeliverer() {
|
| }
|
|
|
| void PepperMediaStreamVideoTrackHost::FrameDeliverer::DeliverVideoFrame(
|
| - const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format) {
|
| + const scoped_refptr<media::VideoFrame>& frame) {
|
| io_message_loop_->PostTask(
|
| FROM_HERE,
|
| - base::Bind(&FrameDeliverer::DeliverFrameOnIO,
|
| - this, frame, format));
|
| + base::Bind(&FrameDeliverer::DeliverFrameOnIO, this, frame));
|
| }
|
|
|
| void PepperMediaStreamVideoTrackHost::FrameDeliverer::DeliverFrameOnIO(
|
| - const scoped_refptr<media::VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format) {
|
| + const scoped_refptr<media::VideoFrame>& frame) {
|
| DCHECK(io_message_loop_->BelongsToCurrentThread());
|
| // The time when this frame is generated is unknown so give a null value to
|
| // |estimated_capture_time|.
|
| - new_frame_callback_.Run(frame, format, base::TimeTicks());
|
| + new_frame_callback_.Run(frame, base::TimeTicks());
|
| }
|
|
|
| PepperMediaStreamVideoTrackHost::PepperMediaStreamVideoTrackHost(
|
| @@ -369,11 +364,7 @@ int32_t PepperMediaStreamVideoTrackHost::SendFrameToTrack(int32_t index) {
|
| base::TimeDelta::FromMilliseconds(ts_ms),
|
| base::Closure());
|
|
|
| - frame_deliverer_->DeliverVideoFrame(
|
| - frame,
|
| - media::VideoCaptureFormat(plugin_frame_size_,
|
| - kDefaultOutputFrameRate,
|
| - ToPixelFormat(plugin_frame_format_)));
|
| + frame_deliverer_->DeliverVideoFrame(frame);
|
| }
|
|
|
| // Makes the frame available again for plugin.
|
| @@ -383,7 +374,6 @@ int32_t PepperMediaStreamVideoTrackHost::SendFrameToTrack(int32_t index) {
|
|
|
| void PepperMediaStreamVideoTrackHost::OnVideoFrame(
|
| const scoped_refptr<VideoFrame>& frame,
|
| - const media::VideoCaptureFormat& format,
|
| const base::TimeTicks& estimated_capture_time) {
|
| DCHECK(frame.get());
|
| // TODO(penghuang): Check |frame->end_of_stream()| and close the track.
|
| @@ -392,7 +382,7 @@ void PepperMediaStreamVideoTrackHost::OnVideoFrame(
|
| return;
|
|
|
| if (source_frame_size_.IsEmpty()) {
|
| - source_frame_size_ = frame->coded_size();
|
| + source_frame_size_ = frame->visible_rect().size();
|
| source_frame_format_ = ppformat;
|
| InitBuffers();
|
| }
|
|
|