gwuhaolin / livego

live video streaming server in golang
MIT License
9.66k stars 2k forks source link

livego/protocol/rtmp/cache/cache.go文件能不能帮我说明一下 #20

Open fanr520 opened 6 years ago

fanr520 commented 6 years ago

最近在看你的源代码,写的很好,就是注释太少,好多地方看不懂,能不能帮我解答一下问题: 文件:livego/protocol/rtmp/cache/cache.go 行28:func (cache *Cache) Write(p av.Packet) { 行48:if vh.IsSeq() {//这个是不是指关键帧的时候执行cache.videoSeq.Write(&p) 行58:cache.gop.Write(&p) 这个什么情况下执行 gop 对象是指什么普通帧吗

CarsonSlovoka commented 2 years ago

最近在看你的源代码,写的很好,就是注释太少,好多地方看不懂,能不能帮我解答一下问题: 文件:livego/protocol/rtmp/cache/cache.go 行28:func (cache *Cache) Write(p av.Packet) { 行48:if vh.IsSeq() {//这个是不是指关键帧的时候执行cache.videoSeq.Write(&p) 行58:cache.gop.Write(&p) 这个什么情况下执行 gop 对象是指什么普通帧吗

不要這樣子打,首先程式碼都有版本,您指的行28,在不同的版本可能都會不同,也有可能內容被改過。

我建議您只接去找代碼出來首頁按下T可以搜尋文件,很快就能找到該檔案,接著記得用sha1 ID指出該時候的版本(千萬不要偷懶用master等等的分支名稱(隨時都在變)),例如

3032dcec1ae889e3ac07546fa6e75c9993a0cb06

https://github.com/gwuhaolin/livego/blob/3032dcec1ae889e3ac07546fa6e75c9993a0cb06/protocol/rtmp/cache/cache.go#L24-L55

以上網址直接貼到github issues上他就會直接幫您帶到該程式碼。

https://github.com/gwuhaolin/livego/blob/3032dcec1ae889e3ac07546fa6e75c9993a0cb06/protocol/rtmp/cache/cache.go#L24

https://github.com/gwuhaolin/livego/blob/3032dcec1ae889e3ac07546fa6e75c9993a0cb06/protocol/rtmp/cache/cache.go#L44-L46

https://github.com/gwuhaolin/livego/blob/3032dcec1ae889e3ac07546fa6e75c9993a0cb06/protocol/rtmp/cache/cache.go#L54

由於上面都只有一兩行,可能很難看出什麼,我下面幫你貼出一小段,可能是你想問的

https://github.com/gwuhaolin/livego/blob/3032dcec1ae889e3ac07546fa6e75c9993a0cb06/protocol/rtmp/cache/cache.go#L24-L55


@fanr520 總而言之我這帖只是讓您的意見可能讓比較多人更有意願來回答, 也祝您能找到解答~