From 16f1704d48696321b7df1991624fe13005f51df1 Mon Sep 17 00:00:00 2001
From: q191201771 <191201771@qq.com>
Date: Tue, 26 Jul 2022 20:02:49 +0800
Subject: [PATCH] =?UTF-8?q?[patch]=20pr=E8=A1=A5=E5=85=85=EF=BC=8Crefactor?=
 =?UTF-8?q?=EF=BC=8CInit=E4=BF=9D=E6=8C=81=E5=8E=9F=E6=A0=B7=EF=BC=8C?=
 =?UTF-8?q?=E4=B8=8D=E8=A6=81=E4=BC=A0=E5=85=A5Feed=20#205?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pkg/remux/avpacket2rtmp.go | 73 ++++++++++++--------------------------
 1 file changed, 22 insertions(+), 51 deletions(-)

diff --git a/pkg/remux/avpacket2rtmp.go b/pkg/remux/avpacket2rtmp.go
index e3212c9..4480203 100644
--- a/pkg/remux/avpacket2rtmp.go
+++ b/pkg/remux/avpacket2rtmp.go
@@ -100,64 +100,35 @@ func (r *AvPacket2RtmpRemuxer) InitWithAvConfig(asc, vps, sps, pps []byte) {
 		return
 	}
 
-	if !AvPacket2RtmpRemuxerAddSpsPps2KeyFrameFlag {
-		if r.audioType != base.AvPacketPtUnknown {
-			bAsh, err = aac.MakeAudioDataSeqHeaderWithAsc(asc)
+	if r.audioType != base.AvPacketPtUnknown {
+		bAsh, err = aac.MakeAudioDataSeqHeaderWithAsc(asc)
+		if err != nil {
+			Log.Errorf("build aac seq header failed. err=%+v", err)
+			return
+		}
+	}
+	if r.videoType != base.AvPacketPtUnknown {
+		if r.videoType == base.AvPacketPtHevc {
+			bVsh, err = hevc.BuildSeqHeaderFromVpsSpsPps(vps, sps, pps)
 			if err != nil {
-				Log.Errorf("build aac seq header failed. err=%+v", err)
+				Log.Errorf("build hevc seq header failed. err=%+v", err)
 				return
 			}
-		}
-		if r.videoType != base.AvPacketPtUnknown {
-			if r.videoType == base.AvPacketPtHevc {
-				bVsh, err = hevc.BuildSeqHeaderFromVpsSpsPps(vps, sps, pps)
-				if err != nil {
-					Log.Errorf("build hevc seq header failed. err=%+v", err)
-					return
-				}
-			} else {
-				bVsh, err = avc.BuildSeqHeaderFromSpsPps(sps, pps)
-				if err != nil {
-					Log.Errorf("build avc seq header failed. err=%+v", err)
-					return
-				}
+		} else {
+			bVsh, err = avc.BuildSeqHeaderFromSpsPps(sps, pps)
+			if err != nil {
+				Log.Errorf("build avc seq header failed. err=%+v", err)
+				return
 			}
 		}
+	}
 
-		if r.audioType != base.AvPacketPtUnknown {
-			r.emitRtmpAvMsg(true, bAsh, 0)
-		}
-
-		if r.videoType != base.AvPacketPtUnknown {
-			r.emitRtmpAvMsg(false, bVsh, 0)
-		}
-	} else {
-		// 通过FeedAvPacket 传入 合并到关键帧
-		if r.audioType != base.AvPacketPtUnknown {
-			r.FeedAvPacket(base.AvPacket{
-				PayloadType: base.AvPacketPtAac,
-				Payload:     asc,
-			})
-		}
-		if r.videoType != base.AvPacketPtUnknown {
-			if r.videoType == base.AvPacketPtHevc {
-				payload, err := hevc.BuildVpsSpsPps2Annexb(vps, sps, pps)
-				if err != nil {
-					Log.Errorf("build hevc seq header failed. err=%+v", err)
-					return
-				}
-				r.FeedAvPacket(base.AvPacket{
-					PayloadType: base.AvPacketPtHevc,
-					Payload:     payload,
-				})
-			} else {
-				r.FeedAvPacket(base.AvPacket{
-					PayloadType: base.AvPacketPtAvc,
-					Payload:     avc.BuildSpsPps2Annexb(sps, pps),
-				})
-			}
-		}
+	if r.audioType != base.AvPacketPtUnknown {
+		r.emitRtmpAvMsg(true, bAsh, 0)
+	}
 
+	if r.videoType != base.AvPacketPtUnknown {
+		r.emitRtmpAvMsg(false, bVsh, 0)
 	}
 }