mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	add some more debug
This commit is contained in:
		
							parent
							
								
									62ef0145c3
								
							
						
					
					
						commit
						df3394a694
					
				
					 2 changed files with 26 additions and 2 deletions
				
			
		| 
						 | 
					@ -585,8 +585,11 @@ static pa_stream* stream_new(pa_context *c, const char *name,
 | 
				
			||||||
	s->n_formats = 0;
 | 
						s->n_formats = 0;
 | 
				
			||||||
	if (formats) {
 | 
						if (formats) {
 | 
				
			||||||
		s->n_formats = n_formats;
 | 
							s->n_formats = n_formats;
 | 
				
			||||||
		for (i = 0; i < n_formats; i++)
 | 
							for (i = 0; i < n_formats; i++) {
 | 
				
			||||||
			s->req_formats[i] = pa_format_info_copy(formats[i]);
 | 
								s->req_formats[i] = pa_format_info_copy(formats[i]);
 | 
				
			||||||
 | 
								pw_log_debug("format %d: %s", i,
 | 
				
			||||||
 | 
										pa_format_info_snprint(str, sizeof(str), formats[i]));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	s->format = NULL;
 | 
						s->format = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -193,6 +193,7 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (unassigned & _MASK(FC)){
 | 
						if (unassigned & _MASK(FC)){
 | 
				
			||||||
		if ((dst_mask & STEREO) == STEREO){
 | 
							if ((dst_mask & STEREO) == STEREO){
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign FC to STEREO");
 | 
				
			||||||
			if(src_mask & STEREO) {
 | 
								if(src_mask & STEREO) {
 | 
				
			||||||
				matrix[FL][FC] += clev;
 | 
									matrix[FL][FC] += clev;
 | 
				
			||||||
				matrix[FR][FC] += clev;
 | 
									matrix[FR][FC] += clev;
 | 
				
			||||||
| 
						 | 
					@ -207,6 +208,7 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (unassigned & STEREO){
 | 
						if (unassigned & STEREO){
 | 
				
			||||||
		if (dst_mask & _MASK(FC)) {
 | 
							if (dst_mask & _MASK(FC)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign STEREO to FC");
 | 
				
			||||||
			matrix[FC][FL] += SQRT1_2;
 | 
								matrix[FC][FL] += SQRT1_2;
 | 
				
			||||||
			matrix[FC][FR] += SQRT1_2;
 | 
								matrix[FC][FR] += SQRT1_2;
 | 
				
			||||||
			if (src_mask & _MASK(FC))
 | 
								if (src_mask & _MASK(FC))
 | 
				
			||||||
| 
						 | 
					@ -218,12 +220,15 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (unassigned & _MASK(RC)) {
 | 
						if (unassigned & _MASK(RC)) {
 | 
				
			||||||
		if (dst_mask & _MASK(RL)){
 | 
							if (dst_mask & _MASK(RL)){
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign RC to RL+RR");
 | 
				
			||||||
			matrix[RL][RC] += SQRT1_2;
 | 
								matrix[RL][RC] += SQRT1_2;
 | 
				
			||||||
			matrix[RR][RC] += SQRT1_2;
 | 
								matrix[RR][RC] += SQRT1_2;
 | 
				
			||||||
		} else if (dst_mask & _MASK(SL)) {
 | 
							} else if (dst_mask & _MASK(SL)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign RC to SL+SR");
 | 
				
			||||||
			matrix[SL][RC] += SQRT1_2;
 | 
								matrix[SL][RC] += SQRT1_2;
 | 
				
			||||||
			matrix[SR][RC] += SQRT1_2;
 | 
								matrix[SR][RC] += SQRT1_2;
 | 
				
			||||||
		} else if(dst_mask & _MASK(FL)) {
 | 
							} else if(dst_mask & _MASK(FL)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign RC to FL+FR");
 | 
				
			||||||
			if (matrix_encoding == MATRIX_DOLBY ||
 | 
								if (matrix_encoding == MATRIX_DOLBY ||
 | 
				
			||||||
			    matrix_encoding == MATRIX_DPLII) {
 | 
								    matrix_encoding == MATRIX_DPLII) {
 | 
				
			||||||
				if (unassigned & (_MASK(RL)|_MASK(RR))) {
 | 
									if (unassigned & (_MASK(RL)|_MASK(RR))) {
 | 
				
			||||||
| 
						 | 
					@ -238,6 +243,7 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
				matrix[FR][RC] += slev * SQRT1_2;
 | 
									matrix[FR][RC] += slev * SQRT1_2;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		} else if (dst_mask & _MASK(FC)) {
 | 
							} else if (dst_mask & _MASK(FC)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign RC to FC");
 | 
				
			||||||
			matrix[FC][RC] += slev * SQRT1_2;
 | 
								matrix[FC][RC] += slev * SQRT1_2;
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			spa_log_warn(mix->log, "can't assign RC");
 | 
								spa_log_warn(mix->log, "can't assign RC");
 | 
				
			||||||
| 
						 | 
					@ -246,9 +252,11 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (unassigned & _MASK(RL)) {
 | 
						if (unassigned & _MASK(RL)) {
 | 
				
			||||||
		if (dst_mask & _MASK(RC)) {
 | 
							if (dst_mask & _MASK(RC)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign RL+RR to RC");
 | 
				
			||||||
			matrix[RC][RL] += SQRT1_2;
 | 
								matrix[RC][RL] += SQRT1_2;
 | 
				
			||||||
			matrix[RC][RR] += SQRT1_2;
 | 
								matrix[RC][RR] += SQRT1_2;
 | 
				
			||||||
		} else if (dst_mask & _MASK(SL)) {
 | 
							} else if (dst_mask & _MASK(SL)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign RL+RR to SL+SR");
 | 
				
			||||||
			if (src_mask & _MASK(SL)) {
 | 
								if (src_mask & _MASK(SL)) {
 | 
				
			||||||
				matrix[SL][RL] += SQRT1_2;
 | 
									matrix[SL][RL] += SQRT1_2;
 | 
				
			||||||
				matrix[SR][RR] += SQRT1_2;
 | 
									matrix[SR][RR] += SQRT1_2;
 | 
				
			||||||
| 
						 | 
					@ -257,6 +265,7 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
				matrix[SR][RR] += 1.0f;
 | 
									matrix[SR][RR] += 1.0f;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		} else if (dst_mask & _MASK(FL)) {
 | 
							} else if (dst_mask & _MASK(FL)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign RL+RR to FL+FR %f", slev);
 | 
				
			||||||
			if (matrix_encoding == MATRIX_DOLBY) {
 | 
								if (matrix_encoding == MATRIX_DOLBY) {
 | 
				
			||||||
				matrix[FL][RL] -= slev * SQRT1_2;
 | 
									matrix[FL][RL] -= slev * SQRT1_2;
 | 
				
			||||||
				matrix[FL][RR] -= slev * SQRT1_2;
 | 
									matrix[FL][RR] -= slev * SQRT1_2;
 | 
				
			||||||
| 
						 | 
					@ -272,6 +281,7 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
				matrix[FR][RR] += slev;
 | 
									matrix[FR][RR] += slev;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		} else if (dst_mask & _MASK(FC)) {
 | 
							} else if (dst_mask & _MASK(FC)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign RL+RR to FC");
 | 
				
			||||||
			matrix[FC][RL]+= slev * SQRT1_2;
 | 
								matrix[FC][RL]+= slev * SQRT1_2;
 | 
				
			||||||
			matrix[FC][RR]+= slev * SQRT1_2;
 | 
								matrix[FC][RR]+= slev * SQRT1_2;
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
| 
						 | 
					@ -281,6 +291,7 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (unassigned & _MASK(SL)) {
 | 
						if (unassigned & _MASK(SL)) {
 | 
				
			||||||
		if (dst_mask & _MASK(RL)) {
 | 
							if (dst_mask & _MASK(RL)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign SL+SR to RL+RR");
 | 
				
			||||||
			if (src_mask & _MASK(RL)) {
 | 
								if (src_mask & _MASK(RL)) {
 | 
				
			||||||
				matrix[RL][SL] += SQRT1_2;
 | 
									matrix[RL][SL] += SQRT1_2;
 | 
				
			||||||
				matrix[RR][SR] += SQRT1_2;
 | 
									matrix[RR][SR] += SQRT1_2;
 | 
				
			||||||
| 
						 | 
					@ -289,9 +300,11 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
				matrix[RR][SR] += 1.0f;
 | 
									matrix[RR][SR] += 1.0f;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		} else if (dst_mask & _MASK(RC)) {
 | 
							} else if (dst_mask & _MASK(RC)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign SL+SR to RC");
 | 
				
			||||||
			matrix[RC][SL]+= SQRT1_2;
 | 
								matrix[RC][SL]+= SQRT1_2;
 | 
				
			||||||
			matrix[RC][SR]+= SQRT1_2;
 | 
								matrix[RC][SR]+= SQRT1_2;
 | 
				
			||||||
		} else if (dst_mask & _MASK(FL)) {
 | 
							} else if (dst_mask & _MASK(FL)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign SL+SR to FL+FR");
 | 
				
			||||||
			if (matrix_encoding == MATRIX_DOLBY) {
 | 
								if (matrix_encoding == MATRIX_DOLBY) {
 | 
				
			||||||
				matrix[FL][SL] -= slev * SQRT1_2;
 | 
									matrix[FL][SL] -= slev * SQRT1_2;
 | 
				
			||||||
				matrix[FL][SR] -= slev * SQRT1_2;
 | 
									matrix[FL][SR] -= slev * SQRT1_2;
 | 
				
			||||||
| 
						 | 
					@ -307,6 +320,7 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
				matrix[FR][SR] += slev;
 | 
									matrix[FR][SR] += slev;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		} else if (dst_mask & _MASK(FC)) {
 | 
							} else if (dst_mask & _MASK(FC)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign SL+SR to FC");
 | 
				
			||||||
			matrix[FC][SL] += slev * SQRT1_2;
 | 
								matrix[FC][SL] += slev * SQRT1_2;
 | 
				
			||||||
			matrix[FC][SR] += slev * SQRT1_2;
 | 
								matrix[FC][SR] += slev * SQRT1_2;
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
| 
						 | 
					@ -319,6 +333,7 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
			matrix[FC][FLC]+= 1.0f;
 | 
								matrix[FC][FLC]+= 1.0f;
 | 
				
			||||||
			matrix[FC][FRC]+= 1.0f;
 | 
								matrix[FC][FRC]+= 1.0f;
 | 
				
			||||||
		} else if(dst_mask & _MASK(FC)) {
 | 
							} else if(dst_mask & _MASK(FC)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign FLC+FRC to FC");
 | 
				
			||||||
			matrix[FC][FLC]+= SQRT1_2;
 | 
								matrix[FC][FLC]+= SQRT1_2;
 | 
				
			||||||
			matrix[FC][FRC]+= SQRT1_2;
 | 
								matrix[FC][FRC]+= SQRT1_2;
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
| 
						 | 
					@ -328,8 +343,10 @@ static int make_matrix(struct channelmix *mix)
 | 
				
			||||||
	if (unassigned & _MASK(LFE) &&
 | 
						if (unassigned & _MASK(LFE) &&
 | 
				
			||||||
	    SPA_FLAG_IS_SET(mix->options, CHANNELMIX_OPTION_MIX_LFE)) {
 | 
						    SPA_FLAG_IS_SET(mix->options, CHANNELMIX_OPTION_MIX_LFE)) {
 | 
				
			||||||
		if (dst_mask & _MASK(FC)) {
 | 
							if (dst_mask & _MASK(FC)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign LFE to FC");
 | 
				
			||||||
			matrix[FC][LFE] += llev;
 | 
								matrix[FC][LFE] += llev;
 | 
				
			||||||
		} else if (dst_mask & _MASK(FL)) {
 | 
							} else if (dst_mask & _MASK(FL)) {
 | 
				
			||||||
 | 
								spa_log_debug(mix->log, "assign LFE to FL+FR");
 | 
				
			||||||
			matrix[FL][LFE] += llev * SQRT1_2;
 | 
								matrix[FL][LFE] += llev * SQRT1_2;
 | 
				
			||||||
			matrix[FR][LFE] += llev * SQRT1_2;
 | 
								matrix[FR][LFE] += llev * SQRT1_2;
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
| 
						 | 
					@ -364,9 +381,13 @@ static void impl_channelmix_set_volume(struct channelmix *mix, float volume, boo
 | 
				
			||||||
	uint32_t src_chan = mix->src_chan;
 | 
						uint32_t src_chan = mix->src_chan;
 | 
				
			||||||
	uint32_t dst_chan = mix->dst_chan;
 | 
						uint32_t dst_chan = mix->dst_chan;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spa_log_debug(mix->log, "volume:%f mute:%d n_volumes:%d", volume, mute, n_channel_volumes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/** apply global volume to channels */
 | 
						/** apply global volume to channels */
 | 
				
			||||||
	for (i = 0; i < n_channel_volumes; i++)
 | 
						for (i = 0; i < n_channel_volumes; i++) {
 | 
				
			||||||
		volumes[i] = channel_volumes[i] * vol;
 | 
							volumes[i] = channel_volumes[i] * vol;
 | 
				
			||||||
 | 
							spa_log_debug(mix->log, "%d: %f * %f = %f", i, channel_volumes[i], vol, volumes[i]);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/** apply volumes per channel */
 | 
						/** apply volumes per channel */
 | 
				
			||||||
	if (n_channel_volumes == src_chan) {
 | 
						if (n_channel_volumes == src_chan) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue