AVPKit
com::avpkit::core::ICodec Class Referenceabstract

A "key" to an IStreamCoder that tells it how to encode or decode data. More...

#include <ICodec.h>

Inheritance diagram for com::avpkit::core::ICodec:
Collaboration diagram for com::avpkit::core::ICodec:

Public Types

enum  ID {
  AV_CODEC_ID_NONE , AV_CODEC_ID_MPEG1VIDEO , AV_CODEC_ID_MPEG2VIDEO , AV_CODEC_ID_H261 ,
  AV_CODEC_ID_H263 , AV_CODEC_ID_RV10 , AV_CODEC_ID_RV20 , AV_CODEC_ID_MJPEG ,
  AV_CODEC_ID_MJPEGB , AV_CODEC_ID_LJPEG , AV_CODEC_ID_SP5X , AV_CODEC_ID_JPEGLS ,
  AV_CODEC_ID_MPEG4 , AV_CODEC_ID_RAWVIDEO , AV_CODEC_ID_MSMPEG4V1 , AV_CODEC_ID_MSMPEG4V2 ,
  AV_CODEC_ID_MSMPEG4V3 , AV_CODEC_ID_WMV1 , AV_CODEC_ID_WMV2 , AV_CODEC_ID_H263P ,
  AV_CODEC_ID_H263I , AV_CODEC_ID_FLV1 , AV_CODEC_ID_SVQ1 , AV_CODEC_ID_SVQ3 ,
  AV_CODEC_ID_DVVIDEO , AV_CODEC_ID_HUFFYUV , AV_CODEC_ID_CYUV , AV_CODEC_ID_H264 ,
  AV_CODEC_ID_INDEO3 , AV_CODEC_ID_VP3 , AV_CODEC_ID_THEORA , AV_CODEC_ID_ASV1 ,
  AV_CODEC_ID_ASV2 , AV_CODEC_ID_FFV1 , AV_CODEC_ID_4XM , AV_CODEC_ID_VCR1 ,
  AV_CODEC_ID_CLJR , AV_CODEC_ID_MDEC , AV_CODEC_ID_ROQ , AV_CODEC_ID_INTERPLAY_VIDEO ,
  AV_CODEC_ID_XAN_WC3 , AV_CODEC_ID_XAN_WC4 , AV_CODEC_ID_RPZA , AV_CODEC_ID_CINEPAK ,
  AV_CODEC_ID_WS_VQA , AV_CODEC_ID_MSRLE , AV_CODEC_ID_MSVIDEO1 , AV_CODEC_ID_IDCIN ,
  AV_CODEC_ID_8BPS , AV_CODEC_ID_SMC , AV_CODEC_ID_FLIC , AV_CODEC_ID_TRUEMOTION1 ,
  AV_CODEC_ID_VMDVIDEO , AV_CODEC_ID_MSZH , AV_CODEC_ID_ZLIB , AV_CODEC_ID_QTRLE ,
  AV_CODEC_ID_TSCC , AV_CODEC_ID_ULTI , AV_CODEC_ID_QDRAW , AV_CODEC_ID_VIXL ,
  AV_CODEC_ID_QPEG , AV_CODEC_ID_PNG , AV_CODEC_ID_PPM , AV_CODEC_ID_PBM ,
  AV_CODEC_ID_PGM , AV_CODEC_ID_PGMYUV , AV_CODEC_ID_PAM , AV_CODEC_ID_FFVHUFF ,
  AV_CODEC_ID_RV30 , AV_CODEC_ID_RV40 , AV_CODEC_ID_VC1 , AV_CODEC_ID_WMV3 ,
  AV_CODEC_ID_LOCO , AV_CODEC_ID_WNV1 , AV_CODEC_ID_AASC , AV_CODEC_ID_INDEO2 ,
  AV_CODEC_ID_FRAPS , AV_CODEC_ID_TRUEMOTION2 , AV_CODEC_ID_BMP , AV_CODEC_ID_CSCD ,
  AV_CODEC_ID_MMVIDEO , AV_CODEC_ID_ZMBV , AV_CODEC_ID_AVS , AV_CODEC_ID_SMACKVIDEO ,
  AV_CODEC_ID_NUV , AV_CODEC_ID_KMVC , AV_CODEC_ID_FLASHSV , AV_CODEC_ID_CAVS ,
  AV_CODEC_ID_JPEG2000 , AV_CODEC_ID_VMNC , AV_CODEC_ID_VP5 , AV_CODEC_ID_VP6 ,
  AV_CODEC_ID_VP6F , AV_CODEC_ID_TARGA , AV_CODEC_ID_DSICINVIDEO , AV_CODEC_ID_TIERTEXSEQVIDEO ,
  AV_CODEC_ID_TIFF , AV_CODEC_ID_GIF , AV_CODEC_ID_DXA , AV_CODEC_ID_DNXHD ,
  AV_CODEC_ID_THP , AV_CODEC_ID_SGI , AV_CODEC_ID_C93 , AV_CODEC_ID_BETHSOFTVID ,
  AV_CODEC_ID_PTX , AV_CODEC_ID_TXD , AV_CODEC_ID_VP6A , AV_CODEC_ID_AMV ,
  AV_CODEC_ID_VB , AV_CODEC_ID_PCX , AV_CODEC_ID_SUNRAST , AV_CODEC_ID_INDEO4 ,
  AV_CODEC_ID_INDEO5 , AV_CODEC_ID_MIMIC , AV_CODEC_ID_RL2 , AV_CODEC_ID_ESCAPE124 ,
  AV_CODEC_ID_DIRAC , AV_CODEC_ID_BFI , AV_CODEC_ID_CMV , AV_CODEC_ID_MOTIONPIXELS ,
  AV_CODEC_ID_TGV , AV_CODEC_ID_TGQ , AV_CODEC_ID_TQI , AV_CODEC_ID_AURA ,
  AV_CODEC_ID_AURA2 , AV_CODEC_ID_V210X , AV_CODEC_ID_TMV , AV_CODEC_ID_V210 ,
  AV_CODEC_ID_DPX , AV_CODEC_ID_MAD , AV_CODEC_ID_FRWU , AV_CODEC_ID_FLASHSV2 ,
  AV_CODEC_ID_CDGRAPHICS , AV_CODEC_ID_R210 , AV_CODEC_ID_ANM , AV_CODEC_ID_BINKVIDEO ,
  AV_CODEC_ID_IFF_ILBM , AV_CODEC_ID_KGV1 , AV_CODEC_ID_YOP , AV_CODEC_ID_VP8 ,
  AV_CODEC_ID_PICTOR , AV_CODEC_ID_ANSI , AV_CODEC_ID_A64_MULTI , AV_CODEC_ID_A64_MULTI5 ,
  AV_CODEC_ID_R10K , AV_CODEC_ID_MXPEG , AV_CODEC_ID_LAGARITH , AV_CODEC_ID_PRORES ,
  AV_CODEC_ID_JV , AV_CODEC_ID_DFA , AV_CODEC_ID_WMV3IMAGE , AV_CODEC_ID_VC1IMAGE ,
  AV_CODEC_ID_UTVIDEO , AV_CODEC_ID_BMV_VIDEO , AV_CODEC_ID_VBLE , AV_CODEC_ID_DXTORY ,
  AV_CODEC_ID_V410 , AV_CODEC_ID_XWD , AV_CODEC_ID_CDXL , AV_CODEC_ID_XBM ,
  AV_CODEC_ID_ZEROCODEC , AV_CODEC_ID_MSS1 , AV_CODEC_ID_MSA1 , AV_CODEC_ID_TSCC2 ,
  AV_CODEC_ID_MTS2 , AV_CODEC_ID_CLLC , AV_CODEC_ID_MSS2 , AV_CODEC_ID_VP9 ,
  AV_CODEC_ID_AIC , AV_CODEC_ID_ESCAPE130 , AV_CODEC_ID_G2M , AV_CODEC_ID_WEBP ,
  AV_CODEC_ID_HNM4_VIDEO , AV_CODEC_ID_HEVC , AV_CODEC_ID_FIC , AV_CODEC_ID_ALIAS_PIX ,
  AV_CODEC_ID_BRENDER_PIX , AV_CODEC_ID_PAF_VIDEO , AV_CODEC_ID_EXR , AV_CODEC_ID_VP7 ,
  AV_CODEC_ID_SANM , AV_CODEC_ID_SGIRLE , AV_CODEC_ID_MVC1 , AV_CODEC_ID_MVC2 ,
  AV_CODEC_ID_HQX , AV_CODEC_ID_TDSC , AV_CODEC_ID_HQ_HQA , AV_CODEC_ID_HAP ,
  AV_CODEC_ID_DDS , AV_CODEC_ID_DXV , AV_CODEC_ID_SCREENPRESSO , AV_CODEC_ID_RSCC ,
  AV_CODEC_ID_AVS2 , AV_CODEC_ID_Y41P = 0x8000 , AV_CODEC_ID_AVRP , AV_CODEC_ID_012V ,
  AV_CODEC_ID_AVUI , AV_CODEC_ID_AYUV , AV_CODEC_ID_TARGA_Y216 , AV_CODEC_ID_V308 ,
  AV_CODEC_ID_V408 , AV_CODEC_ID_YUV4 , AV_CODEC_ID_AVRN , AV_CODEC_ID_CPIA ,
  AV_CODEC_ID_XFACE , AV_CODEC_ID_SNOW , AV_CODEC_ID_SMVJPEG , AV_CODEC_ID_APNG ,
  AV_CODEC_ID_DAALA , AV_CODEC_ID_CFHD , AV_CODEC_ID_TRUEMOTION2RT , AV_CODEC_ID_M101 ,
  AV_CODEC_ID_MAGICYUV , AV_CODEC_ID_SHEERVIDEO , AV_CODEC_ID_YLC , AV_CODEC_ID_PSD ,
  AV_CODEC_ID_PIXLET , AV_CODEC_ID_SPEEDHQ , AV_CODEC_ID_FMVC , AV_CODEC_ID_SCPR ,
  AV_CODEC_ID_CLEARVIDEO , AV_CODEC_ID_XPM , AV_CODEC_ID_AV1 , AV_CODEC_ID_BITPACKED ,
  AV_CODEC_ID_MSCC , AV_CODEC_ID_SRGC , AV_CODEC_ID_SVG , AV_CODEC_ID_GDV ,
  AV_CODEC_ID_FITS , AV_CODEC_ID_IMM4 , AV_CODEC_ID_PROSUMER , AV_CODEC_ID_MWSC ,
  AV_CODEC_ID_WCMV , AV_CODEC_ID_RASC , AV_CODEC_ID_HYMT , AV_CODEC_ID_ARBC ,
  AV_CODEC_ID_AGM , AV_CODEC_ID_LSCR , AV_CODEC_ID_VP4 , AV_CODEC_ID_IMM5 ,
  AV_CODEC_ID_MVDV , AV_CODEC_ID_MVHA , AV_CODEC_ID_CDTOONS , AV_CODEC_ID_MV30 ,
  AV_CODEC_ID_NOTCHLC , AV_CODEC_ID_PFM , AV_CODEC_ID_FIRST_AUDIO = 0x10000 , AV_CODEC_ID_PCM_S16LE = 0x10000 ,
  AV_CODEC_ID_PCM_S16BE , AV_CODEC_ID_PCM_U16LE , AV_CODEC_ID_PCM_U16BE , AV_CODEC_ID_PCM_S8 ,
  AV_CODEC_ID_PCM_U8 , AV_CODEC_ID_PCM_MULAW , AV_CODEC_ID_PCM_ALAW , AV_CODEC_ID_PCM_S32LE ,
  AV_CODEC_ID_PCM_S32BE , AV_CODEC_ID_PCM_U32LE , AV_CODEC_ID_PCM_U32BE , AV_CODEC_ID_PCM_S24LE ,
  AV_CODEC_ID_PCM_S24BE , AV_CODEC_ID_PCM_U24LE , AV_CODEC_ID_PCM_U24BE , AV_CODEC_ID_PCM_S24DAUD ,
  AV_CODEC_ID_PCM_ZORK , AV_CODEC_ID_PCM_S16LE_PLANAR , AV_CODEC_ID_PCM_DVD , AV_CODEC_ID_PCM_F32BE ,
  AV_CODEC_ID_PCM_F32LE , AV_CODEC_ID_PCM_F64BE , AV_CODEC_ID_PCM_F64LE , AV_CODEC_ID_PCM_BLURAY ,
  AV_CODEC_ID_PCM_LXF , AV_CODEC_ID_S302M , AV_CODEC_ID_PCM_S8_PLANAR , AV_CODEC_ID_PCM_S24LE_PLANAR ,
  AV_CODEC_ID_PCM_S32LE_PLANAR , AV_CODEC_ID_PCM_S16BE_PLANAR , AV_CODEC_ID_PCM_S64LE = 0x10800 , AV_CODEC_ID_PCM_S64BE ,
  AV_CODEC_ID_PCM_F16LE , AV_CODEC_ID_PCM_F24LE , AV_CODEC_ID_PCM_VIDC , AV_CODEC_ID_ADPCM_IMA_QT = 0x11000 ,
  AV_CODEC_ID_ADPCM_IMA_WAV , AV_CODEC_ID_ADPCM_IMA_DK3 , AV_CODEC_ID_ADPCM_IMA_DK4 , AV_CODEC_ID_ADPCM_IMA_WS ,
  AV_CODEC_ID_ADPCM_IMA_SMJPEG , AV_CODEC_ID_ADPCM_MS , AV_CODEC_ID_ADPCM_4XM , AV_CODEC_ID_ADPCM_XA ,
  AV_CODEC_ID_ADPCM_ADX , AV_CODEC_ID_ADPCM_EA , AV_CODEC_ID_ADPCM_G726 , AV_CODEC_ID_ADPCM_CT ,
  AV_CODEC_ID_ADPCM_SWF , AV_CODEC_ID_ADPCM_YAMAHA , AV_CODEC_ID_ADPCM_SBPRO_4 , AV_CODEC_ID_ADPCM_SBPRO_3 ,
  AV_CODEC_ID_ADPCM_SBPRO_2 , AV_CODEC_ID_ADPCM_THP , AV_CODEC_ID_ADPCM_IMA_AMV , AV_CODEC_ID_ADPCM_EA_R1 ,
  AV_CODEC_ID_ADPCM_EA_R3 , AV_CODEC_ID_ADPCM_EA_R2 , AV_CODEC_ID_ADPCM_IMA_EA_SEAD , AV_CODEC_ID_ADPCM_IMA_EA_EACS ,
  AV_CODEC_ID_ADPCM_EA_XAS , AV_CODEC_ID_ADPCM_EA_MAXIS_XA , AV_CODEC_ID_ADPCM_IMA_ISS , AV_CODEC_ID_ADPCM_G722 ,
  AV_CODEC_ID_ADPCM_IMA_APC , AV_CODEC_ID_ADPCM_VIMA , AV_CODEC_ID_ADPCM_AFC = 0x11800 , AV_CODEC_ID_ADPCM_IMA_OKI ,
  AV_CODEC_ID_ADPCM_DTK , AV_CODEC_ID_ADPCM_IMA_RAD , AV_CODEC_ID_ADPCM_G726LE , AV_CODEC_ID_ADPCM_THP_LE ,
  AV_CODEC_ID_ADPCM_PSX , AV_CODEC_ID_ADPCM_AICA , AV_CODEC_ID_ADPCM_IMA_DAT4 , AV_CODEC_ID_ADPCM_MTAF ,
  AV_CODEC_ID_ADPCM_AGM , AV_CODEC_ID_ADPCM_ARGO , AV_CODEC_ID_ADPCM_IMA_SSI , AV_CODEC_ID_ADPCM_ZORK ,
  AV_CODEC_ID_ADPCM_IMA_APM , AV_CODEC_ID_ADPCM_IMA_ALP , AV_CODEC_ID_ADPCM_IMA_MTF , AV_CODEC_ID_ADPCM_IMA_CUNNING ,
  AV_CODEC_ID_AMR_NB = 0x12000 , AV_CODEC_ID_AMR_WB , AV_CODEC_ID_RA_144 = 0x13000 , AV_CODEC_ID_RA_288 ,
  AV_CODEC_ID_ROQ_DPCM = 0x14000 , AV_CODEC_ID_INTERPLAY_DPCM , AV_CODEC_ID_XAN_DPCM , AV_CODEC_ID_SOL_DPCM ,
  AV_CODEC_ID_SDX2_DPCM = 0x14800 , AV_CODEC_ID_GREMLIN_DPCM , AV_CODEC_ID_DERF_DPCM , AV_CODEC_ID_MP2 = 0x15000 ,
  AV_CODEC_ID_MP3 , AV_CODEC_ID_AAC , AV_CODEC_ID_AC3 , AV_CODEC_ID_DTS ,
  AV_CODEC_ID_VORBIS , AV_CODEC_ID_DVAUDIO , AV_CODEC_ID_WMAV1 , AV_CODEC_ID_WMAV2 ,
  AV_CODEC_ID_MACE3 , AV_CODEC_ID_MACE6 , AV_CODEC_ID_VMDAUDIO , AV_CODEC_ID_FLAC ,
  AV_CODEC_ID_MP3ADU , AV_CODEC_ID_MP3ON4 , AV_CODEC_ID_SHORTEN , AV_CODEC_ID_ALAC ,
  AV_CODEC_ID_WESTWOOD_SND1 , AV_CODEC_ID_GSM , AV_CODEC_ID_QDM2 , AV_CODEC_ID_COOK ,
  AV_CODEC_ID_TRUESPEECH , AV_CODEC_ID_TTA , AV_CODEC_ID_SMACKAUDIO , AV_CODEC_ID_QCELP ,
  AV_CODEC_ID_WAVPACK , AV_CODEC_ID_DSICINAUDIO , AV_CODEC_ID_IMC , AV_CODEC_ID_MUSEPACK7 ,
  AV_CODEC_ID_MLP , AV_CODEC_ID_GSM_MS , AV_CODEC_ID_ATRAC3 , AV_CODEC_ID_APE ,
  AV_CODEC_ID_NELLYMOSER , AV_CODEC_ID_MUSEPACK8 , AV_CODEC_ID_SPEEX , AV_CODEC_ID_WMAVOICE ,
  AV_CODEC_ID_WMAPRO , AV_CODEC_ID_WMALOSSLESS , AV_CODEC_ID_ATRAC3P , AV_CODEC_ID_EAC3 ,
  AV_CODEC_ID_SIPR , AV_CODEC_ID_MP1 , AV_CODEC_ID_TWINVQ , AV_CODEC_ID_TRUEHD ,
  AV_CODEC_ID_MP4ALS , AV_CODEC_ID_ATRAC1 , AV_CODEC_ID_BINKAUDIO_RDFT , AV_CODEC_ID_BINKAUDIO_DCT ,
  AV_CODEC_ID_AAC_LATM , AV_CODEC_ID_QDMC , AV_CODEC_ID_CELT , AV_CODEC_ID_G723_1 ,
  AV_CODEC_ID_G729 , AV_CODEC_ID_8SVX_EXP , AV_CODEC_ID_8SVX_FIB , AV_CODEC_ID_BMV_AUDIO ,
  AV_CODEC_ID_RALF , AV_CODEC_ID_IAC , AV_CODEC_ID_ILBC , AV_CODEC_ID_OPUS ,
  AV_CODEC_ID_COMFORT_NOISE , AV_CODEC_ID_TAK , AV_CODEC_ID_METASOUND , AV_CODEC_ID_PAF_AUDIO ,
  AV_CODEC_ID_ON2AVC , AV_CODEC_ID_DSS_SP , AV_CODEC_ID_CODEC2 , AV_CODEC_ID_FFWAVESYNTH = 0x15800 ,
  AV_CODEC_ID_SONIC , AV_CODEC_ID_SONIC_LS , AV_CODEC_ID_EVRC , AV_CODEC_ID_SMV ,
  AV_CODEC_ID_DSD_LSBF , AV_CODEC_ID_DSD_MSBF , AV_CODEC_ID_DSD_LSBF_PLANAR , AV_CODEC_ID_DSD_MSBF_PLANAR ,
  AV_CODEC_ID_4GV , AV_CODEC_ID_INTERPLAY_ACM , AV_CODEC_ID_XMA1 , AV_CODEC_ID_XMA2 ,
  AV_CODEC_ID_DST , AV_CODEC_ID_ATRAC3AL , AV_CODEC_ID_ATRAC3PAL , AV_CODEC_ID_DOLBY_E ,
  AV_CODEC_ID_APTX , AV_CODEC_ID_APTX_HD , AV_CODEC_ID_SBC , AV_CODEC_ID_ATRAC9 ,
  AV_CODEC_ID_HCOM , AV_CODEC_ID_ACELP_KELVIN , AV_CODEC_ID_MPEGH_3D_AUDIO , AV_CODEC_ID_SIREN ,
  AV_CODEC_ID_HCA , AV_CODEC_ID_FIRST_SUBTITLE = 0x17000 , AV_CODEC_ID_DVD_SUBTITLE = 0x17000 , AV_CODEC_ID_DVB_SUBTITLE ,
  AV_CODEC_ID_TEXT , AV_CODEC_ID_XSUB , AV_CODEC_ID_SSA , AV_CODEC_ID_MOV_TEXT ,
  AV_CODEC_ID_HDMV_PGS_SUBTITLE , AV_CODEC_ID_DVB_TELETEXT , AV_CODEC_ID_SRT , AV_CODEC_ID_MICRODVD = 0x17800 ,
  AV_CODEC_ID_EIA_608 , AV_CODEC_ID_JACOSUB , AV_CODEC_ID_SAMI , AV_CODEC_ID_REALTEXT ,
  AV_CODEC_ID_STL , AV_CODEC_ID_SUBVIEWER1 , AV_CODEC_ID_SUBVIEWER , AV_CODEC_ID_SUBRIP ,
  AV_CODEC_ID_WEBVTT , AV_CODEC_ID_MPL2 , AV_CODEC_ID_VPLAYER , AV_CODEC_ID_PJS ,
  AV_CODEC_ID_ASS , AV_CODEC_ID_HDMV_TEXT_SUBTITLE , AV_CODEC_ID_TTML , AV_CODEC_ID_ARIB_CAPTION ,
  AV_CODEC_ID_FIRST_UNKNOWN = 0x18000 , AV_CODEC_ID_TTF = 0x18000 , AV_CODEC_ID_SCTE_35 , AV_CODEC_ID_EPG ,
  AV_CODEC_ID_BINTEXT = 0x18800 , AV_CODEC_ID_XBIN , AV_CODEC_ID_IDF , AV_CODEC_ID_OTF ,
  AV_CODEC_ID_SMPTE_KLV , AV_CODEC_ID_DVD_NAV , AV_CODEC_ID_TIMED_ID3 , AV_CODEC_ID_BIN_DATA ,
  AV_CODEC_ID_PROBE = 0x19000 , AV_CODEC_ID_MPEG2TS = 0x20000 , AV_CODEC_ID_MPEG4SYSTEMS = 0x20001 , AV_CODEC_ID_FFMETADATA = 0x21000 ,
  AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001
}
 These are the codecs this library currently supports. More...
 
