Versions in this module Expand all Collapse all v0 v0.0.2 Aug 24, 2023 v0.0.1 Aug 23, 2023 Changes in this version + const LAYER_1 + const LAYER_2 + const LAYER_3 + const LAYER_RESERVED + const LEFT_CHANNEL + const RIGHT_CHANNEL + const VERSION_MPEG_1 + const VERSION_MPEG_2 + const VERSION_MPEG_2_5 + const VERSION_RESERVED + var AAC_Sampling_Idx [13]int = [13]int + var BitMask [8]byte = [8]byte + var BitRateTable [2][3][16]int = [2][3][16]int + var CELTOpusSampleSize [4]int = [4]int + var HybridOpusSampleSize [4]int = [4]int + var SLKOpusSampleSize [4]int = [4]int + var SampleRateTable [3][4]int = [3][4]int + func AACSampleIdxToSample(idx int) int + func CalcCrc32(crc uint32, buffer []byte) uint32 + func CodecString(codecid CodecID) string + func ConvertAnnexBToAVCC(annexb []byte) []byte + func CovertAVCCToAnnexB(avcc []byte) + func CovertExtradata(extraData []byte) ([][]byte, [][]byte) + func CovertRbspToSodb(rbsp []byte) []byte + func CreateH264AVCCExtradata(spss [][]byte, ppss [][]byte) ([]byte, error) + func FindSyncword(aac []byte, offset int) int + func GetH264FirstMbInSlice(nalu []byte) uint64 + func GetH264Resolution(sps []byte) (width uint32, height uint32) + func GetH265FirstMbInSlice(nalu []byte) uint64 + func GetH265PPSId(pps []byte) uint64 + func GetH265PPSIdWithStartCode(pps []byte) uint64 + func GetH265Resolution(sps []byte) (width uint32, height uint32) + func GetH265SPSId(sps []byte) uint64 + func GetH265SPSIdWithStartCode(sps []byte) uint64 + func GetPPSId(pps []byte) uint64 + func GetPPSIdWithStartCode(pps []byte) uint64 + func GetResloution(frame []byte) (width int, height int, err error) + func GetSPSId(sps []byte) uint64 + func GetSPSIdWithStartCode(sps []byte) uint64 + func GetVPSId(vps []byte) uint8 + func GetVPSIdWithStartCode(vps []byte) uint8 + func IsH264IDRFrame(h264 []byte) bool + func IsH264VCLNaluType(nal_type H264_NAL_TYPE) bool + func IsH265IDRFrame(h265 []byte) bool + func IsH265VCLNaluType(nal_type H265_NAL_TYPE) bool + func IsKeyFrame(frame []byte) bool + func Max(x, y int) int + func Min(x, y int) int + func OpusPacketDuration(packet []byte) uint64 + func SampleToAACSampleIndex(sampling int) int + func ShowPacketHexdump(data []byte) + func SplitAACFrame(frames []byte, onFrame func(aac []byte)) + func SplitFrame(frames []byte, onFrame func(nalu []byte) bool) + func SplitFrameWithStartCode(frames []byte, onFrame func(nalu []byte) bool) + func SplitMp3Frames(data []byte, onFrame func(head *MP3FrameHead, frame []byte)) error + func WriteDefaultOpusExtraData() []byte + type AAC_PROFILE int + const LC + const MAIN + const SSR + type AAC_SAMPLING_FREQUENCY int + const AAC_SAMPLE_11025 + const AAC_SAMPLE_12000 + const AAC_SAMPLE_16000 + const AAC_SAMPLE_22050 + const AAC_SAMPLE_24000 + const AAC_SAMPLE_32000 + const AAC_SAMPLE_44100 + const AAC_SAMPLE_48000 + const AAC_SAMPLE_64000 + const AAC_SAMPLE_7350 + const AAC_SAMPLE_8000 + const AAC_SAMPLE_88200 + const AAC_SAMPLE_96000 + type ADTS_Fix_Header struct + Channel_configuration uint8 + Home uint8 + ID uint8 + Layer uint8 + Originalorcopy uint8 + Private_bit uint8 + Profile uint8 + Protection_absent uint8 + Sampling_frequency_index uint8 + type ADTS_Frame_Header struct + Fix_Header ADTS_Fix_Header + Variable_Header ADTS_Variable_Header + func ConvertASCToADTS(asc []byte, aacbytes int) (*ADTS_Frame_Header, error) + func NewAdtsFrameHeader() *ADTS_Frame_Header + func (frame *ADTS_Frame_Header) Decode(aac []byte) + func (frame *ADTS_Frame_Header) Encode() []byte + type ADTS_Variable_Header struct + Adts_buffer_fullness uint16 + Copyright_identification_bit uint8 + Frame_length uint16 + Number_of_raw_data_blocks_in_frame uint8 + type AudioSpecificConfiguration struct + Audio_object_type uint8 + Channel_configuration uint8 + GA_depends_on_core_coder uint8 + GA_extension_flag uint8 + GA_framelength_flag uint8 + Sample_freq_index uint8 + func ConvertADTSToASC(frame []byte) (*AudioSpecificConfiguration, error) + func NewAudioSpecificConfiguration() *AudioSpecificConfiguration + func (asc *AudioSpecificConfiguration) Decode(buf []byte) error + func (asc *AudioSpecificConfiguration) Encode() []byte + type BitStream struct + func NewBitStream(buf []byte) *BitStream + func (bs *BitStream) Bits() []byte + func (bs *BitStream) ByteOffset() int + func (bs *BitStream) DistanceFromMarkDot() int + func (bs *BitStream) EOS() bool + func (bs *BitStream) GetBit() uint8 + func (bs *BitStream) GetBits(n int) uint64 + func (bs *BitStream) GetBytes(n int) []byte + func (bs *BitStream) Markdot() + func (bs *BitStream) NextBits(n int) uint64 + func (bs *BitStream) ReadSE() int64 + func (bs *BitStream) ReadUE() uint64 + func (bs *BitStream) RemainBits() int + func (bs *BitStream) RemainBytes() int + func (bs *BitStream) RemainData() []byte + func (bs *BitStream) SkipBits(n int) + func (bs *BitStream) Uint16(n int) uint16 + func (bs *BitStream) Uint32(n int) uint32 + func (bs *BitStream) Uint8(n int) uint8 + func (bs *BitStream) UnRead(n int) + type BitStreamWriter struct + func NewBitStreamWriter(n int) *BitStreamWriter + func (bsw *BitStreamWriter) BitOffset() int + func (bsw *BitStreamWriter) Bits() []byte + func (bsw *BitStreamWriter) ByteOffset() int + func (bsw *BitStreamWriter) DistanceFromMarkDot() int + func (bsw *BitStreamWriter) FillRemainData(v byte) + func (bsw *BitStreamWriter) Markdot() + func (bsw *BitStreamWriter) PutByte(v byte) + func (bsw *BitStreamWriter) PutBytes(v []byte) + func (bsw *BitStreamWriter) PutRepetValue(v byte, n int) + func (bsw *BitStreamWriter) PutUint16(v uint16, n int) + func (bsw *BitStreamWriter) PutUint32(v uint32, n int) + func (bsw *BitStreamWriter) PutUint64(v uint64, n int) + func (bsw *BitStreamWriter) PutUint8(v uint8, n int) + func (bsw *BitStreamWriter) Reset() + func (bsw *BitStreamWriter) SetByte(v byte, where int) + func (bsw *BitStreamWriter) SetUint16(v uint16, where int) + type ChannelMap struct + ChannelIdx int + Copy bool + CopyFrom int + Silence bool + StreamIdx int + type ChannelOrder func(channels int, idx int) int + type CodecID int + const CODECID_AUDIO_AAC + const CODECID_AUDIO_G711A + const CODECID_AUDIO_G711U + const CODECID_AUDIO_MP3 + const CODECID_AUDIO_OPUS + const CODECID_UNRECOGNIZED + const CODECID_VIDEO_H264 + const CODECID_VIDEO_H265 + const CODECID_VIDEO_VP8 + type H264NaluHdr struct + Forbidden_zero_bit uint8 + Nal_ref_idc uint8 + Nal_unit_type uint8 + func (hdr *H264NaluHdr) Decode(bs *BitStream) + type H264_NAL_TYPE int + const H264_NAL_AUD + const H264_NAL_I_SLICE + const H264_NAL_PPS + const H264_NAL_P_SLICE + const H264_NAL_RESERVED + const H264_NAL_SEI + const H264_NAL_SLICE_A + const H264_NAL_SLICE_B + const H264_NAL_SLICE_C + const H264_NAL_SPS + func H264NaluType(h264 []byte) H264_NAL_TYPE + func H264NaluTypeWithoutStartCode(h264 []byte) H264_NAL_TYPE + type H265NaluHdr struct + Forbidden_zero_bit uint8 + Nal_unit_type uint8 + Nuh_layer_id uint8 + Nuh_temporal_id_plus1 uint8 + func (hdr *H265NaluHdr) Decode(bs *BitStream) + type H265RawPPS struct + Cabac_init_present_flag uint8 + Constrained_intra_pred_flag uint8 + Cu_qp_delta_enabled_flag uint8 + Dependent_slice_segments_enabled_flag uint8 + Diff_cu_qp_delta_depth uint64 + Entropy_coding_sync_enabled_flag uint8 + Init_qp_minus26 int64 + Num_extra_slice_header_bits uint8 + Num_ref_idx_l0_default_active_minus1 uint64 + Num_ref_idx_l1_default_active_minus1 uint64 + Output_flag_present_flag uint8 + Pps_cb_qp_offset int64 + Pps_cr_qp_offset int64 + Pps_pic_parameter_set_id uint64 + Pps_seq_parameter_set_id uint64 + Pps_slice_chroma_qp_offsets_present_flag uint8 + Sign_data_hiding_enabled_flag uint8 + Tiles_enabled_flag uint8 + Transform_skip_enabled_flag uint8 + Transquant_bypass_enabled_flag uint8 + Weighted_bipred_flag uint8 + Weighted_pred_flag uint8 + func (pps *H265RawPPS) Decode(nalu []byte) + type H265RawSPS struct + Bit_depth_chroma_minus8 uint64 + Bit_depth_luma_minus8 uint64 + Chroma_format_idc uint64 + Conf_win_bottom_offset uint64 + Conf_win_left_offset uint64 + Conf_win_right_offset uint64 + Conf_win_top_offset uint64 + Conformance_window_flag uint8 + Log2_max_pic_order_cnt_lsb_minus4 uint64 + Pic_height_in_luma_samples uint64 + Pic_width_in_luma_samples uint64 + Ptl ProfileTierLevel + Sps_max_sub_layers_minus1 uint8 + Sps_seq_parameter_set_id uint64 + Sps_sub_layer_ordering_info_present_flag uint8 + Sps_temporal_id_nesting_flag uint8 + Sps_video_parameter_set_id uint8 + Vui VUI_Parameters + Vui_parameters_present_flag uint8 + func (sps *H265RawSPS) Decode(nalu []byte) + type H265_NAL_TYPE int + const H265_NAL_AUD + const H265_NAL_LICE_TRAIL_R + const H265_NAL_PPS + const H265_NAL_SEI + const H265_NAL_SEI_SUFFIX + const H265_NAL_SLICE_BLA_N_LP + const H265_NAL_SLICE_BLA_W_LP + const H265_NAL_SLICE_BLA_W_RADL + const H265_NAL_SLICE_CRA + const H265_NAL_SLICE_IDR_N_LP + const H265_NAL_SLICE_IDR_W_RADL + const H265_NAL_SLICE_RADL_N + const H265_NAL_SLICE_RADL_R + const H265_NAL_SLICE_RASL_N + const H265_NAL_SLICE_RASL_R + const H265_NAL_SLICE_STSA_N + const H265_NAL_SLICE_STSA_R + const H265_NAL_SLICE_TSA_N + const H265_NAL_SLICE_TSA_R + const H265_NAL_SPS + const H265_NAL_Slice_TRAIL_N + const H265_NAL_VPS + func H265NaluType(h265 []byte) H265_NAL_TYPE + func H265NaluTypeWithoutStartCode(h265 []byte) H265_NAL_TYPE + type HEVCRecordConfiguration struct + Arrays []*HVCCNALUnitArray + AvgFrameRate uint16 + BitDepthChromaMinus8 uint8 + BitDepthLumaMinus8 uint8 + ChromaFormat uint8 + ConfigurationVersion uint8 + ConstantFrameRate uint8 + General_constraint_indicator_flags uint64 + General_level_idc uint8 + General_profile_compatibility_flags uint32 + General_profile_idc uint8 + General_profile_space uint8 + General_tier_flag uint8 + LengthSizeMinusOne uint8 + Min_spatial_segmentation_idc uint16 + NumOfArrays uint8 + NumTemporalLayers uint8 + ParallelismType uint8 + TemporalIdNested uint8 + func NewHEVCRecordConfiguration() *HEVCRecordConfiguration + func (hvcc *HEVCRecordConfiguration) Decode(hevc []byte) + func (hvcc *HEVCRecordConfiguration) Encode() ([]byte, error) + func (hvcc *HEVCRecordConfiguration) ToNalus() (nalus []byte) + func (hvcc *HEVCRecordConfiguration) UpdatePPS(pps []byte) + func (hvcc *HEVCRecordConfiguration) UpdateSPS(sps []byte) + func (hvcc *HEVCRecordConfiguration) UpdateVPS(vps []byte) + type HVCCNALUnitArray struct + Array_completeness uint8 + NAL_unit_type uint8 + NalUnits []*NalUnit + NumNalus uint16 + type ID3V2 struct + Flag uint8 + Revision uint8 + Size uint32 + Ver uint8 + type MP3FrameHead struct + BitrateIndex uint8 + Copyright uint8 + Emphasis uint8 + FrameSize int + Layer uint8 + Mode uint8 + ModeExtension uint8 + Original uint8 + Padding uint8 + Private uint8 + Protecttion uint8 + SampleRateIndex uint8 + SampleSize int + Version uint8 + func DecodeMp3Head(data []byte) (*MP3FrameHead, error) + func (mp3 *MP3FrameHead) GetBitRate() int + func (mp3 *MP3FrameHead) GetChannelCount() int + func (mp3 *MP3FrameHead) GetSampleRate() int + type NalUnit struct + NalUnitLength uint16 + Nalu []byte + type OpusContext struct + ChannelCount int + ChannelMaps []ChannelMap + MapType uint8 + OutputGain uint16 + Preskip int + SampleRate int + StereoStreamCount int + StreamCount int + func (ctx *OpusContext) ParseExtranData(extraData []byte) error + func (ctx *OpusContext) WriteOpusExtraData() []byte + type OpusPacket struct + Code int + Config int + Duration uint64 + Frame []byte + FrameCount int + FrameLen []uint16 + Stereo int + Vbr int + func DecodeOpusPacket(packet []byte) *OpusPacket + type PPS struct + Bottom_field_pic_order_in_frame_present_flag uint8 + Entropy_coding_mode_flag uint8 + Num_slice_groups_minus1 uint64 + Pic_parameter_set_id uint64 + Seq_parameter_set_id uint64 + func (pps *PPS) Decode(bs *BitStream) + type ProfileTierLevel struct + General_constraint_indicator_flag uint64 + General_level_idc uint8 + General_profile_compatibility_flag uint32 + General_profile_idc uint8 + General_profile_space uint8 + General_tier_flag uint8 + Sub_layer_level_present_flag [8]uint8 + Sub_layer_profile_present_flag [8]uint8 + func Profile_tier_level(profilePresentFlag uint8, maxNumSubLayersMinus1 uint8, bs *BitStream) ProfileTierLevel + type SEI struct + PayloadSize uint16 + PayloadType uint16 + Sei_payload SEIReaderWriter + func (sei *SEI) Decode(bs *BitStream) + func (sei *SEI) Encode(bsw *BitStreamWriter) []byte + type SEIReaderWriter interface + Read func(size uint16, bs *BitStream) + Write func(bsw *BitStreamWriter) + type SPS struct + Bit_depth_chroma_minus8 uint64 + Bit_depth_luma_minus8 uint64 + Chroma_format_idc uint64 + Constraint_set0_flag uint8 + Constraint_set1_flag uint8 + Constraint_set2_flag uint8 + Constraint_set3_flag uint8 + Constraint_set4_flag uint8 + Constraint_set5_flag uint8 + Direct_8x8_inference_flag uint8 + Frame_crop_bottom_offset uint64 + Frame_crop_left_offset uint64 + Frame_crop_right_offset uint64 + Frame_crop_top_offset uint64 + Frame_cropping_flag uint8 + Frame_mbs_only_flag uint8 + Gaps_in_frame_num_value_allowed_flag uint8 + Level_idc uint8 + Log2_max_frame_num_minus4 uint64 + Max_num_ref_frames uint64 + Pic_height_in_map_units_minus1 uint64 + Pic_order_cnt_type uint64 + Pic_width_in_mbs_minus1 uint64 + Profile_idc uint8 + Reserved_zero_2bits uint8 + Separate_colour_plane_flag uint8 + Seq_parameter_set_id uint64 + Vui_parameters_present_flag uint8 + func (sps *SPS) Decode(bs *BitStream) + type START_CODE_TYPE int + const START_CODE_3 + const START_CODE_4 + func FindStartCode(nalu []byte, offset int) (int, START_CODE_TYPE) + type SliceHeader struct + First_mb_in_slice uint64 + Frame_num uint64 + Pic_parameter_set_id uint64 + Slice_type uint64 + func (sh *SliceHeader) Decode(bs *BitStream) + type UserDataUnregistered struct + UUID []byte + UserData []byte + func (udu *UserDataUnregistered) Read(size uint16, bs *BitStream) + func (udu *UserDataUnregistered) Write(bsw *BitStreamWriter) + type VP8FrameTag struct + Display uint32 + FirstPartSize uint32 + FrameType uint32 + Version uint32 + func DecodeFrameTag(frame []byte) (*VP8FrameTag, error) + type VP8KeyFrameHead struct + Height int + HorizScale int + VertScale int + Width int + func DecodeKeyFrameHead(frame []byte) (*VP8KeyFrameHead, error) + type VPS struct + Layer_id_included_flag [][]uint8 + Ptl ProfileTierLevel + TimeInfo VPSTimeInfo + Vps_base_layer_available_flag uint8 + Vps_base_layer_internal_flag uint8 + Vps_max_dec_pic_buffering_minus1 [8]uint64 + Vps_max_latency_increase_plus1 [8]uint64 + Vps_max_layer_id uint8 + Vps_max_layers_minus1 uint8 + Vps_max_num_reorder_pics [8]uint64 + Vps_max_sub_layers_minus1 uint8 + Vps_num_layer_sets_minus1 uint64 + Vps_reserved_0xffff_16bits uint16 + Vps_sub_layer_ordering_info_present_flag uint8 + Vps_temporal_id_nesting_flag uint8 + Vps_timing_info_present_flag uint8 + Vps_video_parameter_set_id uint8 + func (vps *VPS) Decode(nalu []byte) + type VPSTimeInfo struct + Cprms_present_flag []uint8 + Hrd_layer_set_idx []uint64 + Vps_num_hrd_parameters uint64 + Vps_num_ticks_poc_diff_one_minus1 uint64 + Vps_num_units_in_tick uint32 + Vps_poc_proportional_to_timing_flag uint8 + Vps_time_scale uint32 + func ParserVPSTimeinfo(bs *BitStream) VPSTimeInfo + type VUI_Parameters struct + Aspect_ratio_info_present_flag uint8 + Bitstream_restriction_flag uint8 + Chroma_loc_info_present_flag uint8 + Default_display_window_flag uint8 + Field_seq_flag uint8 + Frame_field_info_present_flag uint8 + Log2_max_mv_length_horizontal uint64 + Log2_max_mv_length_vertical uint64 + Max_bits_per_min_cu_denom uint64 + Max_bytes_per_pic_denom uint64 + Min_spatial_segmentation_idc uint64 + Motion_vectors_over_pic_boundaries_flag uint8 + Neutral_chroma_indication_flag uint8 + Overscan_info_present_flag uint8 + Restricted_ref_pic_lists_flag uint8 + Tiles_fixed_structure_flag uint8 + Vui_hrd_parameters_present_flag uint8 + Vui_num_units_in_tick uint32 + Vui_poc_proportional_to_timing_flag uint8 + Vui_time_scale uint32 + Vui_timing_info_present_flag uint8 + func (vui *VUI_Parameters) Decode(bs *BitStream, max_sub_layers_minus1 uint8)