Index: media/gpu/v4l2_video_decode_accelerator.cc |
diff --git a/media/gpu/v4l2_video_decode_accelerator.cc b/media/gpu/v4l2_video_decode_accelerator.cc |
index 6d7c138ddd8e106b63a96da2483d088388b52a25..327fcf982f6e51f2fc7181443e7377fcbb73f373 100644 |
--- a/media/gpu/v4l2_video_decode_accelerator.cc |
+++ b/media/gpu/v4l2_video_decode_accelerator.cc |
@@ -2229,7 +2229,11 @@ void V4L2VideoDecodeAccelerator::FrameProcessed(int32_t bitstream_buffer_id, |
<< "because of Reset. Drop the buffer"; |
output_record.state = kFree; |
free_output_buffers_.push(output_buffer_index); |
- Enqueue(); |
+ // Do not queue the buffer if a resolution change is in progress. The queue |
+ // is about to be destroyed anyway. Otherwise, the queue will be started in |
+ // Enqueue and REQBUFS(0) will fail. |
+ if (decoder_state_ != kChangingResolution) |
+ Enqueue(); |
} |
} |