enum  Type {
  CODEC_TYPE_UNKNOWN = -1 , CODEC_TYPE_VIDEO , CODEC_TYPE_AUDIO , CODEC_TYPE_DATA ,
  CODEC_TYPE_SUBTITLE , CODEC_TYPE_ATTACHMENT
}
 The different types of Codecs that can exist in the system.
 
enum  Capabilities {
  CAP_DRAW_HORIZ_BAND = 0x0001 , CAP_DR1 = 0x0002 , CAP_PARSE_ONLY = 0x0004 , CAP_TRUNCATED = 0x0008 ,
  CAP_HWACCEL = 0x0010 , CAP_DELAY = 0x0020 , CAP_SMALL_LAST_FRAME = 0x0040 , CAP_HWACCEL_VDPAU = 0x0080 ,
  CAP_SUBFRAMES =0x0100
}
 Capability flags.
 
typedef enum com::avpkit::core::ICodec::ID ID
 These are the codecs this library currently supports. More...
 
typedef enum com::avpkit::core::ICodec::Type Type
 The different types of Codecs that can exist in the system.
 
typedef enum com::avpkit::core::ICodec::Capabilities Capabilities
 Capability flags.
 

Public Member Functions

virtual const char * getName ()=0
 Get the name of the codec. More...
 
