Skip to content

Commit 7b1a37c

Browse files
committed
fix StreamBase record only audio/video
1 parent de6d6f2 commit 7b1a37c

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

library/src/main/java/com/pedro/library/base/StreamBase.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import com.pedro.encoder.audio.AudioEncoder
3737
import com.pedro.encoder.audio.GetAudioData
3838
import com.pedro.encoder.input.audio.GetMicrophoneData
3939
import com.pedro.encoder.input.sources.audio.AudioSource
40+
import com.pedro.encoder.input.sources.audio.NoAudioSource
4041
import com.pedro.encoder.input.sources.video.NoVideoSource
4142
import com.pedro.encoder.input.sources.video.VideoSource
4243
import com.pedro.encoder.utils.CodecUtil
@@ -569,7 +570,8 @@ abstract class StreamBase(
569570
}
570571

571572
override fun onAudioFormat(mediaFormat: MediaFormat) {
572-
recordController.setAudioFormat(mediaFormat)
573+
val isOnlyAudio = videoSource is NoVideoSource
574+
recordController.setAudioFormat(mediaFormat, isOnlyAudio)
573575
}
574576
}
575577

@@ -585,7 +587,10 @@ abstract class StreamBase(
585587
}
586588

587589
override fun onVideoFormat(mediaFormat: MediaFormat) {
588-
if (!differentRecordResolution) recordController.setVideoFormat(mediaFormat)
590+
if (!differentRecordResolution) {
591+
val isOnlyVideo = audioSource is NoAudioSource
592+
recordController.setVideoFormat(mediaFormat, isOnlyVideo)
593+
}
589594
}
590595
}
591596

@@ -598,7 +603,8 @@ abstract class StreamBase(
598603
}
599604

600605
override fun onVideoFormat(mediaFormat: MediaFormat) {
601-
recordController.setVideoFormat(mediaFormat)
606+
val isOnlyVideo = audioSource is NoAudioSource
607+
recordController.setVideoFormat(mediaFormat, isOnlyVideo)
602608
}
603609
}
604610

library/src/main/java/com/pedro/library/util/AndroidMuxerRecordController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ private void init() {
155155
}
156156

157157
private void write(int track, ByteBuffer byteBuffer, MediaCodec.BufferInfo info) {
158+
if (track == -1) return;
158159
try {
159160
mediaMuxer.writeSampleData(track, byteBuffer, info);
160161
if (bitrateManager != null) bitrateManager.calculateBitrate(info.size * 8L, ExtensionsKt.getSuspendContext());

library/src/main/java/com/pedro/library/util/AndroidMuxerWebmRecordController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ private void init() {
136136
}
137137

138138
private void write(int track, ByteBuffer byteBuffer, MediaCodec.BufferInfo info) {
139+
if (track == -1) return;
139140
try {
140141
mediaMuxer.writeSampleData(track, byteBuffer, info);
141142
if (bitrateManager != null) bitrateManager.calculateBitrate(info.size * 8L, ExtensionsKt.getSuspendContext());

0 commit comments

Comments
 (0)