Index: webrtc/api/android/jni/androidmediadecoder_jni.cc |
diff --git a/webrtc/api/android/jni/androidmediadecoder_jni.cc b/webrtc/api/android/jni/androidmediadecoder_jni.cc |
index 2a7e68976aff881386d4ab363cebf30311080782..c9c34d661188f9148d6fe03fefa08c412310c17c 100644 |
--- a/webrtc/api/android/jni/androidmediadecoder_jni.cc |
+++ b/webrtc/api/android/jni/androidmediadecoder_jni.cc |
@@ -782,7 +782,9 @@ bool MediaCodecVideoDecoder::DeliverPendingOutputs( |
payload += output_buffer_offset; |
// Create yuv420 frame. |
- frame_buffer = decoded_frame_pool_.CreateBuffer(width, height); |
+ rtc::scoped_refptr<webrtc::I420Buffer> i420_buffer; |
+ |
+ i420_buffer = decoded_frame_pool_.CreateBuffer(width, height); |
if (color_format == COLOR_FormatYUV420Planar) { |
RTC_CHECK_EQ(0, stride % 2); |
RTC_CHECK_EQ(0, slice_height % 2); |
@@ -794,12 +796,9 @@ bool MediaCodecVideoDecoder::DeliverPendingOutputs( |
libyuv::I420Copy(y_ptr, stride, |
u_ptr, uv_stride, |
v_ptr, uv_stride, |
- frame_buffer->MutableDataY(), |
- frame_buffer->StrideY(), |
- frame_buffer->MutableDataU(), |
- frame_buffer->StrideU(), |
- frame_buffer->MutableDataV(), |
- frame_buffer->StrideV(), |
+ i420_buffer->MutableDataY(), i420_buffer->StrideY(), |
+ i420_buffer->MutableDataU(), i420_buffer->StrideU(), |
+ i420_buffer->MutableDataV(), i420_buffer->StrideV(), |
width, height); |
} else { |
// All other supported formats are nv12. |
@@ -808,14 +807,13 @@ bool MediaCodecVideoDecoder::DeliverPendingOutputs( |
libyuv::NV12ToI420( |
y_ptr, stride, |
uv_ptr, stride, |
- frame_buffer->MutableDataY(), |
- frame_buffer->StrideY(), |
- frame_buffer->MutableDataU(), |
- frame_buffer->StrideU(), |
- frame_buffer->MutableDataV(), |
- frame_buffer->StrideV(), |
+ i420_buffer->MutableDataY(), i420_buffer->StrideY(), |
+ i420_buffer->MutableDataU(), i420_buffer->StrideU(), |
+ i420_buffer->MutableDataV(), i420_buffer->StrideV(), |
width, height); |
} |
+ frame_buffer = i420_buffer; |
+ |
// Return output byte buffer back to codec. |
jni->CallVoidMethod( |
*j_media_codec_video_decoder_, |