-
-
Notifications
You must be signed in to change notification settings - Fork 1
bindings.encoder
Contains all the functions and objects for FLAC/stream_encoder interface. Don't think this documentation is a full replacement of the FLAC's one. Only tells all available functions, and the relation to the FLAC API, with a short description.
Creates an instance of a FLAC encoder. If return null
, then an error has occurred, probably with memory.
Deletes an instance of a FLAC decoder freeing all the native resources.
Number init_stream(Buffer dec, Callback? writeCbk, Callback? seekCbk, Callback? tellCbk, Callback? metadataCbk)
FLAC__stream_encoder_init_stream()
Initializes the decoder with the callbacks passed and returns a value from bindings.encoder.InitStatus. The parameter client_data
is not needed.
Number init_ogg_stream(Buffer dec, Callback? readCbk, Callback? writeCbk, Callback? seekCbk, Callback? tellCbk, Callback? metadataCbk)
FLAC__stream_encoder_init_ogg_stream()
Initializes the decoder for an ogg stream with the callbacks passed and returns a value from bindings.encoder.InitStatus. The parameter client_data
is not needed.
FLAC__stream_encoder_init_file()
Initializes the decoder for decoding a file. Returns a value from bindings.encoder.InitStatus. The parameter client_data
is not needed.
FLAC__stream_encoder_init_ogg_file()
Initializes the decoder for decoding an ogg file. Returns a value from bindings.encoder.InitStatus. The parameter client_data
is not needed.
Finish the encoding process, flushing the encoder buffer, releasing some resources and setting the encoder to initial state.
FLAC__stream_encoder_process()
Passes some PCM data to the encoder. pcmDataArray
length must be the same of the number of channels of the stream. The Buffer
s inside must store 32bit integers, but must be clamped to the precision of the stream (bits per sample).
FLAC__stream_encoder_process_interleaved()
Passes some PCM interleaved data to the encoder. pcmData
must store 32bit integers, but must be clamped to the precision of the stream (bits per sample).
FLAC__stream_encoder_set_ogg_serial_number()
The problem here is that V8 Number precision is not as high as a long
in 64Bit platforms. Maybe fails because of that.
FLAC__stream_encoder_set_verify()
FLAC__stream_encoder_set_streamable_subset()
FLAC__stream_encoder_set_channels()
FLAC__stream_encoder_set_bits_per_sample()
FLAC__stream_encoder_set_sample_rate()
FLAC__stream_encoder_set_compression_level()
In the FLAC documentation exposes what parameters involves changing the compression level.
FLAC__stream_encoder_set_blocksize()
FLAC__stream_encoder_set_do_mid_side_stereo()
FLAC__stream_encoder_set_loose_mid_side_stereo()
FLAC__stream_encoder_set_apodization()
FLAC__stream_encoder_set_max_lpc_order()
FLAC__stream_encoder_set_qlp_coeff_precision()
FLAC__stream_encoder_set_do_qlp_coeff_prec_search()
FLAC__stream_encoder_set_do_escape_coding()
FLAC__stream_encoder_set_do_exhaustive_model_search()
FLAC__stream_encoder_set_min_residual_partition_order()
FLAC__stream_encoder_set_max_residual_partition_order()
FLAC__stream_encoder_set_rice_parameter_search_dist()
FLAC__stream_encoder_set_total_samples_estimate()
The problem here is that this functions expects a uint64_t
(aka 64bit unsigned number without decimals) and the maximum precision of the V8 Number is less. So maybe gets truncated part of the number if is too high. Should not happen in general, but keep in mind that.
FLAC__stream_encoder_set_metadata()
The array must contain metadata objects created using the metadata API. Objects created by hand will make node crash. You must keep the objects alive until the encoder is deleted (aka not delete them untile you delete the encoder).
FLAC__stream_encoder_get_state()
You can get a string representation of that using flac.bindings.encoder.State[] or using flac.bindings.encoder.get_resolved_state_string().
FLAC__stream_encoder_get_verify_decoder_state()
You can get a string representation of that using flac.bindings.decoder.StateString.
FLAC__stream_encoder_get_resolved_state_string()
FLAC__stream_encoder_get_verify_decoder_error_stats()
Returns an object with this structure:
{
absoluteSample: ..., //could be truncated due to V8 Number precision
frameNumber: ...,
channel: ...,
sample: ...,
expected: ...,
got: ...
}
FLAC__stream_encoder_get_verify()
FLAC__stream_encoder_get_streamable_subset()
FLAC__stream_encoder_get_channels()
FLAC__stream_encoder_get_bits_per_sample()
FLAC__stream_encoder_get_sample_rate()
FLAC__stream_encoder_get_blocksize()
FLAC__stream_encoder_get_do_mid_side_stereo()
FLAC__stream_encoder_get_loose_mid_side_stereo()
FLAC__stream_encoder_get_max_lpc_order()
FLAC__stream_encoder_get_qlp_coeff_precision()
FLAC__stream_encoder_get_do_qlp_coeff_prec_search()
FLAC__stream_encoder_get_do_escape_coding()
FLAC__stream_encoder_get_do_exhaustive_model_search()
FLAC__stream_encoder_get_min_residual_partition_order()
FLAC__stream_encoder_get_max_residual_partition_order()
FLAC__stream_encoder_get_rice_parameter_search_dist()
FLAC__stream_encoder_get_total_samples_estimate()
The returned number could be truncated due to V8 Number precision. But remembering that the setter also had this limitation, maybe it will return the number correctly. (?)
Represents the above enum
as a associative array. For example bindings.encoder.State.ABORTED
will return a Number that represents this enum value. An invalid enum value will return undefined
.
Represents the above enum
as a associative array. For example bindings.decoder.InitStatus.OK
will return a Number that represents this enum value. An invalid enum value will return undefined
.
Represents the above enum
as a associative array. For example bindings.encoder.ReadStatus.CONTINUE
will return a Number that represents this enum value. An invalid enum value will return undefined
.
Represents the above enum
as a associative array. For example bindings.encoder.SeekStatus.OK
will return a Number that represents this enum value. An invalid enum value will return undefined
.
Represents the above enum
as a associative array. For example bindings.encoder.TellStatus.OK
will return a Number that represents this enum value. An invalid enum value will return undefined
.
FLAC__StreamEncoderWriteStatus
Represents the above enum
as a associative array. For example bindings.encoder.WriteStatus.CONTINUE
will return a Number that represents this enum value. An invalid enum value will return undefined
.
FLAC__StreamEncoderStateString
Represents the above const char*
array as a JavaScript array. Returns a String representation for enum bindings.encoder.State.
FLAC__StreamEncoderInitStatusString
Represents the above const char*
array as a JavaScript array. Returns a String representation for enum bindings.encoder.InitStatus.
FLAC__StreamEncoderReadStatusString
Represents the above const char*
array as a JavaScript array. Returns a String representation for enum bindings.encoder.ReadStatus.
FLAC__StreamEncoderSeekStatusString
Represents the above const char*
array as a JavaScript array. Returns a String representation for enum bindings.encoder.SeekStatus.
FLAC__StreamEncoderTellStatusString
Represents the above const char*
array as a JavaScript array. Returns a String representation for enum bindings.encoder.TellStatus.
FLAC__StreamEncoderWriteStatusString
Represents the above const char*
array as a JavaScript array. Returns a String representation for enum bindings.encoder.WriteStatus.
Object read_callback(Buffer buffer)
Called when the encoder needs some data. Fill the data into the buffer and return an object with bytes
set to the bytes read and a valid return value from bindings.encoder.ReadStatus in returnValue
field. {bytes: ..., returnValue: ...}
Number seek_callback(Number offset)
Called when the encoder requests seeking on the stream. The value of offset
could be truncated due to Number precision. Return a valid value from bindings.encoder.SeekStatus.
Object tell_callback()
Called when the encoder wants to know the offset in bytes from the beginning of the stream. Return an object with offset
value as the offset in bytes and returnValue
as the valid return value from bindings.encoder.TellStatus. {offset: ..., returnValue: ...}
Number read_callback(Buffer data, Number bytes, Number samples, Number nFrame)
Called when the encoder encoded som audio. Return a valid value from bindings.encoder.WriteStatus.
read_callback(Object metadata)
Called when the encoder ended encoding, and passes you the STREAMINFO
metadata block to tell you to write it in the stream (if is possible). metadata
is a JavaScript representation of a FLAC__StreamMetadata struct.
progress_callback(Number bytesWritten, Number samplesWritten, Number framesWritten, Number totalFramesEstimated)
Called by the encoder when encoded a chunk of audio, to tell you some statistics.