Fix mpegts reader for tapo client
This commit is contained in:
@@ -295,18 +295,3 @@ func (r *Reader) left() byte {
|
|||||||
func (r *Reader) setSize(size byte) {
|
func (r *Reader) setSize(size byte) {
|
||||||
r.end = r.pos + size
|
r.end = r.pos + size
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated:
|
|
||||||
func (r *Reader) SetBuffer(b []byte) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated:
|
|
||||||
func (r *Reader) GetPacket() *rtp.Packet {
|
|
||||||
panic("")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated:
|
|
||||||
func (r *Reader) AppendBuffer(sniff []byte) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
+14
-9
@@ -8,14 +8,16 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/AlexxIT/go2rtc/pkg/core"
|
"io"
|
||||||
"github.com/AlexxIT/go2rtc/pkg/mpegts"
|
|
||||||
"github.com/AlexxIT/go2rtc/pkg/tcp"
|
|
||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/AlexxIT/go2rtc/pkg/core"
|
||||||
|
"github.com/AlexxIT/go2rtc/pkg/mpegts"
|
||||||
|
"github.com/AlexxIT/go2rtc/pkg/tcp"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Client struct {
|
type Client struct {
|
||||||
@@ -143,11 +145,11 @@ func (c *Client) SetupStream() (err error) {
|
|||||||
|
|
||||||
// Handle - first run will be in probe state
|
// Handle - first run will be in probe state
|
||||||
func (c *Client) Handle() error {
|
func (c *Client) Handle() error {
|
||||||
mpReader := multipart.NewReader(c.conn1, "--device-stream-boundary--")
|
multipartRd := multipart.NewReader(c.conn1, "--device-stream-boundary--")
|
||||||
tsReader := mpegts.NewReader()
|
mpegtsRd := mpegts.NewReader()
|
||||||
|
|
||||||
for {
|
for {
|
||||||
p, err := mpReader.NextRawPart()
|
p, err := multipartRd.NextRawPart()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -176,13 +178,16 @@ func (c *Client) Handle() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body = c.decrypt(body)
|
body = c.decrypt(body)
|
||||||
tsReader.SetBuffer(body)
|
bytesRd := bytes.NewReader(body)
|
||||||
|
|
||||||
for {
|
for {
|
||||||
pkt := tsReader.GetPacket()
|
pkt, err2 := mpegtsRd.ReadPacket(bytesRd)
|
||||||
if pkt == nil {
|
if pkt == nil || err2 == io.EOF {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
if err2 != nil {
|
||||||
|
return err2
|
||||||
|
}
|
||||||
|
|
||||||
for _, receiver := range c.receivers {
|
for _, receiver := range c.receivers {
|
||||||
if receiver.ID == pkt.PayloadType {
|
if receiver.ID == pkt.PayloadType {
|
||||||
|
|||||||
Reference in New Issue
Block a user