Index: content/common/gpu/media/v4l2_video_decode_accelerator.h |
diff --git a/content/common/gpu/media/v4l2_video_decode_accelerator.h b/content/common/gpu/media/v4l2_video_decode_accelerator.h |
index 0c6a4930714de29f9a10d33975255dc90d011f26..6a191ac6dcf495890d9b98c9d86a3a207292de72 100644 |
--- a/content/common/gpu/media/v4l2_video_decode_accelerator.h |
+++ b/content/common/gpu/media/v4l2_video_decode_accelerator.h |
@@ -155,7 +155,6 @@ class CONTENT_EXPORT V4L2VideoDecodeAccelerator |
~OutputRecord(); |
bool at_device; // held by device. |
bool at_client; // held by client. |
- int fds[2]; // file descriptors for each plane. |
EGLImageKHR egl_image; // EGLImageKHR for the output buffer. |
EGLSyncKHR egl_sync; // sync the compositor's use of the EGLImage. |
int32 picture_id; // picture buffer id as returned to PictureReady(). |
@@ -294,6 +293,12 @@ class CONTENT_EXPORT V4L2VideoDecodeAccelerator |
// Callback that indicates a picture has been cleared. |
void PictureCleared(); |
+ // This method determines whether a resolution change event processing |
+ // is indeed required by returning true iff: |
+ // - width or height of the new format is different than previous format; or |
+ // - V4L2_CID_MIN_BUFFERS_FOR_CAPTURE has changed. |
+ bool IsResolutionChangeNecessary(); |
+ |
// Our original calling message loop for the child thread. |
scoped_refptr<base::MessageLoopProxy> child_message_loop_proxy_; |
@@ -362,9 +367,10 @@ class CONTENT_EXPORT V4L2VideoDecodeAccelerator |
// |
// Hardware state and associated queues. Since decoder_thread_ services |
// the hardware, decoder_thread_ owns these too. |
- // output_buffer_map_ and free_output_buffers_ are an exception during the |
- // buffer (re)allocation sequence, when the decoder_thread_ is blocked briefly |
- // while the Child thread manipulates them. |
+ // output_buffer_map_, free_output_buffers_ and output_planes_count_ are an |
+ // exception during the buffer (re)allocation sequence, when the |
+ // decoder_thread_ is blocked briefly while the Child thread manipulates |
+ // them. |
// |
// Completed decode buffers. |
@@ -392,6 +398,8 @@ class CONTENT_EXPORT V4L2VideoDecodeAccelerator |
uint32 output_buffer_pixelformat_; |
// Required size of DPB for decoding. |
int output_dpb_size_; |
+ // Stores the number of planes (i.e. separate memory buffers) for output. |
+ size_t output_planes_count_; |
// Pictures that are ready but not sent to PictureReady yet. |
std::queue<PictureRecord> pending_picture_ready_; |