Pārlūkot izejas kodu

spdif glitch at track transition

philippe44 1 gadu atpakaļ
vecāks
revīzija
787a5d9a6e

+ 1 - 1
components/squeezelite/flac.c

@@ -141,8 +141,8 @@ static FLAC__StreamDecoderWriteStatus write_cb(const FLAC__StreamDecoder *decode
 	FLAC__int32 *rptr = (FLAC__int32 *)buffer[channels > 1 ? 1 : 0];
 	
 	if (decode.new_stream) {
+		LOG_INFO("setting track_start");        
 		LOCK_O;
-		LOG_INFO("setting track_start");
 		output.track_start = outputbuf->writep;
 		decode.new_stream = false;
 

+ 1 - 1
components/squeezelite/output_i2s.c

@@ -439,7 +439,7 @@ void output_init_i2s(log_level level, char *device, unsigned output_buf_size, ch
 		static DRAM_ATTR StaticTask_t xTaskBuffer __attribute__ ((aligned (4)));
 		static EXT_RAM_ATTR StackType_t xStack[OUTPUT_THREAD_STACK_SIZE] __attribute__ ((aligned (4)));
 		output_i2s_task = xTaskCreateStaticPinnedToCore( (TaskFunction_t) output_thread_i2s, "output_i2s", OUTPUT_THREAD_STACK_SIZE, 
-											  NULL, CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT + 1, xStack, &xTaskBuffer, 0 );
+											  NULL, CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT + 10, xStack, &xTaskBuffer, 0 );
 	}
 }
 

+ 1 - 1
components/squeezelite/slimproto.c

@@ -414,8 +414,8 @@ static void process_strm(u8_t *pkt, int len) {
 			output.fade_secs = strm->transition_period;
 			output.invert = (strm->flags & 0x03) == 0x03;
 			output.channels = (strm->flags & 0x0c) >> 2;
+			UNLOCK_O;            
 			LOG_DEBUG("set fade: %u, channels: %u, invert: %u", output.fade_mode, output.channels, output.invert);
-			UNLOCK_O;
 		}
 		break;
 	default: