OLD | NEW |
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 // This file contains an implementation of an H.264 Decoded Picture Buffer | 5 // This file contains an implementation of an H.264 Decoded Picture Buffer |
6 // used in H264 decoders. | 6 // used in H264 decoders. |
7 | 7 |
8 #ifndef MEDIA_GPU_H264_DPB_H_ | 8 #ifndef MEDIA_GPU_H264_DPB_H_ |
9 #define MEDIA_GPU_H264_DPB_H_ | 9 #define MEDIA_GPU_H264_DPB_H_ |
10 | 10 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 int delta_pic_order_cnt0; | 51 int delta_pic_order_cnt0; |
52 int delta_pic_order_cnt1; | 52 int delta_pic_order_cnt1; |
53 | 53 |
54 int pic_num; | 54 int pic_num; |
55 int long_term_pic_num; | 55 int long_term_pic_num; |
56 int frame_num; // from slice header | 56 int frame_num; // from slice header |
57 int frame_num_offset; | 57 int frame_num_offset; |
58 int frame_num_wrap; | 58 int frame_num_wrap; |
59 int long_term_frame_idx; | 59 int long_term_frame_idx; |
60 | 60 |
61 media::H264SliceHeader::Type type; | 61 H264SliceHeader::Type type; |
62 int nal_ref_idc; | 62 int nal_ref_idc; |
63 bool idr; // IDR picture? | 63 bool idr; // IDR picture? |
64 int idr_pic_id; // Valid only if idr == true. | 64 int idr_pic_id; // Valid only if idr == true. |
65 bool ref; // reference picture? | 65 bool ref; // reference picture? |
66 bool long_term; // long term reference picture? | 66 bool long_term; // long term reference picture? |
67 bool outputted; | 67 bool outputted; |
68 // Does memory management op 5 needs to be executed after this | 68 // Does memory management op 5 needs to be executed after this |
69 // picture has finished decoding? | 69 // picture has finished decoding? |
70 bool mem_mgmt_5; | 70 bool mem_mgmt_5; |
71 | 71 |
72 // Created by the decoding process for gaps in frame_num. | 72 // Created by the decoding process for gaps in frame_num. |
73 // Not for decode or output. | 73 // Not for decode or output. |
74 bool nonexisting; | 74 bool nonexisting; |
75 | 75 |
76 Field field; | 76 Field field; |
77 | 77 |
78 // Values from slice_hdr to be used during reference marking and | 78 // Values from slice_hdr to be used during reference marking and |
79 // memory management after finishing this picture. | 79 // memory management after finishing this picture. |
80 bool long_term_reference_flag; | 80 bool long_term_reference_flag; |
81 bool adaptive_ref_pic_marking_mode_flag; | 81 bool adaptive_ref_pic_marking_mode_flag; |
82 media::H264DecRefPicMarking | 82 H264DecRefPicMarking ref_pic_marking[H264SliceHeader::kRefListSize]; |
83 ref_pic_marking[media::H264SliceHeader::kRefListSize]; | |
84 | 83 |
85 // Position in DPB (i.e. index in DPB). | 84 // Position in DPB (i.e. index in DPB). |
86 int dpb_position; | 85 int dpb_position; |
87 | 86 |
88 protected: | 87 protected: |
89 friend class base::RefCounted<H264Picture>; | 88 friend class base::RefCounted<H264Picture>; |
90 virtual ~H264Picture(); | 89 virtual ~H264Picture(); |
91 | 90 |
92 private: | 91 private: |
93 DISALLOW_COPY_AND_ASSIGN(H264Picture); | 92 DISALLOW_COPY_AND_ASSIGN(H264Picture); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 | 168 |
170 H264Picture::Vector pics_; | 169 H264Picture::Vector pics_; |
171 size_t max_num_pics_; | 170 size_t max_num_pics_; |
172 | 171 |
173 DISALLOW_COPY_AND_ASSIGN(H264DPB); | 172 DISALLOW_COPY_AND_ASSIGN(H264DPB); |
174 }; | 173 }; |
175 | 174 |
176 } // namespace media | 175 } // namespace media |
177 | 176 |
178 #endif // MEDIA_GPU_H264_DPB_H_ | 177 #endif // MEDIA_GPU_H264_DPB_H_ |
OLD | NEW |