virtual int getIDAsInt ()=0
 Get the ID of this codec, as an integer. More...
 
virtual ID getID ()=0
 Get the ID of this codec as an enumeration. More...
 
virtual Type getType ()=0
 Get the type of this codec. More...
 
virtual bool canDecode ()=0
 Can this codec be used for decoding? More...
 
virtual bool canEncode ()=0
 Can this codec be used for encoding? More...
 
virtual const char * getLongName ()=0
 Added for 1.17. More...
 
virtual int32_t getCapabilities ()=0
 Get the capabilites flag from the codec. More...
 
virtual bool hasCapability (Capabilities capability)=0
 Convenience method to check individual capability flags. More...
 
virtual int32_t getNumSupportedVideoFrameRates ()=0
 Get the number of frame rates this codec supports for encoding. More...
 
virtual IRationalgetSupportedVideoFrameRate (int32_t index)=0
 Return the supported frame rate at the given index. More...
 
virtual int32_t getNumSupportedVideoPixelFormats ()=0
 Get the number of supported video pixel formats this codec supports for encoding. More...
 
virtual IPixelFormat::Type getSupportedVideoPixelFormat (int32_t index)=0
 Return the supported video pixel format at the given index. More...
 
virtual int32_t getNumSupportedAudioSampleRates ()=0
 Get the number of different audio sample rates this codec supports for encoding. More...
 
virtual int32_t getSupportedAudioSampleRate (int32_t index)=0
 Return the support audio sample rate at the given index. More...
 
virtual int32_t getNumSupportedAudioSampleFormats ()=0
 Get the number of different audio sample formats this codec supports for encoding. More...
 
virtual IAudioSamples::Format getSupportedAudioSampleFormat (int32_t index)=0
 Get the supported sample format at this index. More...
 
virtual int32_t getNumSupportedAudioChannelLayouts ()=0
 Get the number of different audio channel layouts this codec supports for encoding. More...
 
virtual int64_t getSupportedAudioChannelLayout (int32_t index)=0
 Get the supported audio channel layout at this index. More...
 
- Public Member Functions inherited from com::avpkit::ferry::RefCounted
virtual int32_t acquire ()
 Internal Only. More...
 
virtual int32_t release ()
 Internal Only. More...
 
virtual RefCountedcopyReference ()
 Create a new Java object that refers to the same native object. More...
 
virtual int32_t getCurrentRefCount ()
 Return the current reference count on this object. More...
 
void setJavaAllocator (void *allocator)
 This method is public but not part of the standard API. More...
 
void * getJavaAllocator ()
 This method is public but not part of the standard API. More...
 

Static Public Member Functions

static ICodecfindEncodingCodec (ICodec::ID id, const IPixelFormat::Type=IPixelFormat::NONE)
 Find a codec that can be used for encoding or find a HW codec that can be used for encoding. More...
 
static ICodecfindEncodingCodecByIntID (int id)
 Find a codec that can be used for encoding. More...
 
static ICodecfindEncodingCodecByName (const char *id)
 Find a codec that can be used for encoding. More...
 
static ICodecfindDecodingCodec (ICodec::ID id, const IPixelFormat::Type=IPixelFormat::NONE)
 Find a codec that can be used for decoding or find a HW codec that can be used for decoding. More...
 
static ICodecfindDecodingCodecByIntID (int id)
 Find a codec that can be used for decoding. More...
 
static ICodecfindDecodingCodecByName (const char *id)
 Find a codec that can be used for decoding. More...
 
static ICodecguessEncodingCodec (IContainerFormat *fmt, const char *shortName, const char *url, const char *mimeType, ICodec::Type type)
 Ask us to guess an encoding codec based on the inputs passed in. More...
 
static int32_t getNumInstalledCodecs ()
 Get the number of installed codecs on this system. More...
 
static ICodecgetInstalledCodec (int32_t index)
 Get the ICodec at the given index. More...
 

Additional Inherited Members

- Protected Member Functions inherited from com::avpkit::ferry::RefCounted
virtual void destroy ()
 This method is called by RefCounted objects when their Ref Count reaches zero and they are about to be destroyed.
 
- Protected Attributes inherited from com::avpkit::ferry::RefCounted
AtomicIntegermRefCount
 This is the internal reference count, represented as an AtomicInteger to make sure it is thread safe.
 
void * mAllocator
 Not part of public API.
 

Detailed Description

A "key" to an IStreamCoder that tells it how to encode or decode data.

Use these objects to tell a IStreamCoder you want to use MP3 or NellyMoser for example.

Definition at line 52 of file ICodec.h.

Member Typedef Documentation

◆ ID

These are the codecs this library currently supports.

These are based on FFMPEG Git versions with this HEAD: 6a97ba521558ce131fe839eed2d51ff745280e1d

Member Enumeration Documentation

◆ ID

These are the codecs this library currently supports.

These are based on FFMPEG Git versions with this HEAD: 6a97ba521558ce131fe839eed2d51ff745280e1d

Enumerator
AV_CODEC_ID_MPEG2VIDEO 

preferred ID for MPEG-1/2 video decoding

AV_CODEC_ID_FIRST_AUDIO 

A dummy id pointing at the start of audio codecs.

AV_CODEC_ID_MP3 

preferred ID for decoding MPEG audio layer 1, 2 or 3

AV_CODEC_ID_GSM 

as in Berlin toast format

AV_CODEC_ID_FIRST_SUBTITLE 

A dummy ID pointing at the start of subtitle codecs.

AV_CODEC_ID_TEXT 

raw UTF-8 text

AV_CODEC_ID_FIRST_UNKNOWN 

A dummy ID pointing at the start of various fake codecs.

AV_CODEC_ID_SCTE_35 

Contain timestamp estimated through PCR of program stream.

AV_CODEC_ID_PROBE 

codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it

AV_CODEC_ID_MPEG2TS 

FAKE codec to indicate a raw MPEG-2 TS stream (only used by libavformat)

AV_CODEC_ID_MPEG4SYSTEMS 

FAKE codec to indicate a MPEG-4 Systems stream (only used by libavformat)

AV_CODEC_ID_FFMETADATA 

Dummy codec for streams containing only metadata information.

AV_CODEC_ID_WRAPPED_AVFRAME 

Passthrough codec, AVFrames wrapped in AVPacket.

Definition at line 60 of file ICodec.h.

