⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stream_encoder.c

📁 wince下著名的视频播放器源码
💻 C
📖 第 1 页 / 共 5 页
字号:
}FLAC_API void FLAC__stream_encoder_finish(FLAC__StreamEncoder *encoder){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state == FLAC__STREAM_ENCODER_UNINITIALIZED)		return;	if(encoder->protected_->state == FLAC__STREAM_ENCODER_OK && !encoder->private_->is_being_deleted) {		if(encoder->private_->current_sample_number != 0) {			encoder->protected_->blocksize = encoder->private_->current_sample_number;			process_frame_(encoder, true); /* true => is last frame */		}	}	FLAC__MD5Final(encoder->private_->metadata.data.stream_info.md5sum, &encoder->private_->md5context);	if(encoder->protected_->state == FLAC__STREAM_ENCODER_OK && !encoder->private_->is_being_deleted) {		encoder->private_->metadata_callback(encoder, &encoder->private_->metadata, encoder->private_->client_data);	}	if(encoder->protected_->verify && 0 != encoder->private_->verify.decoder)		FLAC__stream_decoder_finish(encoder->private_->verify.decoder);	free_(encoder);	set_defaults_(encoder);	encoder->protected_->state = FLAC__STREAM_ENCODER_UNINITIALIZED;}FLAC_API FLAC__bool FLAC__stream_encoder_set_verify(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;#ifndef FLAC__MANDATORY_VERIFY_WHILE_ENCODING	encoder->protected_->verify = value;#endif	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_streamable_subset(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->streamable_subset = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_do_mid_side_stereo(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->do_mid_side_stereo = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_loose_mid_side_stereo(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->loose_mid_side_stereo = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_channels(FLAC__StreamEncoder *encoder, unsigned value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->channels = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_bits_per_sample(FLAC__StreamEncoder *encoder, unsigned value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->bits_per_sample = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_sample_rate(FLAC__StreamEncoder *encoder, unsigned value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->sample_rate = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_blocksize(FLAC__StreamEncoder *encoder, unsigned value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->blocksize = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_max_lpc_order(FLAC__StreamEncoder *encoder, unsigned value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->max_lpc_order = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_qlp_coeff_precision(FLAC__StreamEncoder *encoder, unsigned value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->qlp_coeff_precision = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_do_qlp_coeff_prec_search(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->do_qlp_coeff_prec_search = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_do_escape_coding(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;#if 0	/*@@@ deprecated: */	encoder->protected_->do_escape_coding = value;#else	(void)value;#endif	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_do_exhaustive_model_search(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->do_exhaustive_model_search = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_min_residual_partition_order(FLAC__StreamEncoder *encoder, unsigned value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->min_residual_partition_order = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_max_residual_partition_order(FLAC__StreamEncoder *encoder, unsigned value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->max_residual_partition_order = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_rice_parameter_search_dist(FLAC__StreamEncoder *encoder, unsigned value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;#if 0	/*@@@ deprecated: */	encoder->protected_->rice_parameter_search_dist = value;#else	(void)value;#endif	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_total_samples_estimate(FLAC__StreamEncoder *encoder, FLAC__uint64 value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->total_samples_estimate = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_metadata(FLAC__StreamEncoder *encoder, FLAC__StreamMetadata **metadata, unsigned num_blocks){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->protected_->metadata = metadata;	encoder->protected_->num_metadata_blocks = num_blocks;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_write_callback(FLAC__StreamEncoder *encoder, FLAC__StreamEncoderWriteCallback value){	FLAC__ASSERT(0 != encoder);	FLAC__ASSERT(0 != value);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->private_->write_callback = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_metadata_callback(FLAC__StreamEncoder *encoder, FLAC__StreamEncoderMetadataCallback value){	FLAC__ASSERT(0 != encoder);	FLAC__ASSERT(0 != value);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->private_->metadata_callback = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_set_client_data(FLAC__StreamEncoder *encoder, void *value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->private_->client_data = value;	return true;}/* * These three functions are not static, but not publically exposed in * include/FLAC/ either.  They are used by the test suite. */FLAC_API FLAC__bool FLAC__stream_encoder_disable_constant_subframes(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->private_->disable_constant_subframes = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_disable_fixed_subframes(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->private_->disable_fixed_subframes = value;	return true;}FLAC_API FLAC__bool FLAC__stream_encoder_disable_verbatim_subframes(FLAC__StreamEncoder *encoder, FLAC__bool value){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->state != FLAC__STREAM_ENCODER_UNINITIALIZED)		return false;	encoder->private_->disable_verbatim_subframes = value;	return true;}FLAC_API FLAC__StreamEncoderState FLAC__stream_encoder_get_state(const FLAC__StreamEncoder *encoder){	FLAC__ASSERT(0 != encoder);	return encoder->protected_->state;}FLAC_API FLAC__StreamDecoderState FLAC__stream_encoder_get_verify_decoder_state(const FLAC__StreamEncoder *encoder){	FLAC__ASSERT(0 != encoder);	if(encoder->protected_->verify)		return FLAC__stream_decoder_get_state(encoder->private_->verify.decoder);	else		return FLAC__STREAM_DECODER_UNINITIALIZED;}FLAC_API const char *FLAC__stream_encoder_get_resolved_state_string(const FLAC__StreamEncoder *encoder){	if(encoder->protected_->state != FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR)		return FLAC__StreamEncoderStateString[encoder->protected_->state];	else		return FLAC__stream_decoder_get_resolved_state_string(encoder->private_->verify.decoder);}FLAC_API void FLAC__stream_encoder_get_verify_decoder_error_stats(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_sample, unsigned *frame_number, unsigned *channel, unsigned *sample, FLAC__int32 *expected, FLAC__int32 *got){	FLAC__ASSERT(0 != encoder);	if(0 != absolute_sample)		*absolute_sample = encoder->private_->verify.error_stats.absolute_sample;	if(0 != frame_number)		*frame_number = encoder->private_->verify.error_stats.frame_number;	if(0 != channel)		*channel = encoder->private_->verify.error_stats.channel;	if(0 != sample)		*sample = encoder->private_->verify.error_stats.sample;	if(0 != expected)		*expected = encoder->private_->verify.error_stats.expected;	if(0 != got)		*got = encoder->private_->verify.error_stats.got;}FLAC_API FLAC__bool FLAC__stream_encoder_get_verify(const FLAC__StreamEncoder *encoder){	FLAC__ASSERT(0 != encoder);	return encoder->protected_->verify;}FLAC_API FLAC__bool FLAC__stream_encoder_get_streamable_subset(const FLAC__StreamEncoder *encoder){	FLAC__ASSERT(0 != encoder);	return encoder->protected_->streamable_subset;}FLAC_API FLAC__bool FLAC__stream_encoder_get_do_mid_side_stereo(const FLAC__StreamEncoder *encoder){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -