Index: content/common/gpu/media/h264_dpb.h |
diff --git a/content/common/gpu/media/h264_dpb.h b/content/common/gpu/media/h264_dpb.h |
index a46e681371d216ca72f79a0a63d8fccdaa668a00..d7523d8932aff37e73fbb6c8060163360c8bb90d 100644 |
--- a/content/common/gpu/media/h264_dpb.h |
+++ b/content/common/gpu/media/h264_dpb.h |
@@ -17,18 +17,24 @@ |
namespace content { |
class V4L2H264Picture; |
+class VaapiH264Picture; |
// A picture (a frame or a field) in the H.264 spec sense. |
// See spec at http://www.itu.int/rec/T-REC-H.264 |
-struct H264PictureBase { |
+struct H264Picture : public base::RefCounted<H264Picture> { |
wuchengli
2015/03/30 11:02:54
This is complicated enough to be a class.
Pawel Osciak
2015/04/03 07:06:00
Done.
|
+ H264Picture(); |
+ |
+ virtual V4L2H264Picture* AsV4L2H264Picture(); |
+ virtual VaapiH264Picture* AsVaapiH264Picture(); |
+ |
+ using Vector = std::vector<scoped_refptr<H264Picture>>; |
+ |
enum Field { |
FIELD_NONE, |
FIELD_TOP, |
FIELD_BOTTOM, |
}; |
- H264PictureBase(); |
- |
// Values calculated per H.264 specification or taken from slice header. |
// See spec for more details on each (some names have been converted from |
// CamelCase in spec to Chromium-style names). |
@@ -65,16 +71,6 @@ struct H264PictureBase { |
// Position in DPB (i.e. index in DPB). |
int dpb_position; |
-}; |
- |
-class H264Picture : public H264PictureBase, |
- public base::RefCounted<H264Picture> { |
- public: |
- H264Picture(); |
- |
- virtual V4L2H264Picture* AsV4L2H264Picture(); |
- |
- using Vector = std::vector<scoped_refptr<H264Picture>>; |
protected: |
friend class base::RefCounted<H264Picture>; |
@@ -139,8 +135,12 @@ class H264DPB { |
H264Picture::Vector::iterator end() { return pics_.end(); } |
H264Picture::Vector::const_iterator begin() const { return pics_.begin(); } |
H264Picture::Vector::const_iterator end() const { return pics_.end(); } |
- H264Picture::Vector::reverse_iterator rbegin() { return pics_.rbegin(); } |
- H264Picture::Vector::reverse_iterator rend() { return pics_.rend(); } |
+ H264Picture::Vector::const_reverse_iterator rbegin() const { |
+ return pics_.rbegin(); |
+ } |
+ H264Picture::Vector::const_reverse_iterator rend() const { |
+ return pics_.rend(); |
+ } |
size_t size() const { return pics_.size(); } |
bool IsFull() const { return pics_.size() == max_num_pics_; } |