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 );
handle | The channel handle... a HSTREAM, HMUSIC, or HRECORD. |
options | Encoder 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. |
flags | The flags supported by BASS_Encode_StartUser may be used here, but the floating-point conversion flags are ignored. |
filename | Output filename... NULL = no output file. |
BASS_ERROR_HANDLE | handle is not valid. |
BASS_ERROR_FORMAT | The channel's sample format is not supported by the encoder. |
BASS_ERROR_ILLPARAM | options contains an invalid setting. |
BASS_ERROR_FILEOPEN | A "--picture" option file could not be opened. |
BASS_ERROR_FILEFORM | A "--picture" option file has an invalid format. It needs to be JPEG, PNG, or GIF. |
BASS_ERROR_CREATE | The file could not be created. |
BASS_ERROR_MEM | There is insufficient memory. |
BASS_ERROR_UNKNOWN | Some other mystery problem! |
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.
BASS_Encode_IsActive, BASS_Encode_SetNotify, BASS_Encode_SetPaused, BASS_Encode_Stop, BASS_Encode_Write, BASS_CONFIG_ENCODE_PRIORITY