Merge remote branch 'origin/v0.15.x'
This commit is contained in:
		
							
								
								
									
										2
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								NEWS
									
									
									
									
									
								
							| @@ -79,6 +79,8 @@ ver 0.15.6 (2009/??/??) | |||||||
|   - zzip: require libzzip 0.13 |   - zzip: require libzzip 0.13 | ||||||
| * decoders: | * decoders: | ||||||
|   - ffmpeg: convert metadata |   - ffmpeg: convert metadata | ||||||
|  |   - oggflac: rewind stream after FLAC detection | ||||||
|  |   - flac: fixed CUE seeking range check | ||||||
| * output_thread: check again if output is open on PAUSE | * output_thread: check again if output is open on PAUSE | ||||||
| * update: delete ignored symlinks from database | * update: delete ignored symlinks from database | ||||||
| * database: increased maximum line length to 32 kB | * database: increased maximum line length to 32 kB | ||||||
|   | |||||||
| @@ -632,21 +632,15 @@ flac_container_decode(struct decoder* decoder, | |||||||
| 			FLAC__uint64 seek_sample = t_start + | 			FLAC__uint64 seek_sample = t_start + | ||||||
| 				(decoder_seek_where(decoder) * data.audio_format.sample_rate); | 				(decoder_seek_where(decoder) * data.audio_format.sample_rate); | ||||||
|  |  | ||||||
| 			//if (seek_sample >= t_start && seek_sample <= t_end && data.total_time > 30) | 			if (seek_sample >= t_start && seek_sample <= t_end && | ||||||
| 			if (seek_sample >= t_start && seek_sample <= t_end) | 			    flac_seek_absolute(flac_dec, (FLAC__uint64)seek_sample)) { | ||||||
| 			{ |  | ||||||
| 				if (flac_seek_absolute(flac_dec, (FLAC__uint64)seek_sample)) |  | ||||||
| 				{ |  | ||||||
| 				data.time = (float)(seek_sample - t_start) / | 				data.time = (float)(seek_sample - t_start) / | ||||||
| 					data.audio_format.sample_rate; | 					data.audio_format.sample_rate; | ||||||
| 				data.position = 0; | 				data.position = 0; | ||||||
|  |  | ||||||
| 				decoder_command_finished(decoder); | 				decoder_command_finished(decoder); | ||||||
| 				} | 			} else | ||||||
| 				else |  | ||||||
| 				decoder_seek_error(decoder); | 				decoder_seek_error(decoder); | ||||||
| 					//decoder_command_finished(decoder); |  | ||||||
| 			} |  | ||||||
| 		} | 		} | ||||||
| 		else if (flac_get_state(flac_dec) == flac_decoder_eof) | 		else if (flac_get_state(flac_dec) == flac_decoder_eof) | ||||||
| 			break; | 			break; | ||||||
|   | |||||||
| @@ -261,6 +261,10 @@ oggflac_tag_dup(const char *file) | |||||||
| 		return NULL; | 		return NULL; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/* rewind the stream, because ogg_stream_type_detect() has | ||||||
|  | 	   moved it */ | ||||||
|  | 	input_stream_seek(&input_stream, 0, SEEK_SET); | ||||||
|  |  | ||||||
| 	flac_data_init(&data, NULL, &input_stream); | 	flac_data_init(&data, NULL, &input_stream); | ||||||
|  |  | ||||||
| 	data.tag = tag_new(); | 	data.tag = tag_new(); | ||||||
| @@ -292,6 +296,10 @@ oggflac_decode(struct decoder * mpd_decoder, struct input_stream *input_stream) | |||||||
| 	if (ogg_stream_type_detect(input_stream) != FLAC) | 	if (ogg_stream_type_detect(input_stream) != FLAC) | ||||||
| 		return; | 		return; | ||||||
|  |  | ||||||
|  | 	/* rewind the stream, because ogg_stream_type_detect() has | ||||||
|  | 	   moved it */ | ||||||
|  | 	input_stream_seek(input_stream, 0, SEEK_SET); | ||||||
|  |  | ||||||
| 	flac_data_init(&data, mpd_decoder, input_stream); | 	flac_data_init(&data, mpd_decoder, input_stream); | ||||||
|  |  | ||||||
| 	if (!(decoder = full_decoder_init_and_read_metadata(&data, 0))) { | 	if (!(decoder = full_decoder_init_and_read_metadata(&data, 0))) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann