Fix import paths
This commit is contained in:
parent
101a483372
commit
87468848a4
23
README.md
23
README.md
@ -8,10 +8,9 @@ JOY4 is powerful library written in golang, well-designed interface makes a few
|
|||||||
|
|
||||||
Well-designed and easy-to-use interfaces:
|
Well-designed and easy-to-use interfaces:
|
||||||
|
|
||||||
- Muxer / Demuxer ([doc](https://godoc.org/github.com/nareix/joy4/av#Demuxer) [example](https://github.com/nareix/joy4/blob/master/examples/open_probe_file/main.go))
|
- Muxer / Demuxer ([doc](https://godoc.org/github.com/datarhei/joy4/av#Demuxer) [example](https://github.com/datarhei/joy4/blob/master/examples/open_probe_file/main.go))
|
||||||
- Audio Decoder ([doc](https://godoc.org/github.com/nareix/joy4/av#AudioDecoder) [example](https://github.com/nareix/joy4/blob/master/examples/audio_decode/main.go))
|
- Transcoding ([doc](https://godoc.org/github.com/datarhei/joy4/av/transcode) [example](https://github.com/datarhei/joy4/blob/master/examples/transcode/main.go))
|
||||||
- Transcoding ([doc](https://godoc.org/github.com/nareix/joy4/av/transcode) [example](https://github.com/nareix/joy4/blob/master/examples/transcode/main.go))
|
- Streaming server ([example](https://github.com/datarhei/joy4/blob/master/examples/http_flv_and_rtmp_server/main.go))
|
||||||
- Streaming server ([example](https://github.com/nareix/joy4/blob/master/examples/http_flv_and_rtmp_server/main.go))
|
|
||||||
|
|
||||||
Support container formats:
|
Support container formats:
|
||||||
|
|
||||||
@ -34,26 +33,26 @@ RTMP / HTTP-FLV Server
|
|||||||
- High performance
|
- High performance
|
||||||
|
|
||||||
|
|
||||||
Publisher-subscriber packet buffer queue ([doc](https://godoc.org/github.com/nareix/joy4/av/pubsub))
|
Publisher-subscriber packet buffer queue ([doc](https://godoc.org/github.com/datarhei/joy4/av/pubsub))
|
||||||
|
|
||||||
- Customize publisher buffer time and subscriber read position
|
- Customize publisher buffer time and subscriber read position
|
||||||
|
|
||||||
|
|
||||||
- Multiple channels live streaming ([example](https://github.com/nareix/joy4/blob/master/examples/rtmp_server_channels/main.go))
|
- Multiple channels live streaming ([example](https://github.com/datarhei/joy4/blob/master/examples/rtmp_server_channels/main.go))
|
||||||
|
|
||||||
Packet filters ([doc](https://godoc.org/github.com/nareix/joy4/av/pktque))
|
Packet filters ([doc](https://godoc.org/github.com/datarhei/joy4/av/pktque))
|
||||||
|
|
||||||
- Wait first keyframe
|
- Wait first keyframe
|
||||||
- Fix timestamp
|
- Fix timestamp
|
||||||
- Make A/V sync
|
- Make A/V sync
|
||||||
- Customize ([example](https://github.com/nareix/joy4/blob/master/examples/rtmp_server_channels/main.go#L19))
|
- Customize ([example](https://github.com/datarhei/joy4/blob/master/examples/rtmp_server_channels/main.go#L19))
|
||||||
|
|
||||||
Support codec and container parsers:
|
Support codec and container parsers:
|
||||||
|
|
||||||
- H264 SPS/PPS/AVCDecoderConfigure parser ([doc](https://godoc.org/github.com/nareix/joy4/codec/h264parser))
|
- H264 SPS/PPS/AVCDecoderConfigure parser ([doc](https://godoc.org/github.com/datarhei/joy4/codec/h264parser))
|
||||||
- AAC ADTSHeader/MPEG4AudioConfig parser ([doc](https://godoc.org/github.com/nareix/joy4/codec/aacparser))
|
- AAC ADTSHeader/MPEG4AudioConfig parser ([doc](https://godoc.org/github.com/datarhei/joy4/codec/aacparser))
|
||||||
- MP4 Atoms parser ([doc](https://godoc.org/github.com/nareix/joy4/format/mp4/mp4io))
|
- MP4 Atoms parser ([doc](https://godoc.org/github.com/datarhei/joy4/format/mp4/mp4io))
|
||||||
- FLV AMF0 object parser ([doc](https://godoc.org/github.com/nareix/joy4/format/flv/flvio))
|
- FLV AMF0 object parser ([doc](https://godoc.org/github.com/datarhei/joy4/format/flv/flvio))
|
||||||
|
|
||||||
# Requirements
|
# Requirements
|
||||||
|
|
||||||
|
@ -4,10 +4,10 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/pktque"
|
"github.com/datarhei/joy4/av/pktque"
|
||||||
"github.com/nareix/joy4/av/transcode"
|
"github.com/datarhei/joy4/av/transcode"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Debug bool
|
var Debug bool
|
||||||
|
@ -5,7 +5,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"fmt"
|
"fmt"
|
||||||
"bytes"
|
"bytes"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package pktque
|
package pktque
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Buf struct {
|
type Buf struct {
|
||||||
|
@ -4,7 +4,7 @@ package pktque
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Filter interface {
|
type Filter interface {
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
package pubsub
|
package pubsub
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/pktque"
|
"github.com/datarhei/joy4/av/pktque"
|
||||||
"io"
|
"io"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
@ -5,8 +5,8 @@ package transcode
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/pktque"
|
"github.com/datarhei/joy4/av/pktque"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Debug bool
|
var Debug bool
|
||||||
@ -108,7 +108,7 @@ func (self *tStream) audioDecodeAndEncode(inpkt av.Packet) (outpkts []av.Packet,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Do the transcode.
|
// Do the transcode.
|
||||||
//
|
//
|
||||||
// In audio transcoding one Packet may transcode into many Packets
|
// In audio transcoding one Packet may transcode into many Packets
|
||||||
// packet time will be adjusted automatically.
|
// packet time will be adjusted automatically.
|
||||||
func (self *Transcoder) Do(pkt av.Packet) (out []av.Packet, err error) {
|
func (self *Transcoder) Do(pkt av.Packet) (out []av.Packet, err error) {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package aacparser
|
package aacparser
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/utils/bits"
|
"github.com/datarhei/joy4/utils/bits"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"time"
|
"time"
|
||||||
"fmt"
|
"fmt"
|
||||||
"bytes"
|
"bytes"
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package codec
|
package codec
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/codec/fake"
|
"github.com/datarhei/joy4/codec/fake"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package fake
|
package fake
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CodecData struct {
|
type CodecData struct {
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
package h264parser
|
package h264parser
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/utils/bits"
|
"github.com/datarhei/joy4/utils/bits"
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
"fmt"
|
"fmt"
|
||||||
"bytes"
|
"bytes"
|
||||||
)
|
)
|
||||||
@ -131,7 +131,7 @@ Annex B is commonly used in live and streaming formats such as transport streams
|
|||||||
2. AVCC
|
2. AVCC
|
||||||
The other common method of storing an H.264 stream is the AVCC format. In this format, each NALU is preceded with its length (in big endian format). This method is easier to parse, but you lose the byte alignment features of Annex B. Just to complicate things, the length may be encoded using 1, 2 or 4 bytes. This value is stored in a header object. This header is often called ‘extradata’ or ‘sequence header’. Its basic format is as follows:
|
The other common method of storing an H.264 stream is the AVCC format. In this format, each NALU is preceded with its length (in big endian format). This method is easier to parse, but you lose the byte alignment features of Annex B. Just to complicate things, the length may be encoded using 1, 2 or 4 bytes. This value is stored in a header object. This header is often called ‘extradata’ or ‘sequence header’. Its basic format is as follows:
|
||||||
|
|
||||||
bits
|
bits
|
||||||
8 version ( always 0x01 )
|
8 version ( always 0x01 )
|
||||||
8 avc profile ( sps[0][1] )
|
8 avc profile ( sps[0][1] )
|
||||||
8 avc compatibility ( sps[0][2] )
|
8 avc compatibility ( sps[0][2] )
|
||||||
|
@ -4,11 +4,11 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"github.com/nareix/joy4/format"
|
"github.com/datarhei/joy4/format"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/av/pubsub"
|
"github.com/datarhei/joy4/av/pubsub"
|
||||||
"github.com/nareix/joy4/format/rtmp"
|
"github.com/datarhei/joy4/format/rtmp"
|
||||||
"github.com/nareix/joy4/format/flv"
|
"github.com/datarhei/joy4/format/flv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -78,7 +78,7 @@ func main() {
|
|||||||
|
|
||||||
if ch != nil {
|
if ch != nil {
|
||||||
w.Header().Set("Content-Type", "video/x-flv")
|
w.Header().Set("Content-Type", "video/x-flv")
|
||||||
w.Header().Set("Transfer-Encoding", "chunked")
|
w.Header().Set("Transfer-Encoding", "chunked")
|
||||||
w.Header().Set("Access-Control-Allow-Origin", "*")
|
w.Header().Set("Access-Control-Allow-Origin", "*")
|
||||||
w.WriteHeader(200)
|
w.WriteHeader(200)
|
||||||
flusher := w.(http.Flusher)
|
flusher := w.(http.Flusher)
|
||||||
|
@ -2,9 +2,9 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/format"
|
"github.com/datarhei/joy4/format"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/av/pktque"
|
"github.com/datarhei/joy4/av/pktque"
|
||||||
"github.com/nareix/joy4/format"
|
"github.com/datarhei/joy4/format"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/format/rtmp"
|
"github.com/datarhei/joy4/format/rtmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -2,12 +2,12 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/av/pktque"
|
"github.com/datarhei/joy4/av/pktque"
|
||||||
"github.com/nareix/joy4/av/pubsub"
|
"github.com/datarhei/joy4/av/pubsub"
|
||||||
"github.com/nareix/joy4/format"
|
"github.com/datarhei/joy4/format"
|
||||||
"github.com/nareix/joy4/format/rtmp"
|
"github.com/datarhei/joy4/format/rtmp"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
"github.com/nareix/joy4/format"
|
"github.com/datarhei/joy4/format"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/format/rtmp"
|
"github.com/datarhei/joy4/format/rtmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
package aac
|
package aac
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/codec/aacparser"
|
"github.com/datarhei/joy4/codec/aacparser"
|
||||||
"time"
|
"time"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
@ -3,14 +3,14 @@ package flv
|
|||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/codec"
|
"github.com/datarhei/joy4/codec"
|
||||||
"github.com/nareix/joy4/codec/aacparser"
|
"github.com/datarhei/joy4/codec/aacparser"
|
||||||
"github.com/nareix/joy4/codec/fake"
|
"github.com/datarhei/joy4/codec/fake"
|
||||||
"github.com/nareix/joy4/codec/h264parser"
|
"github.com/datarhei/joy4/codec/h264parser"
|
||||||
"github.com/nareix/joy4/format/flv/flvio"
|
"github.com/datarhei/joy4/format/flv/flvio"
|
||||||
"io"
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ import (
|
|||||||
"math"
|
"math"
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
)
|
)
|
||||||
|
|
||||||
type AMF0ParseError struct {
|
type AMF0ParseError struct {
|
||||||
|
@ -2,8 +2,8 @@ package flvio
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package format
|
package format
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/format/mp4"
|
"github.com/datarhei/joy4/format/mp4"
|
||||||
"github.com/nareix/joy4/format/ts"
|
"github.com/datarhei/joy4/format/ts"
|
||||||
"github.com/nareix/joy4/format/rtmp"
|
"github.com/datarhei/joy4/format/rtmp"
|
||||||
"github.com/nareix/joy4/format/rtsp"
|
"github.com/datarhei/joy4/format/rtsp"
|
||||||
"github.com/nareix/joy4/format/flv"
|
"github.com/datarhei/joy4/format/flv"
|
||||||
"github.com/nareix/joy4/format/aac"
|
"github.com/datarhei/joy4/format/aac"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func RegisterAll() {
|
func RegisterAll() {
|
||||||
|
@ -6,10 +6,10 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/codec/aacparser"
|
"github.com/datarhei/joy4/codec/aacparser"
|
||||||
"github.com/nareix/joy4/codec/h264parser"
|
"github.com/datarhei/joy4/codec/h264parser"
|
||||||
"github.com/nareix/joy4/format/mp4/mp4io"
|
"github.com/datarhei/joy4/format/mp4/mp4io"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Demuxer struct {
|
type Demuxer struct {
|
||||||
|
@ -2,8 +2,8 @@ package mp4
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
var CodecTypes = []av.CodecType{av.H264, av.AAC}
|
var CodecTypes = []av.CodecType{av.H264, av.AAC}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package mp4io
|
package mp4io
|
||||||
|
|
||||||
import "github.com/nareix/joy4/utils/bits/pio"
|
import "github.com/datarhei/joy4/utils/bits/pio"
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
const MOOF = Tag(0x6d6f6f66)
|
const MOOF = Tag(0x6d6f6f66)
|
||||||
|
@ -967,7 +967,7 @@ func genatoms(filename, outfilename string) {
|
|||||||
&ast.GenDecl{
|
&ast.GenDecl{
|
||||||
Tok: token.IMPORT,
|
Tok: token.IMPORT,
|
||||||
Specs: []ast.Spec{
|
Specs: []ast.Spec{
|
||||||
&ast.ImportSpec{Path: &ast.BasicLit{Kind: token.STRING, Value: `"github.com/nareix/joy4/utils/bits/pio"`}},
|
&ast.ImportSpec{Path: &ast.BasicLit{Kind: token.STRING, Value: `"github.com/datarhei/joy4/utils/bits/pio"`}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
&ast.GenDecl{
|
&ast.GenDecl{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
package mp4io
|
package mp4io
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
"os"
|
"os"
|
||||||
"io"
|
"io"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
@ -3,11 +3,11 @@ package mp4
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/codec/aacparser"
|
"github.com/datarhei/joy4/codec/aacparser"
|
||||||
"github.com/nareix/joy4/codec/h264parser"
|
"github.com/datarhei/joy4/codec/h264parser"
|
||||||
"github.com/nareix/joy4/format/mp4/mp4io"
|
"github.com/datarhei/joy4/format/mp4/mp4io"
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
"io"
|
"io"
|
||||||
"bufio"
|
"bufio"
|
||||||
)
|
)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package mp4
|
package mp4
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/format/mp4/mp4io"
|
"github.com/datarhei/joy4/format/mp4/mp4io"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ import (
|
|||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/format/flv"
|
"github.com/datarhei/joy4/format/flv"
|
||||||
"github.com/nareix/joy4/format/flv/flvio"
|
"github.com/datarhei/joy4/format/flv/flvio"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
@ -8,13 +8,13 @@ import (
|
|||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/codec"
|
"github.com/datarhei/joy4/codec"
|
||||||
"github.com/nareix/joy4/codec/aacparser"
|
"github.com/datarhei/joy4/codec/aacparser"
|
||||||
"github.com/nareix/joy4/codec/h264parser"
|
"github.com/datarhei/joy4/codec/h264parser"
|
||||||
"github.com/nareix/joy4/format/rtsp/sdp"
|
"github.com/datarhei/joy4/format/rtsp/sdp"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"net/textproto"
|
"net/textproto"
|
||||||
@ -1161,7 +1161,7 @@ func (self *Client) handleBlock(block []byte) (pkt av.Packet, ok bool, err error
|
|||||||
TODO: sync AV by rtcp NTP timestamp
|
TODO: sync AV by rtcp NTP timestamp
|
||||||
TODO: handle timestamp overflow
|
TODO: handle timestamp overflow
|
||||||
https://tools.ietf.org/html/rfc3550
|
https://tools.ietf.org/html/rfc3550
|
||||||
A receiver can then synchronize presentation of the audio and video packets by relating
|
A receiver can then synchronize presentation of the audio and video packets by relating
|
||||||
their RTP timestamps using the timestamp pairs in RTCP SR packets.
|
their RTP timestamps using the timestamp pairs in RTCP SR packets.
|
||||||
*/
|
*/
|
||||||
if stream.firsttimestamp == 0 {
|
if stream.firsttimestamp == 0 {
|
||||||
|
@ -4,7 +4,7 @@ import (
|
|||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package rtsp
|
package rtsp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/format/rtsp/sdp"
|
"github.com/datarhei/joy4/format/rtsp/sdp"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -4,11 +4,11 @@ import (
|
|||||||
"bufio"
|
"bufio"
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/format/ts/tsio"
|
"github.com/datarhei/joy4/format/ts/tsio"
|
||||||
"github.com/nareix/joy4/codec/aacparser"
|
"github.com/datarhei/joy4/codec/aacparser"
|
||||||
"github.com/nareix/joy4/codec/h264parser"
|
"github.com/datarhei/joy4/codec/h264parser"
|
||||||
"io"
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@ package ts
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/av/avutil"
|
"github.com/datarhei/joy4/av/avutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Handler(h *avutil.RegisterHandler) {
|
func Handler(h *avutil.RegisterHandler) {
|
||||||
|
@ -2,10 +2,10 @@ package ts
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/codec/aacparser"
|
"github.com/datarhei/joy4/codec/aacparser"
|
||||||
"github.com/nareix/joy4/codec/h264parser"
|
"github.com/datarhei/joy4/codec/h264parser"
|
||||||
"github.com/nareix/joy4/format/ts/tsio"
|
"github.com/datarhei/joy4/format/ts/tsio"
|
||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -2,8 +2,8 @@ package ts
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/datarhei/joy4/av"
|
||||||
"github.com/nareix/joy4/format/ts/tsio"
|
"github.com/datarhei/joy4/format/ts/tsio"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Stream struct {
|
type Stream struct {
|
||||||
|
@ -5,7 +5,7 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nareix/joy4/utils/bits/pio"
|
"github.com/datarhei/joy4/utils/bits/pio"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user