Skip to content
Snippets Groups Projects
Select Git revision
  • aadb2a64cfc21e088b275a0b19126068222b5f1d
  • master default protected
  • release/202005
  • release/202001
  • release/201912
  • release/201911
  • release/releaseWindowsTestOne
  • release/windowsReleaseTest
  • release/releaseTest
  • release/releaseWindowsTest
  • release/201910
  • release/qt/201910
  • release/windows-test/201910
  • release/201908
  • release/201906
  • release/201905
  • release/201904
  • release/201903
  • release/201902
  • release/201901
  • release/201812
  • 4.0.0
  • 2.2.0
  • 2.1.0
  • 2.0.1
  • 2.0.0
  • 1.4.1
  • 1.4.0
  • 1.3.0
  • 1.2.0
  • 1.1.0
31 results

build-package.sh

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    audiocodec.h 1.33 KiB
    #ifndef _CODEC_AUDIO_H
    #define _CODEC_AUDIO_H
    
    #include <string> 
    #include <iostream>
    #include <dlfcn.h>
    
    class AudioCodec {
    protected:
      /** Holds SDP-compliant codec name */
      std::string _codecName; // what we put inside sdp
      
      /** Clock rate or sample rate of the codec, in Hz */
      unsigned int _clockRate;
    
      /** Number of channel 1 = mono, 2 = stereo */
      unsigned int _channel;
    
    private:
      int _payload;
      bool _hasDynamicPayload;
    
    public:
        AudioCodec(int payload, const std::string &codecName)
            : _codecName(codecName) {
    	_payload = payload;
      	_clockRate = 8000; // default
      	_channel   = 1; // default
    
      	_hasDynamicPayload = (_payload >= 96 && _payload <= 127) ? true : false;
    
    }
    
        virtual ~AudioCodec() {
    	}
        /**
         * @return the number of bytes decoded
         */
        virtual int codecDecode(short *, unsigned char *, unsigned int) = 0;
        virtual int codecEncode(unsigned char *, short *, unsigned int) = 0;   
    
    
      /** Value used for SDP negotiation */
      std::string getCodecName() { return _codecName; }
      int getPayload() { return _payload; }
      bool hasDynamicPayload() { return _hasDynamicPayload; }
      unsigned int getClockRate() { return _clockRate; }
      unsigned int getChannel() { return _channel; }
      
    
    };
    
    // the types of the class factories
    typedef AudioCodec* create_t();
    typedef void destroy_t(AudioCodec*);
    
    #endif