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

Side by Side Diff: content/common/gpu/media/h264_dpb.h

Issue 1369673002: H264Decoder: Handle gaps in frame_num. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
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 // 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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698