@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
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia encryption 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 type { EncryptionInfo, EncryptionInitInfo } from '../struct/encryption'
|
|
27
|
+
|
|
28
|
+
import {
|
|
29
|
+
BufferReader,
|
|
30
|
+
BufferWriter,
|
|
31
|
+
type Uint8ArrayInterface
|
|
32
|
+
} from '@libmedia/common/io'
|
|
33
|
+
|
|
34
|
+
// The format of the AVEncryptionInfo side data:
|
|
35
|
+
// u32be scheme
|
|
36
|
+
// u32be crypt_byte_block
|
|
37
|
+
// u32be skip_byte_block
|
|
38
|
+
// u32be key_id_size
|
|
39
|
+
// u32be iv_size
|
|
40
|
+
// u32be subsample_count
|
|
41
|
+
// u8[key_id_size] key_id
|
|
42
|
+
// u8[iv_size] iv
|
|
43
|
+
// {
|
|
44
|
+
// u32be bytes_of_clear_data
|
|
45
|
+
// u32be bytes_of_protected_data
|
|
46
|
+
// }[subsample_count]
|
|
47
|
+
|
|
48
|
+
export function encryptionSideData2Info(buffer: Uint8ArrayInterface): EncryptionInfo {
|
|
49
|
+
const bufferReader = new BufferReader(buffer, true)
|
|
50
|
+
|
|
51
|
+
const scheme = bufferReader.readUint32()
|
|
52
|
+
const cryptByteBlock = bufferReader.readUint32()
|
|
53
|
+
const skipByteBlock = bufferReader.readUint32()
|
|
54
|
+
const keyIdSize = bufferReader.readUint32()
|
|
55
|
+
const ivSize = bufferReader.readUint32()
|
|
56
|
+
const subsampleCount = bufferReader.readUint32()
|
|
57
|
+
const info: EncryptionInfo = {
|
|
58
|
+
scheme,
|
|
59
|
+
cryptByteBlock,
|
|
60
|
+
skipByteBlock,
|
|
61
|
+
keyId: bufferReader.readBuffer(keyIdSize),
|
|
62
|
+
iv: bufferReader.readBuffer(ivSize),
|
|
63
|
+
subsamples: []
|
|
64
|
+
}
|
|
65
|
+
if (subsampleCount) {
|
|
66
|
+
for (let i = 0; i < subsampleCount; i++) {
|
|
67
|
+
info.subsamples.push({
|
|
68
|
+
bytesOfClearData: bufferReader.readUint32(),
|
|
69
|
+
bytesOfProtectedData: bufferReader.readUint32()
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return info
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function encryptionInfo2SideData(info: EncryptionInfo): Uint8Array {
|
|
77
|
+
const buffer = new Uint8Array(4 * 6 + info.keyId.length + info.iv.length + info.subsamples.length * 8)
|
|
78
|
+
const writer = new BufferWriter(buffer, true)
|
|
79
|
+
writer.writeUint32(info.scheme)
|
|
80
|
+
writer.writeUint32(info.cryptByteBlock)
|
|
81
|
+
writer.writeUint32(info.skipByteBlock)
|
|
82
|
+
writer.writeUint32(info.keyId.length)
|
|
83
|
+
writer.writeUint32(info.iv.length)
|
|
84
|
+
writer.writeUint32(info.subsamples.length)
|
|
85
|
+
writer.writeBuffer(info.keyId)
|
|
86
|
+
writer.writeBuffer(info.iv)
|
|
87
|
+
info.subsamples.forEach((item) => {
|
|
88
|
+
writer.writeUint32(item.bytesOfClearData)
|
|
89
|
+
writer.writeUint32(item.bytesOfProtectedData)
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
return buffer
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// The format of the AVEncryptionInitInfo side data:
|
|
96
|
+
// u32be init_info_count
|
|
97
|
+
// {
|
|
98
|
+
// u32be system_id_size
|
|
99
|
+
// u32be num_key_ids
|
|
100
|
+
// u32be key_id_size
|
|
101
|
+
// u32be data_size
|
|
102
|
+
// u8[system_id_size] system_id
|
|
103
|
+
// u8[key_id_size][num_key_id] key_ids
|
|
104
|
+
// u8[data_size] data
|
|
105
|
+
// }[init_info_count]
|
|
106
|
+
|
|
107
|
+
export function encryptionSideData2InitInfo(buffer: Uint8ArrayInterface): EncryptionInitInfo[] {
|
|
108
|
+
const bufferReader = new BufferReader(buffer, true)
|
|
109
|
+
|
|
110
|
+
const count = bufferReader.readUint32()
|
|
111
|
+
|
|
112
|
+
const infos: EncryptionInitInfo[] = []
|
|
113
|
+
for (let i = 0; i < count; i++) {
|
|
114
|
+
const systemIdSize = bufferReader.readUint32()
|
|
115
|
+
const numKeyIds = bufferReader.readUint32()
|
|
116
|
+
const keyIdSize = bufferReader.readUint32()
|
|
117
|
+
const dataSize = bufferReader.readUint32()
|
|
118
|
+
const info: EncryptionInitInfo = {
|
|
119
|
+
systemId: bufferReader.readBuffer(systemIdSize),
|
|
120
|
+
keyIds: [],
|
|
121
|
+
data: null
|
|
122
|
+
}
|
|
123
|
+
if (numKeyIds) {
|
|
124
|
+
for (let i = 0; i < numKeyIds; i++) {
|
|
125
|
+
info.keyIds.push(bufferReader.readBuffer(keyIdSize))
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
info.data = bufferReader.readBuffer(dataSize)
|
|
129
|
+
infos.push(info)
|
|
130
|
+
}
|
|
131
|
+
return infos
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export function encryptionInitInfo2SideData(infos: EncryptionInitInfo[]): Uint8Array {
|
|
135
|
+
let size = 4
|
|
136
|
+
infos.forEach((info) => {
|
|
137
|
+
size += 4 * 4 + info.systemId.length + info.keyIds.length * (info.keyIds.length ? info.keyIds[0].length : 0) + info.data.length
|
|
138
|
+
})
|
|
139
|
+
const buffer = new Uint8Array(size)
|
|
140
|
+
const writer = new BufferWriter(buffer, true)
|
|
141
|
+
writer.writeUint32(infos.length)
|
|
142
|
+
infos.forEach((info) => {
|
|
143
|
+
writer.writeUint32(info.systemId.length)
|
|
144
|
+
writer.writeUint32(info.keyIds.length)
|
|
145
|
+
writer.writeUint32(info.keyIds.length ? info.keyIds[0].length : 0)
|
|
146
|
+
writer.writeUint32(info.data.length)
|
|
147
|
+
writer.writeBuffer(info.systemId)
|
|
148
|
+
info.keyIds.forEach((keyId) => {
|
|
149
|
+
writer.writeBuffer(keyId)
|
|
150
|
+
})
|
|
151
|
+
writer.writeBuffer(info.data)
|
|
152
|
+
})
|
|
153
|
+
return buffer
|
|
154
|
+
}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia expgolomb 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 {
|
|
27
|
+
type BitWriter,
|
|
28
|
+
type BitReader
|
|
29
|
+
} from '@libmedia/common/io'
|
|
30
|
+
|
|
31
|
+
const UESizeTable = [
|
|
32
|
+
// 0 的二进制所需的比特个数
|
|
33
|
+
1,
|
|
34
|
+
// 1 的二进制所需的比特个数
|
|
35
|
+
1,
|
|
36
|
+
// 2~3 的二进制所需的比特个数
|
|
37
|
+
2, 2,
|
|
38
|
+
// 4~7 的二进制所需的比特个数
|
|
39
|
+
3, 3, 3, 3,
|
|
40
|
+
// 8~15 的二进制所需的比特个数
|
|
41
|
+
4, 4, 4, 4, 4, 4, 4, 4,
|
|
42
|
+
// 16~31 的二进制所需的比特个数
|
|
43
|
+
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
|
44
|
+
// 32~63 的二进制所需的比特个数
|
|
45
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
|
46
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
|
47
|
+
// 64~127 的二进制所需的比特个数
|
|
48
|
+
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
49
|
+
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
50
|
+
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
51
|
+
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
52
|
+
// 128~255 的二进制所需的比特个数
|
|
53
|
+
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
|
54
|
+
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
|
55
|
+
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
|
56
|
+
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
|
57
|
+
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
|
58
|
+
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
|
59
|
+
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
|
|
60
|
+
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* ue(v) 指数哥伦布解码
|
|
65
|
+
*/
|
|
66
|
+
export function readUE(bitReader: BitReader) {
|
|
67
|
+
let result = 0
|
|
68
|
+
// leadingZeroBits
|
|
69
|
+
let i = 0
|
|
70
|
+
|
|
71
|
+
while (i < 32 && bitReader.readU1() === 0) {
|
|
72
|
+
i++
|
|
73
|
+
}
|
|
74
|
+
// 计算 read_bits ( leadingZeroBits )
|
|
75
|
+
result = bitReader.readU(i)
|
|
76
|
+
// 计算 codeNum,1 << i 即为 2 的 i 次幂
|
|
77
|
+
result += (1 << i) - 1
|
|
78
|
+
|
|
79
|
+
return result
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* se(v) 有符号指数哥伦布解码
|
|
84
|
+
*/
|
|
85
|
+
export function readSE(bitReader: BitReader) {
|
|
86
|
+
let result = readUE(bitReader)
|
|
87
|
+
|
|
88
|
+
// 判断 result 的奇偶性
|
|
89
|
+
if (result & 0x01) {
|
|
90
|
+
// 如果为奇数,说明编码前 > 0
|
|
91
|
+
result = (result + 1) / 2
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// 如果为偶数,说明编码前 <= 0
|
|
95
|
+
result = -result / 2
|
|
96
|
+
}
|
|
97
|
+
return result
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* te(v) 截断指数哥伦布解码
|
|
102
|
+
*/
|
|
103
|
+
export function readTE(bitReader: BitReader, x: number) {
|
|
104
|
+
let result = 0
|
|
105
|
+
// 判断取值上限
|
|
106
|
+
if (x === 1) {
|
|
107
|
+
// 如果为 1 则将读取到的比特值取反
|
|
108
|
+
result = 1 - bitReader.readU1()
|
|
109
|
+
}
|
|
110
|
+
else if (x > 1) {
|
|
111
|
+
// 否则按照 ue(v) 进行解码
|
|
112
|
+
result = readUE(bitReader)
|
|
113
|
+
}
|
|
114
|
+
return result
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* ue(v) 指数哥伦布编码
|
|
119
|
+
*/
|
|
120
|
+
export function writeUE(bitWriter: BitWriter, value: number) {
|
|
121
|
+
let size = 0
|
|
122
|
+
|
|
123
|
+
if (value === 0) {
|
|
124
|
+
// 0 直接编码为 1
|
|
125
|
+
bitWriter.writeU1(1)
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
let tmp = ++value
|
|
129
|
+
// 判断所需比特个数是否大于 16 位
|
|
130
|
+
if ( tmp >= 0x00010000 ) {
|
|
131
|
+
size += 16
|
|
132
|
+
tmp >>= 16
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// 判断此时所需比特个数是否大于 8 位
|
|
136
|
+
if ( tmp >= 0x100 ) {
|
|
137
|
+
size += 8
|
|
138
|
+
tmp >>= 8
|
|
139
|
+
}
|
|
140
|
+
// 最终 tmp 移位至 8 位以内,去查表
|
|
141
|
+
size += UESizeTable[tmp]
|
|
142
|
+
|
|
143
|
+
// 最终得出编码 value 所需的总比特数:2 * size - 1
|
|
144
|
+
bitWriter.writeU(2 * size - 1, value)
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* se(v) 有符号指数哥伦布编码
|
|
150
|
+
*/
|
|
151
|
+
export function writeSE(bitWriter: BitWriter, value: number) {
|
|
152
|
+
if (value <= 0) {
|
|
153
|
+
writeUE(bitWriter, -value * 2)
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
writeUE(bitWriter, value * 2 - 1)
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* te(v) 截断指数哥伦布编码
|
|
162
|
+
*/
|
|
163
|
+
export function writeTE(bitWriter: BitWriter, x: number, value: number) {
|
|
164
|
+
if (x === 1) {
|
|
165
|
+
bitWriter.writeU1(1 & ~value)
|
|
166
|
+
}
|
|
167
|
+
else if (x > 1) {
|
|
168
|
+
writeUE(bitWriter, value)
|
|
169
|
+
}
|
|
170
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia int read 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
|
+
export function r8(p: pointer<void>): uint8 {
|
|
27
|
+
return accessof(reinterpret_cast<pointer<uint8>>(p))
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function rl16(p: pointer<void>): uint16 {
|
|
31
|
+
return (r8(reinterpret_cast<pointer<uint8>>(p + 1)) << 8) | r8(p)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function rb16(p: pointer<void>): uint16 {
|
|
35
|
+
return (r8(p) << 8) | r8(reinterpret_cast<pointer<uint8>>(p + 1))
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function rl24(p: pointer<void>): int32 {
|
|
39
|
+
return (r8(reinterpret_cast<pointer<uint8>>(p + 2)) << 16) | (r8(reinterpret_cast<pointer<uint8>>(p + 1)) << 8) + r8(p)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function rb24(p: pointer<void>): int32 {
|
|
43
|
+
return (r8(p) << 16) | (r8(reinterpret_cast<pointer<uint8>>(p + 1)) << 8) | r8(reinterpret_cast<pointer<uint8>>(p + 2))
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function rl32(p: pointer<void>): int32 {
|
|
47
|
+
return (rl16(reinterpret_cast<pointer<uint8>>(p + 2)) << 16) | rl16(p)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function rb32(p: pointer<void>): int32 {
|
|
51
|
+
return (rb16(p) << 16) | rb16(reinterpret_cast<pointer<uint8>>(p + 2))
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function rl64(p: pointer<void>): int64 {
|
|
55
|
+
return (BigInt(rl32(reinterpret_cast<pointer<uint8>>(p + 4))) << 32n) | BigInt(rl32(p))
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function rb64(p: pointer<void>): int64 {
|
|
59
|
+
return (BigInt(rb32(p)) << 32n) | BigInt(rb32(reinterpret_cast<pointer<uint8>>(p + 4)))
|
|
60
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* libmedia int write util
|
|
4
|
+
*
|
|
5
|
+
* 版权所有 (C) 2024 赵高兴
|
|
6
|
+
* Copyright (C) 2024 Gaoxing Zhao
|
|
7
|
+
*
|
|
8
|
+
* 此文件是 libmedia 的一部分
|
|
9
|
+
* This file is part of libmedia.
|
|
10
|
+
*
|
|
11
|
+
* libmedia 是自由软件;您可以根据 GNU Lesser General Public License(GNU LGPL)3.1
|
|
12
|
+
* 或任何其更新的版本条款重新分发或修改它
|
|
13
|
+
* libmedia is free software; you can redistribute it and/or
|
|
14
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
15
|
+
* License as published by the Free Software Foundation; either
|
|
16
|
+
* version 3.1 of the License, or (at your option) any later version.
|
|
17
|
+
*
|
|
18
|
+
* libmedia 希望能够为您提供帮助,但不提供任何明示或暗示的担保,包括但不限于适销性或特定用途的保证
|
|
19
|
+
* 您应自行承担使用 libmedia 的风险,并且需要遵守 GNU Lesser General Public License 中的条款和条件。
|
|
20
|
+
* libmedia is distributed in the hope that it will be useful,
|
|
21
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
22
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
23
|
+
* Lesser General Public License for more details.
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
export function w8(p: pointer<void>, value: number) {
|
|
28
|
+
accessof(reinterpret_cast<pointer<uint8>>(p)) <- reinterpret_cast<uint8>(value & 0xff)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function wl16(p: pointer<void>, value: uint16) {
|
|
32
|
+
w8(p, value)
|
|
33
|
+
w8(p + 1, value >>> 8)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function wb16(p: pointer<void>, value: uint16) {
|
|
37
|
+
w8(p, value >>> 8)
|
|
38
|
+
w8(p + 1, value)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function wl24(p: pointer<void>, value: uint32) {
|
|
42
|
+
w8(p, value)
|
|
43
|
+
w8(p + 1, value >>> 8)
|
|
44
|
+
w8(p + 2, value >>> 16)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function wb24(p: pointer<void>, value: uint32) {
|
|
48
|
+
w8(p, value >>> 16)
|
|
49
|
+
w8(p + 1, value >>> 8)
|
|
50
|
+
w8(p + 2, value)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function wl32(p: pointer<void>, value: uint32) {
|
|
54
|
+
wl16(p, value & 0xffff)
|
|
55
|
+
wl16(p + 2, value >>> 16)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function wb32(p: pointer<void>, value: uint32) {
|
|
59
|
+
wb16(p, value >>> 16)
|
|
60
|
+
wb16(p + 2, value & 0xffff)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function wl64(p: pointer<void>, value: uint64) {
|
|
64
|
+
wl32(p, static_cast<uint32>(value))
|
|
65
|
+
wl32(p + 4, static_cast<uint32>(value >> 32n))
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function wb64(p: pointer<void>, value: uint64) {
|
|
69
|
+
wb32(p, static_cast<uint32>(value >> 32n))
|
|
70
|
+
wb32(p + 4, static_cast<uint32>(value))
|
|
71
|
+
}
|
package/src/util/mem.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia mem 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 { memset } from '@libmedia/cheap'
|
|
27
|
+
import { logger } from '@libmedia/common'
|
|
28
|
+
|
|
29
|
+
export function avMalloc<T = void>(len: size): pointer<T> {
|
|
30
|
+
const p = malloc(len)
|
|
31
|
+
if (!p) {
|
|
32
|
+
logger.fatal('can not alloc buffer')
|
|
33
|
+
}
|
|
34
|
+
return p as pointer<T>
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function avMallocz<T = void>(len: size): pointer<T> {
|
|
38
|
+
const p = malloc(len)
|
|
39
|
+
if (!p) {
|
|
40
|
+
logger.fatal('can not alloc buffer')
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
memset(p, 0, len)
|
|
44
|
+
return p as pointer<T>
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function avFree(p: pointer<void>) {
|
|
48
|
+
assert(p, 'can not free empty pointer')
|
|
49
|
+
free(p)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function avFreep(p: pointer<pointer<void>>) {
|
|
53
|
+
assert(p, 'can not free empty pointer')
|
|
54
|
+
free(accessof(p))
|
|
55
|
+
accessof(p) <- nullptr
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function avRealloc<T = void>(p: pointer<T>, size: size): pointer<T> {
|
|
59
|
+
return realloc(p as pointer<void>, size) as pointer<T>
|
|
60
|
+
}
|