From f80f179e4c3c7a9c0221312bf15516cb6ade3214 Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Mon, 21 Aug 2023 07:31:21 +0300 Subject: [PATCH] Fix MP4 consumer with only audio --- pkg/core/codec.go | 12 ++++++++++++ pkg/mp4/consumer.go | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/pkg/core/codec.go b/pkg/core/codec.go index 4709abc1..90af2c65 100644 --- a/pkg/core/codec.go +++ b/pkg/core/codec.go @@ -52,6 +52,18 @@ func (c *Codec) IsRTP() bool { return c.PayloadType != PayloadTypeRAW } +func (c *Codec) IsVideo() bool { + return c.Kind() == KindVideo +} + +func (c *Codec) IsAudio() bool { + return c.Kind() == KindAudio +} + +func (c *Codec) Kind() string { + return GetKind(c.Name) +} + func (c *Codec) Clone() *Codec { clone := *c return &clone diff --git a/pkg/mp4/consumer.go b/pkg/mp4/consumer.go index b1392e29..89c73cf7 100644 --- a/pkg/mp4/consumer.go +++ b/pkg/mp4/consumer.go @@ -153,6 +153,10 @@ func (c *Consumer) AddTrack(media *core.Media, _ *core.Codec, track *core.Receiv } func (c *Consumer) WriteTo(wr io.Writer) (int64, error) { + if len(c.Senders) == 1 && c.Senders[0].Codec.IsAudio() { + c.start = true + } + init, err := c.muxer.GetInit() if err != nil { return 0, err