fix ip camera bug
This commit is contained in:
parent
def88cb695
commit
8958197548
@ -9,7 +9,6 @@ import (
|
|||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
//"log"
|
|
||||||
"net"
|
"net"
|
||||||
"net/textproto"
|
"net/textproto"
|
||||||
"net/url"
|
"net/url"
|
||||||
@ -147,7 +146,12 @@ func (self *Client) probe() (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *Client) prepare(stage int) (err error) {
|
func (self *Client) prepare(stage int) (err error) {
|
||||||
|
var waitIdle int
|
||||||
for self.stage < stage {
|
for self.stage < stage {
|
||||||
|
waitIdle++
|
||||||
|
if waitIdle > 20 {
|
||||||
|
return fmt.Errorf("codec not ready")
|
||||||
|
}
|
||||||
switch self.stage {
|
switch self.stage {
|
||||||
case 0:
|
case 0:
|
||||||
if err = self.Options(); err != nil {
|
if err = self.Options(); err != nil {
|
||||||
@ -695,7 +699,9 @@ func (self *Client) Describe() (streams []sdp.Media, err error) {
|
|||||||
self.streams = []*Stream{}
|
self.streams = []*Stream{}
|
||||||
for _, media := range medias {
|
for _, media := range medias {
|
||||||
stream := &Stream{Sdp: media, client: self}
|
stream := &Stream{Sdp: media, client: self}
|
||||||
stream.makeCodecData()
|
if err = stream.makeCodecData(); err != nil && DebugRtsp {
|
||||||
|
fmt.Println("rtsp: makeCodecData error", err)
|
||||||
|
}
|
||||||
self.streams = append(self.streams, stream)
|
self.streams = append(self.streams, stream)
|
||||||
streams = append(streams, media)
|
streams = append(streams, media)
|
||||||
}
|
}
|
||||||
@ -767,7 +773,7 @@ func (self *Stream) timeScale() int {
|
|||||||
|
|
||||||
func (self *Stream) makeCodecData() (err error) {
|
func (self *Stream) makeCodecData() (err error) {
|
||||||
media := self.Sdp
|
media := self.Sdp
|
||||||
if media.PayloadType >= 96 && media.PayloadType <= 127 {
|
if (media.PayloadType >= 96 && media.PayloadType <= 127) || media.Type == av.H264 || media.Type == av.AAC {
|
||||||
switch media.Type {
|
switch media.Type {
|
||||||
case av.H264:
|
case av.H264:
|
||||||
for _, nalu := range media.SpropParameterSets {
|
for _, nalu := range media.SpropParameterSets {
|
||||||
|
Loading…
Reference in New Issue
Block a user