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 CONTENT_COMMON_GPU_MEDIA_H264_DPB_H_ | 8 #ifndef CONTENT_COMMON_GPU_MEDIA_H264_DPB_H_ |
9 #define CONTENT_COMMON_GPU_MEDIA_H264_DPB_H_ | 9 #define CONTENT_COMMON_GPU_MEDIA_H264_DPB_H_ |
10 | 10 |
(...skipping 21 matching lines...) Expand all Loading... |
32 }; | 32 }; |
33 | 33 |
34 H264Picture(); | 34 H264Picture(); |
35 | 35 |
36 virtual V4L2H264Picture* AsV4L2H264Picture(); | 36 virtual V4L2H264Picture* AsV4L2H264Picture(); |
37 virtual VaapiH264Picture* AsVaapiH264Picture(); | 37 virtual VaapiH264Picture* AsVaapiH264Picture(); |
38 | 38 |
39 // Values calculated per H.264 specification or taken from slice header. | 39 // Values calculated per H.264 specification or taken from slice header. |
40 // See spec for more details on each (some names have been converted from | 40 // See spec for more details on each (some names have been converted from |
41 // CamelCase in spec to Chromium-style names). | 41 // CamelCase in spec to Chromium-style names). |
| 42 int pic_order_cnt_type; |
42 int top_field_order_cnt; | 43 int top_field_order_cnt; |
43 int bottom_field_order_cnt; | 44 int bottom_field_order_cnt; |
44 int pic_order_cnt; | 45 int pic_order_cnt; |
45 int pic_order_cnt_msb; | 46 int pic_order_cnt_msb; |
46 int pic_order_cnt_lsb; | 47 int pic_order_cnt_lsb; |
| 48 int delta_pic_order_cnt_bottom; |
| 49 int delta_pic_order_cnt0; |
| 50 int delta_pic_order_cnt1; |
47 | 51 |
48 int pic_num; | 52 int pic_num; |
49 int long_term_pic_num; | 53 int long_term_pic_num; |
50 int frame_num; // from slice header | 54 int frame_num; // from slice header |
51 int frame_num_offset; | 55 int frame_num_offset; |
52 int frame_num_wrap; | 56 int frame_num_wrap; |
53 int long_term_frame_idx; | 57 int long_term_frame_idx; |
54 | 58 |
55 media::H264SliceHeader::Type type; | 59 media::H264SliceHeader::Type type; |
| 60 int nal_ref_idc; |
56 bool idr; // IDR picture? | 61 bool idr; // IDR picture? |
| 62 int idr_pic_id; // Valid only if idr == true. |
57 bool ref; // reference picture? | 63 bool ref; // reference picture? |
58 bool long_term; // long term reference picture? | 64 bool long_term; // long term reference picture? |
59 bool outputted; | 65 bool outputted; |
60 // Does memory management op 5 needs to be executed after this | 66 // Does memory management op 5 needs to be executed after this |
61 // picture has finished decoding? | 67 // picture has finished decoding? |
62 bool mem_mgmt_5; | 68 bool mem_mgmt_5; |
63 | 69 |
| 70 // Created by the decoding process for gaps in frame_num. |
| 71 // Not for decode or output. |
| 72 bool nonexisting; |
| 73 |
64 Field field; | 74 Field field; |
65 | 75 |
66 // Values from slice_hdr to be used during reference marking and | 76 // Values from slice_hdr to be used during reference marking and |
67 // memory management after finishing this picture. | 77 // memory management after finishing this picture. |
68 bool long_term_reference_flag; | 78 bool long_term_reference_flag; |
69 bool adaptive_ref_pic_marking_mode_flag; | 79 bool adaptive_ref_pic_marking_mode_flag; |
70 media::H264DecRefPicMarking | 80 media::H264DecRefPicMarking |
71 ref_pic_marking[media::H264SliceHeader::kRefListSize]; | 81 ref_pic_marking[media::H264SliceHeader::kRefListSize]; |
72 | 82 |
73 // Position in DPB (i.e. index in DPB). | 83 // Position in DPB (i.e. index in DPB). |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 | 165 |
156 H264Picture::Vector pics_; | 166 H264Picture::Vector pics_; |
157 size_t max_num_pics_; | 167 size_t max_num_pics_; |
158 | 168 |
159 DISALLOW_COPY_AND_ASSIGN(H264DPB); | 169 DISALLOW_COPY_AND_ASSIGN(H264DPB); |
160 }; | 170 }; |
161 | 171 |
162 } // namespace content | 172 } // namespace content |
163 | 173 |
164 #endif // CONTENT_COMMON_GPU_MEDIA_H264_DPB_H_ | 174 #endif // CONTENT_COMMON_GPU_MEDIA_H264_DPB_H_ |
OLD | NEW |