Twitch SDK (Internal)
appleaacencoder.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 
13 #include <AudioToolbox/AudioToolbox.h>
14 
15 namespace ttv
16 {
17  namespace broadcast
18  {
19  class AppleAacEncoder;
20  struct AppleAacEncoderInternalData;
21  class IFrameWriter;
22  }
23 }
24 
26 {
27 public:
29  virtual ~AppleAacEncoder();
30 
31 public: // IAudioEncoder
32  virtual std::string GetName() const override;
33  virtual TTV_ErrorCode SetFrameWriter(const std::shared_ptr<IFrameWriter>& frameWriter) override;
34  virtual TTV_ErrorCode GetAudioEncodingFormat(AudioFormat& result) override;
35  virtual TTV_ErrorCode Initialize() override;
36  virtual TTV_ErrorCode Start(uint32_t streamIndex, const AudioParams& audioParams) override;
37  virtual TTV_ErrorCode GetNumInputSamplesPerEncodeFrame(uint32_t& result) override;
38  virtual TTV_ErrorCode Stop() override;
39  virtual TTV_ErrorCode Shutdown() override;
40 
41  virtual TTV_ErrorCode SubmitFrame(const std::shared_ptr<AudioFrame>& audioFrame) override;
42  virtual bool SupportsReceiverProtocol(IAudioFrameReceiver::ReceiverTypeId typeId) const override;
43  virtual std::shared_ptr<IAudioFrameReceiver> GetReceiverImplementation(IAudioFrameReceiver::ReceiverTypeId typeId) override;
44 
45 private:
46  TTV_ErrorCode SubmitPcmSamples(const int16_t* samples, uint32_t numSamplesPerChannel);
47 
48  std::unique_ptr<AppleAacEncoderInternalData> mInternalData;
49 };
virtual TTV_ErrorCode SetFrameWriter(const std::shared_ptr< IFrameWriter > &frameWriter) override
virtual std::shared_ptr< IAudioFrameReceiver > GetReceiverImplementation(IAudioFrameReceiver::ReceiverTypeId typeId) override
virtual TTV_ErrorCode Stop() override
virtual TTV_ErrorCode GetNumInputSamplesPerEncodeFrame(uint32_t &result) override
virtual std::string GetName() const override
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
Definition: appleaacencoder.h:25
Definition: iaudioencoder.h:29
virtual TTV_ErrorCode Initialize() override
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
bool SupportsReceiverProtocol() const
Definition: iaudioencoder.h:75
size_t ReceiverTypeId
Definition: iaudioframereceiver.h:28
virtual TTV_ErrorCode GetAudioEncodingFormat(AudioFormat &result) override
std::unique_ptr< AppleAacEncoderInternalData > mInternalData
Definition: appleaacencoder.h:48
Definition: iaudioencoder.h:45
TTV_ErrorCode SubmitPcmSamples(const int16_t *samples, uint32_t numSamplesPerChannel)
AudioFormat
Definition: broadcasttypes.h:166
virtual TTV_ErrorCode Shutdown() override
virtual TTV_ErrorCode Start(uint32_t streamIndex, const AudioParams &audioParams) override
virtual TTV_ErrorCode SubmitFrame(const std::shared_ptr< AudioFrame > &audioFrame) override