Twitch SDK (Internal)
lameaudioencoder.h
Go to the documentation of this file.
1 /********************************************************************************************
2 * Twitch Broadcasting SDK
3 *
4 * This software is supplied under the terms of a license agreement with Twitch Interactive, Inc. and
5 * may not be copied or used except in accordance with the terms of that agreement
6 * Copyright (c) 2012-2016 Twitch Interactive, Inc.
7 *********************************************************************************************/
8 
9 #pragma once
10 
12 
13 #include <memory>
14 
15 
16 namespace ttv
17 {
18  namespace broadcast
19  {
20  class LameAudioEncoder;
21  struct LameAudioEncoderInternalData;
22  }
23 }
24 
25 
27 {
28 public:
30  virtual ~LameAudioEncoder();
31 
32 public: // IAudioEncoder
33  virtual std::string GetName() const override;
34  virtual TTV_ErrorCode SetFrameWriter(const std::shared_ptr<IFrameWriter>& frameWriter) override;
35  virtual TTV_ErrorCode GetAudioEncodingFormat(AudioFormat& result) override;
36  virtual TTV_ErrorCode Initialize() override;
37  virtual TTV_ErrorCode Start(uint32_t streamIndex, const AudioParams& audioParams) override;
38  virtual TTV_ErrorCode GetNumInputSamplesPerEncodeFrame(uint32_t& result) override;
39  virtual TTV_ErrorCode Stop() override;
40  virtual TTV_ErrorCode Shutdown() override;
41 
42  virtual TTV_ErrorCode SubmitFrame(const std::shared_ptr<AudioFrame>& audioFrame) override;
43  virtual bool SupportsReceiverProtocol(IAudioFrameReceiver::ReceiverTypeId typeId) const override;
44  virtual std::shared_ptr<IAudioFrameReceiver> GetReceiverImplementation(IAudioFrameReceiver::ReceiverTypeId typeId) override;
45 
46 private:
47  TTV_ErrorCode SubmitPcmSamples(const int16_t* samples, uint32_t numSamplesPerChannel);
50 
51 private:
52  std::unique_ptr<LameAudioEncoderInternalData> mInternalData;
53 };
virtual std::shared_ptr< IAudioFrameReceiver > GetReceiverImplementation(IAudioFrameReceiver::ReceiverTypeId typeId) override
TTV_ErrorCode SubmitPcmSamples(const int16_t *samples, uint32_t numSamplesPerChannel)
virtual TTV_ErrorCode Shutdown() override
virtual std::string GetName() const override
virtual TTV_ErrorCode Stop() override
virtual TTV_ErrorCode GetNumInputSamplesPerEncodeFrame(uint32_t &result) override
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
std::unique_ptr< LameAudioEncoderInternalData > mInternalData
Definition: lameaudioencoder.h:52
Definition: iaudioencoder.h:29
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
bool SupportsReceiverProtocol() const
Definition: iaudioencoder.h:75
size_t ReceiverTypeId
Definition: iaudioframereceiver.h:28
Definition: lameaudioencoder.h:26
Definition: iaudioencoder.h:45
virtual TTV_ErrorCode GetAudioEncodingFormat(AudioFormat &result) override
virtual TTV_ErrorCode SubmitFrame(const std::shared_ptr< AudioFrame > &audioFrame) override
virtual TTV_ErrorCode Start(uint32_t streamIndex, const AudioParams &audioParams) override
AudioFormat
Definition: broadcasttypes.h:166
virtual TTV_ErrorCode Initialize() override
virtual TTV_ErrorCode SetFrameWriter(const std::shared_ptr< IFrameWriter > &frameWriter) override