joy4: github.com/nareix/joy4/format/flv/flvio Index | Files

package flvio

import "github.com/nareix/joy4/format/flv/flvio"

Index

Package Files

amf0.go flvio.go

Constants

const (
    TAG_AUDIO      = 8
    TAG_VIDEO      = 9
    TAG_SCRIPTDATA = 18
)
const (
    SOUND_MP3                   = 2
    SOUND_NELLYMOSER_16KHZ_MONO = 4
    SOUND_NELLYMOSER_8KHZ_MONO  = 5
    SOUND_NELLYMOSER            = 6
    SOUND_ALAW                  = 7
    SOUND_MULAW                 = 8
    SOUND_AAC                   = 10
    SOUND_SPEEX                 = 11

    SOUND_5_5Khz = 0
    SOUND_11Khz  = 1
    SOUND_22Khz  = 2
    SOUND_44Khz  = 3

    SOUND_8BIT  = 0
    SOUND_16BIT = 1

    SOUND_MONO   = 0
    SOUND_STEREO = 1

    AAC_SEQHDR = 0
    AAC_RAW    = 1
)
const (
    AVC_SEQHDR = 0
    AVC_NALU   = 1
    AVC_EOS    = 2

    FRAME_KEY   = 1
    FRAME_INTER = 2

    VIDEO_H264 = 7
)
const (
    // TypeFlagsReserved UB[5]
    // TypeFlagsAudio    UB[1] Audio tags are present
    // TypeFlagsReserved UB[1] Must be 0
    // TypeFlagsVideo    UB[1] Video tags are present
    FILE_HAS_AUDIO = 0x4
    FILE_HAS_VIDEO = 0x1
)
const FileHeaderLength = 9
const MaxTagSubHeaderLength = 16
const TagHeaderLength = 11
const TagTrailerLength = 4

func FillAMF0Val Uses

func FillAMF0Val(b []byte, _val interface{}) (n int)

func FillFileHeader Uses

func FillFileHeader(b []byte, flags uint8) (n int)

func FillTagHeader Uses

func FillTagHeader(b []byte, tagtype uint8, datalen int, ts int32) (n int)

func FillTagTrailer Uses

func FillTagTrailer(b []byte, datalen int) (n int)

func LenAMF0Val Uses

func LenAMF0Val(_val interface{}) (n int)

func ParseAMF0Val Uses

func ParseAMF0Val(b []byte) (val interface{}, n int, err error)

func ParseFileHeader Uses

func ParseFileHeader(b []byte) (flags uint8, skip int, err error)

func TimeToTs Uses

func TimeToTs(tm time.Duration) int32

func TsToTime Uses

func TsToTime(ts int32) time.Duration

func WriteTag Uses

func WriteTag(w io.Writer, tag Tag, ts int32, b []byte) (err error)

type AMF0ParseError Uses

type AMF0ParseError struct {
    Offset  int
    Message string
    Next    *AMF0ParseError
}

func (*AMF0ParseError) Error Uses

func (self *AMF0ParseError) Error() string

type AMFArray Uses

type AMFArray []interface{}

type AMFECMAArray Uses

type AMFECMAArray map[string]interface{}

type AMFMap Uses

type AMFMap map[string]interface{}

type Tag Uses

type Tag struct {
    Type uint8

    /*
    	SoundFormat: UB[4]
    	0 = Linear PCM, platform endian
    	1 = ADPCM
    	2 = MP3
    	3 = Linear PCM, little endian
    	4 = Nellymoser 16-kHz mono
    	5 = Nellymoser 8-kHz mono
    	6 = Nellymoser
    	7 = G.711 A-law logarithmic PCM
    	8 = G.711 mu-law logarithmic PCM
    	9 = reserved
    	10 = AAC
    	11 = Speex
    	14 = MP3 8-Khz
    	15 = Device-specific sound
    	Formats 7, 8, 14, and 15 are reserved for internal use
    	AAC is supported in Flash Player 9,0,115,0 and higher.
    	Speex is supported in Flash Player 10 and higher.
    */
    SoundFormat uint8

    /*
    	SoundRate: UB[2]
    	Sampling rate
    	0 = 5.5-kHz For AAC: always 3
    	1 = 11-kHz
    	2 = 22-kHz
    	3 = 44-kHz
    */
    SoundRate uint8

    /*
    	SoundSize: UB[1]
    	0 = snd8Bit
    	1 = snd16Bit
    	Size of each sample.
    	This parameter only pertains to uncompressed formats.
    	Compressed formats always decode to 16 bits internally
    */
    SoundSize uint8

    /*
    	SoundType: UB[1]
    	0 = sndMono
    	1 = sndStereo
    	Mono or stereo sound For Nellymoser: always 0
    	For AAC: always 1
    */
    SoundType uint8

    /*
    	0: AAC sequence header
    	1: AAC raw
    */
    AACPacketType uint8

    /*
    	1: keyframe (for AVC, a seekable frame)
    	2: inter frame (for AVC, a non- seekable frame)
    	3: disposable inter frame (H.263 only)
    	4: generated keyframe (reserved for server use only)
    	5: video info/command frame
    */
    FrameType uint8

    /*
    	1: JPEG (currently unused)
    	2: Sorenson H.263
    	3: Screen video
    	4: On2 VP6
    	5: On2 VP6 with alpha channel
    	6: Screen video version 2
    	7: AVC
    */
    CodecID uint8

    /*
    	0: AVC sequence header
    	1: AVC NALU
    	2: AVC end of sequence (lower level NALU sequence ender is not required or supported)
    */
    AVCPacketType uint8

    CompositionTime int32

    Data []byte
}

func ParseTagHeader Uses

func ParseTagHeader(b []byte) (tag Tag, ts int32, datalen int, err error)

func ReadTag Uses

func ReadTag(r io.Reader, b []byte) (tag Tag, ts int32, err error)

func (Tag) ChannelLayout Uses

func (self Tag) ChannelLayout() av.ChannelLayout

func (Tag) FillHeader Uses

func (self Tag) FillHeader(b []byte) (n int)

func (*Tag) ParseHeader Uses

func (self *Tag) ParseHeader(b []byte) (n int, err error)

Package flvio imports 7 packages (graph) and is imported by 12 packages. Updated 2017-11-06. Refresh now. Tools for package owners.