Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(81)

Unified Diff: content/common/gpu/media/v4l2_slice_video_decode_accelerator.h

Issue 1816203003: Add an additional VDA::Flush() mode to return all allocated buffers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/common/gpu/media/v4l2_slice_video_decode_accelerator.h
diff --git a/content/common/gpu/media/v4l2_slice_video_decode_accelerator.h b/content/common/gpu/media/v4l2_slice_video_decode_accelerator.h
index 87fe1967d1fa19cf5cc8e82a2c0dfecd13ffc0a6..5098349878204448690f4f851f823276950d0145 100644
--- a/content/common/gpu/media/v4l2_slice_video_decode_accelerator.h
+++ b/content/common/gpu/media/v4l2_slice_video_decode_accelerator.h
@@ -50,7 +50,7 @@ class CONTENT_EXPORT V4L2SliceVideoDecodeAccelerator
void AssignPictureBuffers(
const std::vector<media::PictureBuffer>& buffers) override;
void ReusePictureBuffer(int32_t picture_buffer_id) override;
- void Flush() override;
+ void Flush(bool return_buffers) override;
void Reset() override;
void Destroy() override;
bool CanDecodeOnIOThread() override;
@@ -183,7 +183,7 @@ class CONTENT_EXPORT V4L2SliceVideoDecodeAccelerator
// InitiateFlush() directly. Otherwise, we push a dummy BitstreamBufferRef
// onto the decoder_input_queue_ to schedule a flush. When we reach it later
// on, we call InitiateFlush() to perform it at the correct time.
- void FlushTask();
+ void FlushTask(bool return_buffers);
// Tell the decoder to flush all frames, reset it and mark us as scheduled
// for flush, so that we can finish it once all pending decodes are finished.
void InitiateFlush();
@@ -372,6 +372,10 @@ class CONTENT_EXPORT V4L2SliceVideoDecodeAccelerator
bool decoder_resetting_;
bool surface_set_change_pending_;
+ // When flushing, if true, indicates that we were requested to return all
+ // output buffers, not only those containing pictures produced during flush.
+ bool flush_return_all_buffers_;
+
// Hardware accelerators.
// TODO(posciak): Try to have a superclass here if possible.
scoped_ptr<V4L2H264Accelerator> h264_accelerator_;

Powered by Google App Engine
This is Rietveld 408576698