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

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

Issue 12255032: Implement "hole" video frame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 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 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 "base/callback.h" 8 #include "base/callback.h"
9 #include "base/md5.h" 9 #include "base/md5.h"
10 #include "media/base/buffers.h" 10 #include "media/base/buffers.h"
(...skipping 25 matching lines...) Expand all
36 // http://www.fourcc.org/yuv.php 36 // http://www.fourcc.org/yuv.php
37 // Keep in sync with WebKit::WebVideoFrame! 37 // Keep in sync with WebKit::WebVideoFrame!
38 enum Format { 38 enum Format {
39 INVALID = 0, // Invalid format value. Used for error reporting. 39 INVALID = 0, // Invalid format value. Used for error reporting.
40 RGB32 = 4, // 32bpp RGB packed with extra byte 8:8:8 40 RGB32 = 4, // 32bpp RGB packed with extra byte 8:8:8
41 YV12 = 6, // 12bpp YVU planar 1x1 Y, 2x2 VU samples 41 YV12 = 6, // 12bpp YVU planar 1x1 Y, 2x2 VU samples
42 YV16 = 7, // 16bpp YVU planar 1x1 Y, 2x1 VU samples 42 YV16 = 7, // 16bpp YVU planar 1x1 Y, 2x1 VU samples
43 EMPTY = 9, // An empty frame. 43 EMPTY = 9, // An empty frame.
44 I420 = 11, // 12bpp YVU planar 1x1 Y, 2x2 UV samples. 44 I420 = 11, // 12bpp YVU planar 1x1 Y, 2x2 UV samples.
45 NATIVE_TEXTURE = 12, // Native texture. Pixel-format agnostic. 45 NATIVE_TEXTURE = 12, // Native texture. Pixel-format agnostic.
46 #if defined(GOOGLE_TV)
47 HOLE = 13, // Hole frame.
48 #endif
46 }; 49 };
47 50
48 // Creates a new frame in system memory with given parameters. Buffers for 51 // Creates a new frame in system memory with given parameters. Buffers for
49 // the frame are allocated but not initialized. 52 // the frame are allocated but not initialized.
50 // |coded_size| is the width and height of the frame data in pixels. 53 // |coded_size| is the width and height of the frame data in pixels.
51 // |visible_rect| is the visible portion of |coded_size|, after cropping (if 54 // |visible_rect| is the visible portion of |coded_size|, after cropping (if
52 // any) is applied. 55 // any) is applied.
53 // |natural_size| is the width and height of the frame when the frame's aspect 56 // |natural_size| is the width and height of the frame when the frame's aspect
54 // ratio is applied to |visible_rect|. 57 // ratio is applied to |visible_rect|.
55 static scoped_refptr<VideoFrame> CreateFrame( 58 static scoped_refptr<VideoFrame> CreateFrame(
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 // Allocates YV12 frame based on |size|, and sets its data to the YUV(y,u,v). 121 // Allocates YV12 frame based on |size|, and sets its data to the YUV(y,u,v).
119 static scoped_refptr<VideoFrame> CreateColorFrame( 122 static scoped_refptr<VideoFrame> CreateColorFrame(
120 const gfx::Size& size, 123 const gfx::Size& size,
121 uint8 y, uint8 u, uint8 v, 124 uint8 y, uint8 u, uint8 v,
122 base::TimeDelta timestamp); 125 base::TimeDelta timestamp);
123 126
124 // Allocates YV12 frame based on |size|, and sets its data to the YUV 127 // Allocates YV12 frame based on |size|, and sets its data to the YUV
125 // equivalent of RGB(0,0,0). 128 // equivalent of RGB(0,0,0).
126 static scoped_refptr<VideoFrame> CreateBlackFrame(const gfx::Size& size); 129 static scoped_refptr<VideoFrame> CreateBlackFrame(const gfx::Size& size);
127 130
131 #if defined(GOOGLE_TV)
132 // Allocates a hole frame.
133 static scoped_refptr<VideoFrame> CreateHoleFrame(const gfx::Size& size);
134 #endif
135
128 Format format() const { return format_; } 136 Format format() const { return format_; }
129 137
130 const gfx::Size& coded_size() const { return coded_size_; } 138 const gfx::Size& coded_size() const { return coded_size_; }
131 const gfx::Rect& visible_rect() const { return visible_rect_; } 139 const gfx::Rect& visible_rect() const { return visible_rect_; }
132 const gfx::Size& natural_size() const { return natural_size_; } 140 const gfx::Size& natural_size() const { return natural_size_; }
133 141
134 int stride(size_t plane) const; 142 int stride(size_t plane) const;
135 143
136 // Returns the number of bytes per row and number of rows for a given plane. 144 // Returns the number of bytes per row and number of rows for a given plane.
137 // 145 //
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 base::Closure no_longer_needed_cb_; 219 base::Closure no_longer_needed_cb_;
212 220
213 base::TimeDelta timestamp_; 221 base::TimeDelta timestamp_;
214 222
215 DISALLOW_IMPLICIT_CONSTRUCTORS(VideoFrame); 223 DISALLOW_IMPLICIT_CONSTRUCTORS(VideoFrame);
216 }; 224 };
217 225
218 } // namespace media 226 } // namespace media
219 227
220 #endif // MEDIA_BASE_VIDEO_FRAME_H_ 228 #endif // MEDIA_BASE_VIDEO_FRAME_H_
OLDNEW
« no previous file with comments | « content/browser/renderer_host/media/video_capture_controller.cc ('k') | media/base/video_frame.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698