fix ip camera bug
This commit is contained in:
		| @@ -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 { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 deepch
					deepch