Shaka Packager SDK
Loading...
Searching...
No Matches
packager
media
codecs
video_slice_header_parser.h
1
// Copyright 2016 Google LLC. All rights reserved.
2
//
3
// Use of this source code is governed by a BSD-style
4
// license that can be found in the LICENSE file or at
5
// https://developers.google.com/open-source/licenses/bsd
6
7
#ifndef PACKAGER_MEDIA_CODECS_VIDEO_SLICE_HEADER_PARSER_H_
8
#define PACKAGER_MEDIA_CODECS_VIDEO_SLICE_HEADER_PARSER_H_
9
10
#include <cstdint>
11
#include <vector>
12
13
#include <packager/macros/classes.h>
14
#include <packager/media/codecs/h264_parser.h>
15
#include <packager/media/codecs/h265_parser.h>
16
#include <packager/media/codecs/hevc_decoder_configuration_record.h>
17
18
namespace
shaka
{
19
namespace
media {
20
21
class
VideoSliceHeaderParser
{
22
public
:
23
VideoSliceHeaderParser
() {}
24
virtual
~VideoSliceHeaderParser
() {}
25
28
virtual
bool
Initialize
(
29
const
std::vector<uint8_t>& decoder_configuration) = 0;
30
33
// GetHeaderSize.
34
virtual
bool
InitializeLayered
(
35
const
std::vector<uint8_t>& layered_decoder_configuration) = 0;
36
43
virtual
bool
ProcessNalu
(
const
Nalu
& nalu) = 0;
44
46
virtual
int64_t
GetHeaderSize
(
const
Nalu
& nalu) = 0;
47
48
private
:
49
DISALLOW_COPY_AND_ASSIGN(
VideoSliceHeaderParser
);
50
};
51
52
class
H264VideoSliceHeaderParser
:
public
VideoSliceHeaderParser
{
53
public
:
54
H264VideoSliceHeaderParser
();
55
~H264VideoSliceHeaderParser
()
override
;
56
59
bool
Initialize
(
const
std::vector<uint8_t>& decoder_configuration)
override
;
60
bool
InitializeLayered
(
61
const
std::vector<uint8_t>& decoder_configuration)
override
;
62
bool
ProcessNalu
(
const
Nalu
& nalu)
override
;
63
int64_t
GetHeaderSize
(
const
Nalu
& nalu)
override
;
65
66
private
:
67
H264Parser
parser_;
68
69
DISALLOW_COPY_AND_ASSIGN(
H264VideoSliceHeaderParser
);
70
};
71
72
class
H265VideoSliceHeaderParser
:
public
VideoSliceHeaderParser
{
73
public
:
74
H265VideoSliceHeaderParser
();
75
~H265VideoSliceHeaderParser
()
override
;
76
79
bool
Initialize
(
const
std::vector<uint8_t>& decoder_configuration)
override
;
80
bool
InitializeLayered
(
81
const
std::vector<uint8_t>& decoder_configuration)
override
;
82
bool
ProcessNalu
(
const
Nalu
& nalu)
override
;
83
int64_t
GetHeaderSize
(
const
Nalu
& nalu)
override
;
85
86
private
:
87
bool
ParseParameterSets(
const
HEVCDecoderConfigurationRecord
& config);
88
89
H265Parser
parser_;
90
91
DISALLOW_COPY_AND_ASSIGN(
H265VideoSliceHeaderParser
);
92
};
93
94
}
// namespace media
95
}
// namespace shaka
96
97
#endif
// PACKAGER_MEDIA_CODECS_VIDEO_SLICE_HEADER_PARSER_H_
shaka::media::H264Parser
Definition
h264_parser.h:249
shaka::media::H264VideoSliceHeaderParser
Definition
video_slice_header_parser.h:52
shaka::media::H264VideoSliceHeaderParser::ProcessNalu
bool ProcessNalu(const Nalu &nalu) override
Definition
video_slice_header_parser.cc:54
shaka::media::H264VideoSliceHeaderParser::Initialize
bool Initialize(const std::vector< uint8_t > &decoder_configuration) override
Definition
video_slice_header_parser.cc:31
shaka::media::H264VideoSliceHeaderParser::GetHeaderSize
int64_t GetHeaderSize(const Nalu &nalu) override
Gets the header size of the given NALU. Returns < 0 on error.
Definition
video_slice_header_parser.cc:66
shaka::media::H264VideoSliceHeaderParser::InitializeLayered
bool InitializeLayered(const std::vector< uint8_t > &decoder_configuration) override
Definition
video_slice_header_parser.cc:49
shaka::media::H265Parser
Definition
h265_parser.h:388
shaka::media::H265VideoSliceHeaderParser
Definition
video_slice_header_parser.h:72
shaka::media::H265VideoSliceHeaderParser::GetHeaderSize
int64_t GetHeaderSize(const Nalu &nalu) override
Gets the header size of the given NALU. Returns < 0 on error.
Definition
video_slice_header_parser.cc:131
shaka::media::H265VideoSliceHeaderParser::InitializeLayered
bool InitializeLayered(const std::vector< uint8_t > &decoder_configuration) override
Definition
video_slice_header_parser.cc:105
shaka::media::H265VideoSliceHeaderParser::Initialize
bool Initialize(const std::vector< uint8_t > &decoder_configuration) override
Definition
video_slice_header_parser.cc:98
shaka::media::H265VideoSliceHeaderParser::ProcessNalu
bool ProcessNalu(const Nalu &nalu) override
Definition
video_slice_header_parser.cc:117
shaka::media::HEVCDecoderConfigurationRecord
Class for parsing HEVC decoder configuration record.
Definition
hevc_decoder_configuration_record.h:24
shaka::media::Nalu
Definition
nalu_reader.h:26
shaka::media::VideoSliceHeaderParser
Definition
video_slice_header_parser.h:21
shaka::media::VideoSliceHeaderParser::GetHeaderSize
virtual int64_t GetHeaderSize(const Nalu &nalu)=0
Gets the header size of the given NALU. Returns < 0 on error.
shaka::media::VideoSliceHeaderParser::Initialize
virtual bool Initialize(const std::vector< uint8_t > &decoder_configuration)=0
shaka::media::VideoSliceHeaderParser::InitializeLayered
virtual bool InitializeLayered(const std::vector< uint8_t > &layered_decoder_configuration)=0
shaka::media::VideoSliceHeaderParser::ProcessNalu
virtual bool ProcessNalu(const Nalu &nalu)=0
shaka
All the methods that are virtual are virtual for mocking.
Definition
crypto_flags.cc:70
Generated on Thu Mar 5 2026 03:54:55 for Shaka Packager SDK by
1.9.8