New issue
Advanced search Search tips

Issue 921831 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Today
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Fix the VP8 encode reference picture handling

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:
 
Components: -Internals>Media Internals>Media>Hardware
Labels: Needs-Milestone
Cc: jzern@chromium.org
Project Member

Comment 5 by bugdroid1@chromium.org, 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

Comment 6 by dbbrooks@chromium.org, Today (11 hours ago)

Owner: sreerenj...@intel.com
Status: Started (was: Unconfirmed)
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@. 

Comment 7 by sreerenj...@intel.com, Today (3 hours ago)

Status: Verified (was: Started)
Patch already landed, lets close this.

Sign in to add a comment