Shaka Packager SDK
Loading...
Searching...
No Matches
nal_unit_to_byte_stream_converter.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_NAL_UNIT_TO_BYTE_STREAM_CONVERTER_H_
8#define PACKAGER_MEDIA_CODECS_NAL_UNIT_TO_BYTE_STREAM_CONVERTER_H_
9
10#include <cstddef>
11#include <cstdint>
12#include <vector>
13
14#include <packager/macros/classes.h>
15#include <packager/media/base/decrypt_config.h>
16#include <packager/media/codecs/avc_decoder_configuration_record.h>
17
18namespace shaka {
19namespace media {
20
21class BufferWriter;
22class VideoStreamInfo;
23
31void EscapeNalByteSequence(const uint8_t* input,
32 size_t input_size,
33 BufferWriter* output);
34
35// Methods are virtual for mocking.
37 public:
40
46 virtual bool Initialize(const uint8_t* decoder_configuration_data,
47 size_t decoder_configuration_data_size);
48
57 virtual bool ConvertUnitToByteStream(const uint8_t* sample,
58 size_t sample_size,
59 bool is_key_frame,
60 std::vector<uint8_t>* output);
61
77 const uint8_t* sample,
78 size_t sample_size,
79 bool is_key_frame,
80 bool escape_encrypted_nalu,
81 std::vector<uint8_t>* output,
82 std::vector<SubsampleEntry>* subsamples);
83
84 private:
85 friend class NalUnitToByteStreamConverterTest;
86
87 int nalu_length_size_;
88 AVCDecoderConfigurationRecord decoder_config_;
89 std::vector<uint8_t> decoder_configuration_in_byte_stream_;
90
91 DISALLOW_COPY_AND_ASSIGN(NalUnitToByteStreamConverter);
92};
93
94} // namespace media
95} // namespace shaka
96
97#endif // PACKAGER_MEDIA_CODECS_NAL_UNIT_TO_BYTE_STREAM_CONVERTER_H_
Class for parsing AVC decoder configuration record.
virtual bool Initialize(const uint8_t *decoder_configuration_data, size_t decoder_configuration_data_size)
virtual bool ConvertUnitToByteStream(const uint8_t *sample, size_t sample_size, bool is_key_frame, std::vector< uint8_t > *output)
virtual bool ConvertUnitToByteStreamWithSubsamples(const uint8_t *sample, size_t sample_size, bool is_key_frame, bool escape_encrypted_nalu, std::vector< uint8_t > *output, std::vector< SubsampleEntry > *subsamples)
All the methods that are virtual are virtual for mocking.