BASS_Encode_OPUS_Start

Sets up an Opus encoder on a channel.

HENCODE BASS_Encode_OPUS_Start(
    DWORD handle,
    char *options,
    DWORD flags,
    ENCODEPROC *proc,
    void *user
);

Parameters

handleThe channel handle... a HSTREAM, HMUSIC, or HRECORD.
optionsEncoder options... NULL = use defaults. The following OPUSENC style options are supported: --bitrate, --vbr, --cvbr, --hard-cbr, --comp / --complexity, --framesize, --expect-loss, --max-delay, --comment, --artist, --title, --album, --tracknumber, --date, --genre, --picture, --padding, --serial, --set-ctl-int. See the OPUSENC documentation for details on the aforementioned options and defaults. Also available is a "--no-reorder" option to disable reordering channels to the Opus specification's order, and a "--mapping-255" option that does the same but also sets channel mapping family 255 to prevent reordering by decoders (in theory). Anything else that is included will be ignored.
flagsThe flags supported by BASS_Encode_StartUser may be used here, but the floating-point conversion flags are ignored.
procOptional callback function to receive the encoded data... NULL = no callback.
userUser instance data to pass to the callback function.

Return value

The encoder handle is returned if the encoder is successfully started, else 0 is returned. Use BASS_ErrorGetCode to get the error code.

Error codes

BASS_ERROR_HANDLEhandle is not valid.
BASS_ERROR_FORMATThe channel's sample format is not supported by the encoder.
BASS_ERROR_ILLPARAMoptions contains an invalid setting.
BASS_ERROR_FILEOPENA "--picture" option file could not be opened.
BASS_ERROR_FILEFORMA "--picture" option file has an invalid format. It needs to be JPEG, PNG, or GIF.
BASS_ERROR_MEMThere is insufficient memory.
BASS_ERROR_UNKNOWNSome other mystery problem!

Remarks

BASS_Encode_StartUser is used internally to apply the encoder to the source channel, so the remarks in its documentation also apply to this function.

Tags/comments should be in UTF-8 form. This function will take care of that when the BASS_UNICODE flag is used, but otherwise you will need to make sure that any tags included in options are UTF-8 (not ISO-8859-1/etc).

See also

BASS_Encode_OPUS_NewStream, BASS_Encode_OPUS_StartFile

BASS_Encode_CastInit, BASS_Encode_IsActive, BASS_Encode_ServerInit, BASS_Encode_SetNotify, BASS_Encode_SetPaused, BASS_Encode_Stop, BASS_Encode_Write, ENCODEPROC callback, BASS_CONFIG_ENCODE_PRIORITY