Chromium Code Reviews| Index: webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc |
| diff --git a/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc b/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc |
| index 8e4560a720b67117f2fe48c589c3ff5543047085..14ea6d245fc5fa9c6d313558ecdf160e067e79d5 100644 |
| --- a/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc |
| +++ b/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc |
| @@ -964,18 +964,22 @@ int VP9DecoderImpl::ReturnFrame(const vpx_image_t* img, |
| // vpx_codec_decode calls or vpx_codec_destroy). |
| Vp9FrameBufferPool::Vp9FrameBuffer* img_buffer = |
| static_cast<Vp9FrameBufferPool::Vp9FrameBuffer*>(img->fb_priv); |
| + |
| + VideoFrameBuffer::Type type = img->fmt == VPX_IMG_FMT_I444 |
| + ? VideoFrameBuffer::Type::kI444 |
| + : VideoFrameBuffer::Type::kI420; |
| + |
| // The buffer can be used directly by the VideoFrame (without copy) by |
| - // using a WrappedI420Buffer. |
| - rtc::scoped_refptr<WrappedI420Buffer> img_wrapped_buffer( |
| - new rtc::RefCountedObject<webrtc::WrappedI420Buffer>( |
| - img->d_w, img->d_h, img->planes[VPX_PLANE_Y], |
| - img->stride[VPX_PLANE_Y], img->planes[VPX_PLANE_U], |
| - img->stride[VPX_PLANE_U], img->planes[VPX_PLANE_V], |
| - img->stride[VPX_PLANE_V], |
| - // WrappedI420Buffer's mechanism for allowing the release of its frame |
| - // buffer is through a callback function. This is where we should |
| - // release |img_buffer|. |
| - rtc::KeepRefUntilDone(img_buffer))); |
| + // using a WrappedI4??Buffer. |
|
magjed_webrtc
2017/06/20 09:01:15
Use WrapYuvBuffer instead of WrappedI4??Buffer now
Yuwei
2017/06/22 01:17:24
Done.
|
| + rtc::scoped_refptr<VideoFrameBuffer> img_wrapped_buffer = WrapYuvBuffer( |
| + type, img->d_w, img->d_h, img->planes[VPX_PLANE_Y], |
| + img->stride[VPX_PLANE_Y], img->planes[VPX_PLANE_U], |
| + img->stride[VPX_PLANE_U], img->planes[VPX_PLANE_V], |
| + img->stride[VPX_PLANE_V], |
| + // WrappedI4??Buffer's mechanism for allowing the release of its frame |
|
magjed_webrtc
2017/06/20 09:01:15
ditto, use WrapYuvBuffer instead of WrappedI4??Buf
Yuwei
2017/06/22 01:17:24
Done.
|
| + // buffer is through a callback function. This is where we should |
| + // release |img_buffer|. |
| + rtc::KeepRefUntilDone(img_buffer)); |
| VideoFrame decoded_image(img_wrapped_buffer, timestamp, |
| 0 /* render_time_ms */, webrtc::kVideoRotation_0); |