Chris@1: Chris@1:
Chris@1:#include <encoder.h>
Chris@1: Chris@1:
Inheritance diagram for FLAC::Encoder::File: Chris@1:
Chris@1: The usage of this class is similar to FLAC__StreamEncoder, except instead of providing callbacks to FLAC__stream_encoder_init*_FILE() or FLAC__stream_encoder_init*_file(), you will inherit from this class and override the virtual callback functions with your own implementations, then call init() or init_ogg(). The rest of the calls work the same as in the C layer.
Chris@1: There are no mandatory callbacks; all the callbacks from FLAC::Encoder::Stream are implemented here fully and support full post-encode STREAMINFO and SEEKTABLE updating. There is only an optional progress callback which you may override to get periodic reports on the progress of the encode. Chris@1:
Chris@1:
Public Member Functions | |
virtual ::FLAC__StreamEncoderInitStatus | init (FILE *file) |
virtual ::FLAC__StreamEncoderInitStatus | init (const char *filename) |
virtual ::FLAC__StreamEncoderInitStatus | init (const std::string &filename) |
virtual ::FLAC__StreamEncoderInitStatus | init_ogg (FILE *file) |
virtual ::FLAC__StreamEncoderInitStatus | init_ogg (const char *filename) |
virtual ::FLAC__StreamEncoderInitStatus | init_ogg (const std::string &filename) |
virtual bool | is_valid () const |
operator bool () const | |
virtual bool | set_ogg_serial_number (long value) |
virtual bool | set_verify (bool value) |
virtual bool | set_streamable_subset (bool value) |
virtual bool | set_channels (unsigned value) |
virtual bool | set_bits_per_sample (unsigned value) |
virtual bool | set_sample_rate (unsigned value) |
virtual bool | set_compression_level (unsigned value) |
virtual bool | set_blocksize (unsigned value) |
virtual bool | set_do_mid_side_stereo (bool value) |
virtual bool | set_loose_mid_side_stereo (bool value) |
virtual bool | set_apodization (const char *specification) |
virtual bool | set_max_lpc_order (unsigned value) |
virtual bool | set_qlp_coeff_precision (unsigned value) |
virtual bool | set_do_qlp_coeff_prec_search (bool value) |
virtual bool | set_do_escape_coding (bool value) |
virtual bool | set_do_exhaustive_model_search (bool value) |
virtual bool | set_min_residual_partition_order (unsigned value) |
virtual bool | set_max_residual_partition_order (unsigned value) |
virtual bool | set_rice_parameter_search_dist (unsigned value) |
virtual bool | set_total_samples_estimate (FLAC__uint64 value) |
virtual bool | set_metadata (::FLAC__StreamMetadata **metadata, unsigned num_blocks) |
virtual bool | set_metadata (FLAC::Metadata::Prototype **metadata, unsigned num_blocks) |
State | get_state () const |
virtual Decoder::Stream::State | get_verify_decoder_state () const |
virtual void | get_verify_decoder_error_stats (FLAC__uint64 *absolute_sample, unsigned *frame_number, unsigned *channel, unsigned *sample, FLAC__int32 *expected, FLAC__int32 *got) |
virtual bool | get_verify () const |
virtual bool | get_streamable_subset () const |
virtual bool | get_do_mid_side_stereo () const |
virtual bool | get_loose_mid_side_stereo () const |
virtual unsigned | get_channels () const |
virtual unsigned | get_bits_per_sample () const |
virtual unsigned | get_sample_rate () const |
virtual unsigned | get_blocksize () const |
virtual unsigned | get_max_lpc_order () const |
virtual unsigned | get_qlp_coeff_precision () const |
virtual bool | get_do_qlp_coeff_prec_search () const |
virtual bool | get_do_escape_coding () const |
virtual bool | get_do_exhaustive_model_search () const |
virtual unsigned | get_min_residual_partition_order () const |
virtual unsigned | get_max_residual_partition_order () const |
virtual unsigned | get_rice_parameter_search_dist () const |
virtual FLAC__uint64 | get_total_samples_estimate () const |
virtual ::FLAC__StreamEncoderInitStatus | init () |
virtual ::FLAC__StreamEncoderInitStatus | init_ogg () |
virtual bool | finish () |
virtual bool | process (const FLAC__int32 *const buffer[], unsigned samples) |
virtual bool | process_interleaved (const FLAC__int32 buffer[], unsigned samples) |
Protected Member Functions | |
virtual void | progress_callback (FLAC__uint64 bytes_written, FLAC__uint64 samples_written, unsigned frames_written, unsigned total_frames_estimate) |
virtual ::FLAC__StreamEncoderWriteStatus | write_callback (const FLAC__byte buffer[], size_t bytes, unsigned samples, unsigned current_frame) |
virtual ::FLAC__StreamEncoderReadStatus | read_callback (FLAC__byte buffer[], size_t *bytes) |
virtual ::FLAC__StreamEncoderSeekStatus | seek_callback (FLAC__uint64 absolute_byte_offset) |
virtual ::FLAC__StreamEncoderTellStatus | tell_callback (FLAC__uint64 *absolute_byte_offset) |
virtual void | metadata_callback (const ::FLAC__StreamMetadata *metadata) |
Static Protected Member Functions | |
Chris@1: ::FLAC__StreamEncoderReadStatus | read_callback_ (const ::FLAC__StreamEncoder *encoder, FLAC__byte buffer[], size_t *bytes, void *client_data) |
Chris@1: ::FLAC__StreamEncoderWriteStatus | write_callback_ (const ::FLAC__StreamEncoder *encoder, const FLAC__byte buffer[], size_t bytes, unsigned samples, unsigned current_frame, void *client_data) |
Chris@1: ::FLAC__StreamEncoderSeekStatus | seek_callback_ (const FLAC__StreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data) |
Chris@1: ::FLAC__StreamEncoderTellStatus | tell_callback_ (const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data) |
Chris@1: static void | metadata_callback_ (const ::FLAC__StreamEncoder *encoder, const ::FLAC__StreamMetadata *metadata, void *client_data) |
Protected Attributes | |
Chris@1: ::FLAC__StreamEncoder * | encoder_ |
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_init_FILE(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_init_file(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_init_file(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_init_ogg_FILE(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_init_ogg_file(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_init_ogg_file(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__StreamEncoderProgressCallback. Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: This is a dummy implementation to satisfy the pure virtual in Stream that is actually supplied internally by the C layer. Chris@1: Chris@1: Chris@1: Chris@1: Implements FLAC::Encoder::Stream. |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: Call after construction to check the that the object was created successfully. If not, use get_state() to find out why not. |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See is_valid(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_ogg_serial_number(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_verify(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_streamable_subset(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_channels(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_bits_per_sample(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_sample_rate(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_compression_level(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_blocksize(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_do_mid_side_stereo(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_loose_mid_side_stereo(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_apodization(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_max_lpc_order(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_qlp_coeff_precision(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_do_qlp_coeff_prec_search(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_do_escape_coding(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_do_exhaustive_model_search(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_min_residual_partition_order(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_max_residual_partition_order(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_rice_parameter_search_dist(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_total_samples_estimate(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_metadata(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_set_metadata(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_state(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_verify_decoder_state(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_verify_decoder_error_stats(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_verify(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_streamable_subset(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_do_mid_side_stereo(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_loose_mid_side_stereo(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_channels(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_bits_per_sample(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_sample_rate(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_blocksize(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_max_lpc_order(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_qlp_coeff_precision(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_do_qlp_coeff_prec_search(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_do_escape_coding(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_do_exhaustive_model_search(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_min_residual_partition_order(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_max_residual_partition_order(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_rice_parameter_search_dist(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_get_total_samples_estimate(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_init_stream(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_init_ogg_stream(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_finish(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_process(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__stream_encoder_process_interleaved(). Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__StreamEncoderReadCallback. Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__StreamEncoderSeekCallback. Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__StreamEncoderTellCallback. Chris@1: Chris@1: |
Chris@1:
Chris@1:
Chris@1:
|
Chris@1:
Chris@1: Chris@1: | Chris@1:
Chris@1:
Chris@1: Chris@1: See FLAC__StreamEncoderMetadataCallback. Chris@1: Chris@1: |
Chris@1: