BASS.NET API for the Un4seen BASS Audio Library

EncoderCMDLN Class

BASS.NET API for the Un4seen BASS Audio Library
Encoder class implementation for any generic Command-Line encoder tool using Un4seen.Bass.AddOn.Enc.
Inheritance Hierarchy

SystemObject
  Un4seen.Bass.MiscBaseEncoder
    Un4seen.Bass.MiscEncoderCMDLN
      Un4seen.Bass.MiscEncoderMP3

Namespace:  Un4seen.Bass.Misc
Assembly:  Bass.Net (in Bass.Net.dll) Version: 2.4.17.5
Syntax

[SerializableAttribute]
public class EncoderCMDLN : BaseEncoder

The EncoderCMDLN type exposes the following members.

Constructors

  NameDescription
Public methodEncoderCMDLN
Creates an instance of the generic command-line encoder implementation.
Top
Properties

  NameDescription
Public propertyChannelBitwidth
This property returns the actual bitwidth of the sample data of the channel (e.g. 8, 16, 32).
(Inherited from BaseEncoder.)
Public propertyChannelHandle
Gets or Sets the channel handle which is used to create the broadcast encoder class.
(Inherited from BaseEncoder.)
Public propertyChannelInfo
Returns the general channel info.
(Inherited from BaseEncoder.)
Public propertyChannelNumChans
This property returns the actual number of channles of the sample data BASS is using with the channel (e.g. 1=mono, 2=stereo, etc.).
(Inherited from BaseEncoder.)
Public propertyChannelSampleRate
This property returns the actual sample rate in Hz of the sample data BASS is using with the channel (e.g. 44100).
(Inherited from BaseEncoder.)
Public propertyDefaultOutputExtension
This return the default extension of an output file for this encoder (e.g. ".wav"). Here the CMDLN_DefaultOutputExtension value is returned.
(Overrides BaseEncoderDefaultOutputExtension.)
Public propertyEffectiveBitrate
Returns the effective encoder bitrate (in kbps) of the output. Here the CMDLN_Bitrate value is returned.
(Overrides BaseEncoderEffectiveBitrate.)
Public propertyEncoderCommandLine
Returns the specified command-line string to use. Depending on the CMDLN_UseVBR property the CMDLN_VBRString or the CMDLN_CBRString value is evaluated and all contained macros are replaced.
(Overrides BaseEncoderEncoderCommandLine.)
Public propertyEncoderDirectory
Gets or Sets the encoder's base directory.
(Inherited from BaseEncoder.)
Public propertyEncoderExists
This property return , if the specifiec command-line tool is availabel - else .
(Overrides BaseEncoderEncoderExists.)
Public propertyEncoderHandle
Gets or sets the current HENCODE encoder handle.
(Inherited from BaseEncoder.)
Public propertyEncoderType
Gets a value indicating the type of content. Here the CMDLN_EncoderType value is returned.
(Overrides BaseEncoderEncoderType.)
Public propertyForce16Bit
Gets or Sets if a encoding in 16-bit sample data should be forced (default is ).
(Inherited from BaseEncoder.)
Public propertyInputFile
Gets or Sets the input file name to be processed by the encoder (null = STDIN, default).
(Inherited from BaseEncoder.)
Public propertyIsActive
Gets a value indicating if the encoder has been started (see Start(ENCODEPROC, IntPtr, Boolean)) and is active - else will be returned.
(Inherited from BaseEncoder.)
Public propertyIsPaused
Gets a value indicating if the encoder has been paused (see Pause(Boolean)) - else must be returned.
(Inherited from BaseEncoder.)
Public propertyIsStreaming
Is this instance used for streaming? When set to true, some internal encoder options might be set. Default is false.
(Inherited from BaseEncoder.)
Public propertyNoLimit
Gets or Sets if encoding should use the CAST_NOLIMIT flag (which is only needed, if the encoder is used for streaming).
(Inherited from BaseEncoder.)
Public propertyOutputFile
Gets or Sets the output file name to be processed by the encoder (null = STDOUT, default).
(Inherited from BaseEncoder.)
Public propertySupportsSTDOUT
A command-line encoder might implement STDOUT, so here the CMDLN_SupportsSTDOUT value is returned.
(Overrides BaseEncoderSupportsSTDOUT.)
Public propertyTAGs
Gets or Sets the TAG_INFO structure associated with the encoder.
(Inherited from BaseEncoder.)
Public propertyUseAsyncQueue
Gets or Sets if encoding should use an async queue (i.e. the BASS_ENCODE_QUEUE flag).
(Inherited from BaseEncoder.)
Top
Methods

  NameDescription
