@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,313 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia avpacket 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 AVPacket, { AVPacketSideData } from '../struct/avpacket'
|
|
27
|
+
import type { AVPacketSideDataType } from '../codec'
|
|
28
|
+
import { avFree, avFreep, avMalloc, avMallocz } from './mem'
|
|
29
|
+
import { AV_TIME_BASE, NOPTS_VALUE, NOPTS_VALUE_BIGINT } from '../constant'
|
|
30
|
+
import { avbufferCreate, avbufferRealloc, avbufferRef, avbufferReplace, avbufferUnref } from './avbuffer'
|
|
31
|
+
import type { AVBufferRef } from '../struct/avbuffer'
|
|
32
|
+
|
|
33
|
+
import {
|
|
34
|
+
type SafeUint8Array,
|
|
35
|
+
memcpy,
|
|
36
|
+
memset,
|
|
37
|
+
mapUint8Array,
|
|
38
|
+
mapSafeUint8Array
|
|
39
|
+
} from '@libmedia/cheap'
|
|
40
|
+
|
|
41
|
+
const AV_INPUT_BUFFER_PADDING_SIZE = 64
|
|
42
|
+
|
|
43
|
+
export function getAVPacketData(avpacket: pointer<AVPacket>): Uint8Array<ArrayBufferLike>
|
|
44
|
+
export function getAVPacketData(avpacket: pointer<AVPacket>, safe: boolean): SafeUint8Array
|
|
45
|
+
export function getAVPacketData(avpacket: pointer<AVPacket>, safe?: boolean) {
|
|
46
|
+
return safe ? mapSafeUint8Array(avpacket.data, reinterpret_cast<size>(avpacket.size)) : mapUint8Array(avpacket.data, reinterpret_cast<size>(avpacket.size))
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function initAVPacketData(avpacket: pointer<AVPacket>, length: size) {
|
|
50
|
+
avpacket.data = avMalloc(length)
|
|
51
|
+
avpacket.size = static_cast<int32>(length)
|
|
52
|
+
return mapUint8Array(avpacket.data, reinterpret_cast<size>(avpacket.size))
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function getSideData(psd: pointer<pointer<AVPacketSideData>>, pnbSd: pointer<int32>, type: AVPacketSideDataType): pointer<AVPacketSideData> {
|
|
56
|
+
const sideDataElems = accessof(pnbSd)
|
|
57
|
+
const sideData = accessof(psd)
|
|
58
|
+
for (let i = 0; i < sideDataElems; i++) {
|
|
59
|
+
if (sideData[i].type === type) {
|
|
60
|
+
return addressof(sideData[i])
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return nullptr
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function getAVPacketSideData(avpacket: pointer<AVPacket>, type: AVPacketSideDataType): pointer<AVPacketSideData> {
|
|
67
|
+
return getSideData(addressof(avpacket.sideData), addressof(avpacket.sideDataElems), type)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function hasSideData(psd: pointer<pointer<AVPacketSideData>>, pnbSd: pointer<int32>, type: AVPacketSideDataType) {
|
|
71
|
+
const sideDataElems = accessof(pnbSd)
|
|
72
|
+
const sideData = accessof(psd)
|
|
73
|
+
for (let i = 0; i < sideDataElems; i++) {
|
|
74
|
+
if (sideData[i].type === type) {
|
|
75
|
+
return true
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return false
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function hasAVPacketSideData(avpacket: pointer<AVPacket>, type: AVPacketSideDataType) {
|
|
82
|
+
return hasSideData(addressof(avpacket.sideData), addressof(avpacket.sideDataElems), type)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function addSideData(psd: pointer<pointer<AVPacketSideData>>, pnbSd: pointer<int32>, type: AVPacketSideDataType, data: pointer<void>, length: size) {
|
|
86
|
+
const sideDataElems = accessof(pnbSd)
|
|
87
|
+
const sideData = accessof(psd)
|
|
88
|
+
for (let i = 0; i < sideDataElems; i++) {
|
|
89
|
+
if (sideData[i].type === type) {
|
|
90
|
+
avFree(sideData[i].data)
|
|
91
|
+
sideData[i].data = reinterpret_cast<pointer<uint8>>(data)
|
|
92
|
+
sideData[i].size = length
|
|
93
|
+
return
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const len = (sideDataElems + 1) * reinterpret_cast<int32>(sizeof(AVPacketSideData))
|
|
97
|
+
const newSideData = avMallocz(len) as pointer<AVPacketSideData>
|
|
98
|
+
|
|
99
|
+
if (sideDataElems) {
|
|
100
|
+
for (let i = 0; i < sideDataElems; i++) {
|
|
101
|
+
newSideData[i] = sideData[i]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const ele = addressof(newSideData[sideDataElems])
|
|
106
|
+
ele.data = reinterpret_cast<pointer<uint8>>(data)
|
|
107
|
+
ele.type = type
|
|
108
|
+
ele.size = length
|
|
109
|
+
|
|
110
|
+
if (sideData) {
|
|
111
|
+
avFree(sideData)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
accessof(psd) <- newSideData
|
|
115
|
+
accessof(pnbSd) <- reinterpret_cast<int32>(sideDataElems + 1)
|
|
116
|
+
|
|
117
|
+
return ele
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export function newSideData(psd: pointer<pointer<AVPacketSideData>>, pnbSd: pointer<int32>, type: AVPacketSideDataType, size: size) {
|
|
121
|
+
const data = avMalloc(size + static_cast<size>(AV_INPUT_BUFFER_PADDING_SIZE as uint32))
|
|
122
|
+
memset(reinterpret_cast<pointer<uint8>>(data + size), 0, AV_INPUT_BUFFER_PADDING_SIZE)
|
|
123
|
+
return addSideData(psd, pnbSd, type, data, size)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export function addAVPacketSideData(avpacket: pointer<AVPacket>, type: AVPacketSideDataType, data: pointer<void>, length: size) {
|
|
127
|
+
addSideData(addressof(avpacket.sideData), addressof(avpacket.sideDataElems), type, data, length)
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function deleteAVPacketSideData(avpacket: pointer<AVPacket>, type: AVPacketSideDataType) {
|
|
131
|
+
let index = -1
|
|
132
|
+
for (let i = 0; i < avpacket.sideDataElems; i++) {
|
|
133
|
+
if (avpacket.sideData[i].type === type) {
|
|
134
|
+
index = i
|
|
135
|
+
break
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (index > -1) {
|
|
139
|
+
if (avpacket.sideDataElems === 1) {
|
|
140
|
+
avFree(avpacket.sideData[0].data)
|
|
141
|
+
avFree(avpacket.sideData)
|
|
142
|
+
avpacket.sideData = nullptr
|
|
143
|
+
avpacket.sideDataElems = 0
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
const len = (avpacket.sideDataElems - 1) * reinterpret_cast<int32>(sizeof(AVPacketSideData))
|
|
147
|
+
const sideData = avMallocz(len) as pointer<AVPacketSideData>
|
|
148
|
+
for (let i = 0; i < avpacket.sideDataElems; i++) {
|
|
149
|
+
if (i !== index) {
|
|
150
|
+
sideData[i] = avpacket.sideData[i]
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
avFree(avpacket.sideData[i].data)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
avFree(avpacket.sideData)
|
|
157
|
+
avpacket.sideData = sideData
|
|
158
|
+
avpacket.sideDataElems--
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export function createAVPacket(): pointer<AVPacket> {
|
|
164
|
+
const avpacket = reinterpret_cast<pointer<AVPacket>>(avMallocz(sizeof(AVPacket)))
|
|
165
|
+
getAVPacketDefault(avpacket)
|
|
166
|
+
return avpacket
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export function destroyAVPacket(avpacket: pointer<AVPacket>) {
|
|
170
|
+
unrefAVPacket(avpacket)
|
|
171
|
+
avFree(avpacket)
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export function freeAVPacketSideData(pSideData: pointer<pointer<AVPacketSideData>>, pnbSideData: pointer<int32>) {
|
|
175
|
+
|
|
176
|
+
const sideData = accessof(pSideData)
|
|
177
|
+
const nbSideData = accessof(pnbSideData)
|
|
178
|
+
|
|
179
|
+
if (sideData) {
|
|
180
|
+
for (let i = 0; i < nbSideData; i++) {
|
|
181
|
+
avFree(sideData[i].data)
|
|
182
|
+
}
|
|
183
|
+
avFreep(pSideData)
|
|
184
|
+
accessof(pnbSideData) <- static_cast<int32>(0)
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export function getAVPacketDefault(avpacket: pointer<AVPacket>) {
|
|
189
|
+
avpacket.data = nullptr
|
|
190
|
+
avpacket.size = 0
|
|
191
|
+
avpacket.sideData = nullptr
|
|
192
|
+
avpacket.sideDataElems = 0
|
|
193
|
+
avpacket.streamIndex = NOPTS_VALUE
|
|
194
|
+
avpacket.pos = NOPTS_VALUE_BIGINT
|
|
195
|
+
avpacket.duration = NOPTS_VALUE_BIGINT
|
|
196
|
+
avpacket.flags = 0
|
|
197
|
+
avpacket.dts = NOPTS_VALUE_BIGINT
|
|
198
|
+
avpacket.pts = NOPTS_VALUE_BIGINT
|
|
199
|
+
avpacket.timeBase.den = AV_TIME_BASE
|
|
200
|
+
avpacket.timeBase.num = 1
|
|
201
|
+
|
|
202
|
+
avpacket.buf = nullptr
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export function copyAVPacketSideData(dst: pointer<AVPacket>, src: pointer<AVPacket>) {
|
|
206
|
+
freeAVPacketSideData(addressof(dst.sideData), addressof(dst.sideDataElems))
|
|
207
|
+
if (src.sideDataElems) {
|
|
208
|
+
let size = reinterpret_cast<int32>(sizeof(AVPacketSideData))
|
|
209
|
+
dst.sideData = reinterpret_cast<pointer<AVPacketSideData>>(avMallocz(size * src.sideDataElems))
|
|
210
|
+
for (let i = 0; i < src.sideDataElems; i++) {
|
|
211
|
+
dst.sideData[i].size = src.sideData[i].size
|
|
212
|
+
dst.sideData[i].type = src.sideData[i].type
|
|
213
|
+
dst.sideData[i].data = avMalloc(src.sideData[i].size)
|
|
214
|
+
memcpy(dst.sideData[i].data, src.sideData[i].data, src.sideData[i].size)
|
|
215
|
+
}
|
|
216
|
+
dst.sideDataElems = src.sideDataElems
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export function copyAVPacketProps(dst: pointer<AVPacket>, src: pointer<AVPacket>) {
|
|
221
|
+
dst.streamIndex = src.streamIndex
|
|
222
|
+
dst.pos = src.pos
|
|
223
|
+
dst.duration = src.duration
|
|
224
|
+
dst.flags = src.flags
|
|
225
|
+
dst.dts = src.dts
|
|
226
|
+
dst.pts = src.pts
|
|
227
|
+
dst.opaque = src.opaque
|
|
228
|
+
dst.timeBase.den = src.timeBase.den
|
|
229
|
+
dst.timeBase.num = src.timeBase.num
|
|
230
|
+
|
|
231
|
+
dst.opaqueRef = nullptr
|
|
232
|
+
|
|
233
|
+
avbufferReplace(addressof(dst.opaqueRef), src.opaqueRef)
|
|
234
|
+
|
|
235
|
+
copyAVPacketSideData(dst, src)
|
|
236
|
+
|
|
237
|
+
return 0
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
function allocAVPacket(buf: pointer<pointer<AVBufferRef>>, size: size) {
|
|
241
|
+
avbufferRealloc(buf, size + static_cast<size>(AV_INPUT_BUFFER_PADDING_SIZE as uint32))
|
|
242
|
+
memset(accessof(buf).data + size, 0, AV_INPUT_BUFFER_PADDING_SIZE)
|
|
243
|
+
return 0
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export function refAVPacket(dst: pointer<AVPacket>, src: pointer<AVPacket>) {
|
|
247
|
+
if (dst.buf) {
|
|
248
|
+
avbufferUnref(addressof(dst.buf))
|
|
249
|
+
}
|
|
250
|
+
dst.buf = nullptr
|
|
251
|
+
copyAVPacketProps(dst, src)
|
|
252
|
+
|
|
253
|
+
if (!src.buf && src.size) {
|
|
254
|
+
allocAVPacket(addressof(dst.buf), reinterpret_cast<size>(src.size))
|
|
255
|
+
if (src.size) {
|
|
256
|
+
memcpy(dst.buf.data, src.data, reinterpret_cast<size>(src.size))
|
|
257
|
+
}
|
|
258
|
+
dst.data = dst.buf.data
|
|
259
|
+
}
|
|
260
|
+
else if (src.buf) {
|
|
261
|
+
dst.buf = avbufferRef(src.buf)
|
|
262
|
+
dst.data = src.data
|
|
263
|
+
}
|
|
264
|
+
dst.size = src.size
|
|
265
|
+
|
|
266
|
+
return 0
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
export function unrefAVPacket(avpacket: pointer<AVPacket>) {
|
|
270
|
+
freeAVPacketSideData(addressof(avpacket.sideData), addressof(avpacket.sideDataElems))
|
|
271
|
+
avbufferUnref(addressof(avpacket.opaqueRef))
|
|
272
|
+
|
|
273
|
+
if (avpacket.buf) {
|
|
274
|
+
avbufferUnref(addressof(avpacket.buf))
|
|
275
|
+
}
|
|
276
|
+
else if (avpacket.data) {
|
|
277
|
+
avFree(avpacket.data)
|
|
278
|
+
}
|
|
279
|
+
getAVPacketDefault(avpacket)
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
export function copyAVPacketData(dst: pointer<AVPacket>, src: pointer<AVPacket>) {
|
|
283
|
+
if (dst.buf) {
|
|
284
|
+
avbufferUnref(addressof(dst.buf))
|
|
285
|
+
}
|
|
286
|
+
dst.buf = nullptr
|
|
287
|
+
if (!src.buf && src.size) {
|
|
288
|
+
allocAVPacket(addressof(dst.buf), reinterpret_cast<size>(src.size))
|
|
289
|
+
if (src.size) {
|
|
290
|
+
memcpy(dst.buf.data, src.data, reinterpret_cast<size>(src.size))
|
|
291
|
+
}
|
|
292
|
+
dst.data = dst.buf.data
|
|
293
|
+
}
|
|
294
|
+
else if (src.buf) {
|
|
295
|
+
dst.buf = avbufferRef(src.buf)
|
|
296
|
+
dst.data = src.data
|
|
297
|
+
}
|
|
298
|
+
dst.size = src.size
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
export function addAVPacketData(avpacket: pointer<AVPacket>, data: pointer<uint8>, size: int32) {
|
|
302
|
+
|
|
303
|
+
if (avpacket.buf) {
|
|
304
|
+
avbufferUnref(addressof(avpacket.buf))
|
|
305
|
+
}
|
|
306
|
+
else if (avpacket.data) {
|
|
307
|
+
avFree(avpacket.data)
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
avpacket.buf = avbufferCreate(data, size + AV_INPUT_BUFFER_PADDING_SIZE)
|
|
311
|
+
avpacket.data = data
|
|
312
|
+
avpacket.size = size
|
|
313
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia channel 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 { AVChannelCustom, AVChannelLayout } from '../struct/audiosample'
|
|
27
|
+
import { popCount64 } from './common'
|
|
28
|
+
import { AVChannel, AVChannelOrder } from '../audiosamplefmt'
|
|
29
|
+
import { avFreep, avMallocz } from './mem'
|
|
30
|
+
import * as error from '../error'
|
|
31
|
+
|
|
32
|
+
import { memset } from '@libmedia/cheap'
|
|
33
|
+
|
|
34
|
+
export function getChannelLayoutNBChannels(layout: uint64) {
|
|
35
|
+
return popCount64(layout)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function unInitChannelLayout(channelLayout: pointer<AVChannelLayout>) {
|
|
39
|
+
if (channelLayout.order == AVChannelOrder.AV_CHANNEL_ORDER_CUSTOM) {
|
|
40
|
+
avFreep(addressof(channelLayout.u.map))
|
|
41
|
+
}
|
|
42
|
+
memset(channelLayout, 0, sizeof(accessof(channelLayout)))
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function setChannelLayoutFromMask(channelLayout: pointer<AVChannelLayout>, mask: uint64) {
|
|
46
|
+
if (!mask) {
|
|
47
|
+
return error.INVALID_ARGUMENT
|
|
48
|
+
}
|
|
49
|
+
channelLayout.order = AVChannelOrder.AV_CHANNEL_ORDER_NATIVE
|
|
50
|
+
channelLayout.nbChannels = popCount64(static_cast<uint64>(mask))
|
|
51
|
+
channelLayout.u.mask = mask
|
|
52
|
+
return 0
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function initCustomChannelLayout(channelLayout: pointer<AVChannelLayout>, channels: int32) {
|
|
56
|
+
if (channels <= 0) {
|
|
57
|
+
throw new Error('invalid channels')
|
|
58
|
+
}
|
|
59
|
+
const map: pointer<AVChannelCustom> = avMallocz(reinterpret_cast<size>(reinterpret_cast<size>(channels) * sizeof(accessof(channelLayout.u.map))))
|
|
60
|
+
for (let i = 0; i < channels; i++) {
|
|
61
|
+
map[i].id = AVChannel.AV_CHANNEL_UNKNOWN
|
|
62
|
+
}
|
|
63
|
+
channelLayout.order = AVChannelOrder.AV_CHANNEL_ORDER_CUSTOM
|
|
64
|
+
channelLayout.nbChannels = channels
|
|
65
|
+
channelLayout.u.map = map
|
|
66
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia codecparameters 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 AVCodecParameters from '../struct/avcodecparameters'
|
|
27
|
+
import { avFree, avFreep, avMalloc, avMallocz } from './mem'
|
|
28
|
+
import { unInitChannelLayout } from './channel'
|
|
29
|
+
import { freeAVPacketSideData } from './avpacket'
|
|
30
|
+
import { AVCodecID, AVMediaType } from '../codec'
|
|
31
|
+
import { AVChannelOrder } from '../audiosamplefmt'
|
|
32
|
+
import { AVChromaLocation, AVColorPrimaries, AVColorRange,
|
|
33
|
+
AVColorSpace, AVColorTransferCharacteristic, AVFieldOrder
|
|
34
|
+
} from '../pixfmt'
|
|
35
|
+
import { NOPTS_VALUE } from '../constant'
|
|
36
|
+
import { AVPacketSideData } from '../struct/avpacket'
|
|
37
|
+
|
|
38
|
+
export { default as isHdr } from '../function/isHdr'
|
|
39
|
+
export { default as hasAlphaChannel } from '../function/hasAlphaChannel'
|
|
40
|
+
|
|
41
|
+
import { memset, memcpy } from '@libmedia/cheap'
|
|
42
|
+
|
|
43
|
+
function copyCodecParametersSideData(
|
|
44
|
+
pDst: pointer<pointer<AVPacketSideData>>,
|
|
45
|
+
pnbDst: pointer<int32>,
|
|
46
|
+
src: pointer<AVPacketSideData>,
|
|
47
|
+
nbSrc: int32
|
|
48
|
+
) {
|
|
49
|
+
|
|
50
|
+
if (!src) {
|
|
51
|
+
return
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const dst = reinterpret_cast<pointer<AVPacketSideData>>(avMallocz(nbSrc * reinterpret_cast<int32>(sizeof(AVPacketSideData))))
|
|
55
|
+
|
|
56
|
+
for (let i = 0; i < nbSrc; i++) {
|
|
57
|
+
dst[i].type = src[i].type
|
|
58
|
+
dst[i].size = src[i].size
|
|
59
|
+
dst[i].data = avMalloc(src[i].size)
|
|
60
|
+
memcpy(dst[i].data, src[i].data, src[i].size)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
accessof(pnbDst) <- nbSrc
|
|
64
|
+
accessof(pDst) <- dst
|
|
65
|
+
|
|
66
|
+
return 0
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function copyCodecParameters(dst: pointer<AVCodecParameters>, src: pointer<AVCodecParameters>) {
|
|
70
|
+
dst.codecType = src.codecType
|
|
71
|
+
dst.codecId = src.codecId
|
|
72
|
+
dst.codecTag = src.codecTag
|
|
73
|
+
dst.format = src.format
|
|
74
|
+
dst.bitrate = src.bitrate
|
|
75
|
+
dst.bitsPerCodedSample = src.bitsPerCodedSample
|
|
76
|
+
dst.bitsPerRawSample = src.bitsPerRawSample
|
|
77
|
+
dst.profile = src.profile
|
|
78
|
+
dst.level = src.level
|
|
79
|
+
dst.width = src.width
|
|
80
|
+
dst.height = src.height
|
|
81
|
+
dst.sampleAspectRatio.den = src.sampleAspectRatio.den
|
|
82
|
+
dst.sampleAspectRatio.num = src.sampleAspectRatio.num
|
|
83
|
+
dst.fieldOrder = src.fieldOrder
|
|
84
|
+
dst.colorRange = src.colorRange
|
|
85
|
+
dst.colorPrimaries = src.colorPrimaries
|
|
86
|
+
dst.colorTrc = src.colorTrc
|
|
87
|
+
dst.colorSpace = src.colorSpace
|
|
88
|
+
dst.chromaLocation = src.chromaLocation
|
|
89
|
+
dst.videoDelay = src.videoDelay
|
|
90
|
+
dst.chLayout = src.chLayout
|
|
91
|
+
dst.sampleRate = src.sampleRate
|
|
92
|
+
dst.blockAlign = src.blockAlign
|
|
93
|
+
dst.frameSize = src.frameSize
|
|
94
|
+
dst.initialPadding = src.initialPadding
|
|
95
|
+
dst.trailingPadding = src.trailingPadding
|
|
96
|
+
dst.seekPreroll = src.seekPreroll
|
|
97
|
+
dst.flags = src.flags
|
|
98
|
+
|
|
99
|
+
dst.framerate = src.framerate
|
|
100
|
+
|
|
101
|
+
if (src.extradata) {
|
|
102
|
+
if (dst.extradata) {
|
|
103
|
+
avFree(dst.extradata)
|
|
104
|
+
}
|
|
105
|
+
dst.extradata = avMalloc(reinterpret_cast<size>(src.extradataSize))
|
|
106
|
+
dst.extradataSize = src.extradataSize
|
|
107
|
+
memcpy(dst.extradata, src.extradata, reinterpret_cast<size>(src.extradataSize))
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (src.codedSideData) {
|
|
111
|
+
copyCodecParametersSideData(addressof(dst.codedSideData), addressof(dst.nbCodedSideData), src.codedSideData, src.nbCodedSideData)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export function resetCodecParameters(par: pointer<AVCodecParameters>) {
|
|
116
|
+
if (par.extradata) {
|
|
117
|
+
avFreep(addressof(par.extradata))
|
|
118
|
+
}
|
|
119
|
+
unInitChannelLayout(addressof(par.chLayout))
|
|
120
|
+
freeAVPacketSideData(addressof(par.codedSideData), addressof(par.nbCodedSideData))
|
|
121
|
+
memset(par, 0, sizeof(accessof(par)))
|
|
122
|
+
|
|
123
|
+
par.codecType = AVMediaType.AVMEDIA_TYPE_UNKNOWN
|
|
124
|
+
par.codecId = AVCodecID.AV_CODEC_ID_NONE
|
|
125
|
+
par.format = -1
|
|
126
|
+
par.chLayout.order = AVChannelOrder.AV_CHANNEL_ORDER_UNSPEC
|
|
127
|
+
par.fieldOrder = AVFieldOrder.AV_FIELD_UNKNOWN
|
|
128
|
+
par.colorRange = AVColorRange.AVCOL_RANGE_UNSPECIFIED
|
|
129
|
+
par.colorPrimaries = AVColorPrimaries.AVCOL_PRI_UNSPECIFIED
|
|
130
|
+
par.colorTrc = AVColorTransferCharacteristic.AVCOL_TRC_UNSPECIFIED
|
|
131
|
+
par.colorSpace = AVColorSpace.AVCOL_SPC_UNSPECIFIED
|
|
132
|
+
par.chromaLocation = AVChromaLocation.AVCHROMA_LOC_UNSPECIFIED
|
|
133
|
+
par.sampleAspectRatio.num = 0
|
|
134
|
+
par.sampleAspectRatio.den = 1
|
|
135
|
+
par.framerate.num = 0
|
|
136
|
+
par.framerate.num = 1
|
|
137
|
+
par.profile = NOPTS_VALUE
|
|
138
|
+
par.level = NOPTS_VALUE
|
|
139
|
+
par.flags = 0
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export function freeCodecParameters(par: pointer<AVCodecParameters>) {
|
|
143
|
+
if (!par) {
|
|
144
|
+
return
|
|
145
|
+
}
|
|
146
|
+
resetCodecParameters(par)
|
|
147
|
+
avFree(par)
|
|
148
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* libmedia common 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 popCount(x: uint32) {
|
|
27
|
+
x -= (x >> 1) & 0x55555555
|
|
28
|
+
x = (x & 0x33333333) + ((x >> 2) & 0x33333333)
|
|
29
|
+
x = (x + (x >> 4)) & 0x0F0F0F0F
|
|
30
|
+
x += x >> 8
|
|
31
|
+
return (x + (x >> 16)) & 0x3F
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function popCount64(x: uint64) {
|
|
35
|
+
return popCount(static_cast<uint32>(x)) + popCount(static_cast<uint32>(x >> 32n))
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function milliSecond2Second(time: int64) {
|
|
39
|
+
const integer = time / 1000n
|
|
40
|
+
const decimal = time - integer * 1000n
|
|
41
|
+
return Number(integer) + Number(decimal) / 1000
|
|
42
|
+
}
|