diff options
author | hshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-04 17:42:59 +0000 |
---|---|---|
committer | hshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-04 17:42:59 +0000 |
commit | 4a8453e1fac7ad04b585b786369a31d3213d1cf2 (patch) | |
tree | d910f815199775a9eb843c5f7b079bacc66b8232 | |
parent | 05870e62a5c905f8ea54e4fca4f443146e8f4b0b (diff) | |
download | chromium_src-4a8453e1fac7ad04b585b786369a31d3213d1cf2.zip chromium_src-4a8453e1fac7ad04b585b786369a31d3213d1cf2.tar.gz chromium_src-4a8453e1fac7ad04b585b786369a31d3213d1cf2.tar.bz2 |
Merge 226912 "Exynos decoder: workaround for wrong MFC output fo..."
> Exynos decoder: workaround for wrong MFC output format.
>
> EVDA currently uses NV12MT_16X16 (tiled) format for MFC output, while EVEA
> uses NV12M (non-tiled) format. There appears to be a MFC driver or firmware
> bug when VP8 decode and H264 encode run concurrently.
>
> Workaround is to force EVDA to use non-tiled format (NV12M) so that MFC
> output format is the same for both EVEA and EVDA.
>
> BUG=302870
> TEST=verify corruption is fixed when tab casting VP8 playback, AND hardware decoder is used.
> R=scherkus@chromium.org
>
> Review URL: https://codereview.chromium.org/25758003
TBR=hshi@chromium.org
Review URL: https://codereview.chromium.org/25700011
git-svn-id: svn://svn.chromium.org/chrome/branches/1650/src@227032 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/common/gpu/media/exynos_video_decode_accelerator.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/content/common/gpu/media/exynos_video_decode_accelerator.cc b/content/common/gpu/media/exynos_video_decode_accelerator.cc index edce5f3..554e760 100644 --- a/content/common/gpu/media/exynos_video_decode_accelerator.cc +++ b/content/common/gpu/media/exynos_video_decode_accelerator.cc @@ -384,10 +384,12 @@ bool ExynosVideoDecodeAccelerator::Initialize( return false; // MFC output format has to be setup before streaming starts. + // TODO(hshi): set format back to tiled (V4L2_PIX_FMT_NV12MT_16X16) when we + // fix the underlying driver/firmware issue. http://crbug.com/303300. struct v4l2_format format; memset(&format, 0, sizeof(format)); format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; - format.fmt.pix_mp.pixelformat = V4L2_PIX_FMT_NV12MT_16X16; + format.fmt.pix_mp.pixelformat = V4L2_PIX_FMT_NV12M; IOCTL_OR_ERROR_RETURN_FALSE(mfc_fd_, VIDIOC_S_FMT, &format); // Subscribe to the resolution change event. @@ -2096,7 +2098,7 @@ bool ExynosVideoDecodeAccelerator::CreateBuffersForFormat( mfc_output_buffer_size_[0] = format.fmt.pix_mp.plane_fmt[0].sizeimage; mfc_output_buffer_size_[1] = format.fmt.pix_mp.plane_fmt[1].sizeimage; mfc_output_buffer_pixelformat_ = format.fmt.pix_mp.pixelformat; - DCHECK_EQ(mfc_output_buffer_pixelformat_, V4L2_PIX_FMT_NV12MT_16X16); + DCHECK_EQ(mfc_output_buffer_pixelformat_, V4L2_PIX_FMT_NV12M); DVLOG(3) << "CreateBuffersForFormat(): new resolution: " << frame_buffer_size_.ToString(); |