Shaka Packager SDK
Loading...
Searching...
No Matches
webm_audio_client.h
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
3// found in the LICENSE file.
4
5#ifndef PACKAGER_MEDIA_FORMATS_WEBM_WEBM_AUDIO_CLIENT_H_
6#define PACKAGER_MEDIA_FORMATS_WEBM_WEBM_AUDIO_CLIENT_H_
7
8#include <memory>
9#include <string>
10#include <vector>
11
12#include <packager/macros/classes.h>
13#include <packager/media/base/audio_stream_info.h>
14#include <packager/media/formats/webm/webm_parser.h>
15
16namespace shaka {
17namespace media {
18class AudioDecoderConfig;
19
22 public:
24 ~WebMAudioClient() override;
25
27 void Reset();
28
44 std::shared_ptr<AudioStreamInfo> GetAudioStreamInfo(
45 int64_t track_num,
46 const std::string& codec_id,
47 const std::vector<uint8_t>& codec_private,
48 int64_t seek_preroll,
49 int64_t codec_delay,
50 const std::string& language,
51 bool is_encrypted);
52
53 private:
54 // WebMParserClient implementation.
55 bool OnUInt(int id, int64_t val) override;
56 bool OnFloat(int id, double val) override;
57
58 int channels_;
59 double samples_per_second_;
60 double output_samples_per_second_;
61
62 DISALLOW_COPY_AND_ASSIGN(WebMAudioClient);
63};
64
65} // namespace media
66} // namespace shaka
67
68#endif // PACKAGER_MEDIA_FORMATS_WEBM_WEBM_AUDIO_CLIENT_H_
Helper class used to parse an Audio element inside a TrackEntry element.
std::shared_ptr< AudioStreamInfo > GetAudioStreamInfo(int64_t track_num, const std::string &codec_id, const std::vector< uint8_t > &codec_private, int64_t seek_preroll, int64_t codec_delay, const std::string &language, bool is_encrypted)
void Reset()
Reset this object's state so it can process a new audio track element.
All the methods that are virtual are virtual for mocking.