BASS_Encode_OPUS_StartFile

Sets up an Opus encoder on a channel, writing the output to a file.

HENCODE BASS_Encode_OPUS_StartFile(
    DWORD handle,
    char *options,
    DWORD flags,
    char *filename
);

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.
filenameOutput filename... NULL = no output file.

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_CREATEThe file could not be created.
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).

When the "--mapping-255" option is used, all of the source's channels will be encoded uncoupled (mono) by default, but a channel map may be provided to use instead of that, like this: "--mapping-255=map", where map is a comma-separated list of channel numbers (0 = first), with "+" indicating a coupling (stereo). For example: "--mapping-255=0+1,2+3,4,5" would mean that channels 0 and 1 are coupled, as are channels 2 and 3, while channels 4 and 5 are uncoupled. Note that coupled channels must be listed first.

See also

BASS_Encode_OPUS_Start

BASS_Encode_IsActive, BASS_Encode_SetNotify, BASS_Encode_SetPaused, BASS_Encode_Stop, BASS_Encode_Write, BASS_CONFIG_ENCODE_PRIORITY