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

Side by Side Diff: media/base/video_frame.h

Issue 1737253002: Handle Alpha channel in Canvas capture (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MEDIA_BASE_VIDEO_FRAME_H_ 5 #ifndef MEDIA_BASE_VIDEO_FRAME_H_
6 #define MEDIA_BASE_VIDEO_FRAME_H_ 6 #define MEDIA_BASE_VIDEO_FRAME_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 #endif 372 #endif
373 373
374 void AddSharedMemoryHandle(base::SharedMemoryHandle handle); 374 void AddSharedMemoryHandle(base::SharedMemoryHandle handle);
375 375
376 #if defined(OS_MACOSX) 376 #if defined(OS_MACOSX)
377 // Returns the backing CVPixelBuffer, if present. 377 // Returns the backing CVPixelBuffer, if present.
378 // TODO(mcasas): Rename to CvPixelBuffer() to comply with Style Guide. 378 // TODO(mcasas): Rename to CvPixelBuffer() to comply with Style Guide.
379 CVPixelBufferRef cv_pixel_buffer() const; 379 CVPixelBufferRef cv_pixel_buffer() const;
380 #endif 380 #endif
381 381
382 // Converts a frame with YV12A format into I420 by dropping alpha channel.
Pawel Osciak 2016/02/26 00:32:51 Personally, I'm wondering if this kind of a method
emircan 2016/02/26 01:33:08 I see your point about VF being too complicated ag
Pawel Osciak 2016/02/26 01:51:25 Honestly, I would really prefer not doing it this
383 bool DropYV12AAlphaChannel();
384
382 // Adds a callback to be run when the VideoFrame is about to be destroyed. 385 // Adds a callback to be run when the VideoFrame is about to be destroyed.
383 // The callback may be run from ANY THREAD, and so it is up to the client to 386 // The callback may be run from ANY THREAD, and so it is up to the client to
384 // ensure thread safety. Although read-only access to the members of this 387 // ensure thread safety. Although read-only access to the members of this
385 // VideoFrame is permitted while the callback executes (including 388 // VideoFrame is permitted while the callback executes (including
386 // VideoFrameMetadata), clients should not assume the data pointers are 389 // VideoFrameMetadata), clients should not assume the data pointers are
387 // valid. 390 // valid.
388 void AddDestructionObserver(const base::Closure& callback); 391 void AddDestructionObserver(const base::Closure& callback);
389 392
390 // Returns a dictionary of optional metadata. This contains information 393 // Returns a dictionary of optional metadata. This contains information
391 // associated with the frame that downstream clients might use for frame-level 394 // associated with the frame that downstream clients might use for frame-level
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 VideoPixelFormat format, 460 VideoPixelFormat format,
458 const gfx::Size& coded_size, 461 const gfx::Size& coded_size,
459 const gfx::Rect& visible_rect, 462 const gfx::Rect& visible_rect,
460 const gfx::Size& natural_size, 463 const gfx::Size& natural_size,
461 base::TimeDelta timestamp, 464 base::TimeDelta timestamp,
462 bool zero_initialize_memory); 465 bool zero_initialize_memory);
463 466
464 void AllocateYUV(bool zero_initialize_memory); 467 void AllocateYUV(bool zero_initialize_memory);
465 468
466 // Frame format. 469 // Frame format.
467 const VideoPixelFormat format_; 470 VideoPixelFormat format_;
468 471
469 // Storage type for the different planes. 472 // Storage type for the different planes.
470 StorageType storage_type_; // TODO(mcasas): make const 473 StorageType storage_type_; // TODO(mcasas): make const
471 474
472 // Width and height of the video frame, in pixels. This must include pixel 475 // Width and height of the video frame, in pixels. This must include pixel
473 // data for the whole image; i.e. for YUV formats with subsampled chroma 476 // data for the whole image; i.e. for YUV formats with subsampled chroma
474 // planes, in the case that the visible portion of the image does not line up 477 // planes, in the case that the visible portion of the image does not line up
475 // on a sample boundary, |coded_size_| must be rounded up appropriately and 478 // on a sample boundary, |coded_size_| must be rounded up appropriately and
476 // the pixel data provided for the odd pixels. 479 // the pixel data provided for the odd pixels.
477 const gfx::Size coded_size_; 480 const gfx::Size coded_size_;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 gpu::SyncToken release_sync_token_; 528 gpu::SyncToken release_sync_token_;
526 529
527 VideoFrameMetadata metadata_; 530 VideoFrameMetadata metadata_;
528 531
529 DISALLOW_IMPLICIT_CONSTRUCTORS(VideoFrame); 532 DISALLOW_IMPLICIT_CONSTRUCTORS(VideoFrame);
530 }; 533 };
531 534
532 } // namespace media 535 } // namespace media
533 536
534 #endif // MEDIA_BASE_VIDEO_FRAME_H_ 537 #endif // MEDIA_BASE_VIDEO_FRAME_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698