61  {
62  AV_CODEC_ID_NONE,
63 
64  /* video codecs */
65  AV_CODEC_ID_MPEG1VIDEO,
67  AV_CODEC_ID_H261,
68  AV_CODEC_ID_H263,
69  AV_CODEC_ID_RV10,
70  AV_CODEC_ID_RV20,
71  AV_CODEC_ID_MJPEG,
72  AV_CODEC_ID_MJPEGB,
73  AV_CODEC_ID_LJPEG,
74  AV_CODEC_ID_SP5X,
75  AV_CODEC_ID_JPEGLS,
76  AV_CODEC_ID_MPEG4,
77  AV_CODEC_ID_RAWVIDEO,
78  AV_CODEC_ID_MSMPEG4V1,
79  AV_CODEC_ID_MSMPEG4V2,
80  AV_CODEC_ID_MSMPEG4V3,
81  AV_CODEC_ID_WMV1,
82  AV_CODEC_ID_WMV2,
83  AV_CODEC_ID_H263P,
84  AV_CODEC_ID_H263I,
85  AV_CODEC_ID_FLV1,
86  AV_CODEC_ID_SVQ1,
87  AV_CODEC_ID_SVQ3,
88  AV_CODEC_ID_DVVIDEO,
89  AV_CODEC_ID_HUFFYUV,
90  AV_CODEC_ID_CYUV,
91  AV_CODEC_ID_H264,
92  AV_CODEC_ID_INDEO3,
93  AV_CODEC_ID_VP3,
94  AV_CODEC_ID_THEORA,
95  AV_CODEC_ID_ASV1,
96  AV_CODEC_ID_ASV2,
97  AV_CODEC_ID_FFV1,
98  AV_CODEC_ID_4XM,
99  AV_CODEC_ID_VCR1,
100  AV_CODEC_ID_CLJR,
101  AV_CODEC_ID_MDEC,
102  AV_CODEC_ID_ROQ,
103  AV_CODEC_ID_INTERPLAY_VIDEO,
104  AV_CODEC_ID_XAN_WC3,
105  AV_CODEC_ID_XAN_WC4,
106  AV_CODEC_ID_RPZA,
107  AV_CODEC_ID_CINEPAK,
108  AV_CODEC_ID_WS_VQA,
109  AV_CODEC_ID_MSRLE,
110  AV_CODEC_ID_MSVIDEO1,
111  AV_CODEC_ID_IDCIN,
112  AV_CODEC_ID_8BPS,
113  AV_CODEC_ID_SMC,
114  AV_CODEC_ID_FLIC,
115  AV_CODEC_ID_TRUEMOTION1,
116  AV_CODEC_ID_VMDVIDEO,
117  AV_CODEC_ID_MSZH,
118  AV_CODEC_ID_ZLIB,
119  AV_CODEC_ID_QTRLE,
120  AV_CODEC_ID_TSCC,
121  AV_CODEC_ID_ULTI,
122  AV_CODEC_ID_QDRAW,
123  AV_CODEC_ID_VIXL,
124  AV_CODEC_ID_QPEG,
125  AV_CODEC_ID_PNG,
126  AV_CODEC_ID_PPM,
127  AV_CODEC_ID_PBM,
128  AV_CODEC_ID_PGM,
129  AV_CODEC_ID_PGMYUV,
130  AV_CODEC_ID_PAM,
131  AV_CODEC_ID_FFVHUFF,
132  AV_CODEC_ID_RV30,
133  AV_CODEC_ID_RV40,
134  AV_CODEC_ID_VC1,
135  AV_CODEC_ID_WMV3,
136  AV_CODEC_ID_LOCO,
137  AV_CODEC_ID_WNV1,
138  AV_CODEC_ID_AASC,
139  AV_CODEC_ID_INDEO2,
140  AV_CODEC_ID_FRAPS,
141  AV_CODEC_ID_TRUEMOTION2,
142  AV_CODEC_ID_BMP,
143  AV_CODEC_ID_CSCD,
144  AV_CODEC_ID_MMVIDEO,
145  AV_CODEC_ID_ZMBV,
146  AV_CODEC_ID_AVS,
147  AV_CODEC_ID_SMACKVIDEO,
148  AV_CODEC_ID_NUV,
149  AV_CODEC_ID_KMVC,
150  AV_CODEC_ID_FLASHSV,
151  AV_CODEC_ID_CAVS,
152  AV_CODEC_ID_JPEG2000,
153  AV_CODEC_ID_VMNC,
154  AV_CODEC_ID_VP5,
155  AV_CODEC_ID_VP6,
156  AV_CODEC_ID_VP6F,
157  AV_CODEC_ID_TARGA,
158  AV_CODEC_ID_DSICINVIDEO,
159  AV_CODEC_ID_TIERTEXSEQVIDEO,
160  AV_CODEC_ID_TIFF,
161  AV_CODEC_ID_GIF,
162  AV_CODEC_ID_DXA,
163  AV_CODEC_ID_DNXHD,
164  AV_CODEC_ID_THP,
165  AV_CODEC_ID_SGI,
166  AV_CODEC_ID_C93,
167  AV_CODEC_ID_BETHSOFTVID,
168  AV_CODEC_ID_PTX,
169  AV_CODEC_ID_TXD,
170  AV_CODEC_ID_VP6A,
171  AV_CODEC_ID_AMV,
172  AV_CODEC_ID_VB,
173  AV_CODEC_ID_PCX,
174  AV_CODEC_ID_SUNRAST,
175  AV_CODEC_ID_INDEO4,
176  AV_CODEC_ID_INDEO5,
177  AV_CODEC_ID_MIMIC,
178  AV_CODEC_ID_RL2,
179  AV_CODEC_ID_ESCAPE124,
180  AV_CODEC_ID_DIRAC,
181  AV_CODEC_ID_BFI,
182  AV_CODEC_ID_CMV,
183  AV_CODEC_ID_MOTIONPIXELS,
184  AV_CODEC_ID_TGV,
185  AV_CODEC_ID_TGQ,
186  AV_CODEC_ID_TQI,
187  AV_CODEC_ID_AURA,
188  AV_CODEC_ID_AURA2,
189  AV_CODEC_ID_V210X,
190  AV_CODEC_ID_TMV,
191  AV_CODEC_ID_V210,
192  AV_CODEC_ID_DPX,
193  AV_CODEC_ID_MAD,
194  AV_CODEC_ID_FRWU,
195  AV_CODEC_ID_FLASHSV2,
196  AV_CODEC_ID_CDGRAPHICS,
197  AV_CODEC_ID_R210,
198  AV_CODEC_ID_ANM,
199  AV_CODEC_ID_BINKVIDEO,
200  AV_CODEC_ID_IFF_ILBM,
201 #define AV_CODEC_ID_IFF_BYTERUN1 AV_CODEC_ID_IFF_ILBM
202  AV_CODEC_ID_KGV1,
203  AV_CODEC_ID_YOP,
204  AV_CODEC_ID_VP8,
205  AV_CODEC_ID_PICTOR,
206  AV_CODEC_ID_ANSI,
207  AV_CODEC_ID_A64_MULTI,
208  AV_CODEC_ID_A64_MULTI5,
209  AV_CODEC_ID_R10K,
210  AV_CODEC_ID_MXPEG,
211  AV_CODEC_ID_LAGARITH,
212  AV_CODEC_ID_PRORES,
213  AV_CODEC_ID_JV,
214  AV_CODEC_ID_DFA,
215  AV_CODEC_ID_WMV3IMAGE,
216  AV_CODEC_ID_VC1IMAGE,
217  AV_CODEC_ID_UTVIDEO,
218  AV_CODEC_ID_BMV_VIDEO,
219  AV_CODEC_ID_VBLE,
220  AV_CODEC_ID_DXTORY,
221  AV_CODEC_ID_V410,
222  AV_CODEC_ID_XWD,
223  AV_CODEC_ID_CDXL,
224  AV_CODEC_ID_XBM,
225  AV_CODEC_ID_ZEROCODEC,
226  AV_CODEC_ID_MSS1,
227  AV_CODEC_ID_MSA1,
228  AV_CODEC_ID_TSCC2,
229  AV_CODEC_ID_MTS2,
230  AV_CODEC_ID_CLLC,
231  AV_CODEC_ID_MSS2,
232  AV_CODEC_ID_VP9,
233  AV_CODEC_ID_AIC,
234  AV_CODEC_ID_ESCAPE130,
235  AV_CODEC_ID_G2M,
236  AV_CODEC_ID_WEBP,
237  AV_CODEC_ID_HNM4_VIDEO,
238  AV_CODEC_ID_HEVC,
239 #define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC
240  AV_CODEC_ID_FIC,
241  AV_CODEC_ID_ALIAS_PIX,
242  AV_CODEC_ID_BRENDER_PIX,
243  AV_CODEC_ID_PAF_VIDEO,
244  AV_CODEC_ID_EXR,
245  AV_CODEC_ID_VP7,
246  AV_CODEC_ID_SANM,
247  AV_CODEC_ID_SGIRLE,
248  AV_CODEC_ID_MVC1,
249  AV_CODEC_ID_MVC2,
250  AV_CODEC_ID_HQX,
251  AV_CODEC_ID_TDSC,
252  AV_CODEC_ID_HQ_HQA,
253  AV_CODEC_ID_HAP,
254  AV_CODEC_ID_DDS,
255  AV_CODEC_ID_DXV,
256  AV_CODEC_ID_SCREENPRESSO,
257  AV_CODEC_ID_RSCC,
258  AV_CODEC_ID_AVS2,
259 
260  AV_CODEC_ID_Y41P = 0x8000,
261  AV_CODEC_ID_AVRP,
262  AV_CODEC_ID_012V,
263  AV_CODEC_ID_AVUI,
264  AV_CODEC_ID_AYUV,
265  AV_CODEC_ID_TARGA_Y216,
266  AV_CODEC_ID_V308,
267  AV_CODEC_ID_V408,
268  AV_CODEC_ID_YUV4,
269  AV_CODEC_ID_AVRN,
270  AV_CODEC_ID_CPIA,
271  AV_CODEC_ID_XFACE,
272  AV_CODEC_ID_SNOW,
273  AV_CODEC_ID_SMVJPEG,
274  AV_CODEC_ID_APNG,
275  AV_CODEC_ID_DAALA,
276  AV_CODEC_ID_CFHD,
277  AV_CODEC_ID_TRUEMOTION2RT,
278  AV_CODEC_ID_M101,
279  AV_CODEC_ID_MAGICYUV,
280  AV_CODEC_ID_SHEERVIDEO,
281  AV_CODEC_ID_YLC,
282  AV_CODEC_ID_PSD,
283  AV_CODEC_ID_PIXLET,
284  AV_CODEC_ID_SPEEDHQ,
285  AV_CODEC_ID_FMVC,
286  AV_CODEC_ID_SCPR,
287  AV_CODEC_ID_CLEARVIDEO,
288  AV_CODEC_ID_XPM,
289  AV_CODEC_ID_AV1,
290  AV_CODEC_ID_BITPACKED,
291  AV_CODEC_ID_MSCC,
292  AV_CODEC_ID_SRGC,
293  AV_CODEC_ID_SVG,
294  AV_CODEC_ID_GDV,
295  AV_CODEC_ID_FITS,
296  AV_CODEC_ID_IMM4,
297  AV_CODEC_ID_PROSUMER,
298  AV_CODEC_ID_MWSC,
299  AV_CODEC_ID_WCMV,
300  AV_CODEC_ID_RASC,
301  AV_CODEC_ID_HYMT,
302  AV_CODEC_ID_ARBC,
303  AV_CODEC_ID_AGM,
304  AV_CODEC_ID_LSCR,
305  AV_CODEC_ID_VP4,
306  AV_CODEC_ID_IMM5,
307  AV_CODEC_ID_MVDV,
308  AV_CODEC_ID_MVHA,
309  AV_CODEC_ID_CDTOONS,
310  AV_CODEC_ID_MV30,
311  AV_CODEC_ID_NOTCHLC,
312  AV_CODEC_ID_PFM,
313 
314  /* various PCM "codecs" */
315  AV_CODEC_ID_FIRST_AUDIO = 0x10000,
316  AV_CODEC_ID_PCM_S16LE = 0x10000,
317  AV_CODEC_ID_PCM_S16BE,
318  AV_CODEC_ID_PCM_U16LE,
319  AV_CODEC_ID_PCM_U16BE,
320  AV_CODEC_ID_PCM_S8,
321  AV_CODEC_ID_PCM_U8,
322  AV_CODEC_ID_PCM_MULAW,
323  AV_CODEC_ID_PCM_ALAW,
324  AV_CODEC_ID_PCM_S32LE,
325  AV_CODEC_ID_PCM_S32BE,
326  AV_CODEC_ID_PCM_U32LE,
327  AV_CODEC_ID_PCM_U32BE,
328  AV_CODEC_ID_PCM_S24LE,
329  AV_CODEC_ID_PCM_S24BE,
330  AV_CODEC_ID_PCM_U24LE,
331  AV_CODEC_ID_PCM_U24BE,
332  AV_CODEC_ID_PCM_S24DAUD,
333  AV_CODEC_ID_PCM_ZORK,
334  AV_CODEC_ID_PCM_S16LE_PLANAR,
335  AV_CODEC_ID_PCM_DVD,
336  AV_CODEC_ID_PCM_F32BE,
337  AV_CODEC_ID_PCM_F32LE,
338  AV_CODEC_ID_PCM_F64BE,
339  AV_CODEC_ID_PCM_F64LE,
340  AV_CODEC_ID_PCM_BLURAY,
341  AV_CODEC_ID_PCM_LXF,
342  AV_CODEC_ID_S302M,
343  AV_CODEC_ID_PCM_S8_PLANAR,
344  AV_CODEC_ID_PCM_S24LE_PLANAR,
345  AV_CODEC_ID_PCM_S32LE_PLANAR,
346  AV_CODEC_ID_PCM_S16BE_PLANAR,
347 
348  AV_CODEC_ID_PCM_S64LE = 0x10800,
349  AV_CODEC_ID_PCM_S64BE,
350  AV_CODEC_ID_PCM_F16LE,
351  AV_CODEC_ID_PCM_F24LE,
352  AV_CODEC_ID_PCM_VIDC,
353 
354  /* various ADPCM codecs */
355  AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
356  AV_CODEC_ID_ADPCM_IMA_WAV,
357  AV_CODEC_ID_ADPCM_IMA_DK3,
358  AV_CODEC_ID_ADPCM_IMA_DK4,
359  AV_CODEC_ID_ADPCM_IMA_WS,
360  AV_CODEC_ID_ADPCM_IMA_SMJPEG,
361  AV_CODEC_ID_ADPCM_MS,
362  AV_CODEC_ID_ADPCM_4XM,
363  AV_CODEC_ID_ADPCM_XA,
364  AV_CODEC_ID_ADPCM_ADX,
365  AV_CODEC_ID_ADPCM_EA,
366  AV_CODEC_ID_ADPCM_G726,
367  AV_CODEC_ID_ADPCM_CT,
368  AV_CODEC_ID_ADPCM_SWF,
369  AV_CODEC_ID_ADPCM_YAMAHA,
370  AV_CODEC_ID_ADPCM_SBPRO_4,
371  AV_CODEC_ID_ADPCM_SBPRO_3,
372  AV_CODEC_ID_ADPCM_SBPRO_2,
373  AV_CODEC_ID_ADPCM_THP,
374  AV_CODEC_ID_ADPCM_IMA_AMV,
375  AV_CODEC_ID_ADPCM_EA_R1,
376  AV_CODEC_ID_ADPCM_EA_R3,
377  AV_CODEC_ID_ADPCM_EA_R2,
378  AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
379  AV_CODEC_ID_ADPCM_IMA_EA_EACS,
380  AV_CODEC_ID_ADPCM_EA_XAS,
381  AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
382  AV_CODEC_ID_ADPCM_IMA_ISS,
383  AV_CODEC_ID_ADPCM_G722,
384  AV_CODEC_ID_ADPCM_IMA_APC,
385  AV_CODEC_ID_ADPCM_VIMA,
386 
387  AV_CODEC_ID_ADPCM_AFC = 0x11800,
388  AV_CODEC_ID_ADPCM_IMA_OKI,
389  AV_CODEC_ID_ADPCM_DTK,
390  AV_CODEC_ID_ADPCM_IMA_RAD,
391  AV_CODEC_ID_ADPCM_G726LE,
392  AV_CODEC_ID_ADPCM_THP_LE,
393  AV_CODEC_ID_ADPCM_PSX,
394  AV_CODEC_ID_ADPCM_AICA,
395  AV_CODEC_ID_ADPCM_IMA_DAT4,
396  AV_CODEC_ID_ADPCM_MTAF,
397  AV_CODEC_ID_ADPCM_AGM,
398  AV_CODEC_ID_ADPCM_ARGO,
399  AV_CODEC_ID_ADPCM_IMA_SSI,
400  AV_CODEC_ID_ADPCM_ZORK,
401  AV_CODEC_ID_ADPCM_IMA_APM,
402  AV_CODEC_ID_ADPCM_IMA_ALP,
403  AV_CODEC_ID_ADPCM_IMA_MTF,
404  AV_CODEC_ID_ADPCM_IMA_CUNNING,
405 
406  /* AMR */
407  AV_CODEC_ID_AMR_NB = 0x12000,
408  AV_CODEC_ID_AMR_WB,
409 
410  /* RealAudio codecs*/
411  AV_CODEC_ID_RA_144 = 0x13000,
412  AV_CODEC_ID_RA_288,
413 
414  /* various DPCM codecs */
415  AV_CODEC_ID_ROQ_DPCM = 0x14000,
416  AV_CODEC_ID_INTERPLAY_DPCM,
417  AV_CODEC_ID_XAN_DPCM,
418  AV_CODEC_ID_SOL_DPCM,
419 
420  AV_CODEC_ID_SDX2_DPCM = 0x14800,
421  AV_CODEC_ID_GREMLIN_DPCM,
422  AV_CODEC_ID_DERF_DPCM,
423 
424  /* audio codecs */
425  AV_CODEC_ID_MP2 = 0x15000,
427  AV_CODEC_ID_AAC,
428  AV_CODEC_ID_AC3,
429  AV_CODEC_ID_DTS,
430  AV_CODEC_ID_VORBIS,
431  AV_CODEC_ID_DVAUDIO,
432  AV_CODEC_ID_WMAV1,
433  AV_CODEC_ID_WMAV2,
434  AV_CODEC_ID_MACE3,
435  AV_CODEC_ID_MACE6,
436  AV_CODEC_ID_VMDAUDIO,
437  AV_CODEC_ID_FLAC,
438  AV_CODEC_ID_MP3ADU,
439  AV_CODEC_ID_MP3ON4,
440  AV_CODEC_ID_SHORTEN,
441  AV_CODEC_ID_ALAC,
442  AV_CODEC_ID_WESTWOOD_SND1,
444  AV_CODEC_ID_QDM2,
445  AV_CODEC_ID_COOK,
446  AV_CODEC_ID_TRUESPEECH,
447  AV_CODEC_ID_TTA,
448  AV_CODEC_ID_SMACKAUDIO,
449  AV_CODEC_ID_QCELP,
450  AV_CODEC_ID_WAVPACK,
451  AV_CODEC_ID_DSICINAUDIO,
452  AV_CODEC_ID_IMC,
453  AV_CODEC_ID_MUSEPACK7,
454  AV_CODEC_ID_MLP,
455  AV_CODEC_ID_GSM_MS, /* as found in WAV */
456  AV_CODEC_ID_ATRAC3,
457  AV_CODEC_ID_APE,
458  AV_CODEC_ID_NELLYMOSER,
459  AV_CODEC_ID_MUSEPACK8,
460  AV_CODEC_ID_SPEEX,
461  AV_CODEC_ID_WMAVOICE,
462  AV_CODEC_ID_WMAPRO,
463  AV_CODEC_ID_WMALOSSLESS,
464  AV_CODEC_ID_ATRAC3P,
465  AV_CODEC_ID_EAC3,
466  AV_CODEC_ID_SIPR,
467  AV_CODEC_ID_MP1,
468  AV_CODEC_ID_TWINVQ,
469  AV_CODEC_ID_TRUEHD,
470  AV_CODEC_ID_MP4ALS,
471  AV_CODEC_ID_ATRAC1,
472  AV_CODEC_ID_BINKAUDIO_RDFT,
473  AV_CODEC_ID_BINKAUDIO_DCT,
474  AV_CODEC_ID_AAC_LATM,
475  AV_CODEC_ID_QDMC,
476  AV_CODEC_ID_CELT,
477  AV_CODEC_ID_G723_1,
478  AV_CODEC_ID_G729,
479  AV_CODEC_ID_8SVX_EXP,
480  AV_CODEC_ID_8SVX_FIB,
481  AV_CODEC_ID_BMV_AUDIO,
482  AV_CODEC_ID_RALF,
483  AV_CODEC_ID_IAC,
484  AV_CODEC_ID_ILBC,
485  AV_CODEC_ID_OPUS,
486  AV_CODEC_ID_COMFORT_NOISE,
487  AV_CODEC_ID_TAK,
488  AV_CODEC_ID_METASOUND,
489  AV_CODEC_ID_PAF_AUDIO,
490  AV_CODEC_ID_ON2AVC,
491  AV_CODEC_ID_DSS_SP,
492  AV_CODEC_ID_CODEC2,
493 
494  AV_CODEC_ID_FFWAVESYNTH = 0x15800,
495  AV_CODEC_ID_SONIC,
496  AV_CODEC_ID_SONIC_LS,
497  AV_CODEC_ID_EVRC,
498  AV_CODEC_ID_SMV,
499  AV_CODEC_ID_DSD_LSBF,
500  AV_CODEC_ID_DSD_MSBF,
501  AV_CODEC_ID_DSD_LSBF_PLANAR,
502  AV_CODEC_ID_DSD_MSBF_PLANAR,
503  AV_CODEC_ID_4GV,
504  AV_CODEC_ID_INTERPLAY_ACM,
505  AV_CODEC_ID_XMA1,
506  AV_CODEC_ID_XMA2,
507  AV_CODEC_ID_DST,
508  AV_CODEC_ID_ATRAC3AL,
509  AV_CODEC_ID_ATRAC3PAL,
510  AV_CODEC_ID_DOLBY_E,
511  AV_CODEC_ID_APTX,
512  AV_CODEC_ID_APTX_HD,
513  AV_CODEC_ID_SBC,
514  AV_CODEC_ID_ATRAC9,
515  AV_CODEC_ID_HCOM,
516  AV_CODEC_ID_ACELP_KELVIN,
517  AV_CODEC_ID_MPEGH_3D_AUDIO,
518  AV_CODEC_ID_SIREN,
519  AV_CODEC_ID_HCA,
520 
521  /* subtitle codecs */
522  AV_CODEC_ID_FIRST_SUBTITLE = 0x17000,
523  AV_CODEC_ID_DVD_SUBTITLE = 0x17000,
524  AV_CODEC_ID_DVB_SUBTITLE,
526  AV_CODEC_ID_XSUB,
527  AV_CODEC_ID_SSA,
528  AV_CODEC_ID_MOV_TEXT,
529  AV_CODEC_ID_HDMV_PGS_SUBTITLE,
530  AV_CODEC_ID_DVB_TELETEXT,
531  AV_CODEC_ID_SRT,
532 
533  AV_CODEC_ID_MICRODVD = 0x17800,
534  AV_CODEC_ID_EIA_608,
535  AV_CODEC_ID_JACOSUB,
536  AV_CODEC_ID_SAMI,
537  AV_CODEC_ID_REALTEXT,
538  AV_CODEC_ID_STL,
539  AV_CODEC_ID_SUBVIEWER1,
540  AV_CODEC_ID_SUBVIEWER,
541  AV_CODEC_ID_SUBRIP,
542  AV_CODEC_ID_WEBVTT,
543  AV_CODEC_ID_MPL2,
544  AV_CODEC_ID_VPLAYER,
545  AV_CODEC_ID_PJS,
546  AV_CODEC_ID_ASS,
547  AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
548  AV_CODEC_ID_TTML,
549  AV_CODEC_ID_ARIB_CAPTION,
550 
551  /* other specific kind of codecs (generally used for attachments) */
552  AV_CODEC_ID_FIRST_UNKNOWN = 0x18000,
553  AV_CODEC_ID_TTF = 0x18000,
554 
556  AV_CODEC_ID_EPG,
557  AV_CODEC_ID_BINTEXT = 0x18800,
558  AV_CODEC_ID_XBIN,
559  AV_CODEC_ID_IDF,
560  AV_CODEC_ID_OTF,
561  AV_CODEC_ID_SMPTE_KLV,
562  AV_CODEC_ID_DVD_NAV,
563  AV_CODEC_ID_TIMED_ID3,
564  AV_CODEC_ID_BIN_DATA,
565 
566 
567  AV_CODEC_ID_PROBE = 0x19000,
568 
569  AV_CODEC_ID_MPEG2TS = 0x20000,
571  AV_CODEC_ID_MPEG4SYSTEMS = 0x20001,
573  AV_CODEC_ID_FFMETADATA = 0x21000,
574  AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001,
575 
576  } ID;
ID
These are the codecs this library currently supports.
Definition: ICodec.h:61
@ AV_CODEC_ID_FIRST_UNKNOWN
A dummy ID pointing at the start of various fake codecs.
Definition: ICodec.h:552
@ AV_CODEC_ID_MPEG4SYSTEMS
FAKE codec to indicate a MPEG-4 Systems stream (only used by libavformat)
Definition: ICodec.h:571
@ AV_CODEC_ID_FIRST_SUBTITLE
A dummy ID pointing at the start of subtitle codecs.
Definition: ICodec.h:522
@ AV_CODEC_ID_FIRST_AUDIO
A dummy id pointing at the start of audio codecs.
Definition: ICodec.h:315
@ AV_CODEC_ID_MPEG2VIDEO
preferred ID for MPEG-1/2 video decoding
Definition: ICodec.h:66
@ AV_CODEC_ID_MP3
preferred ID for decoding MPEG audio layer 1, 2 or 3
Definition: ICodec.h:426
@ AV_CODEC_ID_MPEG2TS
FAKE codec to indicate a raw MPEG-2 TS stream (only used by libavformat)
Definition: ICodec.h:569
@ AV_CODEC_ID_PROBE
codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
Definition: ICodec.h:567
@ AV_CODEC_ID_WRAPPED_AVFRAME
Passthrough codec, AVFrames wrapped in AVPacket.
Definition: ICodec.h:574
@ AV_CODEC_ID_GSM
as in Berlin toast format
Definition: ICodec.h:443
@ AV_CODEC_ID_SCTE_35
Contain timestamp estimated through PCR of program stream.
Definition: ICodec.h:555
@ AV_CODEC_ID_FFMETADATA
Dummy codec for streams containing only metadata information.
Definition: ICodec.h:573
@ AV_CODEC_ID_TEXT
raw UTF-8 text
Definition: ICodec.h:525

