Lines Matching full:private_
223 struct FLAC__StreamEncoderPrivate *private_,
523 encoder->private_ = calloc(1, sizeof(FLAC__StreamEncoderPrivate));
524 if(encoder->private_ == 0) {
530 encoder->private_->frame = FLAC__bitwriter_new();
531 if(encoder->private_->frame == 0) {
532 free(encoder->private_);
538 encoder->private_->file = 0;
542 encoder->private_->is_being_deleted = false;
545 encoder->private_->subframe_workspace_ptr[i][0] = &encoder->private_->subframe_workspace[i][0];
546 encoder->private_->subframe_workspace_ptr[i][1] = &encoder->private_->subframe_workspace[i][1];
549 encoder->private_->subframe_workspace_ptr_mid_side[i][0] = &encoder->private_->subframe_workspace_mid_side[i][0];
550 encoder->private_->subframe_workspace_ptr_mid_side[i][1] = &encoder->private_->subframe_workspace_mid_side[i][1];
553 encoder->private_->partitioned_rice_contents_workspace_ptr[i][0] = &encoder->private_->partitioned_rice_contents_workspace[i][0];
554 encoder->private_->partitioned_rice_contents_workspace_ptr[i][1] = &encoder->private_->partitioned_rice_contents_workspace[i][1];
557 encoder->private_->partitioned_rice_contents_workspace_ptr_mid_side[i][0] = &encoder->private_->partitioned_rice_contents_workspace_mid_side[i][0];
558 encoder->private_->partitioned_rice_contents_workspace_ptr_mid_side[i][1] = &encoder->private_->partitioned_rice_contents_workspace_mid_side[i][1];
562 FLAC__format_entropy_coding_method_partitioned_rice_contents_init(&encoder->private_->partitioned_rice_contents_workspace[i][0]);
563 FLAC__format_entropy_coding_method_partitioned_rice_contents_init(&encoder->private_->partitioned_rice_contents_workspace[i][1]);
566 FLAC__format_entropy_coding_method_partitioned_rice_contents_init(&encoder->private_->partitioned_rice_contents_workspace_mid_side[i][0]);
567 FLAC__format_entropy_coding_method_partitioned_rice_contents_init(&encoder->private_->partitioned_rice_contents_workspace_mid_side[i][1]);
570 FLAC__format_entropy_coding_method_partitioned_rice_contents_init(&encoder->private_->partitioned_rice_contents_extra[i]);
585 FLAC__ASSERT(0 != encoder->private_);
586 FLAC__ASSERT(0 != encoder->private_->frame);
588 encoder->private_->is_being_deleted = true;
592 if(0 != encoder->private_->verify.decoder)
593 FLAC__stream_decoder_delete(encoder->private_->verify.decoder);
596 FLAC__format_entropy_coding_method_partitioned_rice_contents_clear(&encoder->private_->partitioned_rice_contents_workspace[i][0]);
597 FLAC__format_entropy_coding_method_partitioned_rice_contents_clear(&encoder->private_->partitioned_rice_contents_workspace[i][1]);
600 FLAC__format_entropy_coding_method_partitioned_rice_contents_clear(&encoder->private_->partitioned_rice_contents_workspace_mid_side[i][0]);
601 FLAC__format_entropy_coding_method_partitioned_rice_contents_clear(&encoder->private_->partitioned_rice_contents_workspace_mid_side[i][1]);
604 FLAC__format_entropy_coding_method_partitioned_rice_contents_clear(&encoder->private_->partitioned_rice_contents_extra[i]);
606 FLAC__bitwriter_delete(encoder->private_->frame);
607 free(encoder->private_);
766 encoder->private_->seek_table = &encoder->protected_->metadata[i2]->data.seek_table;
825 encoder->private_->input_capacity = 0;
827 encoder->private_->integer_signal_unaligned[i] = encoder->private_->integer_signal[i] = 0;
829 encoder->private_->real_signal_unaligned[i] = encoder->private_->real_signal[i] = 0;
833 encoder->private_->integer_signal_mid_side_unaligned[i] = encoder->private_->integer_signal_mid_side[i] = 0;
835 encoder->private_->real_signal_mid_side_unaligned[i] = encoder->private_->real_signal_mid_side[i] = 0;
840 encoder->private_->window_unaligned[i] = encoder->private_->window[i] = 0;
841 encoder->private_->windowed_signal_unaligned = encoder->private_->windowed_signal = 0;
844 encoder->private_->residual_workspace_unaligned[i][0] = encoder->private_->residual_workspace[i][0] = 0;
845 encoder->private_->residual_workspace_unaligned[i][1] = encoder->private_->residual_workspace[i][1] = 0;
846 encoder->private_->best_subframe[i] = 0;
849 encoder->private_->residual_workspace_mid_side_unaligned[i][0] = encoder->private_->residual_workspace_mid_side[i][0] = 0;
850 encoder->private_->residual_workspace_mid_side_unaligned[i][1] = encoder->private_->residual_workspace_mid_side[i][1] = 0;
851 encoder->private_->best_subframe_mid_side[i] = 0;
853 encoder->private_->abs_residual_partition_sums_unaligned = encoder->private_->abs_residual_partition_sums = 0;
854 encoder->private_->raw_bits_per_partition_unaligned = encoder->private_->raw_bits_per_partition = 0;
856 encoder->private_->loose_mid_side_stereo_frames = (unsigned)((FLAC__double)encoder->protected_->sample_rate * 0.4 / (FLAC__double)encoder->protected_->blocksize + 0.5);
864 encoder->private_->loose_mid_side_stereo_frames = (unsigned)FLAC__fixedpoint_trunc((((FLAC__uint64)(encoder->protected_->sample_rate) * (FLAC__uint64)(26214)) << 16) / (encoder->protected_->blocksize<<16) + FLAC__FP_ONE_HALF);
866 if(encoder->private_->loose_mid_side_stereo_frames == 0)
867 encoder->private_->loose_mid_side_stereo_frames = 1;
868 encoder->private_->loose_mid_side_stereo_frame_count = 0;
869 encoder->private_->current_sample_number = 0;
870 encoder->private_->current_frame_number = 0;
872 encoder->private_->use_wide_by_block = (encoder->protected_->bits_per_sample + FLAC__bitmath_ilog2(encoder->protected_->blocksize)+1 > 30);
873 encoder->private_->use_wide_by_order = (encoder->protected_->bits_per_sample + FLAC__bitmath_ilog2(flac_max(encoder->protected_->max_lpc_order, FLAC__MAX_FIXED_ORDER))+1 > 30); /*@@@ need to use this? */
874 encoder->private_->use_wide_by_partition = (false); /*@@@ need to set this */
879 FLAC__cpu_info(&encoder->private_->cpuinfo);
882 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation;
884 encoder->private_->local_precompute_partition_info_sums = precompute_partition_info_sums_;
885 encoder->private_->local_fixed_compute_best_predictor = FLAC__fixed_compute_best_predictor;
886 encoder->private_->local_fixed_compute_best_predictor_wide = FLAC__fixed_compute_best_predictor_wide;
888 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients = FLAC__lpc_compute_residual_from_qlp_coefficients;
889 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_64bit = FLAC__lpc_compute_residual_from_qlp_coefficients_wide;
890 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit = FLAC__lpc_compute_residual_from_qlp_coefficients;
895 if(encoder->private_->cpuinfo.use_asm) {
897 FLAC__ASSERT(encoder->private_->cpuinfo.type == FLAC__CPUINFO_TYPE_IA32);
899 if(encoder->private_->cpuinfo.ia32.sse) {
901 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_4_old;
903 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_8_old;
905 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_12_old;
907 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16_old;
909 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_asm_ia32;
912 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_asm_ia32;
914 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_64bit = FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32; /* OPT_IA32: was really necessary for GCC < 4.9 */
915 if(encoder->private_->cpuinfo.ia32.mmx) {
916 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients = FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32;
917 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit = FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32_mmx;
920 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients = FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32;
921 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit = FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32;
924 if(encoder->private_->cpuinfo.ia32.mmx && encoder->private_->cpuinfo.ia32.cmov)
925 encoder->private_->local_fixed_compute_best_predictor = FLAC__fixed_compute_best_predictor_asm_ia32_mmx_cmov;
929 if(encoder->private_->cpuinfo.ia32.sse) {
930 if(encoder->private_->cpuinfo.ia32.sse42 || !encoder->private_->cpuinfo.ia32.intel) { /* use new autocorrelation functions */
932 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_4_new;
934 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_8_new;
936 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_12_new;
938 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_16_new;
940 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation;
944 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_4_old;
946 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_8_old;
948 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_12_old;
950 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_16_old;
952 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation;
958 if(encoder->private_->cpuinfo.ia32.sse2) {
959 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients = FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2;
960 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit = FLAC__lpc_compute_residual_from_qlp_coefficients_16_intrin_sse2;
964 if(encoder->private_->cpuinfo.ia32.sse41) {
965 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients = FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse41;
966 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_64bit = FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41;
970 if(encoder->private_->cpuinfo.ia32.avx2) {
971 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit = FLAC__lpc_compute_residual_from_qlp_coefficients_16_intrin_avx2;
972 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients = FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_avx2;
973 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_64bit = FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_avx2;
978 if (encoder->private_->cpuinfo.ia32.sse2) {
979 encoder->private_->local_fixed_compute_best_predictor = FLAC__fixed_compute_best_predictor_intrin_sse2;
980 encoder->private_->local_fixed_compute_best_predictor_wide = FLAC__fixed_compute_best_predictor_wide_intrin_sse2;
984 if (encoder->private_->cpuinfo.ia32.ssse3) {
985 encoder->private_->local_fixed_compute_best_predictor = FLAC__fixed_compute_best_predictor_intrin_ssse3;
986 encoder->private_->local_fixed_compute_best_predictor_wide = FLAC__fixed_compute_best_predictor_wide_intrin_ssse3;
991 FLAC__ASSERT(encoder->private_->cpuinfo.type == FLAC__CPUINFO_TYPE_X86_64);
994 if(encoder->private_->cpuinfo.x86.sse42 || !encoder->private_->cpuinfo.x86.intel) { /* use new autocorrelation functions */
996 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_4_new;
998 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_8_new;
1000 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_12_new;
1002 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_16_new;
1006 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_4_old;
1008 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_8_old;
1010 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_12_old;
1012 encoder->private_->local_lpc_compute_autocorrelation = FLAC__lpc_compute_autocorrelation_intrin_sse_lag_16_old;
1017 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit = FLAC__lpc_compute_residual_from_qlp_coefficients_16_intrin_sse2;
1020 if(encoder->private_->cpuinfo.x86.sse41) {
1021 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients = FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse41;
1025 if(encoder->private_->cpuinfo.x86.avx2) {
1026 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit = FLAC__lpc_compute_residual_from_qlp_coefficients_16_intrin_avx2;
1027 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients = FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_avx2;
1028 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_64bit = FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_avx2;
1033 encoder->private_
1034 encoder->private_->local_fixed_compute_best_predictor_wide = FLAC__fixed_compute_best_predictor_wide_intrin_sse2;
1037 if (encoder->private_->cpuinfo.x86.ssse3) {
1038 encoder->private_->local_fixed_compute_best_predictor = FLAC__fixed_compute_best_predictor_intrin_ssse3;
1039 encoder->private_->local_fixed_compute_best_predictor_wide = FLAC__fixed_compute_best_predictor_wide_intrin_ssse3;
1048 if(encoder->private_->cpuinfo.use_asm) {
1051 if(encoder->private_->cpuinfo.ia32.sse2)
1052 encoder->private_->local_precompute_partition_info_sums = FLAC__precompute_partition_info_sums_intrin_sse2;
1055 if(encoder->private_->cpuinfo.ia32.ssse3)
1056 encoder->private_->local_precompute_partition_info_sums = FLAC__precompute_partition_info_sums_intrin_ssse3;
1059 if(encoder->private_->cpuinfo.ia32.avx2)
1060 encoder->private_->local_precompute_partition_info_sums = FLAC__precompute_partition_info_sums_intrin_avx2;
1064 encoder->private_->local_precompute_partition_info_sums = FLAC__precompute_partition_info_sums_intrin_sse2;
1067 if(encoder->private_->cpuinfo.x86.ssse3)
1068 encoder->private_->local_precompute_partition_info_sums = FLAC__precompute_partition_info_sums_intrin_ssse3;
1071 if(encoder->private_->cpuinfo.x86.avx2)
1072 encoder->private_->local_precompute_partition_info_sums = FLAC__precompute_partition_info_sums_intrin_avx2;
1078 if(encoder->private_->use_wide_by_block) {
1079 encoder->private_->local_fixed_compute_best_predictor = encoder->private_->local_fixed_compute_best_predictor_wide;
1086 encoder->private_->is_ogg = is_ogg;
1093 encoder->private_->read_callback = read_callback;
1094 encoder->private_->write_callback = write_callback;
1095 encoder->private_->seek_callback = seek_callback;
1096 encoder->private_->tell_callback = tell_callback;
1097 encoder->private_->metadata_callback = metadata_callback;
1098 encoder->private_->client_data = client_data;
1105 if(!FLAC__bitwriter_init(encoder->private_->frame)) {
1118 encoder->private_->verify.input_fifo.size = encoder->protected_->blocksize+OVERREAD_;
1120 if(0 == (encoder->private_->verify.input_fifo.data[i] = safe_malloc_mul_2op_p(sizeof(FLAC__int32), /*times*/encoder->private_->verify.input_fifo.size))) {
1125 encoder->private_->verify.input_fifo.tail = 0;
1130 if(0 == encoder->private_->verify.decoder) {
1131 encoder->private_->verify.decoder = FLAC__stream_decoder_new();
1132 if(0 == encoder->private_->verify.decoder) {
1138 if(FLAC__stream_decoder_init_stream(encoder->private_->verify.decoder, verify_read_callback_, /*seek_callback=*/0, /*tell_callback=*/0, /*length_callback=*/0, /*eof_callback=*/0, verify_write_callback_, verify_metadata_callback_, verify_error_callback_, /*client_data=*/encoder) != FLAC__STREAM_DECODER_INIT_STATUS_OK) {
1143 encoder->private_->verify.error_stats.absolute_sample = 0;
1144 encoder->private_->verify.error_stats.frame_number = 0;
1145 encoder->private_->verify.error_stats.channel = 0;
1146 encoder->private_->verify.error_stats.sample = 0;
1147 encoder->private_->verify.error_stats.expected = 0;
1148 encoder->private_->verify.error_stats.got = 0;
1154 encoder->private_->first_seekpoint_to_check = 0;
1155 encoder->private_->samples_written = 0;
1164 encoder->private_->verify.state_hint = ENCODER_IN_MAGIC;
1165 if(!FLAC__bitwriter_write_raw_uint32(encoder->private_->frame, FLAC__STREAM_SYNC, FLAC__STREAM_SYNC_LEN)) {
1178 encoder->private_->verify.state_hint = ENCODER_IN_METADATA;
1179 encoder->private_->streaminfo.type = FLAC__METADATA_TYPE_STREAMINFO;
1180 encoder->private_->streaminfo.is_last = false; /* we will have at a minimum a VORBIS_COMMENT afterwards */
1181 encoder->private_->streaminfo.length = FLAC__STREAM_METADATA_STREAMINFO_LENGTH;
1182 encoder->private_->streaminfo.data.stream_info.min_blocksize = encoder->protected_->blocksize; /* this encoder uses the same blocksize for the whole stream */
1183 encoder->private_->streaminfo.data.stream_info.max_blocksize = encoder->protected_->blocksize;
1184 encoder->private_->streaminfo.data.stream_info.min_framesize = 0; /* we don't know this yet; have to fill it in later */
1185 encoder->private_->streaminfo.data.stream_info.max_framesize = 0; /* we don't know this yet; have to fill it in later */
1186 encoder->private_->streaminfo.data.stream_info.sample_rate = encoder->protected_->sample_rate;
1187 encoder->private_->streaminfo.data.stream_info.channels = encoder->protected_->channels;
1188 encoder->private_->streaminfo.data.stream_info.bits_per_sample = encoder->protected_->bits_per_sample;
1189 encoder->private_->streaminfo.data.stream_info.total_samples = encoder->protected_->total_samples_estimate; /* we will replace this later with the real total */
1190 memset(encoder->private_->streaminfo.data.stream_info.md5sum, 0, 16); /* we don't know this yet; have to fill it in later */
1192 FLAC__MD5Init(&encoder->private_->md5context);
1193 if(!FLAC__add_metadata_block(&encoder->private_->streaminfo, encoder->private_->frame)) {
1206 encoder->private_->streaminfo.data.stream_info.min_framesize = (1u << FLAC__STREAM_METADATA_STREAMINFO_MIN_FRAME_SIZE_LEN) - 1;
1208 encoder->private_->streaminfo.data.stream_info.total_samples = 0;
1229 if(!FLAC__add_metadata_block(&vorbis_comment, encoder->private_->frame)) {
1244 if(!FLAC__add_metadata_block(encoder->protected_->metadata[i], encoder->private_->frame)) {
1255 if(encoder->private_->tell_callback && encoder->private_->tell_callback(encoder, &encoder->protected_->audio_offset, encoder->private_->client_data) == FLAC__STREAM_ENCODER_TELL_STATUS_ERROR) { /* FLAC__STREAM_ENCODER_TELL_STATUS_UNSUPPORTED just means we didn't get the offset; no error */
1261 encoder->private_->verify.state_hint = ENCODER_IN_AUDIO;
1346 encoder->private_->file = file;
1348 encoder->private_->progress_callback = progress_callback;
1349 encoder->private_->bytes_written = 0;
1350 encoder->private_->samples_written = 0;
1351 encoder->private_->frames_written = 0;
1355 encoder->private_->file == stdout? 0 : is_ogg? file_read_callback_ : 0,
1357 encoder->private_->file == stdout? 0 : file_seek_callback_,
1358 encoder->private_->file == stdout? 0 : file_tell_callback_,
1372 encoder->private_->total_frames_estimate = (unsigned)((FLAC__stream_encoder_get_total_samples_estimate(encoder) + blocksize - 1) / blocksize);
1453 FLAC__ASSERT(0 != encoder->private_);
1459 if(encoder->protected_->state == FLAC__STREAM_ENCODER_OK && !encoder->private_->is_being_deleted) {
1460 if(encoder->private_->current_sample_number != 0) {
1461 const FLAC__bool is_fractional_block = encoder->protected_->blocksize != encoder->private_->current_sample_number;
1462 encoder->protected_->blocksize = encoder->private_->current_sample_number;
1469 FLAC__MD5Final(encoder->private_->streaminfo.data.stream_info.md5sum, &encoder->private_->md5context);
1471 if(!encoder->private_->is_being_deleted) {
1473 if(encoder->private_->seek_callback) {
1475 if(encoder->private_->is_ogg)
1485 if(encoder->private_->metadata_callback)
1486 encoder->private_->metadata_callback(encoder, &encoder->private_->streaminfo, encoder->private_->client_data);
1489 if(encoder->protected_->verify && 0 != encoder->private_->verify.decoder && !FLAC__stream_decoder_finish(encoder->private_->verify.decoder)) {
1496 if(0 != encoder->private_->file) {
1497 if(encoder->private_->file != stdout)
1498 fclose(encoder->private_->file);
1499 encoder->private_->file = 0;
1503 if(encoder->private_->is_ogg)
1519 FLAC__ASSERT(0 != encoder->private_);
1524 /* can't check encoder->private_->is_ogg since that's not set until init time */
1536 FLAC__ASSERT(0 != encoder->private_);
1549 FLAC__ASSERT(0 != encoder->private_);
1560 FLAC__ASSERT(0 != encoder->private_);
1571 FLAC__ASSERT(0 != encoder->private_);
1582 FLAC__ASSERT(0 != encoder->private_);
1593 FLAC__ASSERT(0 != encoder->private_);
1605 FLAC__ASSERT(0 != encoder->private_);
1637 FLAC__ASSERT(0 != encoder->private_);
1648 FLAC__ASSERT(0 != encoder->private_);
1659 FLAC__ASSERT(0 != encoder->private_);
1671 FLAC__ASSERT(0 != encoder->private_);
1784 FLAC__ASSERT(0 != encoder->private_);
1795 FLAC__ASSERT(0 != encoder->private_);
1806 FLAC__ASSERT(0 != encoder->private_);
1817 FLAC__ASSERT(0 != encoder->private_);
1833 FLAC__ASSERT(0 != encoder->private_);
1844 FLAC__ASSERT(0 != encoder->private_);
1855 FLAC__ASSERT(0 != encoder->private_);
1866 FLAC__ASSERT(0 != encoder->private_);
1882 FLAC__ASSERT(0 != encoder->private_);
1893 FLAC__ASSERT(0 != encoder->private_);
1929 FLAC__ASSERT(0 != encoder->private_);
1933 encoder->private_->disable_constant_subframes = value;
1940 FLAC__ASSERT(0 != encoder->private_);
1944 encoder->private_->disable_fixed_subframes = value;
1951 FLAC__ASSERT(0 != encoder->private_);
1955 encoder->private_->disable_verbatim_subframes = value;
1962 FLAC__ASSERT(0 != encoder->private_);
1970 FLAC__ASSERT(0 != encoder->private_);
1973 return FLAC__stream_decoder_get_state(encoder->private_->verify.decoder);
1981 FLAC__ASSERT(0 != encoder->private_);
1986 return FLAC__stream_decoder_get_resolved_state_string(encoder->private_->verify.decoder);
1992 FLAC__ASSERT(0 != encoder->private_);
1995 *absolute_sample = encoder->private_->verify.error_stats.absolute_sample;
1997 *frame_number = encoder->private_->verify.error_stats.frame_number;
1999 *channel = encoder->private_->verify.error_stats.channel;
2001 *sample = encoder->private_->verify.error_stats.sample;
2003 *expected = encoder->private_->verify.error_stats.expected;
2005 *got = encoder->private_->verify.error_stats.got;
2011 FLAC__ASSERT(0 != encoder->private_);
2019 FLAC__ASSERT(0 != encoder->private_);
2027 FLAC__ASSERT(0 != encoder->private_);
2035 FLAC__ASSERT(0 != encoder->private_);
2043 FLAC__ASSERT(0 != encoder->private_);
2051 FLAC__ASSERT(0 != encoder->private_);
2059 FLAC__ASSERT(0 != encoder->private_);
2067 FLAC__ASSERT(0 != encoder->private_);
2075 FLAC__ASSERT(0 != encoder->private_);
2083 FLAC__ASSERT(0 != encoder->private_);
2091 FLAC__ASSERT(0 != encoder->private_);
2099 FLAC__ASSERT(0 != encoder->private_);
2107 FLAC__ASSERT(0 != encoder->private_);
2115 FLAC__ASSERT(0 != encoder->private_);
2123 FLAC__ASSERT(0 != encoder->private_);
2131 FLAC__ASSERT(0 != encoder->private_);
2139 FLAC__ASSERT(0 != encoder->private_);
2147 FLAC__ASSERT(0 != encoder->private_);
2158 FLAC__ASSERT(0 != encoder->private_);
2165 const unsigned n = flac_min(blocksize+OVERREAD_-encoder->private_->current_sample_number, samples-j);
2168 append_to_verify_fifo_(&encoder->private_->verify.input_fifo, buffer, j, channels, n);
2175 memcpy(&encoder->private_->integer_signal[channel][encoder->private_->current_sample_number], &buffer[channel][j], sizeof(buffer[channel][0]) * n);
2181 for(i = encoder->private_->current_sample_number; i <= blocksize && j < samples; i++, j++) {
2182 encoder->private_->integer_signal_mid_side[1][i] = buffer[0][j] - buffer[1][j];
2183 encoder->private_->integer_signal_mid_side[0][i] = (buffer[0][j] + buffer[1][j]) >> 1; /* NOTE: not the same as 'mid = (buffer[0][j] + buffer[1][j]) / 2' ! */
2189 encoder->private_->current_sample_number += n;
2192 if(encoder->private_->current_sample_number > blocksize) {
2193 FLAC__ASSERT(encoder->private_->current_sample_number == blocksize+OVERREAD_);
2199 encoder->private_->integer_signal[channel][0] = encoder->private_->integer_signal[channel][blocksize];
2201 encoder->private_->integer_signal_mid_side[0][0] = encoder->private_->integer_signal_mid_side[0][blocksize];
2202 encoder->private_->integer_signal_mid_side[1][0] = encoder->private_->integer_signal_mid_side[1][blocksize];
2204 encoder->private_->current_sample_number = 1;
2218 FLAC__ASSERT(0 != encoder->private_);
2233 append_to_verify_fifo_interleaved_(&encoder->private_->verify.input_fifo, buffer, j, channels, flac_min(blocksize+OVERREAD_-encoder->private_->current_sample_number, samples-j));
2236 for(i = encoder->private_->current_sample_number; i <= blocksize && j < samples; i++, j++) {
2237 encoder->private_->integer_signal[0][i] = mid = side = buffer[k++];
2239 encoder->private_->integer_signal[1][i] = x;
2243 encoder->private_->integer_signal_mid_side[1][i] = side;
2244 encoder->private_->integer_signal_mid_side[0][i] = mid;
2246 encoder->private_->current_sample_number = i;
2254 encoder->private_->integer_signal[0][0] = encoder->private_->integer_signal[0][blocksize];
2255 encoder->private_->integer_signal[1][0] = encoder->private_->integer_signal[1][blocksize];
2256 encoder->private_->integer_signal_mid_side[0][0] = encoder->private_->integer_signal_mid_side[0][blocksize];
2257 encoder->private_->integer_signal_mid_side[1][0] = encoder->private_
2258 encoder->private_->current_sample_number = 1;
2268 append_to_verify_fifo_interleaved_(&encoder->private_->verify.input_fifo, buffer, j, channels, flac_min(blocksize+OVERREAD_-encoder->private_->current_sample_number, samples-j));
2271 for(i = encoder->private_->current_sample_number; i <= blocksize && j < samples; i++, j++) {
2273 encoder->private_->integer_signal[channel][i] = buffer[k++];
2275 encoder->private_->current_sample_number = i;
2284 encoder->private_->integer_signal[channel][0] = encoder->private_->integer_signal[channel][blocksize];
2285 encoder->private_->current_sample_number = 1;
2333 encoder->private_->seek_table = 0;
2334 encoder->private_->disable_constant_subframes = false;
2335 encoder->private_->disable_fixed_subframes = false;
2336 encoder->private_->disable_verbatim_subframes = false;
2338 encoder->private_->is_ogg = false;
2340 encoder->private_->read_callback = 0;
2341 encoder->private_->write_callback = 0;
2342 encoder->private_->seek_callback = 0;
2343 encoder->private_->tell_callback = 0;
2344 encoder->private_->metadata_callback = 0;
2345 encoder->private_->progress_callback = 0;
2346 encoder->private_->client_data = 0;
2366 if(0 != encoder->private_->integer_signal_unaligned[i]) {
2367 free(encoder->private_->integer_signal_unaligned[i]);
2368 encoder->private_->integer_signal_unaligned[i] = 0;
2371 if(0 != encoder->private_->real_signal_unaligned[i]) {
2372 free(encoder->private_->real_signal_unaligned[i]);
2373 encoder->private_->real_signal_unaligned[i] = 0;
2378 if(0 != encoder->private_->integer_signal_mid_side_unaligned[i]) {
2379 free(encoder->private_->integer_signal_mid_side_unaligned[i]);
2380 encoder->private_->integer_signal_mid_side_unaligned[i] = 0;
2383 if(0 != encoder->private_->real_signal_mid_side_unaligned[i]) {
2384 free(encoder->private_->real_signal_mid_side_unaligned[i]);
2385 encoder->private_->real_signal_mid_side_unaligned[i] = 0;
2391 if(0 != encoder->private_->window_unaligned[i]) {
2392 free(encoder->private_->window_unaligned[i]);
2393 encoder->private_->window_unaligned[i] = 0;
2396 if(0 != encoder->private_->windowed_signal_unaligned) {
2397 free(encoder->private_->windowed_signal_unaligned);
2398 encoder->private_->windowed_signal_unaligned = 0;
2403 if(0 != encoder->private_->residual_workspace_unaligned[channel][i]) {
2404 free(encoder->private_->residual_workspace_unaligned[channel][i]);
2405 encoder->private_->residual_workspace_unaligned[channel][i] = 0;
2411 if(0 != encoder->private_->residual_workspace_mid_side_unaligned[channel][i]) {
2412 free(encoder->private_->residual_workspace_mid_side_unaligned[channel][i]);
2413 encoder->private_->residual_workspace_mid_side_unaligned[channel][i] = 0;
2417 if(0 != encoder->private_->abs_residual_partition_sums_unaligned) {
2418 free(encoder->private_->abs_residual_partition_sums_unaligned);
2419 encoder->private_->abs_residual_partition_sums_unaligned = 0;
2421 if(0 != encoder->private_->raw_bits_per_partition_unaligned) {
2422 free(encoder->private_->raw_bits_per_partition_unaligned);
2423 encoder->private_->raw_bits_per_partition_unaligned = 0;
2427 if(0 != encoder->private_->verify.input_fifo.data[i]) {
2428 free(encoder->private_->verify.input_fifo.data[i]);
2429 encoder->private_->verify.input_fifo.data[i] = 0;
2433 FLAC__bitwriter_free(encoder->private_->frame);
2443 FLAC__ASSERT(encoder->private_->current_sample_number == 0);
2446 if(new_blocksize <= encoder->private_->input_capacity)
2458 ok = ok && FLAC__memory_alloc_aligned_int32_array(new_blocksize+4+OVERREAD_, &encoder->private_->integer_signal_unaligned[i], &encoder->private_->integer_signal[i]);
2459 memset(encoder->private_->integer_signal[i], 0, sizeof(FLAC__int32)*4);
2460 encoder->private_->integer_signal[i] += 4;
2464 ok = ok && FLAC__memory_alloc_aligned_real_array(new_blocksize+OVERREAD_, &encoder->private_->real_signal_unaligned[i], &encoder->private_->real_signal[i]);
2469 ok = ok && FLAC__memory_alloc_aligned_int32_array(new_blocksize+4+OVERREAD_, &encoder->private_->integer_signal_mid_side_unaligned[i], &encoder->private_->integer_signal_mid_side[i]);
2470 memset(encoder->private_->integer_signal_mid_side[i], 0, sizeof(FLAC__int32)*4);
2471 encoder->private_->integer_signal_mid_side[i] += 4;
2475 ok = ok && FLAC__memory_alloc_aligned_real_array(new_blocksize+OVERREAD_, &encoder->private_->real_signal_mid_side_unaligned[i], &encoder->private_->real_signal_mid_side[i]);
2482 ok = ok && FLAC__memory_alloc_aligned_real_array(new_blocksize, &encoder->private_->window_unaligned[i], &encoder->private_->window[i]);
2483 ok = ok && FLAC__memory_alloc_aligned_real_array(new_blocksize, &encoder->private_->windowed_signal_unaligned, &encoder->private_->windowed_signal);
2488 ok = ok && FLAC__memory_alloc_aligned_int32_array(new_blocksize, &encoder->private_->residual_workspace_unaligned[channel][i], &encoder->private_->residual_workspace[channel][i]);
2493 ok = ok && FLAC__memory_alloc_aligned_int32_array(new_blocksize, &encoder->private_->residual_workspace_mid_side_unaligned[channel][i], &encoder->private_->residual_workspace_mid_side[channel][i]);
2498 ok = ok && FLAC__memory_alloc_aligned_uint64_array(new_blocksize * 2, &encoder->private_->abs_residual_partition_sums_unaligned, &encoder->private_->abs_residual_partition_sums);
2500 ok = ok && FLAC__memory_alloc_aligned_unsigned_array(new_blocksize * 2, &encoder->private_->raw_bits_per_partition_unaligned, &encoder->private_->raw_bits_per_partition);
2504 if(ok && new_blocksize != encoder->private_->input_capacity && encoder->protected_->max_lpc_order > 0) {
2508 FLAC__window_bartlett(encoder->private_->window[i], new_blocksize);
2511 FLAC__window_bartlett_hann(encoder->private_->window[i], new_blocksize);
2514 FLAC__window_blackman(encoder->private_->window[i], new_blocksize);
2517 FLAC__window_blackman_harris_4term_92db_sidelobe(encoder->private_->window[i], new_blocksize);
2520 FLAC__window_connes(encoder->private_->window[i], new_blocksize);
2523 FLAC__window_flattop(encoder->private_->window[i], new_blocksize);
2526 FLAC__window_gauss(encoder->private_->window[i], new_blocksize, encoder->protected_->apodizations[i].parameters.gauss.stddev);
2529 FLAC__window_hamming(encoder->private_->window[i], new_blocksize);
2532 FLAC__window_hann(encoder->private_->window[i], new_blocksize);
2535 FLAC__window_kaiser_bessel(encoder->private_->window[i], new_blocksize);
2538 FLAC__window_nuttall(encoder->private_->window[i], new_blocksize);
2541 FLAC__window_rectangle(encoder->private_->window[i], new_blocksize);
2544 FLAC__window_triangle(encoder->private_->window[i], new_blocksize);
2547 FLAC__window_tukey(encoder->private_->window[i], new_blocksize, encoder->protected_->apodizations[i].parameters.tukey.p);
2550 FLAC__window_partial_tukey(encoder->private_->window[i], new_blocksize, encoder->protected_->apodizations[i].parameters.multiple_tukey.p, encoder->protected_->apodizations[i].parameters.multiple_tukey.start, encoder->protected_->apodizations[i].parameters.multiple_tukey.end);
2553 FLAC__window_punchout_tukey(encoder->private_->window[i], new_blocksize, encoder->protected_->apodizations[i].parameters.multiple_tukey.p, encoder->protected_->apodizations[i].parameters.multiple_tukey.start, encoder->protected_->apodizations[i].parameters.multiple_tukey.end);
2556 FLAC__window_welch(encoder->private_->window[i], new_blocksize);
2561 FLAC__window_hann(encoder->private_->window[i], new_blocksize);
2569 encoder->private_->input_capacity = new_blocksize;
2581 FLAC__ASSERT(FLAC__bitwriter_is_byte_aligned(encoder->private_->frame));
2583 if(!FLAC__bitwriter_get_buffer(encoder->private_->frame, &buffer, &bytes)) {
2589 encoder->private_->verify.output.data = buffer;
2590 encoder->private_->verify.output.bytes = bytes;
2591 if(encoder->private_->verify.state_hint == ENCODER_IN_MAGIC) {
2592 encoder->private_->verify.needs_magic_hack = true;
2595 if(!FLAC__stream_decoder_process_single(encoder->private_->verify.decoder)) {
2596 FLAC__bitwriter_release_buffer(encoder->private_->frame);
2597 FLAC__bitwriter_clear(encoder->private_->frame);
2606 FLAC__bitwriter_release_buffer(encoder->private_->frame);
2607 FLAC__bitwriter_clear(encoder->private_->frame);
2612 FLAC__bitwriter_release_buffer(encoder->private_->frame);
2613 FLAC__bitwriter_clear(encoder->private_->frame);
2616 encoder->private_->streaminfo.data.stream_info.min_framesize = flac_min(bytes, encoder->private_->streaminfo.data.stream_info.min_framesize);
2617 encoder->private_->streaminfo.data.stream_info.max_framesize = flac_max(bytes, encoder->private_->streaminfo.data.stream_info.max_framesize);
2633 if(encoder->private_->tell_callback && encoder->private_->tell_callback(encoder, &output_position, encoder->private_->client_data) == FLAC__STREAM_ENCODER_TELL_STATUS_ERROR) {
2654 if(0 != encoder->private_->seek_table && encoder->protected_->audio_offset > 0 && encoder->private_->seek_table->num_points > 0) {
2656 const FLAC__uint64 frame_first_sample = encoder->private_->samples_written;
2660 for(i = encoder->private_->first_seekpoint_to_check; i < encoder->private_->seek_table->num_points; i++) {
2661 test_sample = encoder->private_->seek_table->points[i].sample_number;
2666 encoder->private_->seek_table->points[i].sample_number = frame_first_sample;
2667 encoder->private_->seek_table->points[i].stream_offset = output_position - encoder->protected_->audio_offset;
2668 encoder->private_->seek_table->points[i].frame_samples = blocksize;
2669 encoder->private_->first_seekpoint_to_check++;
2678 encoder->private_->first_seekpoint_to_check++;
2684 if(encoder->private_->is_ogg) {
2690 encoder->private_->current_frame_number,
2692 (FLAC__OggEncoderAspectWriteCallbackProxy)encoder->private_->write_callback,
2694 encoder->private_->client_data
2699 status = encoder->private_->write_callback(encoder, buffer, bytes, samples, encoder->private_->current_frame_number, encoder->private_->client_data);
2702 encoder->private_->bytes_written += bytes;
2703 encoder->private_->samples_written += samples;
2708 encoder->private_->frames_written = flac_max(encoder->private_->frames_written, encoder->private_->current_frame_number+1);
2720 const FLAC__StreamMetadata *metadata = &encoder->private_->streaminfo;
2751 if((seek_status = encoder->private_->seek_callback(encoder, encoder->protected_->streaminfo_offset + md5_offset, encoder->private_->client_data)) != FLAC__STREAM_ENCODER_SEEK_STATUS_OK) {
2756 if(encoder->private_->write_callback(encoder, metadata->data.stream_info.md5sum, 16, 0, 0, encoder->private_->client_data) != FLAC__STREAM_ENCODER_WRITE_STATUS_OK) {
2784 if((seek_status = encoder->private_->seek_callback(encoder, encoder->protected_->streaminfo_offset + total_samples_byte_offset, encoder->private_->client_data)) != FLAC__STREAM_ENCODER_SEEK_STATUS_OK) {
2789 if(encoder->private_->write_callback(encoder, b, 5, 0, 0, encoder->private_->client_data) != FLAC__STREAM_ENCODER_WRITE_STATUS_OK) {
2812 if((seek_status = encoder->private_->seek_callback(encoder, encoder->protected_->streaminfo_offset + min_framesize_offset, encoder->private_->client_data)) != FLAC__STREAM_ENCODER_SEEK_STATUS_OK) {
2817 if(encoder->private_->write_callback(encoder, b, 6, 0, 0, encoder->private_->client_data) != FLAC__STREAM_ENCODER_WRITE_STATUS_OK) {
2826 if(0 != encoder->private_->seek_table && encoder->private_->seek_table->num_points > 0 && encoder->protected_->seektable_offset > 0) {
2829 FLAC__format_seektable_sort(encoder->private_->seek_table);
2831 FLAC__ASSERT(FLAC__format_seektable_is_legal(encoder->private_->seek_table));
2833 if((seek_status = encoder->private_->seek_callback(encoder, encoder->protected_->seektable_offset + FLAC__STREAM_METADATA_HEADER_LENGTH, encoder->private_->client_data)) != FLAC__STREAM_ENCODER_SEEK_STATUS_OK) {
2839 for(i = 0; i < encoder->private_->seek_table->num_points; i++) {
2842 xx = encoder->private_->seek_table->points[i].sample_number;
2851 xx = encoder->private_->seek_table->points[i].stream_offset;
2860 x = encoder->private_->seek_table->points[i].frame_samples;
2863 if(encoder->private_->write_callback(encoder, b, 18, 0, 0, encoder->private_->client_data) != FLAC__STREAM_ENCODER_WRITE_STATUS_OK) {
2885 const FLAC__StreamMetadata *metadata = &encoder->private_->streaminfo;
2892 FLAC__ASSERT(0 != encoder->private_->seek_callback);
2897 if(encoder->private_->seek_callback(encoder, 0, encoder->private_->client_data) == FLAC__STREAM_ENCODER_SEEK_STATUS_UNSUPPORTED)
2909 if(!simple_ogg_page__get_at(encoder, encoder->protected_->streaminfo_offset, &page, encoder->private_->seek_callback, encoder->private_->read_callback, encoder->private_->client_data)) {
2997 if(!simple_ogg_page__set_at(encoder, encoder->protected_->streaminfo_offset, &page, encoder->private_->seek_callback, encoder->private_->write_callback, encoder->private_->client_data)) {
3006 if(0 != encoder->private_->seek_table && encoder->private_->seek_table->num_points > 0 && encoder->protected_->seektable_offset > 0) {
3010 FLAC__format_seektable_sort(encoder->private_->seek_table);
3012 FLAC__ASSERT(FLAC__format_seektable_is_legal(encoder->private_->seek_table));
3015 if(!simple_ogg_page__get_at(encoder, encoder->protected_->seektable_offset, &page, encoder->private_->seek_callback, encoder->private_->read_callback, encoder->private_->client_data)) {
3020 if((FLAC__STREAM_METADATA_HEADER_LENGTH + 18*encoder->private_->seek_table->num_points) != (unsigned)page.body_len) {
3026 for(i = 0, p = page.body + FLAC__STREAM_METADATA_HEADER_LENGTH; i < encoder->private_->seek_table->num_points; i++, p += 18) {
3029 xx = encoder->private_->seek_table->points[i].sample_number;
3038 xx = encoder->private_->seek_table->points[i].stream_offset;
3047 x = encoder->private_->seek_table->points[i].frame_samples;
3053 if(!simple_ogg_page__set_at(encoder, encoder->protected_->seektable_offset, &page, encoder->private_->seek_callback, encoder->private_->write_callback, encoder->private_->client_data)) {
3070 if(encoder->protected_->do_md5 && !FLAC__MD5Accumulate(&encoder->private_->md5context, (const FLAC__int32 * const *)encoder->private_->integer_signal, encoder->protected_->channels, encoder->protected_->blocksize, (encoder->protected_->bits_per_sample+7) / 8)) {
3086 if(!FLAC__bitwriter_zero_pad_to_byte_boundary(encoder->private_->frame)) {
3094 FLAC__ASSERT(FLAC__bitwriter_is_byte_aligned(encoder->private_->frame));
3096 !FLAC__bitwriter_get_write_crc16(encoder->private_->frame, &crc) ||
3097 !FLAC__bitwriter_write_raw_uint32(encoder->private_->frame, crc, FLAC__FRAME_FOOTER_CRC_LEN)
3114 encoder->private_->current_sample_number = 0;
3115 encoder->private_->current_frame_number++;
3116 encoder->private_->streaminfo.data.stream_info.total_samples += (FLAC__uint64)encoder->protected_->blocksize;
3148 frame_header.number.frame_number = encoder->private_->current_frame_number;
3155 if(encoder->private_->loose_mid_side_stereo_frame_count == 0) {
3160 do_independent = (encoder->private_->last_channel_assignment == FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT);
3181 const unsigned w = get_wasted_bits_(encoder->private_->integer_signal[channel], encoder->protected_->blocksize);
3182 encoder->private_->subframe_workspace[channel][0].wasted_bits = encoder->private_->subframe_workspace[channel][1].wasted_bits = w;
3183 encoder->private_->subframe_bps[channel] = encoder->protected_->bits_per_sample - w;
3189 const unsigned w = get_wasted_bits_(encoder->private_->integer_signal_mid_side[channel], encoder->protected_->blocksize);
3190 encoder->private_->subframe_workspace_mid_side[channel][0].wasted_bits = encoder->private_->subframe_workspace_mid_side[channel][1].wasted_bits = w;
3191 encoder->private_->subframe_bps_mid_side[channel] = encoder->protected_->bits_per_sample - w + (channel==0? 0:1);
3206 encoder->private_->subframe_bps[channel],
3207 encoder->private_->integer_signal[channel],
3208 encoder->private_->subframe_workspace_ptr[channel],
3209 encoder->private_->partitioned_rice_contents_workspace_ptr[channel],
3210 encoder->private_->residual_workspace[channel],
3211 encoder->private_->best_subframe+channel,
3212 encoder->private_->best_subframe_bits+channel
3232 encoder->private_->subframe_bps_mid_side[channel],
3233 encoder->private_->integer_signal_mid_side[channel],
3234 encoder->private_->subframe_workspace_ptr_mid_side[channel],
3235 encoder->private_->partitioned_rice_contents_workspace_ptr_mid_side[channel],
3236 encoder->private_->residual_workspace_mid_side[channel],
3237 encoder->private_->best_subframe_mid_side+channel,
3238 encoder->private_->best_subframe_bits_mid_side+channel
3255 if(encoder->protected_->loose_mid_side_stereo && encoder->private_->loose_mid_side_stereo_frame_count > 0) {
3256 channel_assignment = (encoder->private_->last_channel_assignment == FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT? FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT : FLAC__CHANNEL_ASSIGNMENT_MID_SIDE);
3270 bits[FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT] = encoder->private_->best_subframe_bits [0] + encoder->private_->best_subframe_bits [1];
3271 bits[FLAC__CHANNEL_ASSIGNMENT_LEFT_SIDE ] = encoder->private_->best_subframe_bits [0] + encoder->private_->best_subframe_bits_mid_side[1];
3272 bits[FLAC__CHANNEL_ASSIGNMENT_RIGHT_SIDE ] = encoder->private_->best_subframe_bits [1] + encoder->private_->best_subframe_bits_mid_side[1];
3273 bits[FLAC__CHANNEL_ASSIGNMENT_MID_SIDE ] = encoder->private_->best_subframe_bits_mid_side[0] + encoder->private_->best_subframe_bits_mid_side[1];
3287 if(!FLAC__frame_add_header(&frame_header, encoder->private_->frame)) {
3294 left_subframe = &encoder->private_->subframe_workspace [0][encoder->private_->best_subframe [0]];
3295 right_subframe = &encoder->private_->subframe_workspace [1][encoder->private_->best_subframe [1]];
3298 left_subframe = &encoder->private_->subframe_workspace [0][encoder->private_->best_subframe [0]];
3299 right_subframe = &encoder->private_->subframe_workspace_mid_side[1][encoder->private_->best_subframe_mid_side[1]];
3302 left_subframe = &encoder->private_->subframe_workspace_mid_side[1][encoder->private_->best_subframe_mid_side[1]];
3303 right_subframe = &encoder->private_->subframe_workspace [1][encoder->private_->best_subframe [1]];
3306 left_subframe = &encoder->private_->subframe_workspace_mid_side[0][encoder->private_->best_subframe_mid_side[0]];
3307 right_subframe = &encoder->private_->subframe_workspace_mid_side[1][encoder->private_->best_subframe_mid_side[1]];
3315 left_bps = encoder->private_->subframe_bps [0];
3316 right_bps = encoder->private_->subframe_bps [1];
3319 left_bps = encoder->private_->subframe_bps [0];
3320 right_bps = encoder->private_->subframe_bps_mid_side[1];
3323 left_bps = encoder->private_->subframe_bps_mid_side[1];
3324 right_bps = encoder->private_->subframe_bps [1];
3327 left_bps = encoder->private_->subframe_bps_mid_side[0];
3328 right_bps = encoder->private_->subframe_bps_mid_side[1];
3335 if(!add_subframe_(encoder, frame_header.blocksize, left_bps , left_subframe , encoder->private_->frame))
3337 if(!add_subframe_(encoder, frame_header.blocksize, right_bps, right_subframe, encoder->private_->frame))
3341 if(!FLAC__frame_add_header(&frame_header, encoder->private_->frame)) {
3347 if(!add_subframe_(encoder, frame_header.blocksize, encoder->private_->subframe_bps[channel], &encoder->private_->subframe_workspace[channel][encoder->private_->best_subframe[channel]], encoder->private_->frame)) {
3355 encoder->private_->loose_mid_side_stereo_frame_count++;
3356 if(encoder->private_->loose_mid_side_stereo_frame_count >= encoder->private_->loose_mid_side_stereo_frames)
3357 encoder->private_->loose_mid_side_stereo_frame_count = 0;
3360 encoder->private_->last_channel_assignment = frame_header.channel_assignment;
3402 if(encoder->private_->disable_verbatim_subframes && frame_header->blocksize >= FLAC__MAX_FIXED_ORDER)
3409 guess_fixed_order = encoder->private_->local_fixed_compute_best_predictor(integer_signal+FLAC__MAX_FIXED_ORDER, frame_header->blocksize-FLAC__MAX_FIXED_ORDER, fixed_residual_bits_per_sample);
3412 !encoder->private_->disable_constant_subframes &&
3437 if(!encoder->private_->disable_fixed_subframes || (encoder->protected_->max_lpc_order == 0 && _best_bits == UINT_MAX)) {
3470 encoder->private_->abs_residual_partition_sums,
3471 encoder->private_->raw_bits_per_partition,
3501 FLAC__lpc_window_data(integer_signal, encoder->private_->window[a], encoder->private_->windowed_signal, frame_header->blocksize);
3502 encoder->private_->local_lpc_compute_autocorrelation(encoder->private_->windowed_signal, frame_header->blocksize, max_lpc_order+1, autoc);
3505 FLAC__lpc_compute_lp_coefficients(autoc, &max_lpc_order, encoder->private_->lp_coeff, lpc_error);
3556 encoder->private_->abs_residual_partition_sums,
3557 encoder->private_->raw_bits_per_partition,
3558 encoder->private_->lp_coeff[lpc_order-1],
3665 fprintf(stderr, "EST: bad, frame#%u sub#%%d type=%8s est=%u, actual=%u, delta=%d\n", encoder->private_->current_frame_number, FLAC__SubframeTypeString[subframe->type], estimate, actual, (int)actual-(int)estimate);
3726 encoder->private_,
3795 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit(signal+order, residual_samples, qlp_coeff, order, quantization, residual);
3797 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients(signal+order, residual_samples, qlp_coeff, order, quantization, residual);
3799 encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_64bit(signal+order, residual_samples, qlp_coeff, order, quantization, residual);
3809 encoder->private_,
3868 FLAC__StreamEncoderPrivate *private_,
3892 private_->local_precompute_partition_info_sums(residual, abs_residual_partition_sums, residual_samples, predictor_order, min_partition_order, max_partition_order, bps);
3916 &private_->partitioned_rice_contents_extra[!best_parameters_index],
3945 memcpy(prc->parameters, private_->partitioned_rice_contents_extra[best_parameters_index].parameters, sizeof(unsigned)*(1<<(best_partition_order)));
3947 memcpy(prc->raw_bits, private_->partitioned_rice_contents_extra[best_parameters_index].raw_bits, sizeof(unsigned)*(1<<(best_partition_order)));
4372 const size_t encoded_bytes = encoder->private_->verify.output.bytes;
4375 if(encoder->private_->verify.needs_magic_hack) {
4379 encoder->private_->verify.needs_magic_hack = false;
4392 memcpy(buffer, encoder->private_->verify.output.data, *bytes);
4393 encoder->private_->verify.output.data += *bytes;
4394 encoder->private_->verify.output.bytes -= *bytes;
4411 if(0 != memcmp(buffer[channel], encoder->private_->verify.input_fifo.data[channel], bytes_per_block)) {
4416 if(buffer[channel][i] != encoder->private_->verify.input_fifo.data[channel][i]) {
4418 expect = (FLAC__int32)encoder->private_->verify.input_fifo.data[channel][i];
4425 encoder->private_->verify.error_stats.absolute_sample = frame->header.number.sample_number + sample;
4426 encoder->private_->verify.error_stats.frame_number = (unsigned)(frame->header.number.sample_number / blocksize);
4427 encoder->private_->verify.error_stats.channel = channel;
4428 encoder->private_->verify.error_stats.sample = sample;
4429 encoder->private_->verify.error_stats.expected = expect;
4430 encoder->private_->verify.error_stats.got = got;
4436 encoder->private_->verify.input_fifo.tail -= blocksize;
4437 FLAC__ASSERT(encoder->private_->verify.input_fifo.tail <= OVERREAD_);
4439 memmove(&encoder->private_->verify.input_fifo.data[channel][0], &encoder->private_->verify.input_fifo.data[channel][blocksize], encoder->private_->verify.input_fifo.tail * sizeof(encoder->private_->verify.input_fifo.data[0][0]));
4459 *bytes = fread(buffer, 1, *bytes, encoder->private_->file);
4461 if (feof(encoder->private_->file))
4463 else if (ferror(encoder->private_->file))
4473 if(fseeko(encoder->private_->file, (FLAC__off_t)absolute_byte_offset, SEEK_SET) < 0)
4485 offset = ftello(encoder->private_->file);
4512 if(local__fwrite(buffer, sizeof(FLAC__byte), bytes, encoder->private_->file) == bytes) {
4513 FLAC__bool call_it = 0 != encoder->private_->progress_callback && (
4521 encoder->private_->is_ogg? true :
4531 encoder->private_->progress_callback(encoder, encoder->private_->bytes_written+bytes, encoder->private_->samples_written+samples, encoder->private_->frames_written+(samples?1:0), encoder->private_->total_frames_estimate, encoder->private_->client_data);