virtio: video: encoder: vda: increase buffer ID on success

use_output_buffer() can fail, in which case we won't have processed any
buffer. Increase our ID counter only if we are confident a buffer with
the assigned ID will eventually be delivered.

BUG=b:161774071
TEST=arc.VideoDecodeAccel.h264_vm passes on hatch
TEST=arc.VideoEncodeAccel.h264_360p_i420_vm passes on hatch

Change-Id: I37ad68059854182795ff631b3816614058444900
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2983088
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Auto-Submit: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: David Staessens <dstaessens@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
This commit is contained in:
Alexandre Courbot 2021-06-24 11:49:13 +09:00 committed by Commit Bot
parent 60efe11939
commit e2a61d3289

View file

@ -298,7 +298,6 @@ impl EncoderSession for LibvdaEncoderSession {
size: u32,
) -> VideoResult<OutputBufferId> {
let output_buffer_id = self.next_output_buffer_id;
self.next_output_buffer_id = self.next_output_buffer_id.wrapping_add(1);
self.session.use_output_buffer(
output_buffer_id as i32,
@ -307,6 +306,8 @@ impl EncoderSession for LibvdaEncoderSession {
size,
)?;
self.next_output_buffer_id = self.next_output_buffer_id.wrapping_add(1);
Ok(output_buffer_id)
}