Member Function Documentation

◆ canDecode()

virtual bool com::avpkit::core::ICodec::canDecode ( )
pure virtual

Can this codec be used for decoding?

Returns
Can this Codec decode?

Implemented in com::avpkit::core::Codec.

◆ canEncode()

virtual bool com::avpkit::core::ICodec::canEncode ( )
pure virtual

Can this codec be used for encoding?

Returns
Can this Codec encode?

Implemented in com::avpkit::core::Codec.

◆ findDecodingCodec()

ICodec * com::avpkit::core::ICodec::findDecodingCodec ( ICodec::ID  id,
const IPixelFormat::Type  type = IPixelFormat::NONE 
)
static

Find a codec that can be used for decoding or find a HW codec that can be used for decoding.

Parameters
idThe id of the codec
typeThe HW accelerated pixel format
Returns
the codec, or null if we can't find it.

Definition at line 59 of file ICodec.cpp.

60  {
61  Global::init();
62  return Codec::findDecodingCodec(id, type);
63  }
static void init()
Internal Only.
Definition: Global.cpp:157

References com::avpkit::core::Global::init().

◆ findDecodingCodecByIntID()

ICodec * com::avpkit::core::ICodec::findDecodingCodecByIntID ( int  id)
static

Find a codec that can be used for decoding.

Parameters
idThe id of the codec, as an integer
Returns
the codec, or null if we can't find it.

Definition at line 66 of file ICodec.cpp.

67  {
68  Global::init();
69  return Codec::findDecodingCodecByIntID(id);
70  }

References com::avpkit::core::Global::init().

◆ findDecodingCodecByName()

ICodec * com::avpkit::core::ICodec::findDecodingCodecByName ( const char *  id)
static

Find a codec that can be used for decoding.

Parameters
idThe id of the codec, as a FFMPEG short-name string (for example, "mpeg4")
Returns
the codec, or null if we can't find it.

Definition at line 73 of file ICodec.cpp.

74  {
75  Global::init();
76  return Codec::findDecodingCodecByName(name);
77  }

References com::avpkit::core::Global::init().

◆ findEncodingCodec()

ICodec * com::avpkit::core::ICodec::findEncodingCodec ( ICodec::ID  id,
const IPixelFormat::Type  type = IPixelFormat::NONE 
)
static

Find a codec that can be used for encoding or find a HW codec that can be used for encoding.

Parameters
idThe id of the codec
typeThe HW accelerated pixel format
Returns
the codec, or null if we can't find it.

Definition at line 38 of file ICodec.cpp.

39  {
40  Global::init();
41  return Codec::findEncodingCodec(id, type);
42  }

References com::avpkit::core::Global::init().

◆ findEncodingCodecByIntID()

ICodec * com::avpkit::core::ICodec::findEncodingCodecByIntID ( int  id)
static

Find a codec that can be used for encoding.

Parameters
idThe id of the codec, as an integer.
Returns
the codec, or null if we can't find it.

Definition at line 45 of file ICodec.cpp.

46  {
47  Global::init();
48  return Codec::findEncodingCodecByIntID(id);
49  }

References com::avpkit::core::Global::init().

◆ findEncodingCodecByName()

ICodec * com::avpkit::core::ICodec::findEncodingCodecByName ( const char *  id)
static

Find a codec that can be used for encoding.

Parameters
idThe id of the codec, as a FFMPEG short-name string (for example, "mpeg4").
Returns
the codec, or null if we can't find it.

Definition at line 52 of file ICodec.cpp.

53  {
54  Global::init();
55  return Codec::findEncodingCodecByName(name);
56  }

References com::avpkit::core::Global::init().

◆ getCapabilities()

virtual int32_t com::avpkit::core::ICodec::getCapabilities ( )
pure virtual

Get the capabilites flag from the codec.

Returns
the capabilities flag

Implemented in com::avpkit::core::Codec.

◆ getID()

virtual ID com::avpkit::core::ICodec::getID ( )
pure virtual

Get the ID of this codec as an enumeration.

Returns
the ID of this codec, an enum ID

Implemented in com::avpkit::core::Codec.

◆ getIDAsInt()

virtual int com::avpkit::core::ICodec::getIDAsInt ( )
pure virtual

Get the ID of this codec, as an integer.

Returns
the ID of this codec, as an integer.

Implemented in com::avpkit::core::Codec.

◆ getInstalledCodec()

ICodec * com::avpkit::core::ICodec::getInstalledCodec ( int32_t  index)
static

Get the ICodec at the given index.

Parameters
indexthe index in our list
Returns
the codec, or null if index < 0 or index >= getNumInstalledCodecs()

Definition at line 102 of file ICodec.cpp.

103  {
104  Global::init();
105  if (index < 0)
106  return 0;
107 
108  AVCodec * codec = 0;
109  for(int32_t i = 0; (codec = av_codec_next(codec))!=0; i++)
110  {
111  if (i == index)
112  return Codec::make(codec);
113  }
114  return 0;
115  }

References com::avpkit::core::Global::init().

◆ getLongName()

virtual const char* com::avpkit::core::ICodec::getLongName ( )
pure virtual

Added for 1.17.

Get the long name for this codec.

Returns
the long name.

Implemented in com::avpkit::core::Codec.

◆ getName()

virtual const char* com::avpkit::core::ICodec::getName ( )
pure virtual

Get the name of the codec.

Returns
The name of this Codec.

Implemented in com::avpkit::core::Codec.

◆ getNumInstalledCodecs()

int32_t com::avpkit::core::ICodec::getNumInstalledCodecs ( )
static

Get the number of installed codecs on this system.

Returns
the number of installed codecs.

Definition at line 91 of file ICodec.cpp.

92  {
93  Global::init();
94  int32_t numInstalledCodecs = 0;
95  AVCodec * codec = 0;
96  while((codec = av_codec_next(codec))!=0)
97  ++numInstalledCodecs;
98  return numInstalledCodecs;
99  }

References com::avpkit::core::Global::init().

◆ getNumSupportedAudioChannelLayouts()

virtual int32_t com::avpkit::core::ICodec::getNumSupportedAudioChannelLayouts ( )
pure virtual

Get the number of different audio channel layouts this codec supports for encoding.

Not all codecs will report this.

Returns
the number or 0 if we don't know.

Implemented in com::avpkit::core::Codec.

◆ getNumSupportedAudioSampleFormats()

virtual int32_t com::avpkit::core::ICodec::getNumSupportedAudioSampleFormats ( )
pure virtual

Get the number of different audio sample formats this codec supports for encoding.

Not all codecs will report this.

Returns
the number or 0 if we don't know.

Implemented in com::avpkit::core::Codec.

◆ getNumSupportedAudioSampleRates()

virtual int32_t com::avpkit::core::ICodec::getNumSupportedAudioSampleRates ( )
pure virtual

Get the number of different audio sample rates this codec supports for encoding.

Not all codecs will report this.

Returns
the number or 0 if we don't know.

Implemented in com::avpkit::core::Codec.

◆ getNumSupportedVideoFrameRates()

virtual int32_t com::avpkit::core::ICodec::getNumSupportedVideoFrameRates ( )
pure virtual

Get the number of frame rates this codec supports for encoding.

Not all codecs will report this number.

Returns
the number or 0 if we don't know.

Implemented in com::avpkit::core::Codec.

◆ getNumSupportedVideoPixelFormats()

virtual int32_t com::avpkit::core::ICodec::getNumSupportedVideoPixelFormats ( )
pure virtual

Get the number of supported video pixel formats this codec supports for encoding.

Not all codecs will report this.

Returns
the number or 0 if we don't know.

Implemented in com::avpkit::core::Codec.

◆ getSupportedAudioChannelLayout()

virtual int64_t com::avpkit::core::ICodec::getSupportedAudioChannelLayout ( int32_t  index)
pure virtual

Get the supported audio channel layout at this index.

The value returned is a bit flag representing the different types of audio layout this codec can support. Test the values by bit-comparing them to the IAudioSamples.ChannelLayout enum types.

Parameters
indexthe index
Returns
the channel layout, or 0 if unknown, index < 0 or index >= getNumSupportedAudioChannelLayouts.

Implemented in com::avpkit::core::Codec.

◆ getSupportedAudioSampleFormat()

virtual IAudioSamples::Format com::avpkit::core::ICodec::getSupportedAudioSampleFormat ( int32_t  index)
pure virtual

Get the supported sample format at this index.

Parameters
indexthe index in our list.
Returns
the format, or IAudioSamples.Format.FMT_NONE if unknown, index < 0 or index >= getNumSupportedAudioSampleFormats().

Implemented in com::avpkit::core::Codec.

◆ getSupportedAudioSampleRate()

virtual int32_t com::avpkit::core::ICodec::getSupportedAudioSampleRate ( int32_t  index)
pure virtual

Return the support audio sample rate at the given index.

Parameters
indexthe index in our list.
Returns
the sample rate, or 0 if unknown, index < 0 or index >= getNumSupportedAudioSampleRates()

Implemented in com::avpkit::core::Codec.

◆ getSupportedVideoFrameRate()

virtual IRational* com::avpkit::core::ICodec::getSupportedVideoFrameRate ( int32_t  index)
pure virtual

Return the supported frame rate at the given index.

Parameters
indexthe index in our list.
Returns
the frame rate, or null if unknown, if index <0 or if index >= getNumSupportedVideoFrameRates()

Implemented in com::avpkit::core::Codec.

◆ getSupportedVideoPixelFormat()

virtual IPixelFormat::Type com::avpkit::core::ICodec::getSupportedVideoPixelFormat ( int32_t  index)
pure virtual

Return the supported video pixel format at the given index.

Parameters
indexthe index in our list.
Returns
the pixel format, or IPixelFormat.Type#NONE if unknown, if index <0 or if index >= getNumSupportedVideoPixelFormats()

Implemented in com::avpkit::core::Codec.

◆ getType()

virtual Type com::avpkit::core::ICodec::getType ( )
pure virtual

Get the type of this codec.

Returns
The type of this Codec, as a enum Type

Implemented in com::avpkit::core::Codec.

◆ guessEncodingCodec()

ICodec * com::avpkit::core::ICodec::guessEncodingCodec ( IContainerFormat fmt,
const char *  shortName,
const char *  url,
const char *  mimeType,
ICodec::Type  type 
)
static

Ask us to guess an encoding codec based on the inputs passed in.

You must pass in at least one non null fmt, shortName, url or mime_type.

Parameters
fmtAn IContainerFormat for the container you'll want to encode into.
shortNameThe FFMPEG short name of the codec (e.g. "mpeg4").
urlThe URL you'll be writing packets to.
mimeTypeThe mime type of the container.
typeThe codec type.
Returns
the codec, or null if we can't find it.

Definition at line 80 of file ICodec.cpp.

85  {
86  Global::init();
87  return Codec::guessEncodingCodec(fmt, shortName, url, mimeType, type);
88  }

References com::avpkit::core::Global::init().

◆ hasCapability()

virtual bool com::avpkit::core::ICodec::hasCapability ( Capabilities  capability)
pure virtual

Convenience method to check individual capability flags.

Parameters
capabilitythe capability
Returns
true if flag is set; false otherwise.

Implemented in com::avpkit::core::Codec.


The documentation for this class was generated from the following files: