Shaka Packager SDK
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 
16 namespace shaka {
17 namespace media {
18 class 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.
Definition: crypto_flags.cc:66