Public methodDispose
Implement IDisposable.
(Inherited from BaseEncoder.)
Protected methodFinalize
Finalization code.
(Inherited from BaseEncoder.)
Public methodPause
Pauses or resumes an encoder.
(Inherited from BaseEncoder.)
Public methodSettingsString
Returns the string representation of the current encoder settings.
(Overrides BaseEncoderSettingsString.)
Public methodStart
This method starts the actual command-line encoder. After the encoder was started successfully the EncoderHandle returns a valid HENCODE handle.
(Overrides BaseEncoderStart(ENCODEPROC, IntPtr, Boolean).)
Public methodStop
Stops the encoder immediately (if started).
(Inherited from BaseEncoder.)
Public methodStop(Boolean)
Stops the encoder (if started).
(Inherited from BaseEncoder.)
Public methodToString
Returns the name of the Encoder.
(Overrides ObjectToString.)
Top
Fields

  NameDescription
Public fieldCMDLN_Bitrate
Gets or Sets the effective bitrate (in kbps) for the ${bps} and ${kbps} macro to be used with the CMDLN_CBRString resp. CMDLN_VBRString.
Public fieldCMDLN_CBRString
Gets or Sets the constant bitrate (CBR) command-line string to be used with the encoder (not containing the executable to be used, e.g. "-b ${bps} - output.xyz").
Public fieldCMDLN_DefaultOutputExtension
Gets or Sets the default output extension to be used by the encoder (e.g. ".mp3").
Public fieldCMDLN_EncoderType
Gets or Sets the BASSChannelType which will be supported by the encoder.
Public fieldCMDLN_Executable
Gets or Sets the command-line executable name to be used with the encoder (not containing the path, e.g. "encoder.exe").
Public fieldCMDLN_Mode
Gets or Sets the ${mode} macro value to be used in the CMDLN_CBRString resp. CMDLN_VBRString.
Public fieldCMDLN_Option
Gets or Sets the ${option} macro value to be used in the CMDLN_CBRString resp. CMDLN_VBRString.
Public fieldCMDLN_ParamSTDIN
Gets or sets the ${input} parameter to be used with STDIN.
Public fieldCMDLN_ParamSTDOUT
Gets or sets the ${output} parameter to be used with STDOUT.
Public fieldCMDLN_Quality
Gets or Sets the ${quality} macro value to be used in the CMDLN_CBRString resp. CMDLN_VBRString.
Public fieldCMDLN_SupportsSTDOUT
Gets or Sets if the encoder supports output of the encoded data to STDOUT.
Public fieldCMDLN_UseA
Gets or Sets, if the CMDLN_UserA or the CMDLN_UserB macro string should be used.
Public fieldCMDLN_UseFP_24BIT
Gets or Sets if the encoder should be started using the FP_24BIT flag.
Public fieldCMDLN_UseFP_32BIT
Gets or Sets if the encoder should be started using the FP_32BIT flag.
Public fieldCMDLN_UseNOHEAD
Gets or Sets if the encoder should be started using the NOHEAD flag.
Public fieldCMDLN_UserA
Gets or Sets the ${user} macro value to be used in the CMDLN_CBRString resp. CMDLN_VBRString.
Public fieldCMDLN_UserB
Gets or Sets the ${user} macro value to be used in the CMDLN_CBRString resp. CMDLN_VBRString.
Public fieldCMDLN_UseVBR
Gets or Sets, if the CMDLN_CBRString or the CMDLN_VBRString command-line string should be used.
Public fieldCMDLN_VBRString
Gets or Sets the variable bitrate (VBR) command-line string to be used with the encoder (not containing the executable to be used, e.g. "-b ${bps} - output.xyz").
Top
Remarks

This class uses by default the BASS_CTYPE_STREAM_WAV encoder type (even if other types might be more propper) - so make sure to set the CMDLN_EncoderType property accordingly. Also the DefaultOutputExtension is by default set to ".wav" and needs to be changed if needed (see all CMDLN_xxx properties).

Since this is a generic implementation this encoder will try to use either 32-bit float, 24-bit, 16-bit or 8-bit sample data (depending on the Force16Bit and the CMDLN_UseFP_32BIT or CMDLN_UseFP_24BIT property). The BASS_ENCODE_NOHEAD flags will be used, if you set the CMDLN_UseNOHEAD flag. You MUST set the CMDLN_Executable property to the executable name you want to use. Also make sure that the CMDLN_CBRString and the CMDLN_VBRString are configured accordingly. The encoder will receive, raw PCM sample data in little endian.

Make sure to set the CMDLN_xxx flags before calling Start(ENCODEPROC, IntPtr, Boolean).

This implementation uses the automatic DSP system for encoding. Meaning the sending of sample data to the encoder is done automatically when you play the channel (BASS_ChannelPlay(Int32, Boolean)) or call BASS_ChannelGetData(Int32, IntPtr, Int32) (if it's a decoding channel). So there is no need to call BASS_Encode_Write(Int32, IntPtr, Int32) manually!

If you simply want to encode a physical file please also take a look to the EncodeFile(String, String, BaseEncoder, BaseEncoderENCODEFILEPROC, Boolean, Boolean).

See Also

Reference