Skip to content
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

Commit ed8a144

Browse files
committed
Support for requester-suggested mixing position
1 parent 817c2a1 commit ed8a144

File tree

2 files changed

+4
-13
lines changed

2 files changed

+4
-13
lines changed

mixing/channeldata.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ type Data struct {
1010
Data MixBuffer
1111
Pan panning.Position
1212
Volume volume.Volume
13+
Pos int
1314
SamplesLen int
1415
Flush func()
1516
}

mixing/mixer.go

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,14 @@ func GetDefaultMixerVolume(numMixedChannels int) volume.Volume {
2424
func (m *Mixer) Flatten(panmixer PanMixer, samplesLen int, row []ChannelData, mixerVolume volume.Volume) []byte {
2525
data := m.NewMixBuffer(samplesLen)
2626
for _, rdata := range row {
27-
pos := 0
2827
for _, cdata := range rdata {
2928
if cdata.Flush != nil {
3029
cdata.Flush()
3130
}
3231
if len(cdata.Data) > 0 {
3332
volMtx := panmixer.GetMixingMatrix(cdata.Pan).Apply(cdata.Volume)
34-
data.Add(pos, &cdata.Data, volMtx)
33+
data.Add(cdata.Pos, &cdata.Data, volMtx)
3534
}
36-
pos += cdata.SamplesLen
3735
}
3836
}
3937
return data.ToRenderData(samplesLen, m.BitsPerSample, m.Channels, mixerVolume)
@@ -44,16 +42,14 @@ func (m *Mixer) Flatten(panmixer PanMixer, samplesLen int, row []ChannelData, mi
4442
func (m *Mixer) FlattenToInts(panmixer PanMixer, samplesLen int, row []ChannelData, mixerVolume volume.Volume) [][]int32 {
4543
data := m.NewMixBuffer(samplesLen)
4644
for _, rdata := range row {
47-
pos := 0
4845
for _, cdata := range rdata {
4946
if cdata.Flush != nil {
5047
cdata.Flush()
5148
}
5249
if len(cdata.Data) > 0 {
5350
volMtx := panmixer.GetMixingMatrix(cdata.Pan).Apply(cdata.Volume)
54-
data.Add(pos, &cdata.Data, volMtx)
51+
data.Add(cdata.Pos, &cdata.Data, volMtx)
5552
}
56-
pos += cdata.SamplesLen
5753
}
5854
}
5955
return data.ToIntStream(panmixer.NumChannels(), samplesLen, m.BitsPerSample, mixerVolume)
@@ -63,21 +59,15 @@ func (m *Mixer) FlattenToInts(panmixer PanMixer, samplesLen int, row []ChannelDa
6359
func (m *Mixer) FlattenTo(resultBuffers [][]byte, panmixer PanMixer, samplesLen int, row []ChannelData, mixerVolume volume.Volume) {
6460
data := m.NewMixBuffer(samplesLen)
6561
for _, rdata := range row {
66-
pos := 0
67-
maxLen := 0
6862
for _, cdata := range rdata {
6963
if cdata.Flush != nil {
7064
cdata.Flush()
7165
}
72-
if maxLen < cdata.SamplesLen {
73-
maxLen = cdata.SamplesLen
74-
}
7566
if len(cdata.Data) > 0 {
7667
volMtx := panmixer.GetMixingMatrix(cdata.Pan).Apply(cdata.Volume)
77-
data.Add(pos, &cdata.Data, volMtx)
68+
data.Add(cdata.Pos, &cdata.Data, volMtx)
7869
}
7970
}
80-
pos += maxLen
8171
}
8272
data.ToRenderDataWithBufs(resultBuffers, samplesLen, m.BitsPerSample, mixerVolume)
8373
}

0 commit comments

Comments
 (0)