DecoderAPI: _replay_gain() returns void
Let the function decoder_replay_gain() update decoder_control::replay_gain_db instead of letting each decoder plugin take care for that.
This commit is contained in:
		| @@ -519,11 +519,10 @@ decoder_tag(G_GNUC_UNUSED struct decoder *decoder, struct input_stream *is, | ||||
| 	return cmd; | ||||
| } | ||||
|  | ||||
| float | ||||
| void | ||||
| decoder_replay_gain(struct decoder *decoder, | ||||
| 		    const struct replay_gain_info *replay_gain_info) | ||||
| { | ||||
| 	float return_db = 0; | ||||
| 	assert(decoder != NULL); | ||||
|  | ||||
| 	if (replay_gain_info != NULL) { | ||||
| @@ -532,7 +531,7 @@ decoder_replay_gain(struct decoder *decoder, | ||||
| 			serial = 1; | ||||
|  | ||||
| 		if (REPLAY_GAIN_OFF != replay_gain_mode) { | ||||
| 			return_db = 20.0 * log10f( | ||||
| 			decoder->dc->replay_gain_db = 20.0 * log10f( | ||||
| 				replay_gain_tuple_scale( | ||||
| 					&replay_gain_info->tuples[replay_gain_get_real_mode()], | ||||
| 					replay_gain_preamp, replay_gain_missing_preamp, | ||||
| @@ -551,19 +550,16 @@ decoder_replay_gain(struct decoder *decoder, | ||||
| 		} | ||||
| 	} else | ||||
| 		decoder->replay_gain_serial = 0; | ||||
|  | ||||
| 	return return_db; | ||||
| } | ||||
|  | ||||
| void | ||||
| decoder_mixramp(struct decoder *decoder, float replay_gain_db, | ||||
| decoder_mixramp(struct decoder *decoder, | ||||
| 		char *mixramp_start, char *mixramp_end) | ||||
| { | ||||
| 	assert(decoder != NULL); | ||||
| 	struct decoder_control *dc = decoder->dc; | ||||
| 	assert(dc != NULL); | ||||
|  | ||||
| 	dc->replay_gain_db = replay_gain_db; | ||||
| 	dc_mixramp_start(dc, mixramp_start); | ||||
| 	dc_mixramp_end(dc, mixramp_end); | ||||
| } | ||||
|   | ||||
| @@ -109,7 +109,6 @@ void flac_metadata_common_cb(const FLAC__StreamMetadata * block, | ||||
| 	struct replay_gain_info rgi; | ||||
| 	char *mixramp_start; | ||||
| 	char *mixramp_end; | ||||
| 	float replay_gain_db = 0; | ||||
|  | ||||
| 	switch (block->type) { | ||||
| 	case FLAC__METADATA_TYPE_STREAMINFO: | ||||
| @@ -118,10 +117,10 @@ void flac_metadata_common_cb(const FLAC__StreamMetadata * block, | ||||
|  | ||||
| 	case FLAC__METADATA_TYPE_VORBIS_COMMENT: | ||||
| 		if (flac_parse_replay_gain(&rgi, block)) | ||||
| 			replay_gain_db = decoder_replay_gain(data->decoder, &rgi); | ||||
| 			decoder_replay_gain(data->decoder, &rgi); | ||||
|  | ||||
| 		if (flac_parse_mixramp(&mixramp_start, &mixramp_end, block)) | ||||
| 			decoder_mixramp(data->decoder, replay_gain_db, | ||||
| 			decoder_mixramp(data->decoder, | ||||
| 					mixramp_start, mixramp_end); | ||||
|  | ||||
| 		if (data->tag != nullptr) | ||||
|   | ||||
| @@ -359,15 +359,14 @@ static void mp3_parse_id3(struct mp3_data *data, size_t tagsize, | ||||
| 		struct replay_gain_info rgi; | ||||
| 		char *mixramp_start; | ||||
| 		char *mixramp_end; | ||||
| 		float replay_gain_db = 0; | ||||
|  | ||||
| 		if (parse_id3_replay_gain_info(&rgi, id3_tag)) { | ||||
| 			replay_gain_db = decoder_replay_gain(data->decoder, &rgi); | ||||
| 			decoder_replay_gain(data->decoder, &rgi); | ||||
| 			data->found_replay_gain = true; | ||||
| 		} | ||||
|  | ||||
| 		if (parse_id3_mixramp(&mixramp_start, &mixramp_end, id3_tag)) | ||||
| 			decoder_mixramp(data->decoder, replay_gain_db, | ||||
| 			decoder_mixramp(data->decoder, | ||||
| 					mixramp_start, mixramp_end); | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -152,9 +152,8 @@ decoder_tag(struct decoder *decoder, struct input_stream *is, | ||||
|  * @param decoder the decoder object | ||||
|  * @param rgi the replay_gain_info object; may be NULL to invalidate | ||||
|  * the previous replay gain values | ||||
|  * @return the replay gain adjustment used | ||||
|  */ | ||||
| float | ||||
| void | ||||
| decoder_replay_gain(struct decoder *decoder, | ||||
| 		    const struct replay_gain_info *replay_gain_info); | ||||
|  | ||||
| @@ -162,12 +161,11 @@ decoder_replay_gain(struct decoder *decoder, | ||||
|  * Store MixRamp tags. | ||||
|  * | ||||
|  * @param decoder the decoder object | ||||
|  * @param replay_gain_db the ReplayGain adjustment used for this song | ||||
|  * @param mixramp_start the mixramp_start tag; may be NULL to invalidate | ||||
|  * @param mixramp_end the mixramp_end tag; may be NULL to invalidate | ||||
|  */ | ||||
| void | ||||
| decoder_mixramp(struct decoder *decoder, float replay_gain_db, | ||||
| decoder_mixramp(struct decoder *decoder, | ||||
| 		char *mixramp_start, char *mixramp_end); | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -113,7 +113,7 @@ decoder_tag(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 	return DECODE_COMMAND_NONE; | ||||
| } | ||||
|  | ||||
| float | ||||
| void | ||||
| decoder_replay_gain(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 		    const struct replay_gain_info *replay_gain_info) | ||||
| { | ||||
| @@ -127,13 +127,10 @@ decoder_replay_gain(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 	if (replay_gain_tuple_defined(tuple)) | ||||
| 		g_printerr("replay_gain[track]: gain=%f peak=%f\n", | ||||
| 			   tuple->gain, tuple->peak); | ||||
|  | ||||
| 	return 0.0; | ||||
| } | ||||
|  | ||||
| void | ||||
| decoder_mixramp(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 		G_GNUC_UNUSED float replay_gain_db, | ||||
| 		char *mixramp_start, char *mixramp_end) | ||||
| { | ||||
| 	g_free(mixramp_start); | ||||
|   | ||||
| @@ -118,16 +118,14 @@ decoder_tag(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 	return DECODE_COMMAND_NONE; | ||||
| } | ||||
|  | ||||
| float | ||||
| void | ||||
| decoder_replay_gain(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 		    G_GNUC_UNUSED const struct replay_gain_info *replay_gain_info) | ||||
| { | ||||
| 	return 0.0; | ||||
| } | ||||
|  | ||||
| void | ||||
| decoder_mixramp(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 		G_GNUC_UNUSED float replay_gain_db, | ||||
| 		char *mixramp_start, char *mixramp_end) | ||||
| { | ||||
| 	g_free(mixramp_start); | ||||
|   | ||||
| @@ -139,7 +139,7 @@ decoder_tag(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 	return DECODE_COMMAND_NONE; | ||||
| } | ||||
|  | ||||
| float | ||||
| void | ||||
| decoder_replay_gain(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 		    const struct replay_gain_info *replay_gain_info) | ||||
| { | ||||
| @@ -153,13 +153,10 @@ decoder_replay_gain(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 	if (replay_gain_tuple_defined(tuple)) | ||||
| 		g_printerr("replay_gain[track]: gain=%f peak=%f\n", | ||||
| 			   tuple->gain, tuple->peak); | ||||
|  | ||||
| 	return 0.0; | ||||
| } | ||||
|  | ||||
| void | ||||
| decoder_mixramp(G_GNUC_UNUSED struct decoder *decoder, | ||||
| 		G_GNUC_UNUSED float replay_gain_db, | ||||
| 		char *mixramp_start, char *mixramp_end) | ||||
| { | ||||
| 	g_free(mixramp_start); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann