(session *rtmp.ServerSession)
| 17 | ) |
| 18 | |
| 19 | func (group *Group) AddRtmpSubSession(session *rtmp.ServerSession) { |
| 20 | Log.Debugf("[%s] [%s] add SubSession into group.", group.UniqueKey, session.UniqueKey()) |
| 21 | group.mutex.Lock() |
| 22 | defer group.mutex.Unlock() |
| 23 | group.rtmpSubSessionSet[session] = struct{}{} |
| 24 | // 加入时,如果上行还没有推过视频(比如还没推流,或者是单音频流),就不需要等待关键帧了 |
| 25 | // 也即我们假定上行肯定是以关键帧为开始进行视频发送,假设不是,那么我们按上行的流正常发,而不过滤掉关键帧前面的不包含关键帧的非完整GOP |
| 26 | // TODO(chef): |
| 27 | // 1. 需要仔细考虑单音频无视频的流的情况 |
| 28 | // 2. 这里不修改标志,让这个session继续等关键帧也可以 |
| 29 | if group.stat.VideoCodec == "" { |
| 30 | session.ShouldWaitVideoKeyFrame = false |
| 31 | } |
| 32 | |
| 33 | group.addSub() |
| 34 | } |
| 35 | |
| 36 | func (group *Group) AddHttpflvSubSession(session *httpflv.SubSession) { |
| 37 | Log.Debugf("[%s] [%s] add httpflv SubSession into group.", group.UniqueKey, session.UniqueKey()) |
no test coverage detected