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

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

Issue 2273793002: Don't fail on profile changes in GpuVideoDecoder. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make MSE stop lying. Created 4 years, 3 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/gpu_video_decoder.cc ('k') | media/filters/h264_parser.cc » ('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 // This file contains an implementation of an H264 Annex-B video stream parser. 5 // This file contains an implementation of an H264 Annex-B video stream parser.
6 6
7 #ifndef MEDIA_FILTERS_H264_PARSER_H_ 7 #ifndef MEDIA_FILTERS_H264_PARSER_H_
8 #define MEDIA_FILTERS_H264_PARSER_H_ 8 #define MEDIA_FILTERS_H264_PARSER_H_
9 9
10 #include <stddef.h> 10 #include <stddef.h>
11 #include <stdint.h> 11 #include <stdint.h>
12 #include <sys/types.h> 12 #include <sys/types.h>
13 13
14 #include <map> 14 #include <map>
15 #include <vector> 15 #include <vector>
16 16
17 #include "base/macros.h" 17 #include "base/macros.h"
18 #include "media/base/media_export.h" 18 #include "media/base/media_export.h"
19 #include "media/base/ranges.h" 19 #include "media/base/ranges.h"
20 #include "media/base/video_codecs.h"
20 #include "media/filters/h264_bit_reader.h" 21 #include "media/filters/h264_bit_reader.h"
21 22
22 namespace media { 23 namespace media {
23 24
24 struct SubsampleEntry; 25 struct SubsampleEntry;
25 26
26 // For explanations of each struct and its members, see H.264 specification 27 // For explanations of each struct and its members, see H.264 specification
27 // at http://www.itu.int/rec/T-REC-H.264. 28 // at http://www.itu.int/rec/T-REC-H.264.
28 struct MEDIA_EXPORT H264NALU { 29 struct MEDIA_EXPORT H264NALU {
29 H264NALU(); 30 H264NALU();
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 off_t* start_code_size); 354 off_t* start_code_size);
354 355
355 // Wrapper for FindStartCode() that skips over start codes that 356 // Wrapper for FindStartCode() that skips over start codes that
356 // may appear inside of |encrypted_ranges_|. 357 // may appear inside of |encrypted_ranges_|.
357 // Returns true if a start code was found. Otherwise returns false. 358 // Returns true if a start code was found. Otherwise returns false.
358 static bool FindStartCodeInClearRanges(const uint8_t* data, 359 static bool FindStartCodeInClearRanges(const uint8_t* data,
359 off_t data_size, 360 off_t data_size,
360 const Ranges<const uint8_t*>& ranges, 361 const Ranges<const uint8_t*>& ranges,
361 off_t* offset, 362 off_t* offset,
362 off_t* start_code_size); 363 off_t* start_code_size);
364
365 static VideoCodecProfile ProfileIDCToVideoCodecProfile(int profile_idc);
366
363 H264Parser(); 367 H264Parser();
364 ~H264Parser(); 368 ~H264Parser();
365 369
366 void Reset(); 370 void Reset();
367 // Set current stream pointer to |stream| of |stream_size| in bytes, 371 // Set current stream pointer to |stream| of |stream_size| in bytes,
368 // |stream| owned by caller. 372 // |stream| owned by caller.
369 // |subsamples| contains information about what parts of |stream| are 373 // |subsamples| contains information about what parts of |stream| are
370 // encrypted. 374 // encrypted.
371 void SetStream(const uint8_t* stream, off_t stream_size); 375 void SetStream(const uint8_t* stream, off_t stream_size);
372 void SetEncryptedStream(const uint8_t* stream, 376 void SetEncryptedStream(const uint8_t* stream,
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 // Ranges of encrypted bytes in the buffer passed to 482 // Ranges of encrypted bytes in the buffer passed to
479 // SetEncryptedStream(). 483 // SetEncryptedStream().
480 Ranges<const uint8_t*> encrypted_ranges_; 484 Ranges<const uint8_t*> encrypted_ranges_;
481 485
482 DISALLOW_COPY_AND_ASSIGN(H264Parser); 486 DISALLOW_COPY_AND_ASSIGN(H264Parser);
483 }; 487 };
484 488
485 } // namespace media 489 } // namespace media
486 490
487 #endif // MEDIA_FILTERS_H264_PARSER_H_ 491 #endif // MEDIA_FILTERS_H264_PARSER_H_
OLDNEW
« no previous file with comments | « media/filters/gpu_video_decoder.cc ('k') | media/filters/h264_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698