From e2a61d3289c5fb93c5379799603bc85888523480 Mon Sep 17 00:00:00 2001 From: Alexandre Courbot Date: Thu, 24 Jun 2021 11:49:13 +0900 Subject: [PATCH] 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 Tested-by: kokoro Auto-Submit: Alexandre Courbot Reviewed-by: David Staessens Reviewed-by: Keiichi Watanabe Commit-Queue: Alexandre Courbot --- devices/src/virtio/video/encoder/backend/vda.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/src/virtio/video/encoder/backend/vda.rs b/devices/src/virtio/video/encoder/backend/vda.rs index 41e687d4d3..fc06e878e2 100644 --- a/devices/src/virtio/video/encoder/backend/vda.rs +++ b/devices/src/virtio/video/encoder/backend/vda.rs @@ -298,7 +298,6 @@ impl EncoderSession for LibvdaEncoderSession { size: u32, ) -> VideoResult { 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) }