BASS_Encode_OPUS_NewStream

Starts a new bitstream in an Opus encoder's output.

BOOL BASS_Encode_OPUS_NewStream(
    DWORD handle,
    char *options,
    DWORD flags
);

Parameters

handleThe encoder handle.
optionsThe new bitstream's options. The same options as with BASS_Encode_OPUS_Start and BASS_Encode_OPUS_StartFile are available here.
flagsA combination of these flags.
BASS_ENCODE_OPUS_RESETReset all settings to defaults before processing the new options, else start with the encoder's current settings. Metadata/tag settings are always reset.
BASS_ENCODE_OPUS_CTLONLYOnly apply "--set-ctl-int" options without starting a new bitstream. This is ignored if BASS_ENCODE_OPUS_RESET is also specified.
BASS_UNICODEoptions is in UTF-16 form. Otherwise it should be UTF-8.

Return value

If successful, TRUE is returned, else FALSE is returned. Use BASS_ErrorGetCode to get the error code.

Error codes

BASS_ERROR_HANDLEhandle is not valid.
BASS_ERROR_NOTAVAILOnly the BASS_ENCODE_OPUS_CTLONLY flag is available without an Ogg container ("--no-ogg" option).
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

This function ends the encoder's current bitstream and starts a new one with the specified settings (except when only applying "--set-ctl-int" options with the BASS_ENCODE_OPUS_CTLONLY flag). This is mainly useful for metadata changes when streaming, eg. with BASS_Encode_ServerInit. Unless the BASS_ENCODE_OPUS_RESET flag is specified, the new bitstream's default padding setting will be 0 (not 512).

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 "--no-ogg" option is in effect, there are no Ogg bitstreams, but this function can still be used to apply "--set-ctl-int" option changes with the BASS_ENCODE_OPUS_CTLONLY flag.

See also

BASS_Encode_OPUS_Start