@libmedia/avutil 0.12.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{AVStream.js → AVStream.cjs} +5 -5
- package/dist/cjs/AVStream.js.map +1 -1
- package/dist/cjs/codecs/{aac.js → aac.cjs} +2 -8
- package/dist/cjs/codecs/aac.js.map +1 -1
- package/dist/cjs/codecs/{ac3.js → ac3.cjs} +2 -8
- package/dist/cjs/codecs/ac3.js.map +1 -1
- package/dist/cjs/codecs/{av1.js → av1.cjs} +6 -10
- package/dist/cjs/codecs/av1.js.map +1 -1
- package/dist/cjs/codecs/{dts.js → dts.cjs} +3 -9
- package/dist/cjs/codecs/dts.js.map +1 -1
- package/dist/cjs/codecs/{flac.js → flac.cjs} +2 -8
- package/dist/cjs/codecs/flac.js.map +1 -1
- package/dist/cjs/codecs/{h264.js → h264.cjs} +20 -23
- package/dist/cjs/codecs/h264.js.map +1 -1
- package/dist/cjs/codecs/{hevc.js → hevc.cjs} +23 -23
- package/dist/cjs/codecs/hevc.js.map +1 -1
- package/dist/cjs/codecs/{mp3.js → mp3.cjs} +1 -1
- package/dist/cjs/codecs/mp3.js.map +1 -1
- package/dist/cjs/codecs/{mpeg4.js → mpeg4.cjs} +1 -1
- package/dist/cjs/codecs/mpeg4.js.map +1 -1
- package/dist/cjs/codecs/{mpegvideo.js → mpegvideo.cjs} +1 -1
- package/dist/cjs/codecs/mpegvideo.js.map +1 -1
- package/dist/cjs/codecs/{opus.js → opus.cjs} +3 -9
- package/dist/cjs/codecs/opus.js.map +1 -1
- package/dist/cjs/codecs/ttml.cjs +51 -0
- package/dist/cjs/codecs/ttml.js.map +1 -1
- package/dist/cjs/codecs/{vp8.js → vp8.cjs} +2 -8
- package/dist/cjs/codecs/vp8.js.map +1 -1
- package/dist/cjs/codecs/{vp9.js → vp9.cjs} +4 -10
- package/dist/cjs/codecs/vp9.js.map +1 -1
- package/dist/cjs/codecs/{vvc.js → vvc.cjs} +25 -25
- package/dist/cjs/codecs/vvc.js.map +1 -1
- package/dist/cjs/{constant.js → constant.cjs} +6 -7
- package/dist/cjs/constant.js.map +1 -1
- package/dist/cjs/{enum.js → enum.cjs} +3 -1
- package/dist/cjs/enum.js.map +1 -1
- package/dist/cjs/error.js.map +1 -1
- package/dist/cjs/function/analyzeAVFormat.js.map +1 -1
- package/dist/cjs/function/analyzeUrlIOLoader.cjs +66 -0
- package/dist/cjs/function/analyzeUrlIOLoader.js.map +1 -1
- package/dist/cjs/function/{audioData2AVFrame.js → audioData2AVFrame.cjs} +9 -9
- package/dist/cjs/function/audioData2AVFrame.js.map +1 -1
- package/dist/cjs/function/{avPCMBuffer2AVFrame.js → avPCMBuffer2AVFrame.cjs} +20 -20
- package/dist/cjs/function/avPCMBuffer2AVFrame.js.map +1 -1
- package/dist/cjs/function/{avframe2AudioData.js → avframe2AudioData.cjs} +7 -7
- package/dist/cjs/function/avframe2AudioData.js.map +1 -1
- package/dist/cjs/function/avframe2VideoFrame.cjs +48 -0
- package/dist/cjs/function/avframe2VideoFrame.js.map +1 -1
- package/dist/cjs/function/{avpacket2EncodedAudioChunk.js → avpacket2EncodedAudioChunk.cjs} +3 -3
- package/dist/cjs/function/avpacket2EncodedAudioChunk.js.map +1 -1
- package/dist/cjs/function/{avpacket2EncodedVideoChunk.js → avpacket2EncodedVideoChunk.cjs} +3 -3
- package/dist/cjs/function/avpacket2EncodedVideoChunk.js.map +1 -1
- package/dist/cjs/function/compileResource.cjs +19 -0
- package/dist/cjs/function/compileResource.js.map +1 -1
- package/dist/cjs/function/constant/webcodecs.cjs +50 -0
- package/dist/cjs/function/constant/webcodecs.js.map +1 -0
- package/dist/cjs/function/encodedAudioChunk2AVPacket.cjs +23 -0
- package/dist/cjs/function/encodedAudioChunk2AVPacket.js.map +1 -1
- package/dist/cjs/function/{encodedVideoChunk2AVPacket.js → encodedVideoChunk2AVPacket.cjs} +8 -8
- package/dist/cjs/function/encodedVideoChunk2AVPacket.js.map +1 -1
- package/dist/cjs/function/{getAudioCodec.js → getAudioCodec.cjs} +1 -1
- package/dist/cjs/function/getAudioCodec.js.map +1 -1
- package/dist/cjs/function/getAudioMimeType.cjs +19 -0
- package/dist/cjs/function/getAudioMimeType.js.map +1 -0
- package/dist/cjs/function/getHardwarePreference.cjs +10 -0
- package/dist/cjs/function/getHardwarePreference.js.map +1 -1
- package/dist/cjs/function/{getVideoCodec.js → getVideoCodec.cjs} +12 -12
- package/dist/cjs/function/getVideoCodec.js.map +1 -1
- package/dist/cjs/function/getVideoMimeType.cjs +18 -0
- package/dist/cjs/function/getVideoMimeType.js.map +1 -0
- package/dist/cjs/function/{getWasmUrl.js → getWasmUrl.cjs} +2 -3
- package/dist/cjs/function/getWasmUrl.js.map +1 -1
- package/dist/cjs/function/{hasAlphaChannel.js → hasAlphaChannel.cjs} +1 -1
- package/dist/cjs/function/hasAlphaChannel.js.map +1 -1
- package/dist/cjs/function/{isHdr.js → isHdr.cjs} +1 -1
- package/dist/cjs/function/isHdr.js.map +1 -1
- package/dist/cjs/function/videoFrame2AVFrame.cjs +51 -0
- package/dist/cjs/function/videoFrame2AVFrame.js.map +1 -1
- package/dist/cjs/implement/AVFramePoolImpl.cjs +28 -0
- package/dist/cjs/implement/AVFramePoolImpl.js.map +1 -1
- package/dist/cjs/implement/AVPCMBufferPoolImpl.cjs +27 -0
- package/dist/cjs/implement/AVPCMBufferPoolImpl.js.map +1 -1
- package/dist/cjs/implement/AVPacketPoolImpl.cjs +29 -0
- package/dist/cjs/implement/AVPacketPoolImpl.js.map +1 -1
- package/dist/cjs/index.cjs +840 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal.cjs +283 -0
- package/dist/cjs/internal.js.map +1 -0
- package/dist/cjs/{pixelFormatDescriptor.js → pixelFormatDescriptor.cjs} +2 -0
- package/dist/cjs/pixelFormatDescriptor.js.map +1 -1
- package/dist/cjs/pixfmt.js.map +1 -1
- package/dist/cjs/sampleFormatDescriptor.js.map +1 -1
- package/dist/cjs/{stringEnum.js → stringEnum.cjs} +4 -1
- package/dist/cjs/stringEnum.js.map +1 -1
- package/dist/cjs/struct/{audiosample.js → audiosample.cjs} +13 -13
- package/dist/cjs/struct/audiosample.js.map +1 -1
- package/dist/cjs/struct/{avbuffer.js → avbuffer.cjs} +18 -18
- package/dist/cjs/struct/avbuffer.js.map +1 -1
- package/dist/cjs/struct/{avcodecparameters.js → avcodecparameters.cjs} +11 -11
- package/dist/cjs/struct/avcodecparameters.js.map +1 -1
- package/dist/cjs/struct/{avdict.js → avdict.cjs} +9 -9
- package/dist/cjs/struct/avdict.js.map +1 -1
- package/dist/cjs/struct/{avframe.js → avframe.cjs} +30 -30
- package/dist/cjs/struct/avframe.js.map +1 -1
- package/dist/cjs/struct/{avpacket.js → avpacket.cjs} +19 -19
- package/dist/cjs/struct/avpacket.js.map +1 -1
- package/dist/cjs/struct/{avpcmbuffer.js → avpcmbuffer.cjs} +9 -9
- package/dist/cjs/struct/avpcmbuffer.js.map +1 -1
- package/dist/cjs/struct/{encryption.js → encryption.cjs} +13 -13
- package/dist/cjs/struct/encryption.js.map +1 -1
- package/dist/cjs/struct/rational.cjs +43 -0
- package/dist/cjs/struct/rational.js.map +1 -1
- package/dist/cjs/util/{amf.js → amf.cjs} +7 -38
- package/dist/cjs/util/amf.js.map +1 -1
- package/dist/cjs/util/av1syntax.js.map +1 -1
- package/dist/cjs/util/avbuffer.cjs +122 -0
- package/dist/cjs/util/avbuffer.js.map +1 -1
- package/dist/cjs/util/avdict.cjs +75 -0
- package/dist/cjs/util/avdict.js.map +1 -1
- package/dist/cjs/util/{avframe.js → avframe.cjs} +82 -87
- package/dist/cjs/util/avframe.js.map +1 -1
- package/dist/cjs/util/{avpacket.js → avpacket.cjs} +58 -58
- package/dist/cjs/util/avpacket.js.map +1 -1
- package/dist/cjs/util/{channel.js → channel.cjs} +7 -7
- package/dist/cjs/util/channel.js.map +1 -1
- package/dist/cjs/util/codecparameters.cjs +95 -0
- package/dist/cjs/util/codecparameters.js.map +1 -1
- package/dist/cjs/util/common.js.map +1 -1
- package/dist/cjs/util/{encryption.js → encryption.cjs} +5 -11
- package/dist/cjs/util/encryption.js.map +1 -1
- package/dist/cjs/util/expgolomb.js.map +1 -1
- package/dist/cjs/util/{intread.js → intread.cjs} +1 -1
- package/dist/cjs/util/intread.js.map +1 -1
- package/dist/cjs/util/{intwrite.js → intwrite.cjs} +1 -1
- package/dist/cjs/util/intwrite.js.map +1 -1
- package/dist/cjs/util/mem.cjs +23 -0
- package/dist/cjs/util/mem.js.map +1 -1
- package/dist/cjs/util/{nalu.js → nalu.cjs} +7 -42
- package/dist/cjs/util/nalu.js.map +1 -1
- package/dist/cjs/util/ntp.js.map +1 -1
- package/dist/cjs/util/pcm.js.map +1 -1
- package/dist/cjs/util/{pixel.js → pixel.cjs} +26 -30
- package/dist/cjs/util/pixel.js.map +1 -1
- package/dist/cjs/util/{rational.js → rational.cjs} +5 -11
- package/dist/cjs/util/rational.js.map +1 -1
- package/dist/cjs/util/{sample.js → sample.cjs} +6 -12
- package/dist/cjs/util/sample.js.map +1 -1
- package/dist/cjs/util/{serialize.js → serialize.cjs} +40 -42
- package/dist/cjs/util/serialize.js.map +1 -1
- package/dist/esm/AVStream.d.ts +7 -7
- package/dist/esm/AVStream.js +10 -12
- package/dist/esm/AVStream.js.map +1 -1
- package/dist/esm/codecs/aac.d.ts +10 -5
- package/dist/esm/codecs/aac.js +2 -2
- package/dist/esm/codecs/aac.js.map +1 -1
- package/dist/esm/codecs/ac3.d.ts +1 -1
- package/dist/esm/codecs/ac3.js +1 -1
- package/dist/esm/codecs/ac3.js.map +1 -1
- package/dist/esm/codecs/av1.d.ts +3 -3
- package/dist/esm/codecs/av1.js +4 -6
- package/dist/esm/codecs/av1.js.map +1 -1
- package/dist/esm/codecs/dts.d.ts +1 -1
- package/dist/esm/codecs/dts.js +2 -2
- package/dist/esm/codecs/dts.js.map +1 -1
- package/dist/esm/codecs/flac.d.ts +3 -3
- package/dist/esm/codecs/flac.js +1 -1
- package/dist/esm/codecs/flac.js.map +1 -1
- package/dist/esm/codecs/h264.d.ts +5 -5
- package/dist/esm/codecs/h264.js +13 -18
- package/dist/esm/codecs/h264.js.map +1 -1
- package/dist/esm/codecs/hevc.d.ts +5 -5
- package/dist/esm/codecs/hevc.js +16 -15
- package/dist/esm/codecs/hevc.js.map +1 -1
- package/dist/esm/codecs/mp3.d.ts +4 -4
- package/dist/esm/codecs/mp3.js +1 -1
- package/dist/esm/codecs/mp3.js.map +1 -1
- package/dist/esm/codecs/mpeg4.d.ts +1 -1
- package/dist/esm/codecs/mpeg4.js +1 -1
- package/dist/esm/codecs/mpeg4.js.map +1 -1
- package/dist/esm/codecs/mpegvideo.d.ts +1 -1
- package/dist/esm/codecs/mpegvideo.js +1 -1
- package/dist/esm/codecs/mpegvideo.js.map +1 -1
- package/dist/esm/codecs/opus.d.ts +3 -3
- package/dist/esm/codecs/opus.js +2 -4
- package/dist/esm/codecs/opus.js.map +1 -1
- package/dist/esm/codecs/ttml.js +5 -11
- package/dist/esm/codecs/ttml.js.map +1 -1
- package/dist/esm/codecs/vp8.d.ts +4 -4
- package/dist/esm/codecs/vp8.js +2 -2
- package/dist/esm/codecs/vp8.js.map +1 -1
- package/dist/esm/codecs/vp9.d.ts +4 -4
- package/dist/esm/codecs/vp9.js +8 -10
- package/dist/esm/codecs/vp9.js.map +1 -1
- package/dist/esm/codecs/vvc.d.ts +5 -5
- package/dist/esm/codecs/vvc.js +16 -17
- package/dist/esm/codecs/vvc.js.map +1 -1
- package/dist/esm/constant.d.ts +5 -7
- package/dist/esm/constant.js +5 -9
- package/dist/esm/constant.js.map +1 -1
- package/dist/esm/enum.d.ts +9 -1
- package/dist/esm/enum.js +3 -1
- package/dist/esm/enum.js.map +1 -1
- package/dist/esm/error.js.map +1 -1
- package/dist/esm/function/analyzeAVFormat.d.ts +2 -2
- package/dist/esm/function/analyzeAVFormat.js.map +1 -1
- package/dist/esm/function/analyzeUrlIOLoader.d.ts +2 -2
- package/dist/esm/function/analyzeUrlIOLoader.js +2 -10
- package/dist/esm/function/analyzeUrlIOLoader.js.map +1 -1
- package/dist/esm/function/audioData2AVFrame.d.ts +1 -1
- package/dist/esm/function/audioData2AVFrame.js +6 -6
- package/dist/esm/function/audioData2AVFrame.js.map +1 -1
- package/dist/esm/function/avPCMBuffer2AVFrame.d.ts +2 -2
- package/dist/esm/function/avPCMBuffer2AVFrame.js +9 -9
- package/dist/esm/function/avPCMBuffer2AVFrame.js.map +1 -1
- package/dist/esm/function/avframe2AudioData.d.ts +1 -1
- package/dist/esm/function/avframe2AudioData.js +6 -8
- package/dist/esm/function/avframe2AudioData.js.map +1 -1
- package/dist/esm/function/avframe2VideoFrame.d.ts +3 -3
- package/dist/esm/function/avframe2VideoFrame.js +14 -79
- package/dist/esm/function/avframe2VideoFrame.js.map +1 -1
- package/dist/esm/function/avpacket2EncodedAudioChunk.d.ts +1 -1
- package/dist/esm/function/avpacket2EncodedAudioChunk.js +5 -7
- package/dist/esm/function/avpacket2EncodedAudioChunk.js.map +1 -1
- package/dist/esm/function/avpacket2EncodedVideoChunk.d.ts +1 -1
- package/dist/esm/function/avpacket2EncodedVideoChunk.js +5 -7
- package/dist/esm/function/avpacket2EncodedVideoChunk.js.map +1 -1
- package/dist/esm/function/compileResource.d.ts +1 -1
- package/dist/esm/function/compileResource.js +2 -4
- package/dist/esm/function/compileResource.js.map +1 -1
- package/dist/esm/function/constant/webcodecs.d.ts +5 -0
- package/dist/esm/function/constant/webcodecs.js +51 -0
- package/dist/esm/function/constant/webcodecs.js.map +1 -0
- package/dist/esm/function/encodedAudioChunk2AVPacket.d.ts +1 -1
- package/dist/esm/function/encodedAudioChunk2AVPacket.js +6 -6
- package/dist/esm/function/encodedAudioChunk2AVPacket.js.map +1 -1
- package/dist/esm/function/encodedVideoChunk2AVPacket.d.ts +1 -1
- package/dist/esm/function/encodedVideoChunk2AVPacket.js +7 -7
- package/dist/esm/function/encodedVideoChunk2AVPacket.js.map +1 -1
- package/dist/esm/function/getAudioCodec.d.ts +1 -1
- package/dist/esm/function/getAudioCodec.js +2 -2
- package/dist/esm/function/getAudioCodec.js.map +1 -1
- package/dist/esm/function/getAudioMimeType.d.ts +2 -0
- package/dist/esm/function/getAudioMimeType.js +12 -0
- package/dist/esm/function/getAudioMimeType.js.map +1 -0
- package/dist/esm/function/getHardwarePreference.js +1 -1
- package/dist/esm/function/getHardwarePreference.js.map +1 -1
- package/dist/esm/function/getVideoCodec.d.ts +1 -1
- package/dist/esm/function/getVideoCodec.js +11 -13
- package/dist/esm/function/getVideoCodec.js.map +1 -1
- package/dist/esm/function/getVideoMimeType.d.ts +2 -0
- package/dist/esm/function/getVideoMimeType.js +8 -0
- package/dist/esm/function/getVideoMimeType.js.map +1 -0
- package/dist/esm/function/getWasmUrl.d.ts +1 -1
- package/dist/esm/function/getWasmUrl.js +2 -2
- package/dist/esm/function/getWasmUrl.js.map +1 -1
- package/dist/esm/function/hasAlphaChannel.d.ts +1 -1
- package/dist/esm/function/hasAlphaChannel.js +2 -2
- package/dist/esm/function/hasAlphaChannel.js.map +1 -1
- package/dist/esm/function/isHdr.d.ts +1 -1
- package/dist/esm/function/isHdr.js +2 -2
- package/dist/esm/function/isHdr.js.map +1 -1
- package/dist/esm/function/videoFrame2AVFrame.d.ts +6 -6
- package/dist/esm/function/videoFrame2AVFrame.js +13 -74
- package/dist/esm/function/videoFrame2AVFrame.js.map +1 -1
- package/dist/esm/implement/AVFramePoolImpl.d.ts +3 -4
- package/dist/esm/implement/AVFramePoolImpl.js +5 -7
- package/dist/esm/implement/AVFramePoolImpl.js.map +1 -1
- package/dist/esm/implement/AVPCMBufferPoolImpl.d.ts +3 -4
- package/dist/esm/implement/AVPCMBufferPoolImpl.js +4 -6
- package/dist/esm/implement/AVPCMBufferPoolImpl.js.map +1 -1
- package/dist/esm/implement/AVPacketPoolImpl.d.ts +3 -4
- package/dist/esm/implement/AVPacketPoolImpl.js +5 -7
- package/dist/esm/implement/AVPacketPoolImpl.js.map +1 -1
- package/dist/esm/index.d.ts +54 -0
- package/dist/esm/index.js +98 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal.d.ts +26 -0
- package/dist/esm/internal.js +52 -0
- package/dist/esm/internal.js.map +1 -0
- package/dist/esm/pixelFormatDescriptor.d.ts +1 -1
- package/dist/esm/pixelFormatDescriptor.js +2 -0
- package/dist/esm/pixelFormatDescriptor.js.map +1 -1
- package/dist/esm/pixfmt.d.ts +9 -1
- package/dist/esm/pixfmt.js.map +1 -1
- package/dist/esm/sampleFormatDescriptor.d.ts +1 -1
- package/dist/esm/sampleFormatDescriptor.js.map +1 -1
- package/dist/esm/stringEnum.d.ts +5 -5
- package/dist/esm/stringEnum.js +4 -1
- package/dist/esm/stringEnum.js.map +1 -1
- package/dist/esm/struct/audiosample.d.ts +1 -1
- package/dist/esm/struct/audiosample.js +2 -2
- package/dist/esm/struct/audiosample.js.map +1 -1
- package/dist/esm/struct/avbuffer.d.ts +1 -1
- package/dist/esm/struct/avbuffer.js +4 -4
- package/dist/esm/struct/avbuffer.js.map +1 -1
- package/dist/esm/struct/avcodecparameters.d.ts +9 -9
- package/dist/esm/struct/avcodecparameters.js +14 -16
- package/dist/esm/struct/avcodecparameters.js.map +1 -1
- package/dist/esm/struct/avdict.js +2 -2
- package/dist/esm/struct/avdict.js.map +1 -1
- package/dist/esm/struct/avframe.d.ts +12 -12
- package/dist/esm/struct/avframe.js +18 -22
- package/dist/esm/struct/avframe.js.map +1 -1
- package/dist/esm/struct/avpacket.d.ts +4 -4
- package/dist/esm/struct/avpacket.js +7 -9
- package/dist/esm/struct/avpacket.js.map +1 -1
- package/dist/esm/struct/avpcmbuffer.d.ts +1 -1
- package/dist/esm/struct/avpcmbuffer.js +2 -2
- package/dist/esm/struct/avpcmbuffer.js.map +1 -1
- package/dist/esm/struct/avsubtitle.d.ts +2 -2
- package/dist/esm/struct/encryption.js +2 -2
- package/dist/esm/struct/encryption.js.map +1 -1
- package/dist/esm/struct/rational.d.ts +1 -1
- package/dist/esm/struct/rational.js +4 -4
- package/dist/esm/struct/rational.js.map +1 -1
- package/dist/esm/util/amf.d.ts +1 -4
- package/dist/esm/util/amf.js +1 -5
- package/dist/esm/util/amf.js.map +1 -1
- package/dist/esm/util/av1syntax.d.ts +1 -1
- package/dist/esm/util/av1syntax.js.map +1 -1
- package/dist/esm/util/avbuffer.d.ts +2 -2
- package/dist/esm/util/avbuffer.js +7 -15
- package/dist/esm/util/avbuffer.js.map +1 -1
- package/dist/esm/util/avdict.d.ts +2 -2
- package/dist/esm/util/avdict.js +12 -16
- package/dist/esm/util/avdict.js.map +1 -1
- package/dist/esm/util/avframe.d.ts +2 -2
- package/dist/esm/util/avframe.js +22 -24
- package/dist/esm/util/avframe.js.map +1 -1
- package/dist/esm/util/avpacket.d.ts +3 -3
- package/dist/esm/util/avpacket.js +11 -13
- package/dist/esm/util/avpacket.js.map +1 -1
- package/dist/esm/util/channel.d.ts +1 -1
- package/dist/esm/util/channel.js +6 -6
- package/dist/esm/util/channel.js.map +1 -1
- package/dist/esm/util/codecparameters.d.ts +3 -1
- package/dist/esm/util/codecparameters.js +16 -12
- package/dist/esm/util/codecparameters.js.map +1 -1
- package/dist/esm/util/common.js.map +1 -1
- package/dist/esm/util/encryption.d.ts +2 -2
- package/dist/esm/util/encryption.js +1 -3
- package/dist/esm/util/encryption.js.map +1 -1
- package/dist/esm/util/expgolomb.d.ts +1 -2
- package/dist/esm/util/expgolomb.js.map +1 -1
- package/dist/esm/util/intread.js +1 -1
- package/dist/esm/util/intread.js.map +1 -1
- package/dist/esm/util/intwrite.js +1 -1
- package/dist/esm/util/intwrite.js.map +1 -1
- package/dist/esm/util/mem.js +7 -7
- package/dist/esm/util/mem.js.map +1 -1
- package/dist/esm/util/nalu.d.ts +1 -1
- package/dist/esm/util/nalu.js +3 -5
- package/dist/esm/util/nalu.js.map +1 -1
- package/dist/esm/util/ntp.js.map +1 -1
- package/dist/esm/util/pcm.d.ts +1 -1
- package/dist/esm/util/pcm.js.map +1 -1
- package/dist/esm/util/pixel.d.ts +1 -1
- package/dist/esm/util/pixel.js +8 -10
- package/dist/esm/util/pixel.js.map +1 -1
- package/dist/esm/util/rational.d.ts +10 -10
- package/dist/esm/util/rational.js +4 -4
- package/dist/esm/util/rational.js.map +1 -1
- package/dist/esm/util/sample.d.ts +1 -1
- package/dist/esm/util/sample.js +7 -7
- package/dist/esm/util/sample.js.map +1 -1
- package/dist/esm/util/serialize.d.ts +9 -9
- package/dist/esm/util/serialize.js +6 -6
- package/dist/esm/util/serialize.js.map +1 -1
- package/package.json +23 -390
- package/src/AVStream.ts +677 -0
- package/src/audiosamplefmt.ts +302 -0
- package/src/avformat.ts +96 -0
- package/src/codec.ts +1016 -0
- package/src/codecs/aac.ts +429 -0
- package/src/codecs/ac3.ts +309 -0
- package/src/codecs/av1.ts +503 -0
- package/src/codecs/dts.ts +100 -0
- package/src/codecs/flac.ts +118 -0
- package/src/codecs/h264.ts +1013 -0
- package/src/codecs/hevc.ts +1049 -0
- package/src/codecs/mp3.ts +172 -0
- package/src/codecs/mpeg4.ts +37 -0
- package/src/codecs/mpegvideo.ts +49 -0
- package/src/codecs/opus.ts +148 -0
- package/src/codecs/ttml.ts +158 -0
- package/src/codecs/vp8.ts +91 -0
- package/src/codecs/vp9.ts +213 -0
- package/src/codecs/vvc.ts +1086 -0
- package/src/constant.ts +72 -0
- package/src/enum.ts +47 -0
- package/src/error.ts +45 -0
- package/src/function/analyzeAVFormat.ts +94 -0
- package/src/function/analyzeUrlIOLoader.ts +166 -0
- package/src/function/audioData2AVFrame.ts +82 -0
- package/src/function/avPCMBuffer2AVFrame.ts +111 -0
- package/src/function/avframe2AudioData.ts +131 -0
- package/src/function/avframe2VideoFrame.ts +88 -0
- package/src/function/avpacket2EncodedAudioChunk.ts +39 -0
- package/src/function/avpacket2EncodedVideoChunk.ts +39 -0
- package/src/function/compileResource.ts +57 -0
- package/src/function/constant/webcodecs.ts +81 -0
- package/src/function/encodedAudioChunk2AVPacket.ts +62 -0
- package/src/function/encodedVideoChunk2AVPacket.ts +86 -0
- package/src/function/getAudioCodec.ts +45 -0
- package/src/function/getAudioMimeType.ts +44 -0
- package/src/function/getHardwarePreference.ts +45 -0
- package/src/function/getVideoCodec.ts +244 -0
- package/src/function/getVideoMimeType.ts +35 -0
- package/src/function/getWasmUrl.ts +190 -0
- package/src/function/hasAlphaChannel.ts +37 -0
- package/src/function/isHdr.ts +44 -0
- package/src/function/videoFrame2AVFrame.ts +95 -0
- package/src/implement/AVFramePoolImpl.ts +83 -0
- package/src/implement/AVPCMBufferPoolImpl.ts +79 -0
- package/src/implement/AVPacketPoolImpl.ts +82 -0
- package/src/index.ts +264 -0
- package/src/internal.ts +71 -0
- package/src/pixelFormatDescriptor.ts +819 -0
- package/src/pixfmt.ts +1400 -0
- package/src/sampleFormatDescriptor.ts +57 -0
- package/src/stringEnum.ts +366 -0
- package/src/struct/audiosample.ts +95 -0
- package/src/struct/avbuffer.ts +139 -0
- package/src/struct/avcodecparameters.ts +243 -0
- package/src/struct/avdict.ts +44 -0
- package/src/struct/avframe.ts +663 -0
- package/src/struct/avpacket.ts +178 -0
- package/src/struct/avpcmbuffer.ts +77 -0
- package/src/struct/avsubtitle.ts +59 -0
- package/src/struct/encryption.ts +180 -0
- package/src/struct/rational.ts +43 -0
- package/src/util/amf.ts +178 -0
- package/src/util/av1syntax.ts +112 -0
- package/src/util/avbuffer.ts +294 -0
- package/src/util/avdict.ts +171 -0
- package/src/util/avframe.ts +520 -0
- package/src/util/avpacket.ts +313 -0
- package/src/util/channel.ts +66 -0
- package/src/util/codecparameters.ts +148 -0
- package/src/util/common.ts +42 -0
- package/src/util/encryption.ts +154 -0
- package/src/util/expgolomb.ts +170 -0
- package/src/util/intread.ts +60 -0
- package/src/util/intwrite.ts +71 -0
- package/src/util/mem.ts +60 -0
- package/src/util/nalu.ts +297 -0
- package/src/util/ntp.ts +32 -0
- package/src/util/pcm.ts +161 -0
- package/src/util/pixel.ts +381 -0
- package/src/util/rational.ts +152 -0
- package/src/util/sample.ts +136 -0
- package/src/util/serialize.ts +268 -0
- package/dist/cjs/AVStream.d.ts +0 -577
- package/dist/cjs/audiosamplefmt.d.ts +0 -248
- package/dist/cjs/avformat.d.ts +0 -66
- package/dist/cjs/codec.d.ts +0 -927
- package/dist/cjs/codecs/aac.d.ts +0 -121
- package/dist/cjs/codecs/ac3.d.ts +0 -72
- package/dist/cjs/codecs/av1.d.ts +0 -75
- package/dist/cjs/codecs/dts.d.ts +0 -17
- package/dist/cjs/codecs/flac.d.ts +0 -46
- package/dist/cjs/codecs/h264.d.ts +0 -188
- package/dist/cjs/codecs/hevc.d.ts +0 -220
- package/dist/cjs/codecs/mp3.d.ts +0 -17
- package/dist/cjs/codecs/mpeg4.d.ts +0 -7
- package/dist/cjs/codecs/mpegvideo.d.ts +0 -7
- package/dist/cjs/codecs/opus.d.ts +0 -26
- package/dist/cjs/codecs/ttml.d.ts +0 -9
- package/dist/cjs/codecs/ttml.js +0 -87
- package/dist/cjs/codecs/vp8.d.ts +0 -31
- package/dist/cjs/codecs/vp9.d.ts +0 -45
- package/dist/cjs/codecs/vvc.d.ts +0 -235
- package/dist/cjs/constant.d.ts +0 -36
- package/dist/cjs/enum.d.ts +0 -3285
- package/dist/cjs/error.d.ts +0 -10
- package/dist/cjs/function/analyzeAVFormat.d.ts +0 -3
- package/dist/cjs/function/analyzeUrlIOLoader.d.ts +0 -7
- package/dist/cjs/function/analyzeUrlIOLoader.js +0 -101
- package/dist/cjs/function/audioData2AVFrame.d.ts +0 -2
- package/dist/cjs/function/avPCMBuffer2AVFrame.d.ts +0 -3
- package/dist/cjs/function/avframe2AudioData.d.ts +0 -2
- package/dist/cjs/function/avframe2VideoFrame.d.ts +0 -5
- package/dist/cjs/function/avframe2VideoFrame.js +0 -146
- package/dist/cjs/function/avpacket2EncodedAudioChunk.d.ts +0 -2
- package/dist/cjs/function/avpacket2EncodedVideoChunk.d.ts +0 -2
- package/dist/cjs/function/compileResource.d.ts +0 -2
- package/dist/cjs/function/compileResource.js +0 -53
- package/dist/cjs/function/encodedAudioChunk2AVPacket.d.ts +0 -2
- package/dist/cjs/function/encodedAudioChunk2AVPacket.js +0 -23
- package/dist/cjs/function/encodedVideoChunk2AVPacket.d.ts +0 -7
- package/dist/cjs/function/getAudioCodec.d.ts +0 -2
- package/dist/cjs/function/getHardwarePreference.d.ts +0 -1
- package/dist/cjs/function/getHardwarePreference.js +0 -16
- package/dist/cjs/function/getVideoCodec.d.ts +0 -2
- package/dist/cjs/function/getWasmUrl.d.ts +0 -2
- package/dist/cjs/function/hasAlphaChannel.d.ts +0 -2
- package/dist/cjs/function/isHdr.d.ts +0 -2
- package/dist/cjs/function/videoFrame2AVFrame.d.ts +0 -7
- package/dist/cjs/function/videoFrame2AVFrame.js +0 -113
- package/dist/cjs/implement/AVFramePoolImpl.d.ts +0 -11
- package/dist/cjs/implement/AVFramePoolImpl.js +0 -59
- package/dist/cjs/implement/AVPCMBufferPoolImpl.d.ts +0 -11
- package/dist/cjs/implement/AVPCMBufferPoolImpl.js +0 -57
- package/dist/cjs/implement/AVPacketPoolImpl.d.ts +0 -11
- package/dist/cjs/implement/AVPacketPoolImpl.js +0 -60
- package/dist/cjs/pixelFormatDescriptor.d.ts +0 -100
- package/dist/cjs/pixfmt.d.ts +0 -1293
- package/dist/cjs/sampleFormatDescriptor.d.ts +0 -6
- package/dist/cjs/stringEnum.d.ts +0 -161
- package/dist/cjs/struct/audiosample.d.ts +0 -64
- package/dist/cjs/struct/avbuffer.d.ts +0 -85
- package/dist/cjs/struct/avcodecparameters.d.ts +0 -181
- package/dist/cjs/struct/avdict.d.ts +0 -17
- package/dist/cjs/struct/avframe.d.ts +0 -559
- package/dist/cjs/struct/avpacket.d.ts +0 -124
- package/dist/cjs/struct/avpcmbuffer.d.ts +0 -49
- package/dist/cjs/struct/avsubtitle.d.ts +0 -30
- package/dist/cjs/struct/encryption.d.ts +0 -137
- package/dist/cjs/struct/rational.d.ts +0 -15
- package/dist/cjs/struct/rational.js +0 -43
- package/dist/cjs/util/amf.d.ts +0 -10
- package/dist/cjs/util/av1syntax.d.ts +0 -9
- package/dist/cjs/util/avbuffer.d.ts +0 -18
- package/dist/cjs/util/avbuffer.js +0 -153
- package/dist/cjs/util/avdict.d.ts +0 -9
- package/dist/cjs/util/avdict.js +0 -111
- package/dist/cjs/util/avframe.d.ts +0 -21
- package/dist/cjs/util/avpacket.d.ts +0 -24
- package/dist/cjs/util/channel.d.ts +0 -5
- package/dist/cjs/util/codecparameters.d.ts +0 -4
- package/dist/cjs/util/codecparameters.js +0 -70
- package/dist/cjs/util/common.d.ts +0 -3
- package/dist/cjs/util/crypto.d.ts +0 -1
- package/dist/cjs/util/crypto.js +0 -8
- package/dist/cjs/util/crypto.js.map +0 -1
- package/dist/cjs/util/encryption.d.ts +0 -6
- package/dist/cjs/util/expgolomb.d.ts +0 -26
- package/dist/cjs/util/intread.d.ts +0 -9
- package/dist/cjs/util/intwrite.d.ts +0 -9
- package/dist/cjs/util/mem.d.ts +0 -5
- package/dist/cjs/util/mem.js +0 -54
- package/dist/cjs/util/nalu.d.ts +0 -32
- package/dist/cjs/util/ntp.d.ts +0 -1
- package/dist/cjs/util/pcm.d.ts +0 -4
- package/dist/cjs/util/pixel.d.ts +0 -11
- package/dist/cjs/util/rational.d.ts +0 -58
- package/dist/cjs/util/sample.d.ts +0 -7
- package/dist/cjs/util/serialize.d.ts +0 -63
- package/dist/esm/util/crypto.d.ts +0 -1
- package/dist/esm/util/crypto.js +0 -4
- package/dist/esm/util/crypto.js.map +0 -1
- /package/dist/cjs/{audiosamplefmt.js → audiosamplefmt.cjs} +0 -0
- /package/dist/cjs/{avformat.js → avformat.cjs} +0 -0
- /package/dist/cjs/{codec.js → codec.cjs} +0 -0
- /package/dist/cjs/{error.js → error.cjs} +0 -0
- /package/dist/cjs/function/{analyzeAVFormat.js → analyzeAVFormat.cjs} +0 -0
- /package/dist/cjs/{pixfmt.js → pixfmt.cjs} +0 -0
- /package/dist/cjs/{sampleFormatDescriptor.js → sampleFormatDescriptor.cjs} +0 -0
- /package/dist/cjs/struct/{avsubtitle.js → avsubtitle.cjs} +0 -0
- /package/dist/cjs/util/{av1syntax.js → av1syntax.cjs} +0 -0
- /package/dist/cjs/util/{common.js → common.cjs} +0 -0
- /package/dist/cjs/util/{expgolomb.js → expgolomb.cjs} +0 -0
- /package/dist/cjs/util/{ntp.js → ntp.cjs} +0 -0
- /package/dist/cjs/util/{pcm.js → pcm.cjs} +0 -0
package/src/util/nalu.ts
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia nalu util
|
|
3
|
+
*
|
|
4
|
+
* 版权所有 (C) 2024 赵高兴
|
|
5
|
+
* Copyright (C) 2024 Gaoxing Zhao
|
|
6
|
+
*
|
|
7
|
+
* 此文件是 libmedia 的一部分
|
|
8
|
+
* This file is part of libmedia.
|
|
9
|
+
*
|
|
10
|
+
* libmedia 是自由软件;您可以根据 GNU Lesser General Public License(GNU LGPL)3.1
|
|
11
|
+
* 或任何其更新的版本条款重新分发或修改它
|
|
12
|
+
* libmedia is free software; you can redistribute it and/or
|
|
13
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
14
|
+
* License as published by the Free Software Foundation; either
|
|
15
|
+
* version 3.1 of the License, or (at your option) any later version.
|
|
16
|
+
*
|
|
17
|
+
* libmedia 希望能够为您提供帮助,但不提供任何明示或暗示的担保,包括但不限于适销性或特定用途的保证
|
|
18
|
+
* 您应自行承担使用 libmedia 的风险,并且需要遵守 GNU Lesser General Public License 中的条款和条件。
|
|
19
|
+
* libmedia is distributed in the hope that it will be useful,
|
|
20
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
21
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
22
|
+
* Lesser General Public License for more details.
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import { SafeUint8Array } from '@libmedia/cheap'
|
|
27
|
+
|
|
28
|
+
import { array } from '@libmedia/common'
|
|
29
|
+
|
|
30
|
+
import {
|
|
31
|
+
BufferWriter,
|
|
32
|
+
BufferReader,
|
|
33
|
+
type Uint8ArrayInterface
|
|
34
|
+
} from '@libmedia/common/io'
|
|
35
|
+
|
|
36
|
+
export function isAnnexb(data: Uint8ArrayInterface) {
|
|
37
|
+
return data.length > 4
|
|
38
|
+
&& data[0] === 0
|
|
39
|
+
&& data[1] === 0
|
|
40
|
+
&& (
|
|
41
|
+
data[2] === 1
|
|
42
|
+
|| data[2] === 0 && data[3] === 1
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function getNextNaluStart(data: Uint8ArrayInterface, offset: number) {
|
|
47
|
+
let t = 0
|
|
48
|
+
for (let i = offset; i < data.length; i++) {
|
|
49
|
+
switch (data[i]) {
|
|
50
|
+
case 0:
|
|
51
|
+
t++
|
|
52
|
+
break
|
|
53
|
+
case 1:
|
|
54
|
+
if (t >= 2) {
|
|
55
|
+
return {
|
|
56
|
+
offset: i - Math.min(t, 3),
|
|
57
|
+
startCode: Math.min(t + 1, 4)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
t = 0
|
|
61
|
+
break
|
|
62
|
+
default:
|
|
63
|
+
t = 0
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
offset: -1,
|
|
68
|
+
startCode: 0
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export function splitNaluByStartCode<T extends Uint8ArrayInterface>(buffer: T): T[] {
|
|
73
|
+
const list = []
|
|
74
|
+
let offset = 0
|
|
75
|
+
if (buffer instanceof SafeUint8Array) {
|
|
76
|
+
buffer = buffer.subarray(0, buffer.length, false) as T
|
|
77
|
+
}
|
|
78
|
+
let current = getNextNaluStart(buffer, offset)
|
|
79
|
+
let next = {
|
|
80
|
+
offset: -1,
|
|
81
|
+
startCode: 0
|
|
82
|
+
}
|
|
83
|
+
while (next = getNextNaluStart(buffer, current.offset + current.startCode), next.offset > -1) {
|
|
84
|
+
list.push(buffer.subarray(current.offset + current.startCode, next.offset, true))
|
|
85
|
+
current = next
|
|
86
|
+
}
|
|
87
|
+
list.push(buffer.subarray(current.offset + current.startCode, undefined, true))
|
|
88
|
+
|
|
89
|
+
return list
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function splitNaluByLength<T extends Uint8ArrayInterface>(buffer: T, naluLengthSizeMinusOne: int32): T[] {
|
|
93
|
+
const list = []
|
|
94
|
+
const bufferReader = new BufferReader(buffer)
|
|
95
|
+
while (bufferReader.remainingSize() > 0) {
|
|
96
|
+
let length = 0
|
|
97
|
+
if (naluLengthSizeMinusOne === 3) {
|
|
98
|
+
length = bufferReader.readUint32()
|
|
99
|
+
}
|
|
100
|
+
else if (naluLengthSizeMinusOne === 2) {
|
|
101
|
+
length = bufferReader.readUint24()
|
|
102
|
+
}
|
|
103
|
+
else if (naluLengthSizeMinusOne === 1) {
|
|
104
|
+
length = bufferReader.readUint16()
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
length = bufferReader.readUint8()
|
|
108
|
+
}
|
|
109
|
+
const nalu = buffer.subarray(static_cast<int32>(bufferReader.getPos()), static_cast<int32>(bufferReader.getPos()) + length, true)
|
|
110
|
+
bufferReader.skip(length)
|
|
111
|
+
list.push(nalu)
|
|
112
|
+
}
|
|
113
|
+
return list
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
*
|
|
118
|
+
* @param nalus
|
|
119
|
+
* @param mode 模式
|
|
120
|
+
* - 0 全使用 0x00000001 分割
|
|
121
|
+
* - 1 全使用 0x000001 分割
|
|
122
|
+
* - 2 第一个使用 0x00000001,后面的使用 0x000001 分割
|
|
123
|
+
* @returns
|
|
124
|
+
*/
|
|
125
|
+
export function joinNaluByStartCodeLength(nalus: Uint8ArrayInterface[], mode: int32) {
|
|
126
|
+
return nalus.reduce((prev, nalu, index) => {
|
|
127
|
+
if (mode === 0) {
|
|
128
|
+
return prev + 4 + nalu.length
|
|
129
|
+
}
|
|
130
|
+
else if ( mode === 1) {
|
|
131
|
+
return prev + 3 + nalu.length
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
return prev + (index ? 3 : 4) + nalu.length
|
|
135
|
+
}
|
|
136
|
+
}, 0)
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
*
|
|
141
|
+
* @param nalus
|
|
142
|
+
* @param mode 模式
|
|
143
|
+
* - 0 全使用 0x00000001 分割
|
|
144
|
+
* - 1 全使用 0x000001 分割
|
|
145
|
+
* - 2 第一个使用 0x00000001,后面的使用 0x000001 分割
|
|
146
|
+
* @param output
|
|
147
|
+
* @returns
|
|
148
|
+
*/
|
|
149
|
+
export function joinNaluByStartCode(nalus: Uint8ArrayInterface[], mode: int32, output?: Uint8Array): Uint8Array {
|
|
150
|
+
if (!output) {
|
|
151
|
+
let length = nalus.reduce((prev, nalu, index) => {
|
|
152
|
+
if (mode === 0) {
|
|
153
|
+
return prev + 4 + nalu.length
|
|
154
|
+
}
|
|
155
|
+
else if ( mode === 1) {
|
|
156
|
+
return prev + 3 + nalu.length
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
return prev + (index ? 3 : 4) + nalu.length
|
|
160
|
+
}
|
|
161
|
+
}, 0)
|
|
162
|
+
output = new Uint8Array(length)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const bufferWriter = new BufferWriter(output)
|
|
166
|
+
|
|
167
|
+
array.each(nalus, (nalu, index) => {
|
|
168
|
+
bufferWriter.writeUint8(0x00)
|
|
169
|
+
bufferWriter.writeUint8(0x00)
|
|
170
|
+
if (mode === 0 || (mode === 2 && !index)) {
|
|
171
|
+
bufferWriter.writeUint8(0x00)
|
|
172
|
+
}
|
|
173
|
+
bufferWriter.writeUint8(0x01)
|
|
174
|
+
bufferWriter.writeBuffer(nalu)
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
return output
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export function joinNaluByLength(nalus: Uint8ArrayInterface[], naluLengthSizeMinusOne: int32, output?: Uint8Array): Uint8Array {
|
|
181
|
+
if (!output) {
|
|
182
|
+
const length = nalus.reduce((prev, nalu) => {
|
|
183
|
+
return prev + naluLengthSizeMinusOne + 1 + nalu.length
|
|
184
|
+
}, 0)
|
|
185
|
+
output = new Uint8Array(length)
|
|
186
|
+
}
|
|
187
|
+
const bufferWriter = new BufferWriter(output)
|
|
188
|
+
|
|
189
|
+
array.each(nalus, (nalu) => {
|
|
190
|
+
if (naluLengthSizeMinusOne === 3) {
|
|
191
|
+
bufferWriter.writeUint32(nalu.length)
|
|
192
|
+
}
|
|
193
|
+
else if (naluLengthSizeMinusOne === 2) {
|
|
194
|
+
bufferWriter.writeUint24(nalu.length)
|
|
195
|
+
}
|
|
196
|
+
else if (naluLengthSizeMinusOne === 1) {
|
|
197
|
+
bufferWriter.writeUint16(nalu.length)
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
bufferWriter.writeUint8(nalu.length)
|
|
201
|
+
}
|
|
202
|
+
bufferWriter.writeBuffer(nalu)
|
|
203
|
+
})
|
|
204
|
+
return output
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export function naluUnescape(data: Uint8Array, start = 0, end?: number) {
|
|
208
|
+
|
|
209
|
+
if (!end) {
|
|
210
|
+
end = data.length
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const buffer = new Uint8Array(data.length)
|
|
214
|
+
|
|
215
|
+
let zeroCount = 0
|
|
216
|
+
let pos = 0
|
|
217
|
+
for (let i = 0; i < data.length; i++) {
|
|
218
|
+
if (i >= start && i < end) {
|
|
219
|
+
if (data[i] === 0) {
|
|
220
|
+
zeroCount++
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
if (data[i] === 3 && zeroCount === 2 && i + 1 < data.length && data[i + 1] <= 3) {
|
|
224
|
+
i++
|
|
225
|
+
if (i === data.length) {
|
|
226
|
+
break
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
if (data[i] === 0) {
|
|
230
|
+
zeroCount = 1
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
zeroCount = 0
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
zeroCount = 0
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
buffer[pos++] = data[i]
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
return buffer.slice(0, pos)
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
export function naluEscape(data: Uint8Array, start: number = 0, end?: number) {
|
|
249
|
+
if (!end) {
|
|
250
|
+
end = data.length
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
const indexes = []
|
|
254
|
+
let zeroCount = 0
|
|
255
|
+
for (let i = start; i < end; i++) {
|
|
256
|
+
|
|
257
|
+
if (i >= end) {
|
|
258
|
+
break
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
if (data[i] === 0) {
|
|
262
|
+
zeroCount++
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
if (data[i] <= 3 && zeroCount === 2) {
|
|
266
|
+
indexes.push(i)
|
|
267
|
+
}
|
|
268
|
+
zeroCount = 0
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (indexes.length) {
|
|
273
|
+
const buffer = new Uint8Array(data.length + indexes.length)
|
|
274
|
+
let pos = 0
|
|
275
|
+
let subData = data.subarray(0, indexes[0])
|
|
276
|
+
buffer.set(subData, pos)
|
|
277
|
+
pos += subData.length
|
|
278
|
+
|
|
279
|
+
buffer[pos++] = 3
|
|
280
|
+
|
|
281
|
+
for (let i = 1; i < indexes.length; i++) {
|
|
282
|
+
subData = data.subarray(indexes[i - 1], indexes[i])
|
|
283
|
+
buffer.set(subData, pos)
|
|
284
|
+
pos += subData.length
|
|
285
|
+
buffer[pos++] = 3
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
subData = data.subarray(indexes[indexes.length - 1], data.length)
|
|
289
|
+
buffer.set(subData, pos)
|
|
290
|
+
pos += subData.length
|
|
291
|
+
|
|
292
|
+
return buffer
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
return data
|
|
296
|
+
}
|
|
297
|
+
}
|
package/src/util/ntp.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia ntp util
|
|
3
|
+
*
|
|
4
|
+
* 版权所有 (C) 2024 赵高兴
|
|
5
|
+
* Copyright (C) 2024 Gaoxing Zhao
|
|
6
|
+
*
|
|
7
|
+
* 此文件是 libmedia 的一部分
|
|
8
|
+
* This file is part of libmedia.
|
|
9
|
+
*
|
|
10
|
+
* libmedia 是自由软件;您可以根据 GNU Lesser General Public License(GNU LGPL)3.1
|
|
11
|
+
* 或任何其更新的版本条款重新分发或修改它
|
|
12
|
+
* libmedia is free software; you can redistribute it and/or
|
|
13
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
14
|
+
* License as published by the Free Software Foundation; either
|
|
15
|
+
* version 3.1 of the License, or (at your option) any later version.
|
|
16
|
+
*
|
|
17
|
+
* libmedia 希望能够为您提供帮助,但不提供任何明示或暗示的担保,包括但不限于适销性或特定用途的保证
|
|
18
|
+
* 您应自行承担使用 libmedia 的风险,并且需要遵守 GNU Lesser General Public License 中的条款和条件。
|
|
19
|
+
* libmedia is distributed in the hope that it will be useful,
|
|
20
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
21
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
22
|
+
* Lesser General Public License for more details.
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
export function parse(ntp: uint64) {
|
|
28
|
+
const sec = ntp >> 32n
|
|
29
|
+
const fracPart = ntp & 0xFFFFFFFFn
|
|
30
|
+
const usec = (fracPart * 1000000n) / 0xFFFFFFFFn
|
|
31
|
+
return (sec * 1000000n) + usec
|
|
32
|
+
}
|
package/src/util/pcm.ts
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia pcm util
|
|
3
|
+
*
|
|
4
|
+
* 版权所有 (C) 2024 赵高兴
|
|
5
|
+
* Copyright (C) 2024 Gaoxing Zhao
|
|
6
|
+
*
|
|
7
|
+
* 此文件是 libmedia 的一部分
|
|
8
|
+
* This file is part of libmedia.
|
|
9
|
+
*
|
|
10
|
+
* libmedia 是自由软件;您可以根据 GNU Lesser General Public License(GNU LGPL)3.1
|
|
11
|
+
* 或任何其更新的版本条款重新分发或修改它
|
|
12
|
+
* libmedia is free software; you can redistribute it and/or
|
|
13
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
14
|
+
* License as published by the Free Software Foundation; either
|
|
15
|
+
* version 3.1 of the License, or (at your option) any later version.
|
|
16
|
+
*
|
|
17
|
+
* libmedia 希望能够为您提供帮助,但不提供任何明示或暗示的担保,包括但不限于适销性或特定用途的保证
|
|
18
|
+
* 您应自行承担使用 libmedia 的风险,并且需要遵守 GNU Lesser General Public License 中的条款和条件。
|
|
19
|
+
* libmedia is distributed in the hope that it will be useful,
|
|
20
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
21
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
22
|
+
* Lesser General Public License for more details.
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import { AVCodecID } from '../codec'
|
|
27
|
+
|
|
28
|
+
export function getPcmCodecId(bps: int32, flt: boolean, be: boolean, flags: int32) {
|
|
29
|
+
if (bps <= 0 || bps > 64) {
|
|
30
|
+
return AVCodecID.AV_CODEC_ID_NONE
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (flt) {
|
|
34
|
+
switch (bps) {
|
|
35
|
+
case 32:
|
|
36
|
+
return be ? AVCodecID.AV_CODEC_ID_PCM_F32BE : AVCodecID.AV_CODEC_ID_PCM_F32LE
|
|
37
|
+
case 64:
|
|
38
|
+
return be ? AVCodecID.AV_CODEC_ID_PCM_F64BE : AVCodecID.AV_CODEC_ID_PCM_F64LE
|
|
39
|
+
default:
|
|
40
|
+
return AVCodecID.AV_CODEC_ID_NONE
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
bps += 7
|
|
45
|
+
bps >>>= 3
|
|
46
|
+
|
|
47
|
+
if (flags & (1 << (bps - 1))) {
|
|
48
|
+
switch (bps) {
|
|
49
|
+
case 1:
|
|
50
|
+
return AVCodecID.AV_CODEC_ID_PCM_S8
|
|
51
|
+
case 2:
|
|
52
|
+
return be ? AVCodecID.AV_CODEC_ID_PCM_S16BE : AVCodecID.AV_CODEC_ID_PCM_S16LE
|
|
53
|
+
case 3:
|
|
54
|
+
return be ? AVCodecID.AV_CODEC_ID_PCM_S24BE : AVCodecID.AV_CODEC_ID_PCM_S24LE
|
|
55
|
+
case 4:
|
|
56
|
+
return be ? AVCodecID.AV_CODEC_ID_PCM_S32BE : AVCodecID.AV_CODEC_ID_PCM_S32LE
|
|
57
|
+
case 8:
|
|
58
|
+
return be ? AVCodecID.AV_CODEC_ID_PCM_S64BE : AVCodecID.AV_CODEC_ID_PCM_S64LE
|
|
59
|
+
default:
|
|
60
|
+
return AVCodecID.AV_CODEC_ID_NONE
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
switch (bps) {
|
|
65
|
+
case 1:
|
|
66
|
+
return AVCodecID.AV_CODEC_ID_PCM_U8
|
|
67
|
+
case 2:
|
|
68
|
+
return be ? AVCodecID.AV_CODEC_ID_PCM_U16BE : AVCodecID.AV_CODEC_ID_PCM_U16LE
|
|
69
|
+
case 3:
|
|
70
|
+
return be ? AVCodecID.AV_CODEC_ID_PCM_U24BE : AVCodecID.AV_CODEC_ID_PCM_U24LE
|
|
71
|
+
case 4:
|
|
72
|
+
return be ? AVCodecID.AV_CODEC_ID_PCM_U32BE : AVCodecID.AV_CODEC_ID_PCM_U32LE
|
|
73
|
+
default:
|
|
74
|
+
return AVCodecID.AV_CODEC_ID_NONE
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function getExactBitsPerSample(codecId: AVCodecID) {
|
|
81
|
+
switch (codecId) {
|
|
82
|
+
case AVCodecID.AV_CODEC_ID_8SVX_EXP:
|
|
83
|
+
case AVCodecID.AV_CODEC_ID_8SVX_FIB:
|
|
84
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_ARGO:
|
|
85
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_CT:
|
|
86
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_ALP:
|
|
87
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_AMV:
|
|
88
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_APC:
|
|
89
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_APM:
|
|
90
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_EA_SEAD:
|
|
91
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_OKI:
|
|
92
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_WS:
|
|
93
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_SSI:
|
|
94
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_G722:
|
|
95
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_YAMAHA:
|
|
96
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_AICA:
|
|
97
|
+
return 4
|
|
98
|
+
case AVCodecID.AV_CODEC_ID_DSD_LSBF:
|
|
99
|
+
case AVCodecID.AV_CODEC_ID_DSD_MSBF:
|
|
100
|
+
case AVCodecID.AV_CODEC_ID_DSD_LSBF_PLANAR:
|
|
101
|
+
case AVCodecID.AV_CODEC_ID_DSD_MSBF_PLANAR:
|
|
102
|
+
case AVCodecID.AV_CODEC_ID_PCM_ALAW:
|
|
103
|
+
case AVCodecID.AV_CODEC_ID_PCM_MULAW:
|
|
104
|
+
case AVCodecID.AV_CODEC_ID_PCM_VIDC:
|
|
105
|
+
case AVCodecID.AV_CODEC_ID_PCM_S8:
|
|
106
|
+
case AVCodecID.AV_CODEC_ID_PCM_S8_PLANAR:
|
|
107
|
+
case AVCodecID.AV_CODEC_ID_PCM_SGA:
|
|
108
|
+
case AVCodecID.AV_CODEC_ID_PCM_U8:
|
|
109
|
+
case AVCodecID.AV_CODEC_ID_SDX2_DPCM:
|
|
110
|
+
case AVCodecID.AV_CODEC_ID_DERF_DPCM:
|
|
111
|
+
return 8
|
|
112
|
+
case AVCodecID.AV_CODEC_ID_PCM_S16BE:
|
|
113
|
+
case AVCodecID.AV_CODEC_ID_PCM_S16BE_PLANAR:
|
|
114
|
+
case AVCodecID.AV_CODEC_ID_PCM_S16LE:
|
|
115
|
+
case AVCodecID.AV_CODEC_ID_PCM_S16LE_PLANAR:
|
|
116
|
+
case AVCodecID.AV_CODEC_ID_PCM_U16BE:
|
|
117
|
+
case AVCodecID.AV_CODEC_ID_PCM_U16LE:
|
|
118
|
+
return 16
|
|
119
|
+
case AVCodecID.AV_CODEC_ID_PCM_S24DAUD:
|
|
120
|
+
case AVCodecID.AV_CODEC_ID_PCM_S24BE:
|
|
121
|
+
case AVCodecID.AV_CODEC_ID_PCM_S24LE:
|
|
122
|
+
case AVCodecID.AV_CODEC_ID_PCM_S24LE_PLANAR:
|
|
123
|
+
case AVCodecID.AV_CODEC_ID_PCM_U24BE:
|
|
124
|
+
case AVCodecID.AV_CODEC_ID_PCM_U24LE:
|
|
125
|
+
return 24
|
|
126
|
+
case AVCodecID.AV_CODEC_ID_PCM_S32BE:
|
|
127
|
+
case AVCodecID.AV_CODEC_ID_PCM_S32LE:
|
|
128
|
+
case AVCodecID.AV_CODEC_ID_PCM_S32LE_PLANAR:
|
|
129
|
+
case AVCodecID.AV_CODEC_ID_PCM_U32BE:
|
|
130
|
+
case AVCodecID.AV_CODEC_ID_PCM_U32LE:
|
|
131
|
+
case AVCodecID.AV_CODEC_ID_PCM_F32BE:
|
|
132
|
+
case AVCodecID.AV_CODEC_ID_PCM_F32LE:
|
|
133
|
+
case AVCodecID.AV_CODEC_ID_PCM_F24LE:
|
|
134
|
+
case AVCodecID.AV_CODEC_ID_PCM_F16LE:
|
|
135
|
+
return 32
|
|
136
|
+
case AVCodecID.AV_CODEC_ID_PCM_F64BE:
|
|
137
|
+
case AVCodecID.AV_CODEC_ID_PCM_F64LE:
|
|
138
|
+
case AVCodecID.AV_CODEC_ID_PCM_S64BE:
|
|
139
|
+
case AVCodecID.AV_CODEC_ID_PCM_S64LE:
|
|
140
|
+
return 64
|
|
141
|
+
default:
|
|
142
|
+
return 0
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export function getBitsPerSample(codecId: AVCodecID) {
|
|
147
|
+
switch (codecId) {
|
|
148
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_SBPRO_2:
|
|
149
|
+
return 2
|
|
150
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_SBPRO_3:
|
|
151
|
+
return 3
|
|
152
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_SBPRO_4:
|
|
153
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_WAV:
|
|
154
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_IMA_QT:
|
|
155
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_SWF:
|
|
156
|
+
case AVCodecID.AV_CODEC_ID_ADPCM_MS:
|
|
157
|
+
return 4
|
|
158
|
+
default:
|
|
159
|
+
return getExactBitsPerSample(codecId)
|
|
160
|
+
}
|
|
161
|
+
}
|