Fix the VP8 encode reference picture handling
Reported by
sreerenj...@intel.corp-partner.google.com,
Jan 15
|
||||||
Issue description
UserAgent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0
Example URL:
Steps to reproduce the problem:
vaapi/vp8enc: Fix the wrong picture referencing
Currently the PrepareEncodeJob() updates only the frame_type of the frame_hdr but not the ReferencePicture related parameters like refresh_{last,golden,alternate}_frame before updating the VAEncParameters.So each SubmitFrameParameters updating the VaapiEncodeParameters with old frame_hdr values. Which means,
Currently, for the second frame(after the first key frame)
refresh_gold = 1 refresh_alt = 1 refresh_last = 1
Ideally it should be:
refresh_gold = 0 refresh_alt = 0 refresh_last = 1
What is the expected behavior?
What went wrong?
Wrong interpretation of reference frame flag copying.
Did this work before? N/A
Is it a problem with Flash or HTML5? N/A
Does this work in other browsers? N/A
Chrome version: <Copy from: 'about:version'> Channel: n/a
OS Version:
Flash Version:
Contents of chrome://gpu:
,
Jan 15
,
Jan 15
,
Jan 15
,
Jan 16
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ca7524f139bbac588ec31e558e918386342db107 commit ca7524f139bbac588ec31e558e918386342db107 Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com> Date: Wed Jan 16 00:38:49 2019 vaapi/vp8enc: Fix the wrong picture referencing Currently the PrepareEncodeJob() updates only the frame_type of the frame_hdr but not the ReferencePicture related parameters like refresh_{last,golden,alternate}_frame before updating the VAEncParameters. So each SubmitFrameParameters updating the VaapiEncodeParameters with old frame_hdr values. Which means, Currently, for the second frame(after the first key frame) refresh_gold = 1 refresh_alt = 1 refresh_last = 1 Ideally it is better to keep sync of the current_frame_hdr_ and VP8Picture frame_hdr. This patch make sure all frame_hdr updates happens in one place so that the VAEncPictureParameterBufferVP8 will get updated with right reference picture update parameters. After patching, for the second frame(after the first key frame), refresh_gold = 0 refresh_alt = 0 refresh_last = 1 Bug: 921831 TEST1: video_encode_accelerator_unittest --test_stream_data=bear_320x192_40frames.yuv:320:192:11:bear.ivf:100000:30 -v=0 --disable_flush --single-process-tests --ozone-platform=gbm TEST2: run https://appr.tc/?debug=loopback&vsc=VP8&vrc=VP8 Change-Id: Iaa286cfa70b1bc3e4e4d1111f9903c82b4db2485 Reviewed-on: https://chromium-review.googlesource.com/c/1376663 Commit-Queue: Sreerenj Balachandran <sreerenj.balachandran@intel.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Cr-Commit-Position: refs/heads/master@{#622936} [modify] https://crrev.com/ca7524f139bbac588ec31e558e918386342db107/media/gpu/vaapi/vp8_encoder.cc
,
Today
(11 hours ago)
Don't think this fits the "Unconfirmed" state it is currently set to. Changing to "started" since the patch is in and passed review. Also assigning it to the patch owner sreerenj.balachandran@.
,
Today
(3 hours ago)
Patch already landed, lets close this. |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by sreerenj...@intel.corp-partner.google.com
, Jan 15