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

Side by Side Diff: media/filters/h264_parser.cc

Issue 2371783002: Remove stl_util's deletion functions from media/. (Closed)
Patch Set: wolenetz Created 4 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
« no previous file with comments | « media/filters/h264_parser.h ('k') | media/filters/media_source_state.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "media/filters/h264_parser.h" 5 #include "media/filters/h264_parser.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/numerics/safe_math.h" 12 #include "base/numerics/safe_math.h"
13 #include "base/stl_util.h"
14 #include "media/base/decrypt_config.h" 13 #include "media/base/decrypt_config.h"
15 #include "ui/gfx/geometry/rect.h" 14 #include "ui/gfx/geometry/rect.h"
16 #include "ui/gfx/geometry/size.h" 15 #include "ui/gfx/geometry/size.h"
17 16
18 namespace media { 17 namespace media {
19 18
20 bool H264SliceHeader::IsPSlice() const { 19 bool H264SliceHeader::IsPSlice() const {
21 return (slice_type % 5 == kPSlice); 20 return (slice_type % 5 == kPSlice);
22 } 21 }
23 22
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 0, 1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1 198 0, 1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1
200 }; 199 };
201 static_assert(arraysize(kTableSarWidth) == arraysize(kTableSarHeight), 200 static_assert(arraysize(kTableSarWidth) == arraysize(kTableSarHeight),
202 "sar tables must have the same size"); 201 "sar tables must have the same size");
203 202
204 H264Parser::H264Parser() { 203 H264Parser::H264Parser() {
205 Reset(); 204 Reset();
206 } 205 }
207 206
208 H264Parser::~H264Parser() { 207 H264Parser::~H264Parser() {
209 base::STLDeleteValues(&active_SPSes_);
210 base::STLDeleteValues(&active_PPSes_);
211 } 208 }
212 209
213 void H264Parser::Reset() { 210 void H264Parser::Reset() {
214 stream_ = NULL; 211 stream_ = NULL;
215 bytes_left_ = 0; 212 bytes_left_ = 0;
216 encrypted_ranges_.clear(); 213 encrypted_ranges_.clear();
217 } 214 }
218 215
219 void H264Parser::SetStream(const uint8_t* stream, off_t stream_size) { 216 void H264Parser::SetStream(const uint8_t* stream, off_t stream_size) {
220 std::vector<SubsampleEntry> subsamples; 217 std::vector<SubsampleEntry> subsamples;
(...skipping 23 matching lines...) Expand all
244 } 241 }
245 } 242 }
246 243
247 const H264PPS* H264Parser::GetPPS(int pps_id) const { 244 const H264PPS* H264Parser::GetPPS(int pps_id) const {
248 auto it = active_PPSes_.find(pps_id); 245 auto it = active_PPSes_.find(pps_id);
249 if (it == active_PPSes_.end()) { 246 if (it == active_PPSes_.end()) {
250 DVLOG(1) << "Requested a nonexistent PPS id " << pps_id; 247 DVLOG(1) << "Requested a nonexistent PPS id " << pps_id;
251 return nullptr; 248 return nullptr;
252 } 249 }
253 250
254 return it->second; 251 return it->second.get();
255 } 252 }
256 253
257 const H264SPS* H264Parser::GetSPS(int sps_id) const { 254 const H264SPS* H264Parser::GetSPS(int sps_id) const {
258 auto it = active_SPSes_.find(sps_id); 255 auto it = active_SPSes_.find(sps_id);
259 if (it == active_SPSes_.end()) { 256 if (it == active_SPSes_.end()) {
260 DVLOG(1) << "Requested a nonexistent SPS id " << sps_id; 257 DVLOG(1) << "Requested a nonexistent SPS id " << sps_id;
261 return nullptr; 258 return nullptr;
262 } 259 }
263 260
264 return it->second; 261 return it->second.get();
265 } 262 }
266 263
267 static inline bool IsStartCode(const uint8_t* data) { 264 static inline bool IsStartCode(const uint8_t* data) {
268 return data[0] == 0x00 && data[1] == 0x00 && data[2] == 0x01; 265 return data[0] == 0x00 && data[1] == 0x00 && data[2] == 0x01;
269 } 266 }
270 267
271 // static 268 // static
272 bool H264Parser::FindStartCode(const uint8_t* data, 269 bool H264Parser::FindStartCode(const uint8_t* data,
273 off_t data_size, 270 off_t data_size,
274 off_t* offset, 271 off_t* offset,
(...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 READ_BOOL_OR_RETURN(&sps->vui_parameters_present_flag); 989 READ_BOOL_OR_RETURN(&sps->vui_parameters_present_flag);
993 if (sps->vui_parameters_present_flag) { 990 if (sps->vui_parameters_present_flag) {
994 DVLOG(4) << "VUI parameters present"; 991 DVLOG(4) << "VUI parameters present";
995 res = ParseVUIParameters(sps.get()); 992 res = ParseVUIParameters(sps.get());
996 if (res != kOk) 993 if (res != kOk)
997 return res; 994 return res;
998 } 995 }
999 996
1000 // If an SPS with the same id already exists, replace it. 997 // If an SPS with the same id already exists, replace it.
1001 *sps_id = sps->seq_parameter_set_id; 998 *sps_id = sps->seq_parameter_set_id;
1002 delete active_SPSes_[*sps_id]; 999 active_SPSes_[*sps_id] = std::move(sps);
1003 active_SPSes_[*sps_id] = sps.release();
1004 1000
1005 return kOk; 1001 return kOk;
1006 } 1002 }
1007 1003
1008 H264Parser::Result H264Parser::ParsePPS(int* pps_id) { 1004 H264Parser::Result H264Parser::ParsePPS(int* pps_id) {
1009 // See 7.4.2.2. 1005 // See 7.4.2.2.
1010 const H264SPS* sps; 1006 const H264SPS* sps;
1011 Result res; 1007 Result res;
1012 1008
1013 *pps_id = -1; 1009 *pps_id = -1;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1068 res = ParsePPSScalingLists(*sps, pps.get()); 1064 res = ParsePPSScalingLists(*sps, pps.get());
1069 if (res != kOk) 1065 if (res != kOk)
1070 return res; 1066 return res;
1071 } 1067 }
1072 1068
1073 READ_SE_OR_RETURN(&pps->second_chroma_qp_index_offset); 1069 READ_SE_OR_RETURN(&pps->second_chroma_qp_index_offset);
1074 } 1070 }
1075 1071
1076 // If a PPS with the same id already exists, replace it. 1072 // If a PPS with the same id already exists, replace it.
1077 *pps_id = pps->pic_parameter_set_id; 1073 *pps_id = pps->pic_parameter_set_id;
1078 delete active_PPSes_[*pps_id]; 1074 active_PPSes_[*pps_id] = std::move(pps);
1079 active_PPSes_[*pps_id] = pps.release();
1080 1075
1081 return kOk; 1076 return kOk;
1082 } 1077 }
1083 1078
1084 H264Parser::Result H264Parser::ParseRefPicListModification( 1079 H264Parser::Result H264Parser::ParseRefPicListModification(
1085 int num_ref_idx_active_minus1, 1080 int num_ref_idx_active_minus1,
1086 H264ModificationOfPicNum* ref_list_mods) { 1081 H264ModificationOfPicNum* ref_list_mods) {
1087 H264ModificationOfPicNum* pic_num_mod; 1082 H264ModificationOfPicNum* pic_num_mod;
1088 1083
1089 if (num_ref_idx_active_minus1 >= 32) 1084 if (num_ref_idx_active_minus1 >= 32)
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
1458 1453
1459 default: 1454 default:
1460 DVLOG(4) << "Unsupported SEI message"; 1455 DVLOG(4) << "Unsupported SEI message";
1461 break; 1456 break;
1462 } 1457 }
1463 1458
1464 return kOk; 1459 return kOk;
1465 } 1460 }
1466 1461
1467 } // namespace media 1462 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/h264_parser.h ('k') | media/filters/media_source_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698