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

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

Issue 8052002: Fix support for yuv_422 pixel format. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fixed lint errors. Created 9 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | media/base/video_decoder_config.cc » ('j') | media/base/video_frame.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_DECODER_CONFIG_H_ 5 #ifndef MEDIA_BASE_VIDEO_DECODER_CONFIG_H_
6 #define MEDIA_BASE_VIDEO_DECODER_CONFIG_H_ 6 #define MEDIA_BASE_VIDEO_DECODER_CONFIG_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "libavutil/pixfmt.h"
scherkus (not reviewing) 2011/09/28 17:32:17 in order to prevent FFmpeg types leaking into the
shadi1 2011/09/29 18:31:03 Done.
10 #include "media/base/media_export.h" 11 #include "media/base/media_export.h"
11 #include "ui/gfx/rect.h" 12 #include "ui/gfx/rect.h"
12 #include "ui/gfx/size.h" 13 #include "ui/gfx/size.h"
13 14
14 namespace media { 15 namespace media {
15 16
16 enum VideoCodec { 17 enum VideoCodec {
17 kUnknownVideoCodec, 18 kUnknownVideoCodec,
18 kCodecH264, 19 kCodecH264,
19 kCodecVC1, 20 kCodecVC1,
20 kCodecMPEG2, 21 kCodecMPEG2,
21 kCodecMPEG4, 22 kCodecMPEG4,
22 kCodecTheora, 23 kCodecTheora,
23 kCodecVP8, 24 kCodecVP8,
24 25
25 // DO NOT ADD RANDOM VIDEO CODECS! 26 // DO NOT ADD RANDOM VIDEO CODECS!
26 // 27 //
27 // The only acceptable time to add a new codec is if there is production code 28 // The only acceptable time to add a new codec is if there is production code
28 // that uses said codec in the same CL. 29 // that uses said codec in the same CL.
29 }; 30 };
30 31
31 class MEDIA_EXPORT VideoDecoderConfig { 32 class MEDIA_EXPORT VideoDecoderConfig {
32 public: 33 public:
33 VideoDecoderConfig(VideoCodec codec, const gfx::Size& coded_size, 34 VideoDecoderConfig(VideoCodec codec,
35 PixelFormat pix_fmt,
36 const gfx::Size& coded_size,
34 const gfx::Rect& visible_rect, 37 const gfx::Rect& visible_rect,
35 const gfx::Size& natural_size, 38 const gfx::Size& natural_size,
36 int frame_rate_numerator, int frame_rate_denominator, 39 int frame_rate_numerator, int frame_rate_denominator,
37 const uint8* extra_data, size_t extra_data_size); 40 const uint8* extra_data, size_t extra_data_size);
38 ~VideoDecoderConfig(); 41 ~VideoDecoderConfig();
39 42
40 VideoCodec codec() const; 43 VideoCodec codec() const;
44 PixelFormat pix_fmt() const;
41 gfx::Size coded_size() const; 45 gfx::Size coded_size() const;
42 gfx::Rect visible_rect() const; 46 gfx::Rect visible_rect() const;
43 gfx::Size natural_size() const; 47 gfx::Size natural_size() const;
44 int frame_rate_numerator() const; 48 int frame_rate_numerator() const;
45 int frame_rate_denominator() const; 49 int frame_rate_denominator() const;
46 uint8* extra_data() const; 50 uint8* extra_data() const;
47 size_t extra_data_size() const; 51 size_t extra_data_size() const;
48 52
49 private: 53 private:
50 VideoCodec codec_; 54 VideoCodec codec_;
51 55
56 // Pixel format, used to determine U & V buffer sizes.
57 PixelFormat pix_fmt_;
58
52 // Width and height of video frame immediately post-decode. Not all pixels 59 // Width and height of video frame immediately post-decode. Not all pixels
53 // in this region are valid. 60 // in this region are valid.
54 gfx::Size coded_size_; 61 gfx::Size coded_size_;
55 62
56 // Region of |coded_size_| that is visible. 63 // Region of |coded_size_| that is visible.
57 gfx::Rect visible_rect_; 64 gfx::Rect visible_rect_;
58 65
59 // Natural width and height of the video, i.e. the visible dimensions 66 // Natural width and height of the video, i.e. the visible dimensions
60 // after aspect ratio is applied. 67 // after aspect ratio is applied.
61 gfx::Size natural_size_; 68 gfx::Size natural_size_;
62 69
63 // Frame rate in seconds expressed as a fraction. 70 // Frame rate in seconds expressed as a fraction.
64 // TODO(scherkus): fairly certain decoders don't require frame rates. 71 // TODO(scherkus): fairly certain decoders don't require frame rates.
65 int frame_rate_numerator_; 72 int frame_rate_numerator_;
66 int frame_rate_denominator_; 73 int frame_rate_denominator_;
67 74
68 // Optional byte data required to initialize video decoders. 75 // Optional byte data required to initialize video decoders.
69 scoped_array<uint8> extra_data_; 76 scoped_array<uint8> extra_data_;
70 size_t extra_data_size_; 77 size_t extra_data_size_;
71 78
72 DISALLOW_IMPLICIT_CONSTRUCTORS(VideoDecoderConfig); 79 DISALLOW_IMPLICIT_CONSTRUCTORS(VideoDecoderConfig);
73 }; 80 };
74 81
75 } // namespace media 82 } // namespace media
76 83
77 #endif // MEDIA_BASE_VIDEO_DECODER_CONFIG_H_ 84 #endif // MEDIA_BASE_VIDEO_DECODER_CONFIG_H_
OLDNEW
« no previous file with comments | « no previous file | media/base/video_decoder_config.cc » ('j') | media/base/video_frame.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698