From 57961d84de09f020d35552016c3b133f50189441 Mon Sep 17 00:00:00 2001 From: lunaticbum Date: Tue, 26 Aug 2025 18:24:06 +0900 Subject: [PATCH] ... --- app/build.gradle.kts | 8 +- app/src/main/cpp/CMakeLists.txt | 57 +- app/src/main/cpp/include/stb_image.h | 7988 +++++++++++++++++ app/src/main/cpp/native_renderer.cpp | 733 +- app/src/main/jniLibs/android.sh | 250 + .../arm64-v8a/include/libavcodec/ac3_parser.h | 36 + .../include/libavcodec/adts_parser.h | 37 + .../arm64-v8a/include/libavcodec/avcodec.h | 3128 +++++++ .../arm64-v8a/include/libavcodec/avdct.h | 88 + .../arm64-v8a/include/libavcodec/avfft.h | 149 + .../arm64-v8a/include/libavcodec/bsf.h | 332 + .../arm64-v8a/include/libavcodec/codec.h | 382 + .../arm64-v8a/include/libavcodec/codec_desc.h | 134 + .../arm64-v8a/include/libavcodec/codec_id.h | 669 ++ .../arm64-v8a/include/libavcodec/codec_par.h | 248 + .../arm64-v8a/include/libavcodec/d3d11va.h | 109 + .../arm64-v8a/include/libavcodec/defs.h | 337 + .../arm64-v8a/include/libavcodec/dirac.h | 135 + .../arm64-v8a/include/libavcodec/dv_profile.h | 82 + .../arm64-v8a/include/libavcodec/dxva2.h | 90 + .../arm64-v8a/include/libavcodec/jni.h | 67 + .../arm64-v8a/include/libavcodec/mediacodec.h | 103 + .../arm64-v8a/include/libavcodec/packet.h | 887 ++ .../arm64-v8a/include/libavcodec/qsv.h | 109 + .../arm64-v8a/include/libavcodec/vdpau.h | 171 + .../arm64-v8a/include/libavcodec/version.h | 45 + .../include/libavcodec/version_major.h | 52 + .../include/libavcodec/videotoolbox.h | 85 + .../include/libavcodec/vorbis_parser.h | 74 + .../arm64-v8a/include/libavfilter/avfilter.h | 1379 +++ .../include/libavfilter/buffersink.h | 173 + .../arm64-v8a/include/libavfilter/buffersrc.h | 215 + .../arm64-v8a/include/libavfilter/version.h | 48 + .../include/libavfilter/version_major.h | 40 + .../arm64-v8a/include/libavformat/avformat.h | 3107 +++++++ .../arm64-v8a/include/libavformat/avio.h | 831 ++ .../arm64-v8a/include/libavformat/version.h | 47 + .../include/libavformat/version_major.h | 54 + .../arm64-v8a/include/libavutil/adler32.h | 63 + .../jniLibs/arm64-v8a/include/libavutil/aes.h | 69 + .../arm64-v8a/include/libavutil/aes_ctr.h | 99 + .../libavutil/ambient_viewing_environment.h | 72 + .../arm64-v8a/include/libavutil/attributes.h | 173 + .../arm64-v8a/include/libavutil/audio_fifo.h | 187 + .../arm64-v8a/include/libavutil/avassert.h | 78 + .../arm64-v8a/include/libavutil/avconfig.h | 6 + .../arm64-v8a/include/libavutil/avstring.h | 428 + .../arm64-v8a/include/libavutil/avutil.h | 362 + .../arm64-v8a/include/libavutil/base64.h | 72 + .../arm64-v8a/include/libavutil/blowfish.h | 82 + .../arm64-v8a/include/libavutil/bprint.h | 254 + .../arm64-v8a/include/libavutil/bswap.h | 105 + .../arm64-v8a/include/libavutil/buffer.h | 322 + .../arm64-v8a/include/libavutil/camellia.h | 70 + .../arm64-v8a/include/libavutil/cast5.h | 80 + .../include/libavutil/channel_layout.h | 751 ++ .../arm64-v8a/include/libavutil/common.h | 589 ++ .../jniLibs/arm64-v8a/include/libavutil/cpu.h | 145 + .../jniLibs/arm64-v8a/include/libavutil/crc.h | 102 + .../jniLibs/arm64-v8a/include/libavutil/csp.h | 150 + .../jniLibs/arm64-v8a/include/libavutil/des.h | 81 + .../include/libavutil/detection_bbox.h | 108 + .../arm64-v8a/include/libavutil/dict.h | 241 + .../arm64-v8a/include/libavutil/display.h | 109 + .../arm64-v8a/include/libavutil/dovi_meta.h | 396 + .../include/libavutil/downmix_info.h | 115 + .../include/libavutil/encryption_info.h | 205 + .../arm64-v8a/include/libavutil/error.h | 129 + .../arm64-v8a/include/libavutil/eval.h | 140 + .../arm64-v8a/include/libavutil/executor.h | 67 + .../arm64-v8a/include/libavutil/ffversion.h | 5 + .../arm64-v8a/include/libavutil/fifo.h | 242 + .../arm64-v8a/include/libavutil/file.h | 62 + .../include/libavutil/film_grain_params.h | 322 + .../arm64-v8a/include/libavutil/frame.h | 1175 +++ .../arm64-v8a/include/libavutil/hash.h | 264 + .../include/libavutil/hdr_dynamic_metadata.h | 376 + .../libavutil/hdr_dynamic_vivid_metadata.h | 346 + .../arm64-v8a/include/libavutil/hmac.h | 99 + .../arm64-v8a/include/libavutil/hwcontext.h | 598 ++ .../include/libavutil/hwcontext_cuda.h | 74 + .../include/libavutil/hwcontext_d3d11va.h | 178 + .../include/libavutil/hwcontext_d3d12va.h | 142 + .../include/libavutil/hwcontext_drm.h | 169 + .../include/libavutil/hwcontext_dxva2.h | 75 + .../include/libavutil/hwcontext_mediacodec.h | 61 + .../include/libavutil/hwcontext_opencl.h | 100 + .../include/libavutil/hwcontext_qsv.h | 87 + .../include/libavutil/hwcontext_vaapi.h | 117 + .../include/libavutil/hwcontext_vdpau.h | 44 + .../libavutil/hwcontext_videotoolbox.h | 106 + .../include/libavutil/hwcontext_vulkan.h | 382 + .../arm64-v8a/include/libavutil/iamf.h | 690 ++ .../arm64-v8a/include/libavutil/imgutils.h | 377 + .../arm64-v8a/include/libavutil/intfloat.h | 77 + .../include/libavutil/intreadwrite.h | 677 ++ .../jniLibs/arm64-v8a/include/libavutil/lfg.h | 81 + .../jniLibs/arm64-v8a/include/libavutil/log.h | 387 + .../jniLibs/arm64-v8a/include/libavutil/lzo.h | 66 + .../arm64-v8a/include/libavutil/macros.h | 80 + .../libavutil/mastering_display_metadata.h | 137 + .../arm64-v8a/include/libavutil/mathematics.h | 300 + .../jniLibs/arm64-v8a/include/libavutil/md5.h | 89 + .../jniLibs/arm64-v8a/include/libavutil/mem.h | 607 ++ .../include/libavutil/motion_vector.h | 57 + .../arm64-v8a/include/libavutil/murmur3.h | 115 + .../jniLibs/arm64-v8a/include/libavutil/opt.h | 1187 +++ .../arm64-v8a/include/libavutil/parseutils.h | 197 + .../arm64-v8a/include/libavutil/pixdesc.h | 440 + .../arm64-v8a/include/libavutil/pixelutils.h | 51 + .../arm64-v8a/include/libavutil/pixfmt.h | 716 ++ .../arm64-v8a/include/libavutil/random_seed.h | 57 + .../arm64-v8a/include/libavutil/rational.h | 225 + .../jniLibs/arm64-v8a/include/libavutil/rc4.h | 69 + .../arm64-v8a/include/libavutil/replaygain.h | 50 + .../arm64-v8a/include/libavutil/ripemd.h | 83 + .../arm64-v8a/include/libavutil/samplefmt.h | 269 + .../jniLibs/arm64-v8a/include/libavutil/sha.h | 90 + .../arm64-v8a/include/libavutil/sha512.h | 92 + .../arm64-v8a/include/libavutil/spherical.h | 243 + .../arm64-v8a/include/libavutil/stereo3d.h | 325 + .../jniLibs/arm64-v8a/include/libavutil/tea.h | 71 + .../include/libavutil/threadmessage.h | 115 + .../arm64-v8a/include/libavutil/time.h | 56 + .../arm64-v8a/include/libavutil/timecode.h | 199 + .../arm64-v8a/include/libavutil/timestamp.h | 85 + .../arm64-v8a/include/libavutil/tree.h | 137 + .../arm64-v8a/include/libavutil/twofish.h | 70 + .../jniLibs/arm64-v8a/include/libavutil/tx.h | 210 + .../arm64-v8a/include/libavutil/uuid.h | 146 + .../arm64-v8a/include/libavutil/version.h | 124 + .../include/libavutil/video_enc_params.h | 171 + .../arm64-v8a/include/libavutil/video_hint.h | 107 + .../arm64-v8a/include/libavutil/xtea.h | 94 + .../include/libswresample/swresample.h | 587 ++ .../arm64-v8a/include/libswresample/version.h | 46 + .../include/libswresample/version_major.h | 31 + .../arm64-v8a/include/libswscale/swscale.h | 460 + .../arm64-v8a/include/libswscale/version.h | 44 + .../include/libswscale/version_major.h | 35 + app/src/main/jniLibs/arm64-v8a/libavcodec.so | Bin 0 -> 7617264 bytes app/src/main/jniLibs/arm64-v8a/libavfilter.so | Bin 0 -> 102856 bytes app/src/main/jniLibs/arm64-v8a/libavformat.so | Bin 0 -> 1213904 bytes app/src/main/jniLibs/arm64-v8a/libavutil.so | Bin 0 -> 538512 bytes .../main/jniLibs/arm64-v8a/libswresample.so | Bin 0 -> 73840 bytes app/src/main/jniLibs/arm64-v8a/libswscale.so | Bin 0 -> 371072 bytes .../include/libavcodec/ac3_parser.h | 36 + .../include/libavcodec/adts_parser.h | 37 + .../armeabi-v7a/include/libavcodec/avcodec.h | 3128 +++++++ .../armeabi-v7a/include/libavcodec/avdct.h | 88 + .../armeabi-v7a/include/libavcodec/avfft.h | 149 + .../armeabi-v7a/include/libavcodec/bsf.h | 332 + .../armeabi-v7a/include/libavcodec/codec.h | 382 + .../include/libavcodec/codec_desc.h | 134 + .../armeabi-v7a/include/libavcodec/codec_id.h | 669 ++ .../include/libavcodec/codec_par.h | 248 + .../armeabi-v7a/include/libavcodec/d3d11va.h | 109 + .../armeabi-v7a/include/libavcodec/defs.h | 337 + .../armeabi-v7a/include/libavcodec/dirac.h | 135 + .../include/libavcodec/dv_profile.h | 82 + .../armeabi-v7a/include/libavcodec/dxva2.h | 90 + .../armeabi-v7a/include/libavcodec/jni.h | 67 + .../include/libavcodec/mediacodec.h | 103 + .../armeabi-v7a/include/libavcodec/packet.h | 887 ++ .../armeabi-v7a/include/libavcodec/qsv.h | 109 + .../armeabi-v7a/include/libavcodec/vdpau.h | 171 + .../armeabi-v7a/include/libavcodec/version.h | 45 + .../include/libavcodec/version_major.h | 52 + .../include/libavcodec/videotoolbox.h | 85 + .../include/libavcodec/vorbis_parser.h | 74 + .../include/libavfilter/avfilter.h | 1379 +++ .../include/libavfilter/buffersink.h | 173 + .../include/libavfilter/buffersrc.h | 215 + .../armeabi-v7a/include/libavfilter/version.h | 48 + .../include/libavfilter/version_major.h | 40 + .../include/libavformat/avformat.h | 3107 +++++++ .../armeabi-v7a/include/libavformat/avio.h | 831 ++ .../armeabi-v7a/include/libavformat/version.h | 47 + .../include/libavformat/version_major.h | 54 + .../armeabi-v7a/include/libavutil/adler32.h | 63 + .../armeabi-v7a/include/libavutil/aes.h | 69 + .../armeabi-v7a/include/libavutil/aes_ctr.h | 99 + .../libavutil/ambient_viewing_environment.h | 72 + .../include/libavutil/attributes.h | 173 + .../include/libavutil/audio_fifo.h | 187 + .../armeabi-v7a/include/libavutil/avassert.h | 78 + .../armeabi-v7a/include/libavutil/avconfig.h | 6 + .../armeabi-v7a/include/libavutil/avstring.h | 428 + .../armeabi-v7a/include/libavutil/avutil.h | 362 + .../armeabi-v7a/include/libavutil/base64.h | 72 + .../armeabi-v7a/include/libavutil/blowfish.h | 82 + .../armeabi-v7a/include/libavutil/bprint.h | 254 + .../armeabi-v7a/include/libavutil/bswap.h | 105 + .../armeabi-v7a/include/libavutil/buffer.h | 322 + .../armeabi-v7a/include/libavutil/camellia.h | 70 + .../armeabi-v7a/include/libavutil/cast5.h | 80 + .../include/libavutil/channel_layout.h | 751 ++ .../armeabi-v7a/include/libavutil/common.h | 589 ++ .../armeabi-v7a/include/libavutil/cpu.h | 145 + .../armeabi-v7a/include/libavutil/crc.h | 102 + .../armeabi-v7a/include/libavutil/csp.h | 150 + .../armeabi-v7a/include/libavutil/des.h | 81 + .../include/libavutil/detection_bbox.h | 108 + .../armeabi-v7a/include/libavutil/dict.h | 241 + .../armeabi-v7a/include/libavutil/display.h | 109 + .../armeabi-v7a/include/libavutil/dovi_meta.h | 396 + .../include/libavutil/downmix_info.h | 115 + .../include/libavutil/encryption_info.h | 205 + .../armeabi-v7a/include/libavutil/error.h | 129 + .../armeabi-v7a/include/libavutil/eval.h | 140 + .../armeabi-v7a/include/libavutil/executor.h | 67 + .../armeabi-v7a/include/libavutil/ffversion.h | 5 + .../armeabi-v7a/include/libavutil/fifo.h | 242 + .../armeabi-v7a/include/libavutil/file.h | 62 + .../include/libavutil/film_grain_params.h | 322 + .../armeabi-v7a/include/libavutil/frame.h | 1175 +++ .../armeabi-v7a/include/libavutil/hash.h | 264 + .../include/libavutil/hdr_dynamic_metadata.h | 376 + .../libavutil/hdr_dynamic_vivid_metadata.h | 346 + .../armeabi-v7a/include/libavutil/hmac.h | 99 + .../armeabi-v7a/include/libavutil/hwcontext.h | 598 ++ .../include/libavutil/hwcontext_cuda.h | 74 + .../include/libavutil/hwcontext_d3d11va.h | 178 + .../include/libavutil/hwcontext_d3d12va.h | 142 + .../include/libavutil/hwcontext_drm.h | 169 + .../include/libavutil/hwcontext_dxva2.h | 75 + .../include/libavutil/hwcontext_mediacodec.h | 61 + .../include/libavutil/hwcontext_opencl.h | 100 + .../include/libavutil/hwcontext_qsv.h | 87 + .../include/libavutil/hwcontext_vaapi.h | 117 + .../include/libavutil/hwcontext_vdpau.h | 44 + .../libavutil/hwcontext_videotoolbox.h | 106 + .../include/libavutil/hwcontext_vulkan.h | 382 + .../armeabi-v7a/include/libavutil/iamf.h | 690 ++ .../armeabi-v7a/include/libavutil/imgutils.h | 377 + .../armeabi-v7a/include/libavutil/intfloat.h | 77 + .../include/libavutil/intreadwrite.h | 677 ++ .../armeabi-v7a/include/libavutil/lfg.h | 81 + .../armeabi-v7a/include/libavutil/log.h | 387 + .../armeabi-v7a/include/libavutil/lzo.h | 66 + .../armeabi-v7a/include/libavutil/macros.h | 80 + .../libavutil/mastering_display_metadata.h | 137 + .../include/libavutil/mathematics.h | 300 + .../armeabi-v7a/include/libavutil/md5.h | 89 + .../armeabi-v7a/include/libavutil/mem.h | 607 ++ .../include/libavutil/motion_vector.h | 57 + .../armeabi-v7a/include/libavutil/murmur3.h | 115 + .../armeabi-v7a/include/libavutil/opt.h | 1187 +++ .../include/libavutil/parseutils.h | 197 + .../armeabi-v7a/include/libavutil/pixdesc.h | 440 + .../include/libavutil/pixelutils.h | 51 + .../armeabi-v7a/include/libavutil/pixfmt.h | 716 ++ .../include/libavutil/random_seed.h | 57 + .../armeabi-v7a/include/libavutil/rational.h | 225 + .../armeabi-v7a/include/libavutil/rc4.h | 69 + .../include/libavutil/replaygain.h | 50 + .../armeabi-v7a/include/libavutil/ripemd.h | 83 + .../armeabi-v7a/include/libavutil/samplefmt.h | 269 + .../armeabi-v7a/include/libavutil/sha.h | 90 + .../armeabi-v7a/include/libavutil/sha512.h | 92 + .../armeabi-v7a/include/libavutil/spherical.h | 243 + .../armeabi-v7a/include/libavutil/stereo3d.h | 325 + .../armeabi-v7a/include/libavutil/tea.h | 71 + .../include/libavutil/threadmessage.h | 115 + .../armeabi-v7a/include/libavutil/time.h | 56 + .../armeabi-v7a/include/libavutil/timecode.h | 199 + .../armeabi-v7a/include/libavutil/timestamp.h | 85 + .../armeabi-v7a/include/libavutil/tree.h | 137 + .../armeabi-v7a/include/libavutil/twofish.h | 70 + .../armeabi-v7a/include/libavutil/tx.h | 210 + .../armeabi-v7a/include/libavutil/uuid.h | 146 + .../armeabi-v7a/include/libavutil/version.h | 124 + .../include/libavutil/video_enc_params.h | 171 + .../include/libavutil/video_hint.h | 107 + .../armeabi-v7a/include/libavutil/xtea.h | 94 + .../include/libswresample/swresample.h | 587 ++ .../include/libswresample/version.h | 46 + .../include/libswresample/version_major.h | 31 + .../armeabi-v7a/include/libswscale/swscale.h | 460 + .../armeabi-v7a/include/libswscale/version.h | 44 + .../include/libswscale/version_major.h | 35 + .../main/jniLibs/armeabi-v7a/libavcodec.so | Bin 0 -> 7503252 bytes .../main/jniLibs/armeabi-v7a/libavfilter.so | Bin 0 -> 88668 bytes .../main/jniLibs/armeabi-v7a/libavformat.so | Bin 0 -> 1118508 bytes app/src/main/jniLibs/armeabi-v7a/libavutil.so | Bin 0 -> 436700 bytes .../main/jniLibs/armeabi-v7a/libswresample.so | Bin 0 -> 71228 bytes .../main/jniLibs/armeabi-v7a/libswscale.so | Bin 0 -> 374204 bytes app/src/main/jniLibs/readme.md | 120 + .../x86/include/libavcodec/ac3_parser.h | 36 + .../x86/include/libavcodec/adts_parser.h | 37 + .../jniLibs/x86/include/libavcodec/avcodec.h | 3128 +++++++ .../jniLibs/x86/include/libavcodec/avdct.h | 88 + .../jniLibs/x86/include/libavcodec/avfft.h | 149 + .../main/jniLibs/x86/include/libavcodec/bsf.h | 332 + .../jniLibs/x86/include/libavcodec/codec.h | 382 + .../x86/include/libavcodec/codec_desc.h | 134 + .../jniLibs/x86/include/libavcodec/codec_id.h | 669 ++ .../x86/include/libavcodec/codec_par.h | 248 + .../jniLibs/x86/include/libavcodec/d3d11va.h | 109 + .../jniLibs/x86/include/libavcodec/defs.h | 337 + .../jniLibs/x86/include/libavcodec/dirac.h | 135 + .../x86/include/libavcodec/dv_profile.h | 82 + .../jniLibs/x86/include/libavcodec/dxva2.h | 90 + .../main/jniLibs/x86/include/libavcodec/jni.h | 67 + .../x86/include/libavcodec/mediacodec.h | 103 + .../jniLibs/x86/include/libavcodec/packet.h | 887 ++ .../main/jniLibs/x86/include/libavcodec/qsv.h | 109 + .../jniLibs/x86/include/libavcodec/vdpau.h | 171 + .../jniLibs/x86/include/libavcodec/version.h | 45 + .../x86/include/libavcodec/version_major.h | 52 + .../x86/include/libavcodec/videotoolbox.h | 85 + .../x86/include/libavcodec/vorbis_parser.h | 74 + .../x86/include/libavfilter/avfilter.h | 1379 +++ .../x86/include/libavfilter/buffersink.h | 173 + .../x86/include/libavfilter/buffersrc.h | 215 + .../jniLibs/x86/include/libavfilter/version.h | 48 + .../x86/include/libavfilter/version_major.h | 40 + .../x86/include/libavformat/avformat.h | 3107 +++++++ .../jniLibs/x86/include/libavformat/avio.h | 831 ++ .../jniLibs/x86/include/libavformat/version.h | 47 + .../x86/include/libavformat/version_major.h | 54 + .../jniLibs/x86/include/libavutil/adler32.h | 63 + .../main/jniLibs/x86/include/libavutil/aes.h | 69 + .../jniLibs/x86/include/libavutil/aes_ctr.h | 99 + .../libavutil/ambient_viewing_environment.h | 72 + .../x86/include/libavutil/attributes.h | 173 + .../x86/include/libavutil/audio_fifo.h | 187 + .../jniLibs/x86/include/libavutil/avassert.h | 78 + .../jniLibs/x86/include/libavutil/avconfig.h | 6 + .../jniLibs/x86/include/libavutil/avstring.h | 428 + .../jniLibs/x86/include/libavutil/avutil.h | 362 + .../jniLibs/x86/include/libavutil/base64.h | 72 + .../jniLibs/x86/include/libavutil/blowfish.h | 82 + .../jniLibs/x86/include/libavutil/bprint.h | 254 + .../jniLibs/x86/include/libavutil/bswap.h | 105 + .../jniLibs/x86/include/libavutil/buffer.h | 322 + .../jniLibs/x86/include/libavutil/camellia.h | 70 + .../jniLibs/x86/include/libavutil/cast5.h | 80 + .../x86/include/libavutil/channel_layout.h | 751 ++ .../jniLibs/x86/include/libavutil/common.h | 589 ++ .../main/jniLibs/x86/include/libavutil/cpu.h | 145 + .../main/jniLibs/x86/include/libavutil/crc.h | 102 + .../main/jniLibs/x86/include/libavutil/csp.h | 150 + .../main/jniLibs/x86/include/libavutil/des.h | 81 + .../x86/include/libavutil/detection_bbox.h | 108 + .../main/jniLibs/x86/include/libavutil/dict.h | 241 + .../jniLibs/x86/include/libavutil/display.h | 109 + .../jniLibs/x86/include/libavutil/dovi_meta.h | 396 + .../x86/include/libavutil/downmix_info.h | 115 + .../x86/include/libavutil/encryption_info.h | 205 + .../jniLibs/x86/include/libavutil/error.h | 129 + .../main/jniLibs/x86/include/libavutil/eval.h | 140 + .../jniLibs/x86/include/libavutil/executor.h | 67 + .../jniLibs/x86/include/libavutil/ffversion.h | 5 + .../main/jniLibs/x86/include/libavutil/fifo.h | 242 + .../main/jniLibs/x86/include/libavutil/file.h | 62 + .../x86/include/libavutil/film_grain_params.h | 322 + .../jniLibs/x86/include/libavutil/frame.h | 1175 +++ .../main/jniLibs/x86/include/libavutil/hash.h | 264 + .../include/libavutil/hdr_dynamic_metadata.h | 376 + .../libavutil/hdr_dynamic_vivid_metadata.h | 346 + .../main/jniLibs/x86/include/libavutil/hmac.h | 99 + .../jniLibs/x86/include/libavutil/hwcontext.h | 598 ++ .../x86/include/libavutil/hwcontext_cuda.h | 74 + .../x86/include/libavutil/hwcontext_d3d11va.h | 178 + .../x86/include/libavutil/hwcontext_d3d12va.h | 142 + .../x86/include/libavutil/hwcontext_drm.h | 169 + .../x86/include/libavutil/hwcontext_dxva2.h | 75 + .../include/libavutil/hwcontext_mediacodec.h | 61 + .../x86/include/libavutil/hwcontext_opencl.h | 100 + .../x86/include/libavutil/hwcontext_qsv.h | 87 + .../x86/include/libavutil/hwcontext_vaapi.h | 117 + .../x86/include/libavutil/hwcontext_vdpau.h | 44 + .../libavutil/hwcontext_videotoolbox.h | 106 + .../x86/include/libavutil/hwcontext_vulkan.h | 382 + .../main/jniLibs/x86/include/libavutil/iamf.h | 690 ++ .../jniLibs/x86/include/libavutil/imgutils.h | 377 + .../jniLibs/x86/include/libavutil/intfloat.h | 77 + .../x86/include/libavutil/intreadwrite.h | 677 ++ .../main/jniLibs/x86/include/libavutil/lfg.h | 81 + .../main/jniLibs/x86/include/libavutil/log.h | 387 + .../main/jniLibs/x86/include/libavutil/lzo.h | 66 + .../jniLibs/x86/include/libavutil/macros.h | 80 + .../libavutil/mastering_display_metadata.h | 137 + .../x86/include/libavutil/mathematics.h | 300 + .../main/jniLibs/x86/include/libavutil/md5.h | 89 + .../main/jniLibs/x86/include/libavutil/mem.h | 607 ++ .../x86/include/libavutil/motion_vector.h | 57 + .../jniLibs/x86/include/libavutil/murmur3.h | 115 + .../main/jniLibs/x86/include/libavutil/opt.h | 1187 +++ .../x86/include/libavutil/parseutils.h | 197 + .../jniLibs/x86/include/libavutil/pixdesc.h | 440 + .../x86/include/libavutil/pixelutils.h | 51 + .../jniLibs/x86/include/libavutil/pixfmt.h | 716 ++ .../x86/include/libavutil/random_seed.h | 57 + .../jniLibs/x86/include/libavutil/rational.h | 225 + .../main/jniLibs/x86/include/libavutil/rc4.h | 69 + .../x86/include/libavutil/replaygain.h | 50 + .../jniLibs/x86/include/libavutil/ripemd.h | 83 + .../jniLibs/x86/include/libavutil/samplefmt.h | 269 + .../main/jniLibs/x86/include/libavutil/sha.h | 90 + .../jniLibs/x86/include/libavutil/sha512.h | 92 + .../jniLibs/x86/include/libavutil/spherical.h | 243 + .../jniLibs/x86/include/libavutil/stereo3d.h | 325 + .../main/jniLibs/x86/include/libavutil/tea.h | 71 + .../x86/include/libavutil/threadmessage.h | 115 + .../main/jniLibs/x86/include/libavutil/time.h | 56 + .../jniLibs/x86/include/libavutil/timecode.h | 199 + .../jniLibs/x86/include/libavutil/timestamp.h | 85 + .../main/jniLibs/x86/include/libavutil/tree.h | 137 + .../jniLibs/x86/include/libavutil/twofish.h | 70 + .../main/jniLibs/x86/include/libavutil/tx.h | 210 + .../main/jniLibs/x86/include/libavutil/uuid.h | 146 + .../jniLibs/x86/include/libavutil/version.h | 124 + .../x86/include/libavutil/video_enc_params.h | 171 + .../x86/include/libavutil/video_hint.h | 107 + .../main/jniLibs/x86/include/libavutil/xtea.h | 94 + .../x86/include/libswresample/swresample.h | 587 ++ .../x86/include/libswresample/version.h | 46 + .../x86/include/libswresample/version_major.h | 31 + .../jniLibs/x86/include/libswscale/swscale.h | 460 + .../jniLibs/x86/include/libswscale/version.h | 44 + .../x86/include/libswscale/version_major.h | 35 + app/src/main/jniLibs/x86/libavcodec.so | Bin 0 -> 8501724 bytes app/src/main/jniLibs/x86/libavfilter.so | Bin 0 -> 114560 bytes app/src/main/jniLibs/x86/libavformat.so | Bin 0 -> 1452712 bytes app/src/main/jniLibs/x86/libavutil.so | Bin 0 -> 539340 bytes app/src/main/jniLibs/x86/libswresample.so | Bin 0 -> 83248 bytes app/src/main/jniLibs/x86/libswscale.so | Bin 0 -> 428996 bytes .../x86_64/include/libavcodec/ac3_parser.h | 36 + .../x86_64/include/libavcodec/adts_parser.h | 37 + .../x86_64/include/libavcodec/avcodec.h | 3128 +++++++ .../jniLibs/x86_64/include/libavcodec/avdct.h | 88 + .../jniLibs/x86_64/include/libavcodec/avfft.h | 149 + .../jniLibs/x86_64/include/libavcodec/bsf.h | 332 + .../jniLibs/x86_64/include/libavcodec/codec.h | 382 + .../x86_64/include/libavcodec/codec_desc.h | 134 + .../x86_64/include/libavcodec/codec_id.h | 669 ++ .../x86_64/include/libavcodec/codec_par.h | 248 + .../x86_64/include/libavcodec/d3d11va.h | 109 + .../jniLibs/x86_64/include/libavcodec/defs.h | 337 + .../jniLibs/x86_64/include/libavcodec/dirac.h | 135 + .../x86_64/include/libavcodec/dv_profile.h | 82 + .../jniLibs/x86_64/include/libavcodec/dxva2.h | 90 + .../jniLibs/x86_64/include/libavcodec/jni.h | 67 + .../x86_64/include/libavcodec/mediacodec.h | 103 + .../x86_64/include/libavcodec/packet.h | 887 ++ .../jniLibs/x86_64/include/libavcodec/qsv.h | 109 + .../jniLibs/x86_64/include/libavcodec/vdpau.h | 171 + .../x86_64/include/libavcodec/version.h | 45 + .../x86_64/include/libavcodec/version_major.h | 52 + .../x86_64/include/libavcodec/videotoolbox.h | 85 + .../x86_64/include/libavcodec/vorbis_parser.h | 74 + .../x86_64/include/libavfilter/avfilter.h | 1379 +++ .../x86_64/include/libavfilter/buffersink.h | 173 + .../x86_64/include/libavfilter/buffersrc.h | 215 + .../x86_64/include/libavfilter/version.h | 48 + .../include/libavfilter/version_major.h | 40 + .../x86_64/include/libavformat/avformat.h | 3107 +++++++ .../jniLibs/x86_64/include/libavformat/avio.h | 831 ++ .../x86_64/include/libavformat/version.h | 47 + .../include/libavformat/version_major.h | 54 + .../x86_64/include/libavutil/adler32.h | 63 + .../jniLibs/x86_64/include/libavutil/aes.h | 69 + .../x86_64/include/libavutil/aes_ctr.h | 99 + .../libavutil/ambient_viewing_environment.h | 72 + .../x86_64/include/libavutil/attributes.h | 173 + .../x86_64/include/libavutil/audio_fifo.h | 187 + .../x86_64/include/libavutil/avassert.h | 78 + .../x86_64/include/libavutil/avconfig.h | 6 + .../x86_64/include/libavutil/avstring.h | 428 + .../jniLibs/x86_64/include/libavutil/avutil.h | 362 + .../jniLibs/x86_64/include/libavutil/base64.h | 72 + .../x86_64/include/libavutil/blowfish.h | 82 + .../jniLibs/x86_64/include/libavutil/bprint.h | 254 + .../jniLibs/x86_64/include/libavutil/bswap.h | 105 + .../jniLibs/x86_64/include/libavutil/buffer.h | 322 + .../x86_64/include/libavutil/camellia.h | 70 + .../jniLibs/x86_64/include/libavutil/cast5.h | 80 + .../x86_64/include/libavutil/channel_layout.h | 751 ++ .../jniLibs/x86_64/include/libavutil/common.h | 589 ++ .../jniLibs/x86_64/include/libavutil/cpu.h | 145 + .../jniLibs/x86_64/include/libavutil/crc.h | 102 + .../jniLibs/x86_64/include/libavutil/csp.h | 150 + .../jniLibs/x86_64/include/libavutil/des.h | 81 + .../x86_64/include/libavutil/detection_bbox.h | 108 + .../jniLibs/x86_64/include/libavutil/dict.h | 241 + .../x86_64/include/libavutil/display.h | 109 + .../x86_64/include/libavutil/dovi_meta.h | 396 + .../x86_64/include/libavutil/downmix_info.h | 115 + .../include/libavutil/encryption_info.h | 205 + .../jniLibs/x86_64/include/libavutil/error.h | 129 + .../jniLibs/x86_64/include/libavutil/eval.h | 140 + .../x86_64/include/libavutil/executor.h | 67 + .../x86_64/include/libavutil/ffversion.h | 5 + .../jniLibs/x86_64/include/libavutil/fifo.h | 242 + .../jniLibs/x86_64/include/libavutil/file.h | 62 + .../include/libavutil/film_grain_params.h | 322 + .../jniLibs/x86_64/include/libavutil/frame.h | 1175 +++ .../jniLibs/x86_64/include/libavutil/hash.h | 264 + .../include/libavutil/hdr_dynamic_metadata.h | 376 + .../libavutil/hdr_dynamic_vivid_metadata.h | 346 + .../jniLibs/x86_64/include/libavutil/hmac.h | 99 + .../x86_64/include/libavutil/hwcontext.h | 598 ++ .../x86_64/include/libavutil/hwcontext_cuda.h | 74 + .../include/libavutil/hwcontext_d3d11va.h | 178 + .../include/libavutil/hwcontext_d3d12va.h | 142 + .../x86_64/include/libavutil/hwcontext_drm.h | 169 + .../include/libavutil/hwcontext_dxva2.h | 75 + .../include/libavutil/hwcontext_mediacodec.h | 61 + .../include/libavutil/hwcontext_opencl.h | 100 + .../x86_64/include/libavutil/hwcontext_qsv.h | 87 + .../include/libavutil/hwcontext_vaapi.h | 117 + .../include/libavutil/hwcontext_vdpau.h | 44 + .../libavutil/hwcontext_videotoolbox.h | 106 + .../include/libavutil/hwcontext_vulkan.h | 382 + .../jniLibs/x86_64/include/libavutil/iamf.h | 690 ++ .../x86_64/include/libavutil/imgutils.h | 377 + .../x86_64/include/libavutil/intfloat.h | 77 + .../x86_64/include/libavutil/intreadwrite.h | 677 ++ .../jniLibs/x86_64/include/libavutil/lfg.h | 81 + .../jniLibs/x86_64/include/libavutil/log.h | 387 + .../jniLibs/x86_64/include/libavutil/lzo.h | 66 + .../jniLibs/x86_64/include/libavutil/macros.h | 80 + .../libavutil/mastering_display_metadata.h | 137 + .../x86_64/include/libavutil/mathematics.h | 300 + .../jniLibs/x86_64/include/libavutil/md5.h | 89 + .../jniLibs/x86_64/include/libavutil/mem.h | 607 ++ .../x86_64/include/libavutil/motion_vector.h | 57 + .../x86_64/include/libavutil/murmur3.h | 115 + .../jniLibs/x86_64/include/libavutil/opt.h | 1187 +++ .../x86_64/include/libavutil/parseutils.h | 197 + .../x86_64/include/libavutil/pixdesc.h | 440 + .../x86_64/include/libavutil/pixelutils.h | 51 + .../jniLibs/x86_64/include/libavutil/pixfmt.h | 716 ++ .../x86_64/include/libavutil/random_seed.h | 57 + .../x86_64/include/libavutil/rational.h | 225 + .../jniLibs/x86_64/include/libavutil/rc4.h | 69 + .../x86_64/include/libavutil/replaygain.h | 50 + .../jniLibs/x86_64/include/libavutil/ripemd.h | 83 + .../x86_64/include/libavutil/samplefmt.h | 269 + .../jniLibs/x86_64/include/libavutil/sha.h | 90 + .../jniLibs/x86_64/include/libavutil/sha512.h | 92 + .../x86_64/include/libavutil/spherical.h | 243 + .../x86_64/include/libavutil/stereo3d.h | 325 + .../jniLibs/x86_64/include/libavutil/tea.h | 71 + .../x86_64/include/libavutil/threadmessage.h | 115 + .../jniLibs/x86_64/include/libavutil/time.h | 56 + .../x86_64/include/libavutil/timecode.h | 199 + .../x86_64/include/libavutil/timestamp.h | 85 + .../jniLibs/x86_64/include/libavutil/tree.h | 137 + .../x86_64/include/libavutil/twofish.h | 70 + .../jniLibs/x86_64/include/libavutil/tx.h | 210 + .../jniLibs/x86_64/include/libavutil/uuid.h | 146 + .../x86_64/include/libavutil/version.h | 124 + .../include/libavutil/video_enc_params.h | 171 + .../x86_64/include/libavutil/video_hint.h | 107 + .../jniLibs/x86_64/include/libavutil/xtea.h | 94 + .../x86_64/include/libswresample/swresample.h | 587 ++ .../x86_64/include/libswresample/version.h | 46 + .../include/libswresample/version_major.h | 31 + .../x86_64/include/libswscale/swscale.h | 460 + .../x86_64/include/libswscale/version.h | 44 + .../x86_64/include/libswscale/version_major.h | 35 + app/src/main/jniLibs/x86_64/libavcodec.so | Bin 0 -> 9639672 bytes app/src/main/jniLibs/x86_64/libavfilter.so | Bin 0 -> 107128 bytes app/src/main/jniLibs/x86_64/libavformat.so | Bin 0 -> 1280008 bytes app/src/main/jniLibs/x86_64/libavutil.so | Bin 0 -> 694848 bytes app/src/main/jniLibs/x86_64/libswresample.so | Bin 0 -> 105608 bytes app/src/main/jniLibs/x86_64/libswscale.so | Bin 0 -> 582840 bytes .../launcher/wall/MyWallpaperService.kt | 190 +- .../lunatic/launcher/wall/NativeRenderer.kt | 16 +- 572 files changed, 148866 insertions(+), 252 deletions(-) create mode 100644 app/src/main/cpp/include/stb_image.h create mode 100644 app/src/main/jniLibs/android.sh create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/ac3_parser.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/adts_parser.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/avcodec.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/avdct.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/avfft.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/bsf.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_desc.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_id.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_par.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/d3d11va.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/defs.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/dirac.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/dv_profile.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/dxva2.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/jni.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/mediacodec.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/packet.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/qsv.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/vdpau.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/version.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/version_major.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/videotoolbox.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavcodec/vorbis_parser.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavfilter/avfilter.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavfilter/buffersink.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavfilter/buffersrc.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavfilter/version.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavfilter/version_major.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavformat/avformat.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavformat/avio.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavformat/version.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavformat/version_major.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/adler32.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/aes.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/aes_ctr.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/ambient_viewing_environment.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/attributes.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/audio_fifo.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/avassert.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/avconfig.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/avstring.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/avutil.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/base64.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/blowfish.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/bprint.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/bswap.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/buffer.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/camellia.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/cast5.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/channel_layout.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/common.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/cpu.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/crc.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/csp.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/des.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/detection_bbox.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/dict.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/display.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/dovi_meta.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/downmix_info.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/encryption_info.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/error.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/eval.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/executor.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/ffversion.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/fifo.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/file.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/film_grain_params.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/frame.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hash.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hdr_dynamic_metadata.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hdr_dynamic_vivid_metadata.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hmac.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_cuda.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_d3d11va.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_d3d12va.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_drm.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_dxva2.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_mediacodec.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_opencl.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_qsv.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vaapi.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vdpau.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_videotoolbox.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vulkan.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/iamf.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/imgutils.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/intfloat.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/intreadwrite.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/lfg.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/log.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/lzo.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/macros.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/mastering_display_metadata.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/mathematics.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/md5.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/mem.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/motion_vector.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/murmur3.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/opt.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/parseutils.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/pixdesc.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/pixelutils.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/pixfmt.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/random_seed.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/rational.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/rc4.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/replaygain.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/ripemd.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/samplefmt.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/sha.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/sha512.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/spherical.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/stereo3d.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/tea.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/threadmessage.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/time.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/timecode.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/timestamp.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/tree.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/twofish.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/tx.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/uuid.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/version.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/video_enc_params.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/video_hint.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libavutil/xtea.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libswresample/swresample.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libswresample/version.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libswresample/version_major.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libswscale/swscale.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libswscale/version.h create mode 100644 app/src/main/jniLibs/arm64-v8a/include/libswscale/version_major.h create mode 100644 app/src/main/jniLibs/arm64-v8a/libavcodec.so create mode 100644 app/src/main/jniLibs/arm64-v8a/libavfilter.so create mode 100644 app/src/main/jniLibs/arm64-v8a/libavformat.so create mode 100644 app/src/main/jniLibs/arm64-v8a/libavutil.so create mode 100644 app/src/main/jniLibs/arm64-v8a/libswresample.so create mode 100644 app/src/main/jniLibs/arm64-v8a/libswscale.so create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/ac3_parser.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/adts_parser.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/avcodec.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/avdct.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/avfft.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/bsf.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/codec.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/codec_desc.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/codec_id.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/codec_par.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/d3d11va.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/defs.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/dirac.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/dv_profile.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/dxva2.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/jni.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/mediacodec.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/packet.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/qsv.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/vdpau.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/version.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/version_major.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/videotoolbox.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavcodec/vorbis_parser.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavfilter/avfilter.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavfilter/buffersink.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavfilter/buffersrc.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavfilter/version.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavfilter/version_major.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavformat/avformat.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavformat/avio.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavformat/version.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavformat/version_major.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/adler32.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/aes.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/aes_ctr.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/ambient_viewing_environment.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/attributes.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/audio_fifo.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/avassert.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/avconfig.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/avstring.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/avutil.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/base64.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/blowfish.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/bprint.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/bswap.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/buffer.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/camellia.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/cast5.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/channel_layout.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/common.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/cpu.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/crc.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/csp.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/des.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/detection_bbox.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/dict.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/display.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/dovi_meta.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/downmix_info.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/encryption_info.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/error.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/eval.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/executor.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/ffversion.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/fifo.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/file.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/film_grain_params.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/frame.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hash.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hdr_dynamic_metadata.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hdr_dynamic_vivid_metadata.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hmac.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_cuda.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_d3d11va.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_d3d12va.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_drm.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_dxva2.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_mediacodec.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_opencl.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_qsv.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_vaapi.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_vdpau.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_videotoolbox.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/hwcontext_vulkan.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/iamf.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/imgutils.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/intfloat.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/intreadwrite.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/lfg.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/log.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/lzo.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/macros.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/mastering_display_metadata.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/mathematics.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/md5.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/mem.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/motion_vector.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/murmur3.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/opt.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/parseutils.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/pixdesc.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/pixelutils.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/pixfmt.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/random_seed.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/rational.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/rc4.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/replaygain.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/ripemd.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/samplefmt.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/sha.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/sha512.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/spherical.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/stereo3d.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/tea.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/threadmessage.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/time.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/timecode.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/timestamp.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/tree.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/twofish.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/tx.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/uuid.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/version.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/video_enc_params.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/video_hint.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libavutil/xtea.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libswresample/swresample.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libswresample/version.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libswresample/version_major.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libswscale/swscale.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libswscale/version.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/include/libswscale/version_major.h create mode 100644 app/src/main/jniLibs/armeabi-v7a/libavcodec.so create mode 100644 app/src/main/jniLibs/armeabi-v7a/libavfilter.so create mode 100644 app/src/main/jniLibs/armeabi-v7a/libavformat.so create mode 100644 app/src/main/jniLibs/armeabi-v7a/libavutil.so create mode 100644 app/src/main/jniLibs/armeabi-v7a/libswresample.so create mode 100644 app/src/main/jniLibs/armeabi-v7a/libswscale.so create mode 100644 app/src/main/jniLibs/readme.md create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/ac3_parser.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/adts_parser.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/avcodec.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/avdct.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/avfft.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/bsf.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/codec.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/codec_desc.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/codec_id.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/codec_par.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/d3d11va.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/defs.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/dirac.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/dv_profile.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/dxva2.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/jni.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/mediacodec.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/packet.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/qsv.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/vdpau.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/version.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/version_major.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/videotoolbox.h create mode 100644 app/src/main/jniLibs/x86/include/libavcodec/vorbis_parser.h create mode 100644 app/src/main/jniLibs/x86/include/libavfilter/avfilter.h create mode 100644 app/src/main/jniLibs/x86/include/libavfilter/buffersink.h create mode 100644 app/src/main/jniLibs/x86/include/libavfilter/buffersrc.h create mode 100644 app/src/main/jniLibs/x86/include/libavfilter/version.h create mode 100644 app/src/main/jniLibs/x86/include/libavfilter/version_major.h create mode 100644 app/src/main/jniLibs/x86/include/libavformat/avformat.h create mode 100644 app/src/main/jniLibs/x86/include/libavformat/avio.h create mode 100644 app/src/main/jniLibs/x86/include/libavformat/version.h create mode 100644 app/src/main/jniLibs/x86/include/libavformat/version_major.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/adler32.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/aes.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/aes_ctr.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/ambient_viewing_environment.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/attributes.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/audio_fifo.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/avassert.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/avconfig.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/avstring.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/avutil.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/base64.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/blowfish.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/bprint.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/bswap.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/buffer.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/camellia.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/cast5.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/channel_layout.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/common.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/cpu.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/crc.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/csp.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/des.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/detection_bbox.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/dict.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/display.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/dovi_meta.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/downmix_info.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/encryption_info.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/error.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/eval.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/executor.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/ffversion.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/fifo.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/file.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/film_grain_params.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/frame.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hash.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hdr_dynamic_metadata.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hdr_dynamic_vivid_metadata.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hmac.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_cuda.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_d3d11va.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_d3d12va.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_drm.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_dxva2.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_mediacodec.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_opencl.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_qsv.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_vaapi.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_vdpau.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_videotoolbox.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/hwcontext_vulkan.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/iamf.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/imgutils.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/intfloat.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/intreadwrite.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/lfg.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/log.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/lzo.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/macros.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/mastering_display_metadata.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/mathematics.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/md5.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/mem.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/motion_vector.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/murmur3.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/opt.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/parseutils.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/pixdesc.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/pixelutils.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/pixfmt.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/random_seed.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/rational.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/rc4.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/replaygain.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/ripemd.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/samplefmt.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/sha.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/sha512.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/spherical.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/stereo3d.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/tea.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/threadmessage.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/time.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/timecode.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/timestamp.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/tree.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/twofish.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/tx.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/uuid.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/version.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/video_enc_params.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/video_hint.h create mode 100644 app/src/main/jniLibs/x86/include/libavutil/xtea.h create mode 100644 app/src/main/jniLibs/x86/include/libswresample/swresample.h create mode 100644 app/src/main/jniLibs/x86/include/libswresample/version.h create mode 100644 app/src/main/jniLibs/x86/include/libswresample/version_major.h create mode 100644 app/src/main/jniLibs/x86/include/libswscale/swscale.h create mode 100644 app/src/main/jniLibs/x86/include/libswscale/version.h create mode 100644 app/src/main/jniLibs/x86/include/libswscale/version_major.h create mode 100644 app/src/main/jniLibs/x86/libavcodec.so create mode 100644 app/src/main/jniLibs/x86/libavfilter.so create mode 100644 app/src/main/jniLibs/x86/libavformat.so create mode 100644 app/src/main/jniLibs/x86/libavutil.so create mode 100644 app/src/main/jniLibs/x86/libswresample.so create mode 100644 app/src/main/jniLibs/x86/libswscale.so create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/ac3_parser.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/adts_parser.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/avcodec.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/avdct.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/avfft.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/bsf.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/codec.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/codec_desc.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/codec_id.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/codec_par.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/d3d11va.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/defs.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/dirac.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/dv_profile.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/dxva2.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/jni.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/mediacodec.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/packet.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/qsv.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/vdpau.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/version.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/version_major.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/videotoolbox.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavcodec/vorbis_parser.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavfilter/avfilter.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavfilter/buffersink.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavfilter/buffersrc.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavfilter/version.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavfilter/version_major.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavformat/avformat.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavformat/avio.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavformat/version.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavformat/version_major.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/adler32.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/aes.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/aes_ctr.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/ambient_viewing_environment.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/attributes.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/audio_fifo.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/avassert.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/avconfig.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/avstring.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/avutil.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/base64.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/blowfish.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/bprint.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/bswap.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/buffer.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/camellia.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/cast5.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/channel_layout.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/common.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/cpu.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/crc.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/csp.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/des.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/detection_bbox.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/dict.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/display.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/dovi_meta.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/downmix_info.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/encryption_info.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/error.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/eval.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/executor.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/ffversion.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/fifo.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/file.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/film_grain_params.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/frame.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hash.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hdr_dynamic_metadata.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hdr_dynamic_vivid_metadata.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hmac.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_cuda.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_d3d11va.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_d3d12va.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_drm.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_dxva2.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_mediacodec.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_opencl.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_qsv.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_vaapi.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_vdpau.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_videotoolbox.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/hwcontext_vulkan.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/iamf.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/imgutils.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/intfloat.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/intreadwrite.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/lfg.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/log.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/lzo.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/macros.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/mastering_display_metadata.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/mathematics.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/md5.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/mem.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/motion_vector.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/murmur3.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/opt.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/parseutils.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/pixdesc.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/pixelutils.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/pixfmt.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/random_seed.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/rational.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/rc4.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/replaygain.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/ripemd.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/samplefmt.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/sha.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/sha512.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/spherical.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/stereo3d.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/tea.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/threadmessage.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/time.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/timecode.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/timestamp.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/tree.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/twofish.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/tx.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/uuid.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/version.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/video_enc_params.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/video_hint.h create mode 100644 app/src/main/jniLibs/x86_64/include/libavutil/xtea.h create mode 100644 app/src/main/jniLibs/x86_64/include/libswresample/swresample.h create mode 100644 app/src/main/jniLibs/x86_64/include/libswresample/version.h create mode 100644 app/src/main/jniLibs/x86_64/include/libswresample/version_major.h create mode 100644 app/src/main/jniLibs/x86_64/include/libswscale/swscale.h create mode 100644 app/src/main/jniLibs/x86_64/include/libswscale/version.h create mode 100644 app/src/main/jniLibs/x86_64/include/libswscale/version_major.h create mode 100644 app/src/main/jniLibs/x86_64/libavcodec.so create mode 100644 app/src/main/jniLibs/x86_64/libavfilter.so create mode 100644 app/src/main/jniLibs/x86_64/libavformat.so create mode 100644 app/src/main/jniLibs/x86_64/libavutil.so create mode 100644 app/src/main/jniLibs/x86_64/libswresample.so create mode 100644 app/src/main/jniLibs/x86_64/libswscale.so diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b1b237c4..7fca859b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,7 +21,7 @@ android { externalNativeBuild { cmake { - cppFlags += "-std=c++11" + cppFlags += "-std=c++17" } } } @@ -61,6 +61,9 @@ android { } } + android { + sourceSets["main"].jniLibs.srcDirs("src/main/jniLibs") + } applicationVariants.all { if (buildType.name == "release") { @@ -91,6 +94,8 @@ android { kotlinOptions { jvmTarget = "1.8" } + ndkVersion = "29.0.13846066 rc3" + buildToolsVersion = "35.0.1" } @@ -136,6 +141,7 @@ dependencies { implementation("io.github.junkfood02.youtubedl-android:ffmpeg:0.17.4") implementation("io.github.junkfood02.youtubedl-android:aria2c:0.17.4") +// implementation ("com.arthenica:ffmpeg-kit-full:4.5.LTS") implementation ("androidx.media:media:1.7.0") // implementation(project(":sdk")) diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt index f2cd7173..03ab0c0e 100644 --- a/app/src/main/cpp/CMakeLists.txt +++ b/app/src/main/cpp/CMakeLists.txt @@ -1,8 +1,59 @@ + cmake_minimum_required(VERSION 3.10.2) -project("native_renderer") +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) -add_library(native-renderer SHARED native_renderer.cpp) +project(native_renderer) +# 기본 로그 및 안드로이드 라이브러리 find_library(log-lib log) +find_library(android-lib android) -target_link_libraries(native-renderer ${log-lib} android) +# ABI에 따라 jniLibs 경로 지정 (예: arm64-v8a, armeabi-v7a 등) +set(FFMPEG_LIB_DIR ${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}) +message(STATUS "FFMPEG_LIB_DIR: ${FFMPEG_LIB_DIR}") + + +# FFmpeg 헤더 경로 추가 +include_directories(${FFMPEG_LIB_DIR}/include) +include_directories(${CMAKE_SOURCE_DIR}/include) # stb_image.h가 이 경로에 있다면 + +# FFmpeg 라이브러리들 임포트 선언 및 위치 지정 +add_library(avformat SHARED IMPORTED) +set_target_properties(avformat PROPERTIES IMPORTED_LOCATION + ${FFMPEG_LIB_DIR}/libavformat.so) + +add_library(avcodec SHARED IMPORTED) +set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION + ${FFMPEG_LIB_DIR}/libavcodec.so) + +add_library(avutil SHARED IMPORTED) +set_target_properties(avutil PROPERTIES IMPORTED_LOCATION + ${FFMPEG_LIB_DIR}/libavutil.so) + +add_library(swscale SHARED IMPORTED) +set_target_properties(swscale PROPERTIES IMPORTED_LOCATION + ${FFMPEG_LIB_DIR}/libswscale.so) + +add_library(swresample SHARED IMPORTED) +set_target_properties(swresample PROPERTIES IMPORTED_LOCATION + ${FFMPEG_LIB_DIR}/libswresample.so) + +add_library(avfilter SHARED IMPORTED) +set_target_properties(avfilter PROPERTIES IMPORTED_LOCATION + ${FFMPEG_LIB_DIR}/libavfilter.so) + +# 네이티브 렌더러 라이브러리 빌드 +add_library(native_renderer SHARED native_renderer.cpp) # 실제 소스파일명 입력 + +# 링크할 라이브러리 지정 +target_link_libraries(native_renderer + avformat + avcodec + avutil + swscale + swresample + avfilter + ${log-lib} + ${android-lib} +) diff --git a/app/src/main/cpp/include/stb_image.h b/app/src/main/cpp/include/stb_image.h new file mode 100644 index 00000000..074e6b64 --- /dev/null +++ b/app/src/main/cpp/include/stb_image.h @@ -0,0 +1,7988 @@ +/* stb_image - v2.30 - public domain image loader - http://nothings.org/stb + no warranty implied; use at your own risk + + Do this: + #define STB_IMAGE_IMPLEMENTATION + before you include this file in *one* C or C++ file to create the implementation. + + // i.e. it should look like this: + #include ... + #include ... + #include ... + #define STB_IMAGE_IMPLEMENTATION + #include "stb_image.h" + + You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. + And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free + + + QUICK NOTES: + Primarily of interest to game developers and other people who can + avoid problematic images and only need the trivial interface + + JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) + PNG 1/2/4/8/16-bit-per-channel + + TGA (not sure what subset, if a subset) + BMP non-1bpp, non-RLE + PSD (composited view only, no extra channels, 8/16 bit-per-channel) + + GIF (*comp always reports as 4-channel) + HDR (radiance rgbE format) + PIC (Softimage PIC) + PNM (PPM and PGM binary only) + + Animated GIF still needs a proper API, but here's one way to do it: + http://gist.github.com/urraka/685d9a6340b26b830d49 + + - decode from memory or through FILE (define STBI_NO_STDIO to remove code) + - decode from arbitrary I/O callbacks + - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) + + Full documentation under "DOCUMENTATION" below. + + +LICENSE + + See end of file for license information. + +RECENT REVISION HISTORY: + + 2.30 (2024-05-31) avoid erroneous gcc warning + 2.29 (2023-05-xx) optimizations + 2.28 (2023-01-29) many error fixes, security errors, just tons of stuff + 2.27 (2021-07-11) document stbi_info better, 16-bit PNM support, bug fixes + 2.26 (2020-07-13) many minor fixes + 2.25 (2020-02-02) fix warnings + 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically + 2.23 (2019-08-11) fix clang static analysis warning + 2.22 (2019-03-04) gif fixes, fix warnings + 2.21 (2019-02-25) fix typo in comment + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings + 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes + 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 + RGB-format JPEG; remove white matting in PSD; + allocate large structures on the stack; + correct channel count for PNG & BMP + 2.10 (2016-01-22) avoid warning introduced in 2.09 + 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED + + See end of file for full revision history. + + + ============================ Contributors ========================= + + Image formats Extensions, features + Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) + Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) + Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) + Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) + Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) + Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) + Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) + github:urraka (animated gif) Junggon Kim (PNM comments) + Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) + socks-the-fox (16-bit PNG) + Jeremy Sawicki (handle all ImageNet JPGs) + Optimizations & bugfixes Mikhail Morozov (1-bit BMP) + Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) + Arseny Kapoulkine Simon Breuss (16-bit PNM) + John-Mark Allen + Carmelo J Fdez-Aguera + + Bug & warning fixes + Marc LeBlanc David Woo Guillaume George Martins Mozeiko + Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski + Phil Jordan Dave Moore Roy Eltham + Hayaki Saito Nathan Reed Won Chun + Luke Graham Johan Duparc Nick Verigakis the Horde3D community + Thomas Ruf Ronny Chevalier github:rlyeh + Janez Zemva John Bartholomew Michal Cichon github:romigrou + Jonathan Blow Ken Hamada Tero Hanninen github:svdijk + Eugene Golushkov Laurent Gomila Cort Stratton github:snagar + Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex + Cass Everitt Ryamond Barbiero github:grim210 + Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw + Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus + Josh Tobin Neil Bickford Matthew Gregan github:poppolopoppo + Julian Raschke Gregory Mullen Christian Floisand github:darealshinji + Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007 + Brad Weinberger Matvey Cherevko github:mosra + Luca Sas Alexander Veselov Zack Middleton [reserved] + Ryan C. Gordon [reserved] [reserved] + DO NOT ADD YOUR NAME HERE + + Jacko Dirks + + To add your name to the credits, pick a random blank space in the middle and fill it. + 80% of merge conflicts on stb PRs are due to people adding their name at the end + of the credits. +*/ + +#ifndef STBI_INCLUDE_STB_IMAGE_H +#define STBI_INCLUDE_STB_IMAGE_H + +// DOCUMENTATION +// +// Limitations: +// - no 12-bit-per-channel JPEG +// - no JPEGs with arithmetic coding +// - GIF always returns *comp=4 +// +// Basic usage (see HDR discussion below for HDR usage): +// int x,y,n; +// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); +// // ... process data if not NULL ... +// // ... x = width, y = height, n = # 8-bit components per pixel ... +// // ... replace '0' with '1'..'4' to force that many components per pixel +// // ... but 'n' will always be the number that it would have been if you said 0 +// stbi_image_free(data); +// +// Standard parameters: +// int *x -- outputs image width in pixels +// int *y -- outputs image height in pixels +// int *channels_in_file -- outputs # of image components in image file +// int desired_channels -- if non-zero, # of image components requested in result +// +// The return value from an image loader is an 'unsigned char *' which points +// to the pixel data, or NULL on an allocation failure or if the image is +// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, +// with each pixel consisting of N interleaved 8-bit components; the first +// pixel pointed to is top-left-most in the image. There is no padding between +// image scanlines or between pixels, regardless of format. The number of +// components N is 'desired_channels' if desired_channels is non-zero, or +// *channels_in_file otherwise. If desired_channels is non-zero, +// *channels_in_file has the number of components that _would_ have been +// output otherwise. E.g. if you set desired_channels to 4, you will always +// get RGBA output, but you can check *channels_in_file to see if it's trivially +// opaque because e.g. there were only 3 channels in the source image. +// +// An output image with N components has the following components interleaved +// in this order in each pixel: +// +// N=#comp components +// 1 grey +// 2 grey, alpha +// 3 red, green, blue +// 4 red, green, blue, alpha +// +// If image loading fails for any reason, the return value will be NULL, +// and *x, *y, *channels_in_file will be unchanged. The function +// stbi_failure_reason() can be queried for an extremely brief, end-user +// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS +// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly +// more user-friendly ones. +// +// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. +// +// To query the width, height and component count of an image without having to +// decode the full file, you can use the stbi_info family of functions: +// +// int x,y,n,ok; +// ok = stbi_info(filename, &x, &y, &n); +// // returns ok=1 and sets x, y, n if image is a supported format, +// // 0 otherwise. +// +// Note that stb_image pervasively uses ints in its public API for sizes, +// including sizes of memory buffers. This is now part of the API and thus +// hard to change without causing breakage. As a result, the various image +// loaders all have certain limits on image size; these differ somewhat +// by format but generally boil down to either just under 2GB or just under +// 1GB. When the decoded image would be larger than this, stb_image decoding +// will fail. +// +// Additionally, stb_image will reject image files that have any of their +// dimensions set to a larger value than the configurable STBI_MAX_DIMENSIONS, +// which defaults to 2**24 = 16777216 pixels. Due to the above memory limit, +// the only way to have an image with such dimensions load correctly +// is for it to have a rather extreme aspect ratio. Either way, the +// assumption here is that such larger images are likely to be malformed +// or malicious. If you do need to load an image with individual dimensions +// larger than that, and it still fits in the overall size limit, you can +// #define STBI_MAX_DIMENSIONS on your own to be something larger. +// +// =========================================================================== +// +// UNICODE: +// +// If compiling for Windows and you wish to use Unicode filenames, compile +// with +// #define STBI_WINDOWS_UTF8 +// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert +// Windows wchar_t filenames to utf8. +// +// =========================================================================== +// +// Philosophy +// +// stb libraries are designed with the following priorities: +// +// 1. easy to use +// 2. easy to maintain +// 3. good performance +// +// Sometimes I let "good performance" creep up in priority over "easy to maintain", +// and for best performance I may provide less-easy-to-use APIs that give higher +// performance, in addition to the easy-to-use ones. Nevertheless, it's important +// to keep in mind that from the standpoint of you, a client of this library, +// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. +// +// Some secondary priorities arise directly from the first two, some of which +// provide more explicit reasons why performance can't be emphasized. +// +// - Portable ("ease of use") +// - Small source code footprint ("easy to maintain") +// - No dependencies ("ease of use") +// +// =========================================================================== +// +// I/O callbacks +// +// I/O callbacks allow you to read from arbitrary sources, like packaged +// files or some other source. Data read from callbacks are processed +// through a small internal buffer (currently 128 bytes) to try to reduce +// overhead. +// +// The three functions you must define are "read" (reads some bytes of data), +// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). +// +// =========================================================================== +// +// SIMD support +// +// The JPEG decoder will try to automatically use SIMD kernels on x86 when +// supported by the compiler. For ARM Neon support, you must explicitly +// request it. +// +// (The old do-it-yourself SIMD API is no longer supported in the current +// code.) +// +// On x86, SSE2 will automatically be used when available based on a run-time +// test; if not, the generic C versions are used as a fall-back. On ARM targets, +// the typical path is to have separate builds for NEON and non-NEON devices +// (at least this is true for iOS and Android). Therefore, the NEON support is +// toggled by a build flag: define STBI_NEON to get NEON loops. +// +// If for some reason you do not want to use any of SIMD code, or if +// you have issues compiling it, you can disable it entirely by +// defining STBI_NO_SIMD. +// +// =========================================================================== +// +// HDR image support (disable by defining STBI_NO_HDR) +// +// stb_image supports loading HDR images in general, and currently the Radiance +// .HDR file format specifically. You can still load any file through the existing +// interface; if you attempt to load an HDR file, it will be automatically remapped +// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; +// both of these constants can be reconfigured through this interface: +// +// stbi_hdr_to_ldr_gamma(2.2f); +// stbi_hdr_to_ldr_scale(1.0f); +// +// (note, do not use _inverse_ constants; stbi_image will invert them +// appropriately). +// +// Additionally, there is a new, parallel interface for loading files as +// (linear) floats to preserve the full dynamic range: +// +// float *data = stbi_loadf(filename, &x, &y, &n, 0); +// +// If you load LDR images through this interface, those images will +// be promoted to floating point values, run through the inverse of +// constants corresponding to the above: +// +// stbi_ldr_to_hdr_scale(1.0f); +// stbi_ldr_to_hdr_gamma(2.2f); +// +// Finally, given a filename (or an open file or memory block--see header +// file for details) containing image data, you can query for the "most +// appropriate" interface to use (that is, whether the image is HDR or +// not), using: +// +// stbi_is_hdr(char *filename); +// +// =========================================================================== +// +// iPhone PNG support: +// +// We optionally support converting iPhone-formatted PNGs (which store +// premultiplied BGRA) back to RGB, even though they're internally encoded +// differently. To enable this conversion, call +// stbi_convert_iphone_png_to_rgb(1). +// +// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per +// pixel to remove any premultiplied alpha *only* if the image file explicitly +// says there's premultiplied data (currently only happens in iPhone images, +// and only if iPhone convert-to-rgb processing is on). +// +// =========================================================================== +// +// ADDITIONAL CONFIGURATION +// +// - You can suppress implementation of any of the decoders to reduce +// your code footprint by #defining one or more of the following +// symbols before creating the implementation. +// +// STBI_NO_JPEG +// STBI_NO_PNG +// STBI_NO_BMP +// STBI_NO_PSD +// STBI_NO_TGA +// STBI_NO_GIF +// STBI_NO_HDR +// STBI_NO_PIC +// STBI_NO_PNM (.ppm and .pgm) +// +// - You can request *only* certain decoders and suppress all other ones +// (this will be more forward-compatible, as addition of new decoders +// doesn't require you to disable them explicitly): +// +// STBI_ONLY_JPEG +// STBI_ONLY_PNG +// STBI_ONLY_BMP +// STBI_ONLY_PSD +// STBI_ONLY_TGA +// STBI_ONLY_GIF +// STBI_ONLY_HDR +// STBI_ONLY_PIC +// STBI_ONLY_PNM (.ppm and .pgm) +// +// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still +// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB +// +// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater +// than that size (in either width or height) without further processing. +// This is to let programs in the wild set an upper bound to prevent +// denial-of-service attacks on untrusted data, as one could generate a +// valid image of gigantic dimensions and force stb_image to allocate a +// huge block of memory and spend disproportionate time decoding it. By +// default this is set to (1 << 24), which is 16777216, but that's still +// very big. + +#ifndef STBI_NO_STDIO +#include +#endif // STBI_NO_STDIO + +#define STBI_VERSION 1 + +enum +{ + STBI_default = 0, // only used for desired_channels + + STBI_grey = 1, + STBI_grey_alpha = 2, + STBI_rgb = 3, + STBI_rgb_alpha = 4 +}; + +#include +typedef unsigned char stbi_uc; +typedef unsigned short stbi_us; + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef STBIDEF +#ifdef STB_IMAGE_STATIC +#define STBIDEF static +#else +#define STBIDEF extern +#endif +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// PRIMARY API - works on images of any type +// + +// +// load image by filename, open file, or memory buffer +// + +typedef struct +{ + int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read + void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative + int (*eof) (void *user); // returns nonzero if we are at end of file/data +} stbi_io_callbacks; + +//////////////////////////////////// +// +// 8-bits-per-channel interface +// + +STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +// for stbi_load_from_file, file pointer is left pointing immediately after image +#endif + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +#endif + +#ifdef STBI_WINDOWS_UTF8 +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input); +#endif + +//////////////////////////////////// +// +// 16-bits-per-channel interface +// + +STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif + +//////////////////////////////////// +// +// float-per-channel interface +// +#ifndef STBI_NO_LINEAR +STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif +#endif + +#ifndef STBI_NO_HDR +STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); +STBIDEF void stbi_hdr_to_ldr_scale(float scale); +#endif // STBI_NO_HDR + +#ifndef STBI_NO_LINEAR +STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); +STBIDEF void stbi_ldr_to_hdr_scale(float scale); +#endif // STBI_NO_LINEAR + +// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename); +STBIDEF int stbi_is_hdr_from_file(FILE *f); +#endif // STBI_NO_STDIO + + +// get a VERY brief reason for failure +// on most compilers (and ALL modern mainstream compilers) this is threadsafe +STBIDEF const char *stbi_failure_reason (void); + +// free the loaded image -- this is just free() +STBIDEF void stbi_image_free (void *retval_from_stbi_load); + +// get image dimensions & components without fully decoding +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit (char const *filename); +STBIDEF int stbi_is_16_bit_from_file(FILE *f); +#endif + + + +// for image formats that explicitly notate that they have premultiplied alpha, +// we just return the colors as stored in the file. set this flag to force +// unpremultiplication. results are undefined if the unpremultiply overflow. +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); + +// indicate whether we should process iphone images back to canonical format, +// or just pass them through "as-is" +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); + +// flip the image vertically, so the first pixel in the output array is the bottom left +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); + +// as above, but only applies to images loaded on the thread that calls the function +// this function is only available if your compiler supports thread-local variables; +// calling it will fail to link if your compiler doesn't +STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply); +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert); +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip); + +// ZLIB client - used by PNG, available for other purposes + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); +STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + +STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + + +#ifdef __cplusplus +} +#endif + +// +// +//// end header file ///////////////////////////////////////////////////// +#endif // STBI_INCLUDE_STB_IMAGE_H + +#ifdef STB_IMAGE_IMPLEMENTATION + +#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \ + || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \ + || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \ + || defined(STBI_ONLY_ZLIB) + #ifndef STBI_ONLY_JPEG + #define STBI_NO_JPEG + #endif + #ifndef STBI_ONLY_PNG + #define STBI_NO_PNG + #endif + #ifndef STBI_ONLY_BMP + #define STBI_NO_BMP + #endif + #ifndef STBI_ONLY_PSD + #define STBI_NO_PSD + #endif + #ifndef STBI_ONLY_TGA + #define STBI_NO_TGA + #endif + #ifndef STBI_ONLY_GIF + #define STBI_NO_GIF + #endif + #ifndef STBI_ONLY_HDR + #define STBI_NO_HDR + #endif + #ifndef STBI_ONLY_PIC + #define STBI_NO_PIC + #endif + #ifndef STBI_ONLY_PNM + #define STBI_NO_PNM + #endif +#endif + +#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) +#define STBI_NO_ZLIB +#endif + + +#include +#include // ptrdiff_t on osx +#include +#include +#include + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +#include // ldexp, pow +#endif + +#ifndef STBI_NO_STDIO +#include +#endif + +#ifndef STBI_ASSERT +#include +#define STBI_ASSERT(x) assert(x) +#endif + +#ifdef __cplusplus +#define STBI_EXTERN extern "C" +#else +#define STBI_EXTERN extern +#endif + + +#ifndef _MSC_VER + #ifdef __cplusplus + #define stbi_inline inline + #else + #define stbi_inline + #endif +#else + #define stbi_inline __forceinline +#endif + +#ifndef STBI_NO_THREAD_LOCALS + #if defined(__cplusplus) && __cplusplus >= 201103L + #define STBI_THREAD_LOCAL thread_local + #elif defined(__GNUC__) && __GNUC__ < 5 + #define STBI_THREAD_LOCAL __thread + #elif defined(_MSC_VER) + #define STBI_THREAD_LOCAL __declspec(thread) + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) + #define STBI_THREAD_LOCAL _Thread_local + #endif + + #ifndef STBI_THREAD_LOCAL + #if defined(__GNUC__) + #define STBI_THREAD_LOCAL __thread + #endif + #endif +#endif + +#if defined(_MSC_VER) || defined(__SYMBIAN32__) +typedef unsigned short stbi__uint16; +typedef signed short stbi__int16; +typedef unsigned int stbi__uint32; +typedef signed int stbi__int32; +#else +#include +typedef uint16_t stbi__uint16; +typedef int16_t stbi__int16; +typedef uint32_t stbi__uint32; +typedef int32_t stbi__int32; +#endif + +// should produce compiler error if size is wrong +typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1]; + +#ifdef _MSC_VER +#define STBI_NOTUSED(v) (void)(v) +#else +#define STBI_NOTUSED(v) (void)sizeof(v) +#endif + +#ifdef _MSC_VER +#define STBI_HAS_LROTL +#endif + +#ifdef STBI_HAS_LROTL + #define stbi_lrot(x,y) _lrotl(x,y) +#else + #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (-(y) & 31))) +#endif + +#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) +// ok +#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) +// ok +#else +#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." +#endif + +#ifndef STBI_MALLOC +#define STBI_MALLOC(sz) malloc(sz) +#define STBI_REALLOC(p,newsz) realloc(p,newsz) +#define STBI_FREE(p) free(p) +#endif + +#ifndef STBI_REALLOC_SIZED +#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz) +#endif + +// x86/x64 detection +#if defined(__x86_64__) || defined(_M_X64) +#define STBI__X64_TARGET +#elif defined(__i386) || defined(_M_IX86) +#define STBI__X86_TARGET +#endif + +#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) +// gcc doesn't support sse2 intrinsics unless you compile with -msse2, +// which in turn means it gets to use SSE2 everywhere. This is unfortunate, +// but previous attempts to provide the SSE2 functions with runtime +// detection caused numerous issues. The way architecture extensions are +// exposed in GCC/Clang is, sadly, not really suited for one-file libs. +// New behavior: if compiled with -msse2, we use SSE2 without any +// detection; if not, we don't use it at all. +#define STBI_NO_SIMD +#endif + +#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) +// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET +// +// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the +// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. +// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not +// simultaneously enabling "-mstackrealign". +// +// See https://github.com/nothings/stb/issues/81 for more information. +// +// So default to no SSE2 on 32-bit MinGW. If you've read this far and added +// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. +#define STBI_NO_SIMD +#endif + +#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) +#define STBI_SSE2 +#include + +#ifdef _MSC_VER + +#if _MSC_VER >= 1400 // not VC6 +#include // __cpuid +static int stbi__cpuid3(void) +{ + int info[4]; + __cpuid(info,1); + return info[3]; +} +#else +static int stbi__cpuid3(void) +{ + int res; + __asm { + mov eax,1 + cpuid + mov res,edx + } + return res; +} +#endif + +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + int info3 = stbi__cpuid3(); + return ((info3 >> 26) & 1) != 0; +} +#endif + +#else // assume GCC-style if not VC++ +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + // If we're even attempting to compile this on GCC/Clang, that means + // -msse2 is on, which means the compiler is allowed to use SSE2 + // instructions at will, and so are we. + return 1; +} +#endif + +#endif +#endif + +// ARM NEON +#if defined(STBI_NO_SIMD) && defined(STBI_NEON) +#undef STBI_NEON +#endif + +#ifdef STBI_NEON +#include +#ifdef _MSC_VER +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name +#else +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) +#endif +#endif + +#ifndef STBI_SIMD_ALIGN +#define STBI_SIMD_ALIGN(type, name) type name +#endif + +#ifndef STBI_MAX_DIMENSIONS +#define STBI_MAX_DIMENSIONS (1 << 24) +#endif + +/////////////////////////////////////////////// +// +// stbi__context struct and start_xxx functions + +// stbi__context structure is our basic context used by all images, so it +// contains all the IO context, plus some basic image information +typedef struct +{ + stbi__uint32 img_x, img_y; + int img_n, img_out_n; + + stbi_io_callbacks io; + void *io_user_data; + + int read_from_callbacks; + int buflen; + stbi_uc buffer_start[128]; + int callback_already_read; + + stbi_uc *img_buffer, *img_buffer_end; + stbi_uc *img_buffer_original, *img_buffer_original_end; +} stbi__context; + + +static void stbi__refill_buffer(stbi__context *s); + +// initialize a memory-decode context +static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) +{ + s->io.read = NULL; + s->read_from_callbacks = 0; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer; + s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len; +} + +// initialize a callback-based context +static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) +{ + s->io = *c; + s->io_user_data = user; + s->buflen = sizeof(s->buffer_start); + s->read_from_callbacks = 1; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = s->buffer_start; + stbi__refill_buffer(s); + s->img_buffer_original_end = s->img_buffer_end; +} + +#ifndef STBI_NO_STDIO + +static int stbi__stdio_read(void *user, char *data, int size) +{ + return (int) fread(data,1,size,(FILE*) user); +} + +static void stbi__stdio_skip(void *user, int n) +{ + int ch; + fseek((FILE*) user, n, SEEK_CUR); + ch = fgetc((FILE*) user); /* have to read a byte to reset feof()'s flag */ + if (ch != EOF) { + ungetc(ch, (FILE *) user); /* push byte back onto stream if valid. */ + } +} + +static int stbi__stdio_eof(void *user) +{ + return feof((FILE*) user) || ferror((FILE *) user); +} + +static stbi_io_callbacks stbi__stdio_callbacks = +{ + stbi__stdio_read, + stbi__stdio_skip, + stbi__stdio_eof, +}; + +static void stbi__start_file(stbi__context *s, FILE *f) +{ + stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f); +} + +//static void stop_file(stbi__context *s) { } + +#endif // !STBI_NO_STDIO + +static void stbi__rewind(stbi__context *s) +{ + // conceptually rewind SHOULD rewind to the beginning of the stream, + // but we just rewind to the beginning of the initial buffer, because + // we only use it after doing 'test', which only ever looks at at most 92 bytes + s->img_buffer = s->img_buffer_original; + s->img_buffer_end = s->img_buffer_original_end; +} + +enum +{ + STBI_ORDER_RGB, + STBI_ORDER_BGR +}; + +typedef struct +{ + int bits_per_channel; + int num_channels; + int channel_order; +} stbi__result_info; + +#ifndef STBI_NO_JPEG +static int stbi__jpeg_test(stbi__context *s); +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNG +static int stbi__png_test(stbi__context *s); +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__png_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_BMP +static int stbi__bmp_test(stbi__context *s); +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_TGA +static int stbi__tga_test(stbi__context *s); +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s); +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__psd_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_HDR +static int stbi__hdr_test(stbi__context *s); +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_test(stbi__context *s); +static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_GIF +static int stbi__gif_test(stbi__context *s); +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNM +static int stbi__pnm_test(stbi__context *s); +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__pnm_is16(stbi__context *s); +#endif + +static +#ifdef STBI_THREAD_LOCAL +STBI_THREAD_LOCAL +#endif +const char *stbi__g_failure_reason; + +STBIDEF const char *stbi_failure_reason(void) +{ + return stbi__g_failure_reason; +} + +#ifndef STBI_NO_FAILURE_STRINGS +static int stbi__err(const char *str) +{ + stbi__g_failure_reason = str; + return 0; +} +#endif + +static void *stbi__malloc(size_t size) +{ + return STBI_MALLOC(size); +} + +// stb_image uses ints pervasively, including for offset calculations. +// therefore the largest decoded image size we can support with the +// current code, even on 64-bit targets, is INT_MAX. this is not a +// significant limitation for the intended use case. +// +// we do, however, need to make sure our size calculations don't +// overflow. hence a few helper functions for size calculations that +// multiply integers together, making sure that they're non-negative +// and no overflow occurs. + +// return 1 if the sum is valid, 0 on overflow. +// negative terms are considered invalid. +static int stbi__addsizes_valid(int a, int b) +{ + if (b < 0) return 0; + // now 0 <= b <= INT_MAX, hence also + // 0 <= INT_MAX - b <= INTMAX. + // And "a + b <= INT_MAX" (which might overflow) is the + // same as a <= INT_MAX - b (no overflow) + return a <= INT_MAX - b; +} + +// returns 1 if the product is valid, 0 on overflow. +// negative factors are considered invalid. +static int stbi__mul2sizes_valid(int a, int b) +{ + if (a < 0 || b < 0) return 0; + if (b == 0) return 1; // mul-by-0 is always safe + // portable way to check for no overflows in a*b + return a <= INT_MAX/b; +} + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow +static int stbi__mad2sizes_valid(int a, int b, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add); +} +#endif + +// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow +static int stbi__mad3sizes_valid(int a, int b, int c, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__addsizes_valid(a*b*c, add); +} + +// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); +} +#endif + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// mallocs with size overflow checking +static void *stbi__malloc_mad2(int a, int b, int add) +{ + if (!stbi__mad2sizes_valid(a, b, add)) return NULL; + return stbi__malloc(a*b + add); +} +#endif + +static void *stbi__malloc_mad3(int a, int b, int c, int add) +{ + if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL; + return stbi__malloc(a*b*c + add); +} + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) +{ + if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; + return stbi__malloc(a*b*c*d + add); +} +#endif + +// returns 1 if the sum of two signed ints is valid (between -2^31 and 2^31-1 inclusive), 0 on overflow. +static int stbi__addints_valid(int a, int b) +{ + if ((a >= 0) != (b >= 0)) return 1; // a and b have different signs, so no overflow + if (a < 0 && b < 0) return a >= INT_MIN - b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0. + return a <= INT_MAX - b; +} + +// returns 1 if the product of two ints fits in a signed short, 0 on overflow. +static int stbi__mul2shorts_valid(int a, int b) +{ + if (b == 0 || b == -1) return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow + if ((a >= 0) == (b >= 0)) return a <= SHRT_MAX/b; // product is positive, so similar to mul2sizes_valid + if (b < 0) return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN + return a >= SHRT_MIN / b; +} + +// stbi__err - error +// stbi__errpf - error returning pointer to float +// stbi__errpuc - error returning pointer to unsigned char + +#ifdef STBI_NO_FAILURE_STRINGS + #define stbi__err(x,y) 0 +#elif defined(STBI_FAILURE_USERMSG) + #define stbi__err(x,y) stbi__err(y) +#else + #define stbi__err(x,y) stbi__err(x) +#endif + +#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL)) +#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL)) + +STBIDEF void stbi_image_free(void *retval_from_stbi_load) +{ + STBI_FREE(retval_from_stbi_load); +} + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); +#endif + +#ifndef STBI_NO_HDR +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); +#endif + +static int stbi__vertically_flip_on_load_global = 0; + +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_global = flag_true_if_should_flip; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global +#else +static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set; + +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_local = flag_true_if_should_flip; + stbi__vertically_flip_on_load_set = 1; +} + +#define stbi__vertically_flip_on_load (stbi__vertically_flip_on_load_set \ + ? stbi__vertically_flip_on_load_local \ + : stbi__vertically_flip_on_load_global) +#endif // STBI_THREAD_LOCAL + +static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields + ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed + ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order + ri->num_channels = 0; + + // test the formats with a very explicit header first (at least a FOURCC + // or distinctive magic number first) + #ifndef STBI_NO_PNG + if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_BMP + if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_GIF + if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PSD + if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc); + #else + STBI_NOTUSED(bpc); + #endif + #ifndef STBI_NO_PIC + if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri); + #endif + + // then the formats that can end up attempting to load with just 1 or 2 + // bytes matching expectations; these are prone to false positives, so + // try them later + #ifndef STBI_NO_JPEG + if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PNM + if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri); + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri); + return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } + #endif + + #ifndef STBI_NO_TGA + // test tga last because it's a crappy test! + if (stbi__tga_test(s)) + return stbi__tga_load(s,x,y,comp,req_comp, ri); + #endif + + return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); +} + +static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi_uc *reduced; + + reduced = (stbi_uc *) stbi__malloc(img_len); + if (reduced == NULL) return stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling + + STBI_FREE(orig); + return reduced; +} + +static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi__uint16 *enlarged; + + enlarged = (stbi__uint16 *) stbi__malloc(img_len*2); + if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff + + STBI_FREE(orig); + return enlarged; +} + +static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) +{ + int row; + size_t bytes_per_row = (size_t)w * bytes_per_pixel; + stbi_uc temp[2048]; + stbi_uc *bytes = (stbi_uc *)image; + + for (row = 0; row < (h>>1); row++) { + stbi_uc *row0 = bytes + row*bytes_per_row; + stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row; + // swap row0 with row1 + size_t bytes_left = bytes_per_row; + while (bytes_left) { + size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); + memcpy(temp, row0, bytes_copy); + memcpy(row0, row1, bytes_copy); + memcpy(row1, temp, bytes_copy); + row0 += bytes_copy; + row1 += bytes_copy; + bytes_left -= bytes_copy; + } + } +} + +#ifndef STBI_NO_GIF +static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) +{ + int slice; + int slice_size = w * h * bytes_per_pixel; + + stbi_uc *bytes = (stbi_uc *)image; + for (slice = 0; slice < z; ++slice) { + stbi__vertical_flip(bytes, w, h, bytes_per_pixel); + bytes += slice_size; + } +} +#endif + +static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 8) { + result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 8; + } + + // @TODO: move stbi__convert_format to here + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); + } + + return (unsigned char *) result; +} + +static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 16) { + result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 16; + } + + // @TODO: move stbi__convert_format16 to here + // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); + } + + return (stbi__uint16 *) result; +} + +#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR) +static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) +{ + if (stbi__vertically_flip_on_load && result != NULL) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); + } +} +#endif + +#ifndef STBI_NO_STDIO + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); +STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); +#endif + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) +{ + return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL); +} +#endif + +static FILE *stbi__fopen(char const *filename, char const *mode) +{ + FILE *f; +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) + wchar_t wMode[64]; + wchar_t wFilename[1024]; + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename)/sizeof(*wFilename))) + return 0; + + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode)/sizeof(*wMode))) + return 0; + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != _wfopen_s(&f, wFilename, wMode)) + f = 0; +#else + f = _wfopen(wFilename, wMode); +#endif + +#elif defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != fopen_s(&f, filename, mode)) + f=0; +#else + f = fopen(filename, mode); +#endif + return f; +} + + +STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + unsigned char *result; + if (!f) return stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__uint16 *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + stbi__uint16 *result; + if (!f) return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file_16(f,x,y,comp,req_comp); + fclose(f); + return result; +} + + +#endif //!STBI_NO_STDIO + +STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_mem(&s,buffer,len); + + result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); + if (stbi__vertically_flip_on_load) { + stbi__vertical_flip_slices( result, *x, *y, *z, *comp ); + } + + return result; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + stbi__result_info ri; + float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri); + if (hdr_data) + stbi__float_postprocess(hdr_data,x,y,comp,req_comp); + return hdr_data; + } + #endif + data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); + if (data) + return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); + return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); +} + +STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_STDIO +STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + float *result; + FILE *f = stbi__fopen(filename, "rb"); + if (!f) return stbi__errpf("can't fopen", "Unable to open file"); + result = stbi_loadf_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_file(&s,f); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} +#endif // !STBI_NO_STDIO + +#endif // !STBI_NO_LINEAR + +// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is +// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always +// reports false! + +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(buffer); + STBI_NOTUSED(len); + return 0; + #endif +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result=0; + if (f) { + result = stbi_is_hdr_from_file(f); + fclose(f); + } + return result; +} + +STBIDEF int stbi_is_hdr_from_file(FILE *f) +{ + #ifndef STBI_NO_HDR + long pos = ftell(f); + int res; + stbi__context s; + stbi__start_file(&s,f); + res = stbi__hdr_test(&s); + fseek(f, pos, SEEK_SET); + return res; + #else + STBI_NOTUSED(f); + return 0; + #endif +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(clbk); + STBI_NOTUSED(user); + return 0; + #endif +} + +#ifndef STBI_NO_LINEAR +static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f; + +STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } +STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } +#endif + +static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f; + +STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; } +STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; } + + +////////////////////////////////////////////////////////////////////////////// +// +// Common code used by all image loaders +// + +enum +{ + STBI__SCAN_load=0, + STBI__SCAN_type, + STBI__SCAN_header +}; + +static void stbi__refill_buffer(stbi__context *s) +{ + int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen); + s->callback_already_read += (int) (s->img_buffer - s->img_buffer_original); + if (n == 0) { + // at end of file, treat same as if from memory, but need to handle case + // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file + s->read_from_callbacks = 0; + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start+1; + *s->img_buffer = 0; + } else { + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start + n; + } +} + +stbi_inline static stbi_uc stbi__get8(stbi__context *s) +{ + if (s->img_buffer < s->img_buffer_end) + return *s->img_buffer++; + if (s->read_from_callbacks) { + stbi__refill_buffer(s); + return *s->img_buffer++; + } + return 0; +} + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +stbi_inline static int stbi__at_eof(stbi__context *s) +{ + if (s->io.read) { + if (!(s->io.eof)(s->io_user_data)) return 0; + // if feof() is true, check if buffer = end + // special case: we've only got the special 0 character at the end + if (s->read_from_callbacks == 0) return 1; + } + + return s->img_buffer >= s->img_buffer_end; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) +// nothing +#else +static void stbi__skip(stbi__context *s, int n) +{ + if (n == 0) return; // already there! + if (n < 0) { + s->img_buffer = s->img_buffer_end; + return; + } + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + s->img_buffer = s->img_buffer_end; + (s->io.skip)(s->io_user_data, n - blen); + return; + } + } + s->img_buffer += n; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM) +// nothing +#else +static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) +{ + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + int res, count; + + memcpy(buffer, s->img_buffer, blen); + + count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen); + res = (count == (n-blen)); + s->img_buffer = s->img_buffer_end; + return res; + } + } + + if (s->img_buffer+n <= s->img_buffer_end) { + memcpy(buffer, s->img_buffer, n); + s->img_buffer += n; + return 1; + } else + return 0; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static int stbi__get16be(stbi__context *s) +{ + int z = stbi__get8(s); + return (z << 8) + stbi__get8(s); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static stbi__uint32 stbi__get32be(stbi__context *s) +{ + stbi__uint32 z = stbi__get16be(s); + return (z << 16) + stbi__get16be(s); +} +#endif + +#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) +// nothing +#else +static int stbi__get16le(stbi__context *s) +{ + int z = stbi__get8(s); + return z + (stbi__get8(s) << 8); +} +#endif + +#ifndef STBI_NO_BMP +static stbi__uint32 stbi__get32le(stbi__context *s) +{ + stbi__uint32 z = stbi__get16le(s); + z += (stbi__uint32)stbi__get16le(s) << 16; + return z; +} +#endif + +#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +////////////////////////////////////////////////////////////////////////////// +// +// generic converter from built-in img_n to req_comp +// individual types do this automatically as much as possible (e.g. jpeg +// does all cases internally since it needs to colorspace convert anyway, +// and it never has alpha, so very few cases ). png can automatically +// interleave an alpha=255 channel, but falls back to this for other cases +// +// assume data buffer is malloced, so malloc a new one and free that one +// only failure mode is malloc failing + +static stbi_uc stbi__compute_y(int r, int g, int b) +{ + return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + unsigned char *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0); + if (good == NULL) { + STBI_FREE(data); + return stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + unsigned char *src = data + j * x * img_n ; + unsigned char *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=255; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=255; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=255; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = 255; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 stbi__compute_y_16(int r, int g, int b) +{ + return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + stbi__uint16 *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2); + if (good == NULL) { + STBI_FREE(data); + return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + stbi__uint16 *src = data + j * x * img_n ; + stbi__uint16 *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=0xffff; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=0xffff; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=0xffff; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = 0xffff; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return (stbi__uint16*) stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) +{ + int i,k,n; + float *output; + if (!data) return NULL; + output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale); + } + } + if (n < comp) { + for (i=0; i < x*y; ++i) { + output[i*comp + n] = data[i*comp + n]/255.0f; + } + } + STBI_FREE(data); + return output; +} +#endif + +#ifndef STBI_NO_HDR +#define stbi__float2int(x) ((int) (x)) +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) +{ + int i,k,n; + stbi_uc *output; + if (!data) return NULL; + output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + if (k < comp) { + float z = data[i*comp+k] * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + } + STBI_FREE(data); + return output; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// "baseline" JPEG/JFIF decoder +// +// simple implementation +// - doesn't support delayed output of y-dimension +// - simple interface (only one output format: 8-bit interleaved RGB) +// - doesn't try to recover corrupt jpegs +// - doesn't allow partial loading, loading multiple at once +// - still fast on x86 (copying globals into locals doesn't help x86) +// - allocates lots of intermediate memory (full size of all components) +// - non-interleaved case requires this anyway +// - allows good upsampling (see next) +// high-quality +// - upsampled channels are bilinearly interpolated, even across blocks +// - quality integer IDCT derived from IJG's 'slow' +// performance +// - fast huffman; reasonable integer IDCT +// - some SIMD kernels for common paths on targets with SSE2/NEON +// - uses a lot of intermediate memory, could cache poorly + +#ifndef STBI_NO_JPEG + +// huffman decoding acceleration +#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache + +typedef struct +{ + stbi_uc fast[1 << FAST_BITS]; + // weirdly, repacking this into AoS is a 10% speed loss, instead of a win + stbi__uint16 code[256]; + stbi_uc values[256]; + stbi_uc size[257]; + unsigned int maxcode[18]; + int delta[17]; // old 'firstsymbol' - old 'firstcode' +} stbi__huffman; + +typedef struct +{ + stbi__context *s; + stbi__huffman huff_dc[4]; + stbi__huffman huff_ac[4]; + stbi__uint16 dequant[4][64]; + stbi__int16 fast_ac[4][1 << FAST_BITS]; + +// sizes for components, interleaved MCUs + int img_h_max, img_v_max; + int img_mcu_x, img_mcu_y; + int img_mcu_w, img_mcu_h; + +// definition of jpeg image component + struct + { + int id; + int h,v; + int tq; + int hd,ha; + int dc_pred; + + int x,y,w2,h2; + stbi_uc *data; + void *raw_data, *raw_coeff; + stbi_uc *linebuf; + short *coeff; // progressive only + int coeff_w, coeff_h; // number of 8x8 coefficient blocks + } img_comp[4]; + + stbi__uint32 code_buffer; // jpeg entropy-coded buffer + int code_bits; // number of valid bits + unsigned char marker; // marker seen while filling entropy buffer + int nomore; // flag if we saw a marker so must stop + + int progressive; + int spec_start; + int spec_end; + int succ_high; + int succ_low; + int eob_run; + int jfif; + int app14_color_transform; // Adobe APP14 tag + int rgb; + + int scan_n, order[4]; + int restart_interval, todo; + +// kernels + void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); + void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); + stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); +} stbi__jpeg; + +static int stbi__build_huffman(stbi__huffman *h, int *count) +{ + int i,j,k=0; + unsigned int code; + // build size list for each symbol (from JPEG spec) + for (i=0; i < 16; ++i) { + for (j=0; j < count[i]; ++j) { + h->size[k++] = (stbi_uc) (i+1); + if(k >= 257) return stbi__err("bad size list","Corrupt JPEG"); + } + } + h->size[k] = 0; + + // compute actual symbols (from jpeg spec) + code = 0; + k = 0; + for(j=1; j <= 16; ++j) { + // compute delta to add to code to compute symbol id + h->delta[j] = k - code; + if (h->size[k] == j) { + while (h->size[k] == j) + h->code[k++] = (stbi__uint16) (code++); + if (code-1 >= (1u << j)) return stbi__err("bad code lengths","Corrupt JPEG"); + } + // compute largest code + 1 for this size, preshifted as needed later + h->maxcode[j] = code << (16-j); + code <<= 1; + } + h->maxcode[j] = 0xffffffff; + + // build non-spec acceleration table; 255 is flag for not-accelerated + memset(h->fast, 255, 1 << FAST_BITS); + for (i=0; i < k; ++i) { + int s = h->size[i]; + if (s <= FAST_BITS) { + int c = h->code[i] << (FAST_BITS-s); + int m = 1 << (FAST_BITS-s); + for (j=0; j < m; ++j) { + h->fast[c+j] = (stbi_uc) i; + } + } + } + return 1; +} + +// build a table that decodes both magnitude and value of small ACs in +// one go. +static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) +{ + int i; + for (i=0; i < (1 << FAST_BITS); ++i) { + stbi_uc fast = h->fast[i]; + fast_ac[i] = 0; + if (fast < 255) { + int rs = h->values[fast]; + int run = (rs >> 4) & 15; + int magbits = rs & 15; + int len = h->size[fast]; + + if (magbits && len + magbits <= FAST_BITS) { + // magnitude code followed by receive_extend code + int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); + int m = 1 << (magbits - 1); + if (k < m) k += (~0U << magbits) + 1; + // if the result is small enough, we can fit it in fast_ac table + if (k >= -128 && k <= 127) + fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits)); + } + } + } +} + +static void stbi__grow_buffer_unsafe(stbi__jpeg *j) +{ + do { + unsigned int b = j->nomore ? 0 : stbi__get8(j->s); + if (b == 0xff) { + int c = stbi__get8(j->s); + while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes + if (c != 0) { + j->marker = (unsigned char) c; + j->nomore = 1; + return; + } + } + j->code_buffer |= b << (24 - j->code_bits); + j->code_bits += 8; + } while (j->code_bits <= 24); +} + +// (1 << n) - 1 +static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; + +// decode a jpeg huffman value from the bitstream +stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) +{ + unsigned int temp; + int c,k; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + // look at the top FAST_BITS and determine what symbol ID it is, + // if the code is <= FAST_BITS + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + k = h->fast[c]; + if (k < 255) { + int s = h->size[k]; + if (s > j->code_bits) + return -1; + j->code_buffer <<= s; + j->code_bits -= s; + return h->values[k]; + } + + // naive test is to shift the code_buffer down so k bits are + // valid, then test against maxcode. To speed this up, we've + // preshifted maxcode left so that it has (16-k) 0s at the + // end; in other words, regardless of the number of bits, it + // wants to be compared against something shifted to have 16; + // that way we don't need to shift inside the loop. + temp = j->code_buffer >> 16; + for (k=FAST_BITS+1 ; ; ++k) + if (temp < h->maxcode[k]) + break; + if (k == 17) { + // error! code not found + j->code_bits -= 16; + return -1; + } + + if (k > j->code_bits) + return -1; + + // convert the huffman code to the symbol id + c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; + if(c < 0 || c >= 256) // symbol id out of bounds! + return -1; + STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); + + // convert the id to a symbol + j->code_bits -= k; + j->code_buffer <<= k; + return h->values[c]; +} + +// bias[n] = (-1<code_bits < n) stbi__grow_buffer_unsafe(j); + if (j->code_bits < n) return 0; // ran out of bits from stream, return 0s intead of continuing + + sgn = j->code_buffer >> 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative) + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k + (stbi__jbias[n] & (sgn - 1)); +} + +// get some unsigned bits +stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) +{ + unsigned int k; + if (j->code_bits < n) stbi__grow_buffer_unsafe(j); + if (j->code_bits < n) return 0; // ran out of bits from stream, return 0s intead of continuing + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k; +} + +stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) +{ + unsigned int k; + if (j->code_bits < 1) stbi__grow_buffer_unsafe(j); + if (j->code_bits < 1) return 0; // ran out of bits from stream, return 0s intead of continuing + k = j->code_buffer; + j->code_buffer <<= 1; + --j->code_bits; + return k & 0x80000000; +} + +// given a value that's at position X in the zigzag stream, +// where does it appear in the 8x8 matrix coded as row-major? +static const stbi_uc stbi__jpeg_dezigzag[64+15] = +{ + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + // let corrupt input sample past end + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63 +}; + +// decode one 64-entry block-- +static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) +{ + int diff,dc,k; + int t; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15) return stbi__err("bad huffman code","Corrupt JPEG"); + + // 0 all the ac values now so we can do it 32-bits at a time + memset(data,0,64*sizeof(data[0])); + + diff = t ? stbi__extend_receive(j, t) : 0; + if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) return stbi__err("bad delta","Corrupt JPEG"); + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + if (!stbi__mul2shorts_valid(dc, dequant[0])) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + data[0] = (short) (dc * dequant[0]); + + // decode AC components, see JPEG spec + k = 1; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + if (s > j->code_bits) return stbi__err("bad huffman code", "Combined length longer than code bits available"); + j->code_buffer <<= s; + j->code_bits -= s; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * dequant[zig]); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (rs != 0xf0) break; // end block + k += 16; + } else { + k += r; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]); + } + } + } while (k < 64); + return 1; +} + +static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) +{ + int diff,dc; + int t; + if (j->spec_end != 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + if (j->succ_high == 0) { + // first scan for DC coefficient, must be first + memset(data,0,64*sizeof(data[0])); // 0 all the ac values now + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + diff = t ? stbi__extend_receive(j, t) : 0; + + if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) return stbi__err("bad delta", "Corrupt JPEG"); + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + if (!stbi__mul2shorts_valid(dc, 1 << j->succ_low)) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + data[0] = (short) (dc * (1 << j->succ_low)); + } else { + // refinement scan for DC coefficient + if (stbi__jpeg_get_bit(j)) + data[0] += (short) (1 << j->succ_low); + } + return 1; +} + +// @OPTIMIZE: store non-zigzagged during the decode passes, +// and only de-zigzag when dequantizing +static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) +{ + int k; + if (j->spec_start == 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->succ_high == 0) { + int shift = j->succ_low; + + if (j->eob_run) { + --j->eob_run; + return 1; + } + + k = j->spec_start; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + if (s > j->code_bits) return stbi__err("bad huffman code", "Combined length longer than code bits available"); + j->code_buffer <<= s; + j->code_bits -= s; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * (1 << shift)); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r); + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + --j->eob_run; + break; + } + k += 16; + } else { + k += r; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * (1 << shift)); + } + } + } while (k <= j->spec_end); + } else { + // refinement scan for these AC coefficients + + short bit = (short) (1 << j->succ_low); + + if (j->eob_run) { + --j->eob_run; + for (k = j->spec_start; k <= j->spec_end; ++k) { + short *p = &data[stbi__jpeg_dezigzag[k]]; + if (*p != 0) + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } + } else { + k = j->spec_start; + do { + int r,s; + int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r) - 1; + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + r = 64; // force end of block + } else { + // r=15 s=0 should write 16 0s, so we just do + // a run of 15 0s and then write s (which is 0), + // so we don't have to do anything special here + } + } else { + if (s != 1) return stbi__err("bad huffman code", "Corrupt JPEG"); + // sign bit + if (stbi__jpeg_get_bit(j)) + s = bit; + else + s = -bit; + } + + // advance by r + while (k <= j->spec_end) { + short *p = &data[stbi__jpeg_dezigzag[k++]]; + if (*p != 0) { + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } else { + if (r == 0) { + *p = (short) s; + break; + } + --r; + } + } + } while (k <= j->spec_end); + } + } + return 1; +} + +// take a -128..127 value and stbi__clamp it and convert to 0..255 +stbi_inline static stbi_uc stbi__clamp(int x) +{ + // trick to use a single test to catch both cases + if ((unsigned int) x > 255) { + if (x < 0) return 0; + if (x > 255) return 255; + } + return (stbi_uc) x; +} + +#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5))) +#define stbi__fsh(x) ((x) * 4096) + +// derived from jidctint -- DCT_ISLOW +#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ + int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ + p2 = s2; \ + p3 = s6; \ + p1 = (p2+p3) * stbi__f2f(0.5411961f); \ + t2 = p1 + p3*stbi__f2f(-1.847759065f); \ + t3 = p1 + p2*stbi__f2f( 0.765366865f); \ + p2 = s0; \ + p3 = s4; \ + t0 = stbi__fsh(p2+p3); \ + t1 = stbi__fsh(p2-p3); \ + x0 = t0+t3; \ + x3 = t0-t3; \ + x1 = t1+t2; \ + x2 = t1-t2; \ + t0 = s7; \ + t1 = s5; \ + t2 = s3; \ + t3 = s1; \ + p3 = t0+t2; \ + p4 = t1+t3; \ + p1 = t0+t3; \ + p2 = t1+t2; \ + p5 = (p3+p4)*stbi__f2f( 1.175875602f); \ + t0 = t0*stbi__f2f( 0.298631336f); \ + t1 = t1*stbi__f2f( 2.053119869f); \ + t2 = t2*stbi__f2f( 3.072711026f); \ + t3 = t3*stbi__f2f( 1.501321110f); \ + p1 = p5 + p1*stbi__f2f(-0.899976223f); \ + p2 = p5 + p2*stbi__f2f(-2.562915447f); \ + p3 = p3*stbi__f2f(-1.961570560f); \ + p4 = p4*stbi__f2f(-0.390180644f); \ + t3 += p1+p4; \ + t2 += p2+p3; \ + t1 += p2+p4; \ + t0 += p1+p3; + +static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) +{ + int i,val[64],*v=val; + stbi_uc *o; + short *d = data; + + // columns + for (i=0; i < 8; ++i,++d, ++v) { + // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing + if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 + && d[40]==0 && d[48]==0 && d[56]==0) { + // no shortcut 0 seconds + // (1|2|3|4|5|6|7)==0 0 seconds + // all separate -0.047 seconds + // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds + int dcterm = d[0]*4; + v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; + } else { + STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56]) + // constants scaled things up by 1<<12; let's bring them back + // down, but keep 2 extra bits of precision + x0 += 512; x1 += 512; x2 += 512; x3 += 512; + v[ 0] = (x0+t3) >> 10; + v[56] = (x0-t3) >> 10; + v[ 8] = (x1+t2) >> 10; + v[48] = (x1-t2) >> 10; + v[16] = (x2+t1) >> 10; + v[40] = (x2-t1) >> 10; + v[24] = (x3+t0) >> 10; + v[32] = (x3-t0) >> 10; + } + } + + for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { + // no fast case since the first 1D IDCT spread components out + STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) + // constants scaled things up by 1<<12, plus we had 1<<2 from first + // loop, plus horizontal and vertical each scale by sqrt(8) so together + // we've got an extra 1<<3, so 1<<17 total we need to remove. + // so we want to round that, which means adding 0.5 * 1<<17, + // aka 65536. Also, we'll end up with -128 to 127 that we want + // to encode as 0..255 by adding 128, so we'll add that before the shift + x0 += 65536 + (128<<17); + x1 += 65536 + (128<<17); + x2 += 65536 + (128<<17); + x3 += 65536 + (128<<17); + // tried computing the shifts into temps, or'ing the temps to see + // if any were out of range, but that was slower + o[0] = stbi__clamp((x0+t3) >> 17); + o[7] = stbi__clamp((x0-t3) >> 17); + o[1] = stbi__clamp((x1+t2) >> 17); + o[6] = stbi__clamp((x1-t2) >> 17); + o[2] = stbi__clamp((x2+t1) >> 17); + o[5] = stbi__clamp((x2-t1) >> 17); + o[3] = stbi__clamp((x3+t0) >> 17); + o[4] = stbi__clamp((x3-t0) >> 17); + } +} + +#ifdef STBI_SSE2 +// sse2 integer IDCT. not the fastest possible implementation but it +// produces bit-identical results to the generic C version so it's +// fully "transparent". +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + // This is constructed to match our regular (generic) integer IDCT exactly. + __m128i row0, row1, row2, row3, row4, row5, row6, row7; + __m128i tmp; + + // dot product constant: even elems=x, odd elems=y + #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y)) + + // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) + // out(1) = c1[even]*x + c1[odd]*y + #define dct_rot(out0,out1, x,y,c0,c1) \ + __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \ + __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \ + __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ + __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ + __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ + __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) + + // out = in << 12 (in 16-bit, out 32-bit) + #define dct_widen(out, in) \ + __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ + __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) + + // wide add + #define dct_wadd(out, a, b) \ + __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_add_epi32(a##_h, b##_h) + + // wide sub + #define dct_wsub(out, a, b) \ + __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) + + // butterfly a/b, add bias, then shift by "s" and pack + #define dct_bfly32o(out0, out1, a,b,bias,s) \ + { \ + __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ + __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ + dct_wadd(sum, abiased, b); \ + dct_wsub(dif, abiased, b); \ + out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ + out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ + } + + // 8-bit interleave step (for transposes) + #define dct_interleave8(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi8(a, b); \ + b = _mm_unpackhi_epi8(tmp, b) + + // 16-bit interleave step (for transposes) + #define dct_interleave16(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi16(a, b); \ + b = _mm_unpackhi_epi16(tmp, b) + + #define dct_pass(bias,shift) \ + { \ + /* even part */ \ + dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \ + __m128i sum04 = _mm_add_epi16(row0, row4); \ + __m128i dif04 = _mm_sub_epi16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \ + dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \ + __m128i sum17 = _mm_add_epi16(row1, row7); \ + __m128i sum35 = _mm_add_epi16(row3, row5); \ + dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \ + dct_wadd(x4, y0o, y4o); \ + dct_wadd(x5, y1o, y5o); \ + dct_wadd(x6, y2o, y5o); \ + dct_wadd(x7, y3o, y4o); \ + dct_bfly32o(row0,row7, x0,x7,bias,shift); \ + dct_bfly32o(row1,row6, x1,x6,bias,shift); \ + dct_bfly32o(row2,row5, x2,x5,bias,shift); \ + dct_bfly32o(row3,row4, x3,x4,bias,shift); \ + } + + __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); + __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f)); + __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); + __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); + __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f)); + __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f)); + __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f)); + __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f)); + + // rounding biases in column/row passes, see stbi__idct_block for explanation. + __m128i bias_0 = _mm_set1_epi32(512); + __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17)); + + // load + row0 = _mm_load_si128((const __m128i *) (data + 0*8)); + row1 = _mm_load_si128((const __m128i *) (data + 1*8)); + row2 = _mm_load_si128((const __m128i *) (data + 2*8)); + row3 = _mm_load_si128((const __m128i *) (data + 3*8)); + row4 = _mm_load_si128((const __m128i *) (data + 4*8)); + row5 = _mm_load_si128((const __m128i *) (data + 5*8)); + row6 = _mm_load_si128((const __m128i *) (data + 6*8)); + row7 = _mm_load_si128((const __m128i *) (data + 7*8)); + + // column pass + dct_pass(bias_0, 10); + + { + // 16bit 8x8 transpose pass 1 + dct_interleave16(row0, row4); + dct_interleave16(row1, row5); + dct_interleave16(row2, row6); + dct_interleave16(row3, row7); + + // transpose pass 2 + dct_interleave16(row0, row2); + dct_interleave16(row1, row3); + dct_interleave16(row4, row6); + dct_interleave16(row5, row7); + + // transpose pass 3 + dct_interleave16(row0, row1); + dct_interleave16(row2, row3); + dct_interleave16(row4, row5); + dct_interleave16(row6, row7); + } + + // row pass + dct_pass(bias_1, 17); + + { + // pack + __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 + __m128i p1 = _mm_packus_epi16(row2, row3); + __m128i p2 = _mm_packus_epi16(row4, row5); + __m128i p3 = _mm_packus_epi16(row6, row7); + + // 8bit 8x8 transpose pass 1 + dct_interleave8(p0, p2); // a0e0a1e1... + dct_interleave8(p1, p3); // c0g0c1g1... + + // transpose pass 2 + dct_interleave8(p0, p1); // a0c0e0g0... + dct_interleave8(p2, p3); // b0d0f0h0... + + // transpose pass 3 + dct_interleave8(p0, p2); // a0b0c0d0... + dct_interleave8(p1, p3); // a4b4c4d4... + + // store + _mm_storel_epi64((__m128i *) out, p0); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p2); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p1); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p3); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e)); + } + +#undef dct_const +#undef dct_rot +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_interleave8 +#undef dct_interleave16 +#undef dct_pass +} + +#endif // STBI_SSE2 + +#ifdef STBI_NEON + +// NEON integer IDCT. should produce bit-identical +// results to the generic C version. +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; + + int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); + int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); + int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f)); + int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f)); + int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); + int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); + int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); + int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); + int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f)); + int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f)); + int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f)); + int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f)); + +#define dct_long_mul(out, inq, coeff) \ + int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) + +#define dct_long_mac(out, acc, inq, coeff) \ + int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) + +#define dct_widen(out, inq) \ + int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ + int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) + +// wide add +#define dct_wadd(out, a, b) \ + int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vaddq_s32(a##_h, b##_h) + +// wide sub +#define dct_wsub(out, a, b) \ + int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vsubq_s32(a##_h, b##_h) + +// butterfly a/b, then shift using "shiftop" by "s" and pack +#define dct_bfly32o(out0,out1, a,b,shiftop,s) \ + { \ + dct_wadd(sum, a, b); \ + dct_wsub(dif, a, b); \ + out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ + out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ + } + +#define dct_pass(shiftop, shift) \ + { \ + /* even part */ \ + int16x8_t sum26 = vaddq_s16(row2, row6); \ + dct_long_mul(p1e, sum26, rot0_0); \ + dct_long_mac(t2e, p1e, row6, rot0_1); \ + dct_long_mac(t3e, p1e, row2, rot0_2); \ + int16x8_t sum04 = vaddq_s16(row0, row4); \ + int16x8_t dif04 = vsubq_s16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + int16x8_t sum15 = vaddq_s16(row1, row5); \ + int16x8_t sum17 = vaddq_s16(row1, row7); \ + int16x8_t sum35 = vaddq_s16(row3, row5); \ + int16x8_t sum37 = vaddq_s16(row3, row7); \ + int16x8_t sumodd = vaddq_s16(sum17, sum35); \ + dct_long_mul(p5o, sumodd, rot1_0); \ + dct_long_mac(p1o, p5o, sum17, rot1_1); \ + dct_long_mac(p2o, p5o, sum35, rot1_2); \ + dct_long_mul(p3o, sum37, rot2_0); \ + dct_long_mul(p4o, sum15, rot2_1); \ + dct_wadd(sump13o, p1o, p3o); \ + dct_wadd(sump24o, p2o, p4o); \ + dct_wadd(sump23o, p2o, p3o); \ + dct_wadd(sump14o, p1o, p4o); \ + dct_long_mac(x4, sump13o, row7, rot3_0); \ + dct_long_mac(x5, sump24o, row5, rot3_1); \ + dct_long_mac(x6, sump23o, row3, rot3_2); \ + dct_long_mac(x7, sump14o, row1, rot3_3); \ + dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \ + dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \ + dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \ + dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \ + } + + // load + row0 = vld1q_s16(data + 0*8); + row1 = vld1q_s16(data + 1*8); + row2 = vld1q_s16(data + 2*8); + row3 = vld1q_s16(data + 3*8); + row4 = vld1q_s16(data + 4*8); + row5 = vld1q_s16(data + 5*8); + row6 = vld1q_s16(data + 6*8); + row7 = vld1q_s16(data + 7*8); + + // add DC bias + row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); + + // column pass + dct_pass(vrshrn_n_s32, 10); + + // 16bit 8x8 transpose + { +// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. +// whether compilers actually get this is another story, sadly. +#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); } +#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); } + + // pass 1 + dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 + dct_trn16(row2, row3); + dct_trn16(row4, row5); + dct_trn16(row6, row7); + + // pass 2 + dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 + dct_trn32(row1, row3); + dct_trn32(row4, row6); + dct_trn32(row5, row7); + + // pass 3 + dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 + dct_trn64(row1, row5); + dct_trn64(row2, row6); + dct_trn64(row3, row7); + +#undef dct_trn16 +#undef dct_trn32 +#undef dct_trn64 + } + + // row pass + // vrshrn_n_s32 only supports shifts up to 16, we need + // 17. so do a non-rounding shift of 16 first then follow + // up with a rounding shift by 1. + dct_pass(vshrn_n_s32, 16); + + { + // pack and round + uint8x8_t p0 = vqrshrun_n_s16(row0, 1); + uint8x8_t p1 = vqrshrun_n_s16(row1, 1); + uint8x8_t p2 = vqrshrun_n_s16(row2, 1); + uint8x8_t p3 = vqrshrun_n_s16(row3, 1); + uint8x8_t p4 = vqrshrun_n_s16(row4, 1); + uint8x8_t p5 = vqrshrun_n_s16(row5, 1); + uint8x8_t p6 = vqrshrun_n_s16(row6, 1); + uint8x8_t p7 = vqrshrun_n_s16(row7, 1); + + // again, these can translate into one instruction, but often don't. +#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); } +#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); } + + // sadly can't use interleaved stores here since we only write + // 8 bytes to each scan line! + + // 8x8 8-bit transpose pass 1 + dct_trn8_8(p0, p1); + dct_trn8_8(p2, p3); + dct_trn8_8(p4, p5); + dct_trn8_8(p6, p7); + + // pass 2 + dct_trn8_16(p0, p2); + dct_trn8_16(p1, p3); + dct_trn8_16(p4, p6); + dct_trn8_16(p5, p7); + + // pass 3 + dct_trn8_32(p0, p4); + dct_trn8_32(p1, p5); + dct_trn8_32(p2, p6); + dct_trn8_32(p3, p7); + + // store + vst1_u8(out, p0); out += out_stride; + vst1_u8(out, p1); out += out_stride; + vst1_u8(out, p2); out += out_stride; + vst1_u8(out, p3); out += out_stride; + vst1_u8(out, p4); out += out_stride; + vst1_u8(out, p5); out += out_stride; + vst1_u8(out, p6); out += out_stride; + vst1_u8(out, p7); + +#undef dct_trn8_8 +#undef dct_trn8_16 +#undef dct_trn8_32 + } + +#undef dct_long_mul +#undef dct_long_mac +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_pass +} + +#endif // STBI_NEON + +#define STBI__MARKER_none 0xff +// if there's a pending marker from the entropy stream, return that +// otherwise, fetch from the stream and get a marker. if there's no +// marker, return 0xff, which is never a valid marker value +static stbi_uc stbi__get_marker(stbi__jpeg *j) +{ + stbi_uc x; + if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; } + x = stbi__get8(j->s); + if (x != 0xff) return STBI__MARKER_none; + while (x == 0xff) + x = stbi__get8(j->s); // consume repeated 0xff fill bytes + return x; +} + +// in each scan, we'll have scan_n components, and the order +// of the components is specified by order[] +#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) + +// after a restart interval, stbi__jpeg_reset the entropy decoder and +// the dc prediction +static void stbi__jpeg_reset(stbi__jpeg *j) +{ + j->code_bits = 0; + j->code_buffer = 0; + j->nomore = 0; + j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; + j->marker = STBI__MARKER_none; + j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; + j->eob_run = 0; + // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, + // since we don't even allow 1<<30 pixels +} + +static int stbi__parse_entropy_coded_data(stbi__jpeg *z) +{ + stbi__jpeg_reset(z); + if (!z->progressive) { + if (z->scan_n == 1) { + int i,j; + STBI_SIMD_ALIGN(short, data[64]); + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + STBI_SIMD_ALIGN(short, data[64]); + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x)*8; + int y2 = (j*z->img_comp[n].v + y)*8; + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data); + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } else { + if (z->scan_n == 1) { + int i,j; + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + if (z->spec_start == 0) { + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } else { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])) + return 0; + } + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x); + int y2 = (j*z->img_comp[n].v + y); + short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } +} + +static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) +{ + int i; + for (i=0; i < 64; ++i) + data[i] *= dequant[i]; +} + +static void stbi__jpeg_finish(stbi__jpeg *z) +{ + if (z->progressive) { + // dequantize and idct the data + int i,j,n; + for (n=0; n < z->s->img_n; ++n) { + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + } + } + } + } +} + +static int stbi__process_marker(stbi__jpeg *z, int m) +{ + int L; + switch (m) { + case STBI__MARKER_none: // no marker found + return stbi__err("expected marker","Corrupt JPEG"); + + case 0xDD: // DRI - specify restart interval + if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG"); + z->restart_interval = stbi__get16be(z->s); + return 1; + + case 0xDB: // DQT - define quantization table + L = stbi__get16be(z->s)-2; + while (L > 0) { + int q = stbi__get8(z->s); + int p = q >> 4, sixteen = (p != 0); + int t = q & 15,i; + if (p != 0 && p != 1) return stbi__err("bad DQT type","Corrupt JPEG"); + if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG"); + + for (i=0; i < 64; ++i) + z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); + L -= (sixteen ? 129 : 65); + } + return L==0; + + case 0xC4: // DHT - define huffman table + L = stbi__get16be(z->s)-2; + while (L > 0) { + stbi_uc *v; + int sizes[16],i,n=0; + int q = stbi__get8(z->s); + int tc = q >> 4; + int th = q & 15; + if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG"); + for (i=0; i < 16; ++i) { + sizes[i] = stbi__get8(z->s); + n += sizes[i]; + } + if(n > 256) return stbi__err("bad DHT header","Corrupt JPEG"); // Loop over i < n would write past end of values! + L -= 17; + if (tc == 0) { + if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0; + v = z->huff_dc[th].values; + } else { + if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0; + v = z->huff_ac[th].values; + } + for (i=0; i < n; ++i) + v[i] = stbi__get8(z->s); + if (tc != 0) + stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); + L -= n; + } + return L==0; + } + + // check for comment block or APP blocks + if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { + L = stbi__get16be(z->s); + if (L < 2) { + if (m == 0xFE) + return stbi__err("bad COM len","Corrupt JPEG"); + else + return stbi__err("bad APP len","Corrupt JPEG"); + } + L -= 2; + + if (m == 0xE0 && L >= 5) { // JFIF APP0 segment + static const unsigned char tag[5] = {'J','F','I','F','\0'}; + int ok = 1; + int i; + for (i=0; i < 5; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 5; + if (ok) + z->jfif = 1; + } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment + static const unsigned char tag[6] = {'A','d','o','b','e','\0'}; + int ok = 1; + int i; + for (i=0; i < 6; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 6; + if (ok) { + stbi__get8(z->s); // version + stbi__get16be(z->s); // flags0 + stbi__get16be(z->s); // flags1 + z->app14_color_transform = stbi__get8(z->s); // color transform + L -= 6; + } + } + + stbi__skip(z->s, L); + return 1; + } + + return stbi__err("unknown marker","Corrupt JPEG"); +} + +// after we see SOS +static int stbi__process_scan_header(stbi__jpeg *z) +{ + int i; + int Ls = stbi__get16be(z->s); + z->scan_n = stbi__get8(z->s); + if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err("bad SOS component count","Corrupt JPEG"); + if (Ls != 6+2*z->scan_n) return stbi__err("bad SOS len","Corrupt JPEG"); + for (i=0; i < z->scan_n; ++i) { + int id = stbi__get8(z->s), which; + int q = stbi__get8(z->s); + for (which = 0; which < z->s->img_n; ++which) + if (z->img_comp[which].id == id) + break; + if (which == z->s->img_n) return 0; // no match + z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3) return stbi__err("bad DC huff","Corrupt JPEG"); + z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3) return stbi__err("bad AC huff","Corrupt JPEG"); + z->order[i] = which; + } + + { + int aa; + z->spec_start = stbi__get8(z->s); + z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 + aa = stbi__get8(z->s); + z->succ_high = (aa >> 4); + z->succ_low = (aa & 15); + if (z->progressive) { + if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13) + return stbi__err("bad SOS", "Corrupt JPEG"); + } else { + if (z->spec_start != 0) return stbi__err("bad SOS","Corrupt JPEG"); + if (z->succ_high != 0 || z->succ_low != 0) return stbi__err("bad SOS","Corrupt JPEG"); + z->spec_end = 63; + } + } + + return 1; +} + +static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) +{ + int i; + for (i=0; i < ncomp; ++i) { + if (z->img_comp[i].raw_data) { + STBI_FREE(z->img_comp[i].raw_data); + z->img_comp[i].raw_data = NULL; + z->img_comp[i].data = NULL; + } + if (z->img_comp[i].raw_coeff) { + STBI_FREE(z->img_comp[i].raw_coeff); + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].coeff = 0; + } + if (z->img_comp[i].linebuf) { + STBI_FREE(z->img_comp[i].linebuf); + z->img_comp[i].linebuf = NULL; + } + } + return why; +} + +static int stbi__process_frame_header(stbi__jpeg *z, int scan) +{ + stbi__context *s = z->s; + int Lf,p,i,q, h_max=1,v_max=1,c; + Lf = stbi__get16be(s); if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG + p = stbi__get8(s); if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline + s->img_y = stbi__get16be(s); if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG + s->img_x = stbi__get16be(s); if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + c = stbi__get8(s); + if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG"); + s->img_n = c; + for (i=0; i < c; ++i) { + z->img_comp[i].data = NULL; + z->img_comp[i].linebuf = NULL; + } + + if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG"); + + z->rgb = 0; + for (i=0; i < s->img_n; ++i) { + static const unsigned char rgb[3] = { 'R', 'G', 'B' }; + z->img_comp[i].id = stbi__get8(s); + if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) + ++z->rgb; + q = stbi__get8(s); + z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG"); + z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG"); + z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG"); + } + + if (scan != STBI__SCAN_load) return 1; + + if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode"); + + for (i=0; i < s->img_n; ++i) { + if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h; + if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v; + } + + // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios + // and I've never seen a non-corrupted JPEG file actually use them + for (i=0; i < s->img_n; ++i) { + if (h_max % z->img_comp[i].h != 0) return stbi__err("bad H","Corrupt JPEG"); + if (v_max % z->img_comp[i].v != 0) return stbi__err("bad V","Corrupt JPEG"); + } + + // compute interleaved mcu info + z->img_h_max = h_max; + z->img_v_max = v_max; + z->img_mcu_w = h_max * 8; + z->img_mcu_h = v_max * 8; + // these sizes can't be more than 17 bits + z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w; + z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h; + + for (i=0; i < s->img_n; ++i) { + // number of effective pixels (e.g. for non-interleaved MCU) + z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max; + z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max; + // to simplify generation, we'll allocate enough memory to decode + // the bogus oversized data from using interleaved MCUs and their + // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't + // discard the extra data until colorspace conversion + // + // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) + // so these muls can't overflow with 32-bit ints (which we require) + z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; + z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; + z->img_comp[i].coeff = 0; + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].linebuf = NULL; + z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); + if (z->img_comp[i].raw_data == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + // align blocks for idct using mmx/sse + z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15); + if (z->progressive) { + // w2, h2 are multiples of 8 (see above) + z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; + z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; + z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); + if (z->img_comp[i].raw_coeff == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15); + } + } + + return 1; +} + +// use comparisons since in some cases we handle more than one case (e.g. SOF) +#define stbi__DNL(x) ((x) == 0xdc) +#define stbi__SOI(x) ((x) == 0xd8) +#define stbi__EOI(x) ((x) == 0xd9) +#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) +#define stbi__SOS(x) ((x) == 0xda) + +#define stbi__SOF_progressive(x) ((x) == 0xc2) + +static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) +{ + int m; + z->jfif = 0; + z->app14_color_transform = -1; // valid values are 0,1,2 + z->marker = STBI__MARKER_none; // initialize cached marker to empty + m = stbi__get_marker(z); + if (!stbi__SOI(m)) return stbi__err("no SOI","Corrupt JPEG"); + if (scan == STBI__SCAN_type) return 1; + m = stbi__get_marker(z); + while (!stbi__SOF(m)) { + if (!stbi__process_marker(z,m)) return 0; + m = stbi__get_marker(z); + while (m == STBI__MARKER_none) { + // some files have extra padding after their blocks, so ok, we'll scan + if (stbi__at_eof(z->s)) return stbi__err("no SOF", "Corrupt JPEG"); + m = stbi__get_marker(z); + } + } + z->progressive = stbi__SOF_progressive(m); + if (!stbi__process_frame_header(z, scan)) return 0; + return 1; +} + +static stbi_uc stbi__skip_jpeg_junk_at_end(stbi__jpeg *j) +{ + // some JPEGs have junk at end, skip over it but if we find what looks + // like a valid marker, resume there + while (!stbi__at_eof(j->s)) { + stbi_uc x = stbi__get8(j->s); + while (x == 0xff) { // might be a marker + if (stbi__at_eof(j->s)) return STBI__MARKER_none; + x = stbi__get8(j->s); + if (x != 0x00 && x != 0xff) { + // not a stuffed zero or lead-in to another marker, looks + // like an actual marker, return it + return x; + } + // stuffed zero has x=0 now which ends the loop, meaning we go + // back to regular scan loop. + // repeated 0xff keeps trying to read the next byte of the marker. + } + } + return STBI__MARKER_none; +} + +// decode image to YCbCr format +static int stbi__decode_jpeg_image(stbi__jpeg *j) +{ + int m; + for (m = 0; m < 4; m++) { + j->img_comp[m].raw_data = NULL; + j->img_comp[m].raw_coeff = NULL; + } + j->restart_interval = 0; + if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0; + m = stbi__get_marker(j); + while (!stbi__EOI(m)) { + if (stbi__SOS(m)) { + if (!stbi__process_scan_header(j)) return 0; + if (!stbi__parse_entropy_coded_data(j)) return 0; + if (j->marker == STBI__MARKER_none ) { + j->marker = stbi__skip_jpeg_junk_at_end(j); + // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 + } + m = stbi__get_marker(j); + if (STBI__RESTART(m)) + m = stbi__get_marker(j); + } else if (stbi__DNL(m)) { + int Ld = stbi__get16be(j->s); + stbi__uint32 NL = stbi__get16be(j->s); + if (Ld != 4) return stbi__err("bad DNL len", "Corrupt JPEG"); + if (NL != j->s->img_y) return stbi__err("bad DNL height", "Corrupt JPEG"); + m = stbi__get_marker(j); + } else { + if (!stbi__process_marker(j, m)) return 1; + m = stbi__get_marker(j); + } + } + if (j->progressive) + stbi__jpeg_finish(j); + return 1; +} + +// static jfif-centered resampling (across block boundaries) + +typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, + int w, int hs); + +#define stbi__div4(x) ((stbi_uc) ((x) >> 2)) + +static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + STBI_NOTUSED(out); + STBI_NOTUSED(in_far); + STBI_NOTUSED(w); + STBI_NOTUSED(hs); + return in_near; +} + +static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples vertically for every one in input + int i; + STBI_NOTUSED(hs); + for (i=0; i < w; ++i) + out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2); + return out; +} + +static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples horizontally for every one in input + int i; + stbi_uc *input = in_near; + + if (w == 1) { + // if only one sample, can't do any interpolation + out[0] = out[1] = input[0]; + return out; + } + + out[0] = input[0]; + out[1] = stbi__div4(input[0]*3 + input[1] + 2); + for (i=1; i < w-1; ++i) { + int n = 3*input[i]+2; + out[i*2+0] = stbi__div4(n+input[i-1]); + out[i*2+1] = stbi__div4(n+input[i+1]); + } + out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2); + out[i*2+1] = input[w-1]; + + STBI_NOTUSED(in_far); + STBI_NOTUSED(hs); + + return out; +} + +#define stbi__div16(x) ((stbi_uc) ((x) >> 4)) + +static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i,t0,t1; + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + out[0] = stbi__div4(t1+2); + for (i=1; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i=0,t0,t1; + + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + // process groups of 8 pixels for as long as we can. + // note we can't handle the last pixel in a row in this loop + // because we need to handle the filter boundary conditions. + for (; i < ((w-1) & ~7); i += 8) { +#if defined(STBI_SSE2) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + __m128i zero = _mm_setzero_si128(); + __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i)); + __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i)); + __m128i farw = _mm_unpacklo_epi8(farb, zero); + __m128i nearw = _mm_unpacklo_epi8(nearb, zero); + __m128i diff = _mm_sub_epi16(farw, nearw); + __m128i nears = _mm_slli_epi16(nearw, 2); + __m128i curr = _mm_add_epi16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + __m128i prv0 = _mm_slli_si128(curr, 2); + __m128i nxt0 = _mm_srli_si128(curr, 2); + __m128i prev = _mm_insert_epi16(prv0, t1, 0); + __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + __m128i bias = _mm_set1_epi16(8); + __m128i curs = _mm_slli_epi16(curr, 2); + __m128i prvd = _mm_sub_epi16(prev, curr); + __m128i nxtd = _mm_sub_epi16(next, curr); + __m128i curb = _mm_add_epi16(curs, bias); + __m128i even = _mm_add_epi16(prvd, curb); + __m128i odd = _mm_add_epi16(nxtd, curb); + + // interleave even and odd pixels, then undo scaling. + __m128i int0 = _mm_unpacklo_epi16(even, odd); + __m128i int1 = _mm_unpackhi_epi16(even, odd); + __m128i de0 = _mm_srli_epi16(int0, 4); + __m128i de1 = _mm_srli_epi16(int1, 4); + + // pack and write output + __m128i outv = _mm_packus_epi16(de0, de1); + _mm_storeu_si128((__m128i *) (out + i*2), outv); +#elif defined(STBI_NEON) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + uint8x8_t farb = vld1_u8(in_far + i); + uint8x8_t nearb = vld1_u8(in_near + i); + int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); + int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); + int16x8_t curr = vaddq_s16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + int16x8_t prv0 = vextq_s16(curr, curr, 7); + int16x8_t nxt0 = vextq_s16(curr, curr, 1); + int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); + int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + int16x8_t curs = vshlq_n_s16(curr, 2); + int16x8_t prvd = vsubq_s16(prev, curr); + int16x8_t nxtd = vsubq_s16(next, curr); + int16x8_t even = vaddq_s16(curs, prvd); + int16x8_t odd = vaddq_s16(curs, nxtd); + + // undo scaling and round, then store with even/odd phases interleaved + uint8x8x2_t o; + o.val[0] = vqrshrun_n_s16(even, 4); + o.val[1] = vqrshrun_n_s16(odd, 4); + vst2_u8(out + i*2, o); +#endif + + // "previous" value for next iter + t1 = 3*in_near[i+7] + in_far[i+7]; + } + + t0 = t1; + t1 = 3*in_near[i] + in_far[i]; + out[i*2] = stbi__div16(3*t1 + t0 + 8); + + for (++i; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} +#endif + +static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // resample with nearest-neighbor + int i,j; + STBI_NOTUSED(in_far); + for (i=0; i < w; ++i) + for (j=0; j < hs; ++j) + out[i*hs+j] = in_near[i]; + return out; +} + +// this is a reduced-precision calculation of YCbCr-to-RGB introduced +// to make sure the code produces the same results in both SIMD and scalar +#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8) +static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) +{ + int i; + for (i=0; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) +{ + int i = 0; + +#ifdef STBI_SSE2 + // step == 3 is pretty ugly on the final interleave, and i'm not convinced + // it's useful in practice (you wouldn't use it for textures, for example). + // so just accelerate step == 4 case. + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + __m128i signflip = _mm_set1_epi8(-0x80); + __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f)); + __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f)); + __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f)); + __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f)); + __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128); + __m128i xw = _mm_set1_epi16(255); // alpha channel + + for (; i+7 < count; i += 8) { + // load + __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i)); + __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i)); + __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i)); + __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 + __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 + + // unpack to short (and left-shift cr, cb by 8) + __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); + __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); + __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); + + // color transform + __m128i yws = _mm_srli_epi16(yw, 4); + __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); + __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); + __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); + __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); + __m128i rws = _mm_add_epi16(cr0, yws); + __m128i gwt = _mm_add_epi16(cb0, yws); + __m128i bws = _mm_add_epi16(yws, cb1); + __m128i gws = _mm_add_epi16(gwt, cr1); + + // descale + __m128i rw = _mm_srai_epi16(rws, 4); + __m128i bw = _mm_srai_epi16(bws, 4); + __m128i gw = _mm_srai_epi16(gws, 4); + + // back to byte, set up for transpose + __m128i brb = _mm_packus_epi16(rw, bw); + __m128i gxb = _mm_packus_epi16(gw, xw); + + // transpose to interleave channels + __m128i t0 = _mm_unpacklo_epi8(brb, gxb); + __m128i t1 = _mm_unpackhi_epi8(brb, gxb); + __m128i o0 = _mm_unpacklo_epi16(t0, t1); + __m128i o1 = _mm_unpackhi_epi16(t0, t1); + + // store + _mm_storeu_si128((__m128i *) (out + 0), o0); + _mm_storeu_si128((__m128i *) (out + 16), o1); + out += 32; + } + } +#endif + +#ifdef STBI_NEON + // in this version, step=3 support would be easy to add. but is there demand? + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + uint8x8_t signflip = vdup_n_u8(0x80); + int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f)); + int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f)); + int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f)); + int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f)); + + for (; i+7 < count; i += 8) { + // load + uint8x8_t y_bytes = vld1_u8(y + i); + uint8x8_t cr_bytes = vld1_u8(pcr + i); + uint8x8_t cb_bytes = vld1_u8(pcb + i); + int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); + int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); + + // expand to s16 + int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); + int16x8_t crw = vshll_n_s8(cr_biased, 7); + int16x8_t cbw = vshll_n_s8(cb_biased, 7); + + // color transform + int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); + int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); + int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); + int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); + int16x8_t rws = vaddq_s16(yws, cr0); + int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); + int16x8_t bws = vaddq_s16(yws, cb1); + + // undo scaling, round, convert to byte + uint8x8x4_t o; + o.val[0] = vqrshrun_n_s16(rws, 4); + o.val[1] = vqrshrun_n_s16(gws, 4); + o.val[2] = vqrshrun_n_s16(bws, 4); + o.val[3] = vdup_n_u8(255); + + // store, interleaving r/g/b/a + vst4_u8(out, o); + out += 8*4; + } + } +#endif + + for (; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} +#endif + +// set up the kernels +static void stbi__setup_jpeg(stbi__jpeg *j) +{ + j->idct_block_kernel = stbi__idct_block; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; + +#ifdef STBI_SSE2 + if (stbi__sse2_available()) { + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; + } +#endif + +#ifdef STBI_NEON + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; +#endif +} + +// clean up the temporary component buffers +static void stbi__cleanup_jpeg(stbi__jpeg *j) +{ + stbi__free_jpeg_components(j, j->s->img_n, 0); +} + +typedef struct +{ + resample_row_func resample; + stbi_uc *line0,*line1; + int hs,vs; // expansion factor in each axis + int w_lores; // horizontal pixels pre-expansion + int ystep; // how far through vertical expansion we are + int ypos; // which pre-expansion row we're on +} stbi__resample; + +// fast 0..255 * 0..255 => 0..255 rounded multiplication +static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) +{ + unsigned int t = x*y + 128; + return (stbi_uc) ((t + (t >>8)) >> 8); +} + +static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) +{ + int n, decode_n, is_rgb; + z->s->img_n = 0; // make stbi__cleanup_jpeg safe + + // validate req_comp + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + + // load a jpeg image from whichever source, but leave in YCbCr format + if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; } + + // determine actual number of components to generate + n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; + + is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); + + if (z->s->img_n == 3 && n < 3 && !is_rgb) + decode_n = 1; + else + decode_n = z->s->img_n; + + // nothing to do if no components requested; check this now to avoid + // accessing uninitialized coutput[0] later + if (decode_n <= 0) { stbi__cleanup_jpeg(z); return NULL; } + + // resample and color-convert + { + int k; + unsigned int i,j; + stbi_uc *output; + stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; + + stbi__resample res_comp[4]; + + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + + // allocate line buffer big enough for upsampling off the edges + // with upsample factor of 4 + z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3); + if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + r->hs = z->img_h_max / z->img_comp[k].h; + r->vs = z->img_v_max / z->img_comp[k].v; + r->ystep = r->vs >> 1; + r->w_lores = (z->s->img_x + r->hs-1) / r->hs; + r->ypos = 0; + r->line0 = r->line1 = z->img_comp[k].data; + + if (r->hs == 1 && r->vs == 1) r->resample = resample_row_1; + else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2; + else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2; + else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel; + else r->resample = stbi__resample_row_generic; + } + + // can't error after this so, this is safe + output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); + if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + // now go ahead and resample + for (j=0; j < z->s->img_y; ++j) { + stbi_uc *out = output + n * z->s->img_x * j; + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + int y_bot = r->ystep >= (r->vs >> 1); + coutput[k] = r->resample(z->img_comp[k].linebuf, + y_bot ? r->line1 : r->line0, + y_bot ? r->line0 : r->line1, + r->w_lores, r->hs); + if (++r->ystep >= r->vs) { + r->ystep = 0; + r->line0 = r->line1; + if (++r->ypos < z->img_comp[k].y) + r->line1 += z->img_comp[k].w2; + } + } + if (n >= 3) { + stbi_uc *y = coutput[0]; + if (z->s->img_n == 3) { + if (is_rgb) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = y[i]; + out[1] = coutput[1][i]; + out[2] = coutput[2][i]; + out[3] = 255; + out += n; + } + } else { + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else if (z->s->img_n == 4) { + if (z->app14_color_transform == 0) { // CMYK + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(coutput[0][i], m); + out[1] = stbi__blinn_8x8(coutput[1][i], m); + out[2] = stbi__blinn_8x8(coutput[2][i], m); + out[3] = 255; + out += n; + } + } else if (z->app14_color_transform == 2) { // YCCK + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(255 - out[0], m); + out[1] = stbi__blinn_8x8(255 - out[1], m); + out[2] = stbi__blinn_8x8(255 - out[2], m); + out += n; + } + } else { // YCbCr + alpha? Ignore the fourth channel for now + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else + for (i=0; i < z->s->img_x; ++i) { + out[0] = out[1] = out[2] = y[i]; + out[3] = 255; // not used if n==3 + out += n; + } + } else { + if (is_rgb) { + if (n == 1) + for (i=0; i < z->s->img_x; ++i) + *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + else { + for (i=0; i < z->s->img_x; ++i, out += 2) { + out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + out[1] = 255; + } + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); + stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); + stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); + out[0] = stbi__compute_y(r, g, b); + out[1] = 255; + out += n; + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); + out[1] = 255; + out += n; + } + } else { + stbi_uc *y = coutput[0]; + if (n == 1) + for (i=0; i < z->s->img_x; ++i) out[i] = y[i]; + else + for (i=0; i < z->s->img_x; ++i) { *out++ = y[i]; *out++ = 255; } + } + } + } + stbi__cleanup_jpeg(z); + *out_x = z->s->img_x; + *out_y = z->s->img_y; + if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output + return output; + } +} + +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + unsigned char* result; + stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); + if (!j) return stbi__errpuc("outofmem", "Out of memory"); + memset(j, 0, sizeof(stbi__jpeg)); + STBI_NOTUSED(ri); + j->s = s; + stbi__setup_jpeg(j); + result = load_jpeg_image(j, x,y,comp,req_comp); + STBI_FREE(j); + return result; +} + +static int stbi__jpeg_test(stbi__context *s) +{ + int r; + stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg)); + if (!j) return stbi__err("outofmem", "Out of memory"); + memset(j, 0, sizeof(stbi__jpeg)); + j->s = s; + stbi__setup_jpeg(j); + r = stbi__decode_jpeg_header(j, STBI__SCAN_type); + stbi__rewind(s); + STBI_FREE(j); + return r; +} + +static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) +{ + if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { + stbi__rewind( j->s ); + return 0; + } + if (x) *x = j->s->img_x; + if (y) *y = j->s->img_y; + if (comp) *comp = j->s->img_n >= 3 ? 3 : 1; + return 1; +} + +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) +{ + int result; + stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg))); + if (!j) return stbi__err("outofmem", "Out of memory"); + memset(j, 0, sizeof(stbi__jpeg)); + j->s = s; + result = stbi__jpeg_info_raw(j, x, y, comp); + STBI_FREE(j); + return result; +} +#endif + +// public domain zlib decode v0.2 Sean Barrett 2006-11-18 +// simple implementation +// - all input must be provided in an upfront buffer +// - all output is written to a single output buffer (can malloc/realloc) +// performance +// - fast huffman + +#ifndef STBI_NO_ZLIB + +// fast-way is faster to check than jpeg huffman, but slow way is slower +#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables +#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) +#define STBI__ZNSYMS 288 // number of symbols in literal/length alphabet + +// zlib-style huffman encoding +// (jpegs packs from left, zlib from right, so can't share code) +typedef struct +{ + stbi__uint16 fast[1 << STBI__ZFAST_BITS]; + stbi__uint16 firstcode[16]; + int maxcode[17]; + stbi__uint16 firstsymbol[16]; + stbi_uc size[STBI__ZNSYMS]; + stbi__uint16 value[STBI__ZNSYMS]; +} stbi__zhuffman; + +stbi_inline static int stbi__bitreverse16(int n) +{ + n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); + n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); + n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); + n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); + return n; +} + +stbi_inline static int stbi__bit_reverse(int v, int bits) +{ + STBI_ASSERT(bits <= 16); + // to bit reverse n bits, reverse 16 and shift + // e.g. 11 bits, bit reverse and shift away 5 + return stbi__bitreverse16(v) >> (16-bits); +} + +static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) +{ + int i,k=0; + int code, next_code[16], sizes[17]; + + // DEFLATE spec for generating codes + memset(sizes, 0, sizeof(sizes)); + memset(z->fast, 0, sizeof(z->fast)); + for (i=0; i < num; ++i) + ++sizes[sizelist[i]]; + sizes[0] = 0; + for (i=1; i < 16; ++i) + if (sizes[i] > (1 << i)) + return stbi__err("bad sizes", "Corrupt PNG"); + code = 0; + for (i=1; i < 16; ++i) { + next_code[i] = code; + z->firstcode[i] = (stbi__uint16) code; + z->firstsymbol[i] = (stbi__uint16) k; + code = (code + sizes[i]); + if (sizes[i]) + if (code-1 >= (1 << i)) return stbi__err("bad codelengths","Corrupt PNG"); + z->maxcode[i] = code << (16-i); // preshift for inner loop + code <<= 1; + k += sizes[i]; + } + z->maxcode[16] = 0x10000; // sentinel + for (i=0; i < num; ++i) { + int s = sizelist[i]; + if (s) { + int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; + stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i); + z->size [c] = (stbi_uc ) s; + z->value[c] = (stbi__uint16) i; + if (s <= STBI__ZFAST_BITS) { + int j = stbi__bit_reverse(next_code[s],s); + while (j < (1 << STBI__ZFAST_BITS)) { + z->fast[j] = fastv; + j += (1 << s); + } + } + ++next_code[s]; + } + } + return 1; +} + +// zlib-from-memory implementation for PNG reading +// because PNG allows splitting the zlib stream arbitrarily, +// and it's annoying structurally to have PNG call ZLIB call PNG, +// we require PNG read all the IDATs and combine them into a single +// memory buffer + +typedef struct +{ + stbi_uc *zbuffer, *zbuffer_end; + int num_bits; + int hit_zeof_once; + stbi__uint32 code_buffer; + + char *zout; + char *zout_start; + char *zout_end; + int z_expandable; + + stbi__zhuffman z_length, z_distance; +} stbi__zbuf; + +stbi_inline static int stbi__zeof(stbi__zbuf *z) +{ + return (z->zbuffer >= z->zbuffer_end); +} + +stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) +{ + return stbi__zeof(z) ? 0 : *z->zbuffer++; +} + +static void stbi__fill_bits(stbi__zbuf *z) +{ + do { + if (z->code_buffer >= (1U << z->num_bits)) { + z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ + return; + } + z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits; + z->num_bits += 8; + } while (z->num_bits <= 24); +} + +stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) +{ + unsigned int k; + if (z->num_bits < n) stbi__fill_bits(z); + k = z->code_buffer & ((1 << n) - 1); + z->code_buffer >>= n; + z->num_bits -= n; + return k; +} + +static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s,k; + // not resolved by fast table, so compute it the slow way + // use jpeg approach, which requires MSbits at top + k = stbi__bit_reverse(a->code_buffer, 16); + for (s=STBI__ZFAST_BITS+1; ; ++s) + if (k < z->maxcode[s]) + break; + if (s >= 16) return -1; // invalid code! + // code size is s, so: + b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; + if (b >= STBI__ZNSYMS) return -1; // some data was corrupt somewhere! + if (z->size[b] != s) return -1; // was originally an assert, but report failure instead. + a->code_buffer >>= s; + a->num_bits -= s; + return z->value[b]; +} + +stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s; + if (a->num_bits < 16) { + if (stbi__zeof(a)) { + if (!a->hit_zeof_once) { + // This is the first time we hit eof, insert 16 extra padding btis + // to allow us to keep going; if we actually consume any of them + // though, that is invalid data. This is caught later. + a->hit_zeof_once = 1; + a->num_bits += 16; // add 16 implicit zero bits + } else { + // We already inserted our extra 16 padding bits and are again + // out, this stream is actually prematurely terminated. + return -1; + } + } else { + stbi__fill_bits(a); + } + } + b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; + if (b) { + s = b >> 9; + a->code_buffer >>= s; + a->num_bits -= s; + return b & 511; + } + return stbi__zhuffman_decode_slowpath(a, z); +} + +static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes +{ + char *q; + unsigned int cur, limit, old_limit; + z->zout = zout; + if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG"); + cur = (unsigned int) (z->zout - z->zout_start); + limit = old_limit = (unsigned) (z->zout_end - z->zout_start); + if (UINT_MAX - cur < (unsigned) n) return stbi__err("outofmem", "Out of memory"); + while (cur + n > limit) { + if(limit > UINT_MAX / 2) return stbi__err("outofmem", "Out of memory"); + limit *= 2; + } + q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); + STBI_NOTUSED(old_limit); + if (q == NULL) return stbi__err("outofmem", "Out of memory"); + z->zout_start = q; + z->zout = q + cur; + z->zout_end = q + limit; + return 1; +} + +static const int stbi__zlength_base[31] = { + 3,4,5,6,7,8,9,10,11,13, + 15,17,19,23,27,31,35,43,51,59, + 67,83,99,115,131,163,195,227,258,0,0 }; + +static const int stbi__zlength_extra[31]= +{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; + +static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, +257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; + +static const int stbi__zdist_extra[32] = +{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +static int stbi__parse_huffman_block(stbi__zbuf *a) +{ + char *zout = a->zout; + for(;;) { + int z = stbi__zhuffman_decode(a, &a->z_length); + if (z < 256) { + if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes + if (zout >= a->zout_end) { + if (!stbi__zexpand(a, zout, 1)) return 0; + zout = a->zout; + } + *zout++ = (char) z; + } else { + stbi_uc *p; + int len,dist; + if (z == 256) { + a->zout = zout; + if (a->hit_zeof_once && a->num_bits < 16) { + // The first time we hit zeof, we inserted 16 extra zero bits into our bit + // buffer so the decoder can just do its speculative decoding. But if we + // actually consumed any of those bits (which is the case when num_bits < 16), + // the stream actually read past the end so it is malformed. + return stbi__err("unexpected end","Corrupt PNG"); + } + return 1; + } + if (z >= 286) return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data + z -= 257; + len = stbi__zlength_base[z]; + if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]); + z = stbi__zhuffman_decode(a, &a->z_distance); + if (z < 0 || z >= 30) return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data + dist = stbi__zdist_base[z]; + if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]); + if (zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG"); + if (len > a->zout_end - zout) { + if (!stbi__zexpand(a, zout, len)) return 0; + zout = a->zout; + } + p = (stbi_uc *) (zout - dist); + if (dist == 1) { // run of one byte; common in images. + stbi_uc v = *p; + if (len) { do *zout++ = v; while (--len); } + } else { + if (len) { do *zout++ = *p++; while (--len); } + } + } + } +} + +static int stbi__compute_huffman_codes(stbi__zbuf *a) +{ + static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; + stbi__zhuffman z_codelength; + stbi_uc lencodes[286+32+137];//padding for maximum single op + stbi_uc codelength_sizes[19]; + int i,n; + + int hlit = stbi__zreceive(a,5) + 257; + int hdist = stbi__zreceive(a,5) + 1; + int hclen = stbi__zreceive(a,4) + 4; + int ntot = hlit + hdist; + + memset(codelength_sizes, 0, sizeof(codelength_sizes)); + for (i=0; i < hclen; ++i) { + int s = stbi__zreceive(a,3); + codelength_sizes[length_dezigzag[i]] = (stbi_uc) s; + } + if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; + + n = 0; + while (n < ntot) { + int c = stbi__zhuffman_decode(a, &z_codelength); + if (c < 0 || c >= 19) return stbi__err("bad codelengths", "Corrupt PNG"); + if (c < 16) + lencodes[n++] = (stbi_uc) c; + else { + stbi_uc fill = 0; + if (c == 16) { + c = stbi__zreceive(a,2)+3; + if (n == 0) return stbi__err("bad codelengths", "Corrupt PNG"); + fill = lencodes[n-1]; + } else if (c == 17) { + c = stbi__zreceive(a,3)+3; + } else if (c == 18) { + c = stbi__zreceive(a,7)+11; + } else { + return stbi__err("bad codelengths", "Corrupt PNG"); + } + if (ntot - n < c) return stbi__err("bad codelengths", "Corrupt PNG"); + memset(lencodes+n, fill, c); + n += c; + } + } + if (n != ntot) return stbi__err("bad codelengths","Corrupt PNG"); + if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0; + return 1; +} + +static int stbi__parse_uncompressed_block(stbi__zbuf *a) +{ + stbi_uc header[4]; + int len,nlen,k; + if (a->num_bits & 7) + stbi__zreceive(a, a->num_bits & 7); // discard + // drain the bit-packed data into header + k = 0; + while (a->num_bits > 0) { + header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check + a->code_buffer >>= 8; + a->num_bits -= 8; + } + if (a->num_bits < 0) return stbi__err("zlib corrupt","Corrupt PNG"); + // now fill header the normal way + while (k < 4) + header[k++] = stbi__zget8(a); + len = header[1] * 256 + header[0]; + nlen = header[3] * 256 + header[2]; + if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG"); + if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG"); + if (a->zout + len > a->zout_end) + if (!stbi__zexpand(a, a->zout, len)) return 0; + memcpy(a->zout, a->zbuffer, len); + a->zbuffer += len; + a->zout += len; + return 1; +} + +static int stbi__parse_zlib_header(stbi__zbuf *a) +{ + int cmf = stbi__zget8(a); + int cm = cmf & 15; + /* int cinfo = cmf >> 4; */ + int flg = stbi__zget8(a); + if (stbi__zeof(a)) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if ((cmf*256+flg) % 31 != 0) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if (flg & 32) return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png + if (cm != 8) return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png + // window = 1 << (8 + cinfo)... but who cares, we fully buffer output + return 1; +} + +static const stbi_uc stbi__zdefault_length[STBI__ZNSYMS] = +{ + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8 +}; +static const stbi_uc stbi__zdefault_distance[32] = +{ + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 +}; +/* +Init algorithm: +{ + int i; // use <= to match clearly with spec + for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; + for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; + for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; + for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; + + for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; +} +*/ + +static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) +{ + int final, type; + if (parse_header) + if (!stbi__parse_zlib_header(a)) return 0; + a->num_bits = 0; + a->code_buffer = 0; + a->hit_zeof_once = 0; + do { + final = stbi__zreceive(a,1); + type = stbi__zreceive(a,2); + if (type == 0) { + if (!stbi__parse_uncompressed_block(a)) return 0; + } else if (type == 3) { + return 0; + } else { + if (type == 1) { + // use fixed code lengths + if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , STBI__ZNSYMS)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) return 0; + } else { + if (!stbi__compute_huffman_codes(a)) return 0; + } + if (!stbi__parse_huffman_block(a)) return 0; + } + } while (!final); + return 1; +} + +static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) +{ + a->zout_start = obuf; + a->zout = obuf; + a->zout_end = obuf + olen; + a->z_expandable = exp; + + return stbi__parse_zlib(a, parse_header); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) +{ + return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) + return (int) (a.zout - a.zout_start); + else + return -1; +} + +STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(16384); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer+len; + if (stbi__do_zlib(&a, p, 16384, 1, 0)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) + return (int) (a.zout - a.zout_start); + else + return -1; +} +#endif + +// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 +// simple implementation +// - only 8-bit samples +// - no CRC checking +// - allocates lots of intermediate memory +// - avoids problem of streaming data between subsystems +// - avoids explicit window management +// performance +// - uses stb_zlib, a PD zlib implementation with fast huffman decoding + +#ifndef STBI_NO_PNG +typedef struct +{ + stbi__uint32 length; + stbi__uint32 type; +} stbi__pngchunk; + +static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) +{ + stbi__pngchunk c; + c.length = stbi__get32be(s); + c.type = stbi__get32be(s); + return c; +} + +static int stbi__check_png_header(stbi__context *s) +{ + static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 }; + int i; + for (i=0; i < 8; ++i) + if (stbi__get8(s) != png_sig[i]) return stbi__err("bad png sig","Not a PNG"); + return 1; +} + +typedef struct +{ + stbi__context *s; + stbi_uc *idata, *expanded, *out; + int depth; +} stbi__png; + + +enum { + STBI__F_none=0, + STBI__F_sub=1, + STBI__F_up=2, + STBI__F_avg=3, + STBI__F_paeth=4, + // synthetic filter used for first scanline to avoid needing a dummy row of 0s + STBI__F_avg_first +}; + +static stbi_uc first_row_filter[5] = +{ + STBI__F_none, + STBI__F_sub, + STBI__F_none, + STBI__F_avg_first, + STBI__F_sub // Paeth with b=c=0 turns out to be equivalent to sub +}; + +static int stbi__paeth(int a, int b, int c) +{ + // This formulation looks very different from the reference in the PNG spec, but is + // actually equivalent and has favorable data dependencies and admits straightforward + // generation of branch-free code, which helps performance significantly. + int thresh = c*3 - (a + b); + int lo = a < b ? a : b; + int hi = a < b ? b : a; + int t0 = (hi <= thresh) ? lo : c; + int t1 = (thresh <= lo) ? hi : t0; + return t1; +} + +static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; + +// adds an extra all-255 alpha channel +// dest == src is legal +// img_n must be 1 or 3 +static void stbi__create_png_alpha_expand8(stbi_uc *dest, stbi_uc *src, stbi__uint32 x, int img_n) +{ + int i; + // must process data backwards since we allow dest==src + if (img_n == 1) { + for (i=x-1; i >= 0; --i) { + dest[i*2+1] = 255; + dest[i*2+0] = src[i]; + } + } else { + STBI_ASSERT(img_n == 3); + for (i=x-1; i >= 0; --i) { + dest[i*4+3] = 255; + dest[i*4+2] = src[i*3+2]; + dest[i*4+1] = src[i*3+1]; + dest[i*4+0] = src[i*3+0]; + } + } +} + +// create the png data from post-deflated data +static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) +{ + int bytes = (depth == 16 ? 2 : 1); + stbi__context *s = a->s; + stbi__uint32 i,j,stride = x*out_n*bytes; + stbi__uint32 img_len, img_width_bytes; + stbi_uc *filter_buf; + int all_ok = 1; + int k; + int img_n = s->img_n; // copy it into a local for later + + int output_bytes = out_n*bytes; + int filter_bytes = img_n*bytes; + int width = x; + + STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1); + a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into + if (!a->out) return stbi__err("outofmem", "Out of memory"); + + // note: error exits here don't need to clean up a->out individually, + // stbi__do_png always does on error. + if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG"); + img_width_bytes = (((img_n * x * depth) + 7) >> 3); + if (!stbi__mad2sizes_valid(img_width_bytes, y, img_width_bytes)) return stbi__err("too large", "Corrupt PNG"); + img_len = (img_width_bytes + 1) * y; + + // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, + // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), + // so just check for raw_len < img_len always. + if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG"); + + // Allocate two scan lines worth of filter workspace buffer. + filter_buf = (stbi_uc *) stbi__malloc_mad2(img_width_bytes, 2, 0); + if (!filter_buf) return stbi__err("outofmem", "Out of memory"); + + // Filtering for low-bit-depth images + if (depth < 8) { + filter_bytes = 1; + width = img_width_bytes; + } + + for (j=0; j < y; ++j) { + // cur/prior filter buffers alternate + stbi_uc *cur = filter_buf + (j & 1)*img_width_bytes; + stbi_uc *prior = filter_buf + (~j & 1)*img_width_bytes; + stbi_uc *dest = a->out + stride*j; + int nk = width * filter_bytes; + int filter = *raw++; + + // check filter type + if (filter > 4) { + all_ok = stbi__err("invalid filter","Corrupt PNG"); + break; + } + + // if first row, use special filter that doesn't sample previous row + if (j == 0) filter = first_row_filter[filter]; + + // perform actual filtering + switch (filter) { + case STBI__F_none: + memcpy(cur, raw, nk); + break; + case STBI__F_sub: + memcpy(cur, raw, filter_bytes); + for (k = filter_bytes; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); + break; + case STBI__F_up: + for (k = 0; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + prior[k]); + break; + case STBI__F_avg: + for (k = 0; k < filter_bytes; ++k) + cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); + for (k = filter_bytes; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); + break; + case STBI__F_paeth: + for (k = 0; k < filter_bytes; ++k) + cur[k] = STBI__BYTECAST(raw[k] + prior[k]); // prior[k] == stbi__paeth(0,prior[k],0) + for (k = filter_bytes; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes], prior[k], prior[k-filter_bytes])); + break; + case STBI__F_avg_first: + memcpy(cur, raw, filter_bytes); + for (k = filter_bytes; k < nk; ++k) + cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); + break; + } + + raw += nk; + + // expand decoded bits in cur to dest, also adding an extra alpha channel if desired + if (depth < 8) { + stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range + stbi_uc *in = cur; + stbi_uc *out = dest; + stbi_uc inb = 0; + stbi__uint32 nsmp = x*img_n; + + // expand bits to bytes first + if (depth == 4) { + for (i=0; i < nsmp; ++i) { + if ((i & 1) == 0) inb = *in++; + *out++ = scale * (inb >> 4); + inb <<= 4; + } + } else if (depth == 2) { + for (i=0; i < nsmp; ++i) { + if ((i & 3) == 0) inb = *in++; + *out++ = scale * (inb >> 6); + inb <<= 2; + } + } else { + STBI_ASSERT(depth == 1); + for (i=0; i < nsmp; ++i) { + if ((i & 7) == 0) inb = *in++; + *out++ = scale * (inb >> 7); + inb <<= 1; + } + } + + // insert alpha=255 values if desired + if (img_n != out_n) + stbi__create_png_alpha_expand8(dest, dest, x, img_n); + } else if (depth == 8) { + if (img_n == out_n) + memcpy(dest, cur, x*img_n); + else + stbi__create_png_alpha_expand8(dest, cur, x, img_n); + } else if (depth == 16) { + // convert the image data from big-endian to platform-native + stbi__uint16 *dest16 = (stbi__uint16*)dest; + stbi__uint32 nsmp = x*img_n; + + if (img_n == out_n) { + for (i = 0; i < nsmp; ++i, ++dest16, cur += 2) + *dest16 = (cur[0] << 8) | cur[1]; + } else { + STBI_ASSERT(img_n+1 == out_n); + if (img_n == 1) { + for (i = 0; i < x; ++i, dest16 += 2, cur += 2) { + dest16[0] = (cur[0] << 8) | cur[1]; + dest16[1] = 0xffff; + } + } else { + STBI_ASSERT(img_n == 3); + for (i = 0; i < x; ++i, dest16 += 4, cur += 6) { + dest16[0] = (cur[0] << 8) | cur[1]; + dest16[1] = (cur[2] << 8) | cur[3]; + dest16[2] = (cur[4] << 8) | cur[5]; + dest16[3] = 0xffff; + } + } + } + } + } + + STBI_FREE(filter_buf); + if (!all_ok) return 0; + + return 1; +} + +static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) +{ + int bytes = (depth == 16 ? 2 : 1); + int out_bytes = out_n * bytes; + stbi_uc *final; + int p; + if (!interlaced) + return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); + + // de-interlacing + final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); + if (!final) return stbi__err("outofmem", "Out of memory"); + for (p=0; p < 7; ++p) { + int xorig[] = { 0,4,0,2,0,1,0 }; + int yorig[] = { 0,0,4,0,2,0,1 }; + int xspc[] = { 8,8,4,4,2,2,1 }; + int yspc[] = { 8,8,8,4,4,2,2 }; + int i,j,x,y; + // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 + x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p]; + y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p]; + if (x && y) { + stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; + if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) { + STBI_FREE(final); + return 0; + } + for (j=0; j < y; ++j) { + for (i=0; i < x; ++i) { + int out_y = j*yspc[p]+yorig[p]; + int out_x = i*xspc[p]+xorig[p]; + memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes, + a->out + (j*x+i)*out_bytes, out_bytes); + } + } + STBI_FREE(a->out); + image_data += img_len; + image_data_len -= img_len; + } + } + a->out = final; + + return 1; +} + +static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + // compute color-based transparency, assuming we've + // already got 255 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i=0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 255); + p += 2; + } + } else { + for (i=0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi__uint16 *p = (stbi__uint16*) z->out; + + // compute color-based transparency, assuming we've + // already got 65535 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i = 0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 65535); + p += 2; + } + } else { + for (i = 0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) +{ + stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; + stbi_uc *p, *temp_out, *orig = a->out; + + p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0); + if (p == NULL) return stbi__err("outofmem", "Out of memory"); + + // between here and free(out) below, exitting would leak + temp_out = p; + + if (pal_img_n == 3) { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p += 3; + } + } else { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p[3] = palette[n+3]; + p += 4; + } + } + STBI_FREE(a->out); + a->out = temp_out; + + STBI_NOTUSED(len); + + return 1; +} + +static int stbi__unpremultiply_on_load_global = 0; +static int stbi__de_iphone_flag_global = 0; + +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_global = flag_true_if_should_convert; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__unpremultiply_on_load stbi__unpremultiply_on_load_global +#define stbi__de_iphone_flag stbi__de_iphone_flag_global +#else +static STBI_THREAD_LOCAL int stbi__unpremultiply_on_load_local, stbi__unpremultiply_on_load_set; +static STBI_THREAD_LOCAL int stbi__de_iphone_flag_local, stbi__de_iphone_flag_set; + +STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply; + stbi__unpremultiply_on_load_set = 1; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_local = flag_true_if_should_convert; + stbi__de_iphone_flag_set = 1; +} + +#define stbi__unpremultiply_on_load (stbi__unpremultiply_on_load_set \ + ? stbi__unpremultiply_on_load_local \ + : stbi__unpremultiply_on_load_global) +#define stbi__de_iphone_flag (stbi__de_iphone_flag_set \ + ? stbi__de_iphone_flag_local \ + : stbi__de_iphone_flag_global) +#endif // STBI_THREAD_LOCAL + +static void stbi__de_iphone(stbi__png *z) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + if (s->img_out_n == 3) { // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 3; + } + } else { + STBI_ASSERT(s->img_out_n == 4); + if (stbi__unpremultiply_on_load) { + // convert bgr to rgb and unpremultiply + for (i=0; i < pixel_count; ++i) { + stbi_uc a = p[3]; + stbi_uc t = p[0]; + if (a) { + stbi_uc half = a / 2; + p[0] = (p[2] * 255 + half) / a; + p[1] = (p[1] * 255 + half) / a; + p[2] = ( t * 255 + half) / a; + } else { + p[0] = p[2]; + p[2] = t; + } + p += 4; + } + } else { + // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 4; + } + } + } +} + +#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d)) + +static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) +{ + stbi_uc palette[1024], pal_img_n=0; + stbi_uc has_trans=0, tc[3]={0}; + stbi__uint16 tc16[3]; + stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0; + int first=1,k,interlace=0, color=0, is_iphone=0; + stbi__context *s = z->s; + + z->expanded = NULL; + z->idata = NULL; + z->out = NULL; + + if (!stbi__check_png_header(s)) return 0; + + if (scan == STBI__SCAN_type) return 1; + + for (;;) { + stbi__pngchunk c = stbi__get_chunk_header(s); + switch (c.type) { + case STBI__PNG_TYPE('C','g','B','I'): + is_iphone = 1; + stbi__skip(s, c.length); + break; + case STBI__PNG_TYPE('I','H','D','R'): { + int comp,filter; + if (!first) return stbi__err("multiple IHDR","Corrupt PNG"); + first = 0; + if (c.length != 13) return stbi__err("bad IHDR len","Corrupt PNG"); + s->img_x = stbi__get32be(s); + s->img_y = stbi__get32be(s); + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); + color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); + comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); + filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); + interlace = stbi__get8(s); if (interlace>1) return stbi__err("bad interlace method","Corrupt PNG"); + if (!s->img_x || !s->img_y) return stbi__err("0-pixel image","Corrupt PNG"); + if (!pal_img_n) { + s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); + if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err("too large", "Image too large to decode"); + } else { + // if paletted, then pal_n is our final components, and + // img_n is # components to decompress/filter. + s->img_n = 1; + if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err("too large","Corrupt PNG"); + } + // even with SCAN_header, have to scan to see if we have a tRNS + break; + } + + case STBI__PNG_TYPE('P','L','T','E'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (c.length > 256*3) return stbi__err("invalid PLTE","Corrupt PNG"); + pal_len = c.length / 3; + if (pal_len * 3 != c.length) return stbi__err("invalid PLTE","Corrupt PNG"); + for (i=0; i < pal_len; ++i) { + palette[i*4+0] = stbi__get8(s); + palette[i*4+1] = stbi__get8(s); + palette[i*4+2] = stbi__get8(s); + palette[i*4+3] = 255; + } + break; + } + + case STBI__PNG_TYPE('t','R','N','S'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (z->idata) return stbi__err("tRNS after IDAT","Corrupt PNG"); + if (pal_img_n) { + if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; } + if (pal_len == 0) return stbi__err("tRNS before PLTE","Corrupt PNG"); + if (c.length > pal_len) return stbi__err("bad tRNS len","Corrupt PNG"); + pal_img_n = 4; + for (i=0; i < c.length; ++i) + palette[i*4+3] = stbi__get8(s); + } else { + if (!(s->img_n & 1)) return stbi__err("tRNS with alpha","Corrupt PNG"); + if (c.length != (stbi__uint32) s->img_n*2) return stbi__err("bad tRNS len","Corrupt PNG"); + has_trans = 1; + // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now. + if (scan == STBI__SCAN_header) { ++s->img_n; return 1; } + if (z->depth == 16) { + for (k = 0; k < s->img_n && k < 3; ++k) // extra loop test to suppress false GCC warning + tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is + } else { + for (k = 0; k < s->img_n && k < 3; ++k) + tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger + } + } + break; + } + + case STBI__PNG_TYPE('I','D','A','T'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG"); + if (scan == STBI__SCAN_header) { + // header scan definitely stops at first IDAT + if (pal_img_n) + s->img_n = pal_img_n; + return 1; + } + if (c.length > (1u << 30)) return stbi__err("IDAT size limit", "IDAT section larger than 2^30 bytes"); + if ((int)(ioff + c.length) < (int)ioff) return 0; + if (ioff + c.length > idata_limit) { + stbi__uint32 idata_limit_old = idata_limit; + stbi_uc *p; + if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096; + while (ioff + c.length > idata_limit) + idata_limit *= 2; + STBI_NOTUSED(idata_limit_old); + p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err("outofmem", "Out of memory"); + z->idata = p; + } + if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err("outofdata","Corrupt PNG"); + ioff += c.length; + break; + } + + case STBI__PNG_TYPE('I','E','N','D'): { + stbi__uint32 raw_len, bpl; + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (scan != STBI__SCAN_load) return 1; + if (z->idata == NULL) return stbi__err("no IDAT","Corrupt PNG"); + // initial guess for decoded data size to avoid unnecessary reallocs + bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component + raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; + z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone); + if (z->expanded == NULL) return 0; // zlib should set error + STBI_FREE(z->idata); z->idata = NULL; + if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans) + s->img_out_n = s->img_n+1; + else + s->img_out_n = s->img_n; + if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0; + if (has_trans) { + if (z->depth == 16) { + if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0; + } else { + if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0; + } + } + if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) + stbi__de_iphone(z); + if (pal_img_n) { + // pal_img_n == 3 or 4 + s->img_n = pal_img_n; // record the actual colors we had + s->img_out_n = pal_img_n; + if (req_comp >= 3) s->img_out_n = req_comp; + if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) + return 0; + } else if (has_trans) { + // non-paletted image with tRNS -> source image has (constant) alpha + ++s->img_n; + } + STBI_FREE(z->expanded); z->expanded = NULL; + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + return 1; + } + + default: + // if critical, fail + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if ((c.type & (1 << 29)) == 0) { + #ifndef STBI_NO_FAILURE_STRINGS + // not threadsafe + static char invalid_chunk[] = "XXXX PNG chunk not known"; + invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); + invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); + invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); + invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); + #endif + return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); + } + stbi__skip(s, c.length); + break; + } + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + } +} + +static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) +{ + void *result=NULL; + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { + if (p->depth <= 8) + ri->bits_per_channel = 8; + else if (p->depth == 16) + ri->bits_per_channel = 16; + else + return stbi__errpuc("bad bits_per_channel", "PNG not supported: unsupported color depth"); + result = p->out; + p->out = NULL; + if (req_comp && req_comp != p->s->img_out_n) { + if (ri->bits_per_channel == 8) + result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + else + result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + p->s->img_out_n = req_comp; + if (result == NULL) return result; + } + *x = p->s->img_x; + *y = p->s->img_y; + if (n) *n = p->s->img_n; + } + STBI_FREE(p->out); p->out = NULL; + STBI_FREE(p->expanded); p->expanded = NULL; + STBI_FREE(p->idata); p->idata = NULL; + + return result; +} + +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi__png p; + p.s = s; + return stbi__do_png(&p, x,y,comp,req_comp, ri); +} + +static int stbi__png_test(stbi__context *s) +{ + int r; + r = stbi__check_png_header(s); + stbi__rewind(s); + return r; +} + +static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) +{ + if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { + stbi__rewind( p->s ); + return 0; + } + if (x) *x = p->s->img_x; + if (y) *y = p->s->img_y; + if (comp) *comp = p->s->img_n; + return 1; +} + +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__png p; + p.s = s; + return stbi__png_info_raw(&p, x, y, comp); +} + +static int stbi__png_is16(stbi__context *s) +{ + stbi__png p; + p.s = s; + if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) + return 0; + if (p.depth != 16) { + stbi__rewind(p.s); + return 0; + } + return 1; +} +#endif + +// Microsoft/Windows BMP image + +#ifndef STBI_NO_BMP +static int stbi__bmp_test_raw(stbi__context *s) +{ + int r; + int sz; + if (stbi__get8(s) != 'B') return 0; + if (stbi__get8(s) != 'M') return 0; + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + stbi__get32le(s); // discard data offset + sz = stbi__get32le(s); + r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); + return r; +} + +static int stbi__bmp_test(stbi__context *s) +{ + int r = stbi__bmp_test_raw(s); + stbi__rewind(s); + return r; +} + + +// returns 0..31 for the highest set bit +static int stbi__high_bit(unsigned int z) +{ + int n=0; + if (z == 0) return -1; + if (z >= 0x10000) { n += 16; z >>= 16; } + if (z >= 0x00100) { n += 8; z >>= 8; } + if (z >= 0x00010) { n += 4; z >>= 4; } + if (z >= 0x00004) { n += 2; z >>= 2; } + if (z >= 0x00002) { n += 1;/* >>= 1;*/ } + return n; +} + +static int stbi__bitcount(unsigned int a) +{ + a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 + a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits + a = (a + (a >> 8)); // max 16 per 8 bits + a = (a + (a >> 16)); // max 32 per 8 bits + return a & 0xff; +} + +// extract an arbitrarily-aligned N-bit value (N=bits) +// from v, and then make it 8-bits long and fractionally +// extend it to full full range. +static int stbi__shiftsigned(unsigned int v, int shift, int bits) +{ + static unsigned int mul_table[9] = { + 0, + 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/, + 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/, + }; + static unsigned int shift_table[9] = { + 0, 0,0,1,0,2,4,6,0, + }; + if (shift < 0) + v <<= -shift; + else + v >>= shift; + STBI_ASSERT(v < 256); + v >>= (8-bits); + STBI_ASSERT(bits >= 0 && bits <= 8); + return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits]; +} + +typedef struct +{ + int bpp, offset, hsz; + unsigned int mr,mg,mb,ma, all_a; + int extra_read; +} stbi__bmp_data; + +static int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress) +{ + // BI_BITFIELDS specifies masks explicitly, don't override + if (compress == 3) + return 1; + + if (compress == 0) { + if (info->bpp == 16) { + info->mr = 31u << 10; + info->mg = 31u << 5; + info->mb = 31u << 0; + } else if (info->bpp == 32) { + info->mr = 0xffu << 16; + info->mg = 0xffu << 8; + info->mb = 0xffu << 0; + info->ma = 0xffu << 24; + info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 + } else { + // otherwise, use defaults, which is all-0 + info->mr = info->mg = info->mb = info->ma = 0; + } + return 1; + } + return 0; // error +} + +static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) +{ + int hsz; + if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP"); + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + info->offset = stbi__get32le(s); + info->hsz = hsz = stbi__get32le(s); + info->mr = info->mg = info->mb = info->ma = 0; + info->extra_read = 14; + + if (info->offset < 0) return stbi__errpuc("bad BMP", "bad BMP"); + + if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); + if (hsz == 12) { + s->img_x = stbi__get16le(s); + s->img_y = stbi__get16le(s); + } else { + s->img_x = stbi__get32le(s); + s->img_y = stbi__get32le(s); + } + if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP"); + info->bpp = stbi__get16le(s); + if (hsz != 12) { + int compress = stbi__get32le(s); + if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); + if (compress >= 4) return stbi__errpuc("BMP JPEG/PNG", "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes + if (compress == 3 && info->bpp != 16 && info->bpp != 32) return stbi__errpuc("bad BMP", "bad BMP"); // bitfields requires 16 or 32 bits/pixel + stbi__get32le(s); // discard sizeof + stbi__get32le(s); // discard hres + stbi__get32le(s); // discard vres + stbi__get32le(s); // discard colorsused + stbi__get32le(s); // discard max important + if (hsz == 40 || hsz == 56) { + if (hsz == 56) { + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + } + if (info->bpp == 16 || info->bpp == 32) { + if (compress == 0) { + stbi__bmp_set_mask_defaults(info, compress); + } else if (compress == 3) { + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->extra_read += 12; + // not documented, but generated by photoshop and handled by mspaint + if (info->mr == info->mg && info->mg == info->mb) { + // ?!?!? + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else { + // V4/V5 header + int i; + if (hsz != 108 && hsz != 124) + return stbi__errpuc("bad BMP", "bad BMP"); + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->ma = stbi__get32le(s); + if (compress != 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs + stbi__bmp_set_mask_defaults(info, compress); + stbi__get32le(s); // discard color space + for (i=0; i < 12; ++i) + stbi__get32le(s); // discard color space parameters + if (hsz == 124) { + stbi__get32le(s); // discard rendering intent + stbi__get32le(s); // discard offset of profile data + stbi__get32le(s); // discard size of profile data + stbi__get32le(s); // discard reserved + } + } + } + return (void *) 1; +} + + +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + unsigned int mr=0,mg=0,mb=0,ma=0, all_a; + stbi_uc pal[256][4]; + int psize=0,i,j,width; + int flip_vertically, pad, target; + stbi__bmp_data info; + STBI_NOTUSED(ri); + + info.all_a = 255; + if (stbi__bmp_parse_header(s, &info) == NULL) + return NULL; // error code already set + + flip_vertically = ((int) s->img_y) > 0; + s->img_y = abs((int) s->img_y); + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + mr = info.mr; + mg = info.mg; + mb = info.mb; + ma = info.ma; + all_a = info.all_a; + + if (info.hsz == 12) { + if (info.bpp < 24) + psize = (info.offset - info.extra_read - 24) / 3; + } else { + if (info.bpp < 16) + psize = (info.offset - info.extra_read - info.hsz) >> 2; + } + if (psize == 0) { + // accept some number of extra bytes after the header, but if the offset points either to before + // the header ends or implies a large amount of extra data, reject the file as malformed + int bytes_read_so_far = s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original); + int header_limit = 1024; // max we actually read is below 256 bytes currently. + int extra_data_limit = 256*4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size. + if (bytes_read_so_far <= 0 || bytes_read_so_far > header_limit) { + return stbi__errpuc("bad header", "Corrupt BMP"); + } + // we established that bytes_read_so_far is positive and sensible. + // the first half of this test rejects offsets that are either too small positives, or + // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn + // ensures the number computed in the second half of the test can't overflow. + if (info.offset < bytes_read_so_far || info.offset - bytes_read_so_far > extra_data_limit) { + return stbi__errpuc("bad offset", "Corrupt BMP"); + } else { + stbi__skip(s, info.offset - bytes_read_so_far); + } + } + + if (info.bpp == 24 && ma == 0xff000000) + s->img_n = 3; + else + s->img_n = ma ? 4 : 3; + if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 + target = req_comp; + else + target = s->img_n; // if they want monochrome, we'll post-convert + + // sanity-check size + if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "Corrupt BMP"); + + out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + if (info.bpp < 16) { + int z=0; + if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); } + for (i=0; i < psize; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + if (info.hsz != 12) stbi__get8(s); + pal[i][3] = 255; + } + stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); + if (info.bpp == 1) width = (s->img_x + 7) >> 3; + else if (info.bpp == 4) width = (s->img_x + 1) >> 1; + else if (info.bpp == 8) width = s->img_x; + else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); } + pad = (-width)&3; + if (info.bpp == 1) { + for (j=0; j < (int) s->img_y; ++j) { + int bit_offset = 7, v = stbi__get8(s); + for (i=0; i < (int) s->img_x; ++i) { + int color = (v>>bit_offset)&0x1; + out[z++] = pal[color][0]; + out[z++] = pal[color][1]; + out[z++] = pal[color][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + if((--bit_offset) < 0) { + bit_offset = 7; + v = stbi__get8(s); + } + } + stbi__skip(s, pad); + } + } else { + for (j=0; j < (int) s->img_y; ++j) { + for (i=0; i < (int) s->img_x; i += 2) { + int v=stbi__get8(s),v2=0; + if (info.bpp == 4) { + v2 = v & 15; + v >>= 4; + } + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + v = (info.bpp == 8) ? stbi__get8(s) : v2; + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + } + stbi__skip(s, pad); + } + } + } else { + int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; + int z = 0; + int easy=0; + stbi__skip(s, info.offset - info.extra_read - info.hsz); + if (info.bpp == 24) width = 3 * s->img_x; + else if (info.bpp == 16) width = 2*s->img_x; + else /* bpp = 32 and pad = 0 */ width=0; + pad = (-width) & 3; + if (info.bpp == 24) { + easy = 1; + } else if (info.bpp == 32) { + if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) + easy = 2; + } + if (!easy) { + if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + // right shift amt to put high bit in position #7 + rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr); + gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg); + bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb); + ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma); + if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + } + for (j=0; j < (int) s->img_y; ++j) { + if (easy) { + for (i=0; i < (int) s->img_x; ++i) { + unsigned char a; + out[z+2] = stbi__get8(s); + out[z+1] = stbi__get8(s); + out[z+0] = stbi__get8(s); + z += 3; + a = (easy == 2 ? stbi__get8(s) : 255); + all_a |= a; + if (target == 4) out[z++] = a; + } + } else { + int bpp = info.bpp; + for (i=0; i < (int) s->img_x; ++i) { + stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); + unsigned int a; + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); + a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); + all_a |= a; + if (target == 4) out[z++] = STBI__BYTECAST(a); + } + } + stbi__skip(s, pad); + } + } + + // if alpha channel is all 0s, replace with all 255s + if (target == 4 && all_a == 0) + for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4) + out[i] = 255; + + if (flip_vertically) { + stbi_uc t; + for (j=0; j < (int) s->img_y>>1; ++j) { + stbi_uc *p1 = out + j *s->img_x*target; + stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target; + for (i=0; i < (int) s->img_x*target; ++i) { + t = p1[i]; p1[i] = p2[i]; p2[i] = t; + } + } + } + + if (req_comp && req_comp != target) { + out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + return out; +} +#endif + +// Targa Truevision - TGA +// by Jonathan Dummer +#ifndef STBI_NO_TGA +// returns STBI_rgb or whatever, 0 on error +static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16) +{ + // only RGB or RGBA (incl. 16bit) or grey allowed + if (is_rgb16) *is_rgb16 = 0; + switch(bits_per_pixel) { + case 8: return STBI_grey; + case 16: if(is_grey) return STBI_grey_alpha; + // fallthrough + case 15: if(is_rgb16) *is_rgb16 = 1; + return STBI_rgb; + case 24: // fallthrough + case 32: return bits_per_pixel/8; + default: return 0; + } +} + +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) +{ + int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; + int sz, tga_colormap_type; + stbi__get8(s); // discard Offset + tga_colormap_type = stbi__get8(s); // colormap type + if( tga_colormap_type > 1 ) { + stbi__rewind(s); + return 0; // only RGB or indexed allowed + } + tga_image_type = stbi__get8(s); // image type + if ( tga_colormap_type == 1 ) { // colormapped (paletted) image + if (tga_image_type != 1 && tga_image_type != 9) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip image x and y origin + tga_colormap_bpp = sz; + } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE + if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) { + stbi__rewind(s); + return 0; // only RGB or grey allowed, +/- RLE + } + stbi__skip(s,9); // skip colormap specification and image x/y origin + tga_colormap_bpp = 0; + } + tga_w = stbi__get16le(s); + if( tga_w < 1 ) { + stbi__rewind(s); + return 0; // test width + } + tga_h = stbi__get16le(s); + if( tga_h < 1 ) { + stbi__rewind(s); + return 0; // test height + } + tga_bits_per_pixel = stbi__get8(s); // bits per pixel + stbi__get8(s); // ignore alpha bits + if (tga_colormap_bpp != 0) { + if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { + // when using a colormap, tga_bits_per_pixel is the size of the indexes + // I don't think anything but 8 or 16bit indexes makes sense + stbi__rewind(s); + return 0; + } + tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); + } else { + tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); + } + if(!tga_comp) { + stbi__rewind(s); + return 0; + } + if (x) *x = tga_w; + if (y) *y = tga_h; + if (comp) *comp = tga_comp; + return 1; // seems to have passed everything +} + +static int stbi__tga_test(stbi__context *s) +{ + int res = 0; + int sz, tga_color_type; + stbi__get8(s); // discard Offset + tga_color_type = stbi__get8(s); // color type + if ( tga_color_type > 1 ) goto errorEnd; // only RGB or indexed allowed + sz = stbi__get8(s); // image type + if ( tga_color_type == 1 ) { // colormapped (paletted) image + if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9 + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + stbi__skip(s,4); // skip image x and y origin + } else { // "normal" image w/o colormap + if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE + stbi__skip(s,9); // skip colormap specification and image x/y origin + } + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test width + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test height + sz = stbi__get8(s); // bits per pixel + if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + + res = 1; // if we got this far, everything's good and we can return 1 instead of 0 + +errorEnd: + stbi__rewind(s); + return res; +} + +// read 16bit value and convert to 24bit RGB +static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out) +{ + stbi__uint16 px = (stbi__uint16)stbi__get16le(s); + stbi__uint16 fiveBitMask = 31; + // we have 3 channels with 5bits each + int r = (px >> 10) & fiveBitMask; + int g = (px >> 5) & fiveBitMask; + int b = px & fiveBitMask; + // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later + out[0] = (stbi_uc)((r * 255)/31); + out[1] = (stbi_uc)((g * 255)/31); + out[2] = (stbi_uc)((b * 255)/31); + + // some people claim that the most significant bit might be used for alpha + // (possibly if an alpha-bit is set in the "image descriptor byte") + // but that only made 16bit test images completely translucent.. + // so let's treat all 15 and 16bit TGAs as RGB with no alpha. +} + +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + // read in the TGA header stuff + int tga_offset = stbi__get8(s); + int tga_indexed = stbi__get8(s); + int tga_image_type = stbi__get8(s); + int tga_is_RLE = 0; + int tga_palette_start = stbi__get16le(s); + int tga_palette_len = stbi__get16le(s); + int tga_palette_bits = stbi__get8(s); + int tga_x_origin = stbi__get16le(s); + int tga_y_origin = stbi__get16le(s); + int tga_width = stbi__get16le(s); + int tga_height = stbi__get16le(s); + int tga_bits_per_pixel = stbi__get8(s); + int tga_comp, tga_rgb16=0; + int tga_inverted = stbi__get8(s); + // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) + // image data + unsigned char *tga_data; + unsigned char *tga_palette = NULL; + int i, j; + unsigned char raw_data[4] = {0}; + int RLE_count = 0; + int RLE_repeating = 0; + int read_next_pixel = 1; + STBI_NOTUSED(ri); + STBI_NOTUSED(tga_x_origin); // @TODO + STBI_NOTUSED(tga_y_origin); // @TODO + + if (tga_height > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (tga_width > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // do a tiny bit of precessing + if ( tga_image_type >= 8 ) + { + tga_image_type -= 8; + tga_is_RLE = 1; + } + tga_inverted = 1 - ((tga_inverted >> 5) & 1); + + // If I'm paletted, then I'll use the number of bits from the palette + if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); + else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); + + if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency + return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); + + // tga info + *x = tga_width; + *y = tga_height; + if (comp) *comp = tga_comp; + + if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) + return stbi__errpuc("too large", "Corrupt TGA"); + + tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); + if (!tga_data) return stbi__errpuc("outofmem", "Out of memory"); + + // skip to the data's starting position (offset usually = 0) + stbi__skip(s, tga_offset ); + + if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) { + for (i=0; i < tga_height; ++i) { + int row = tga_inverted ? tga_height -i - 1 : i; + stbi_uc *tga_row = tga_data + row*tga_width*tga_comp; + stbi__getn(s, tga_row, tga_width * tga_comp); + } + } else { + // do I need to load a palette? + if ( tga_indexed) + { + if (tga_palette_len == 0) { /* you have to have at least one entry! */ + STBI_FREE(tga_data); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + + // any data to skip? (offset usually = 0) + stbi__skip(s, tga_palette_start ); + // load the palette + tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); + if (!tga_palette) { + STBI_FREE(tga_data); + return stbi__errpuc("outofmem", "Out of memory"); + } + if (tga_rgb16) { + stbi_uc *pal_entry = tga_palette; + STBI_ASSERT(tga_comp == STBI_rgb); + for (i=0; i < tga_palette_len; ++i) { + stbi__tga_read_rgb16(s, pal_entry); + pal_entry += tga_comp; + } + } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { + STBI_FREE(tga_data); + STBI_FREE(tga_palette); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + } + // load the data + for (i=0; i < tga_width * tga_height; ++i) + { + // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? + if ( tga_is_RLE ) + { + if ( RLE_count == 0 ) + { + // yep, get the next byte as a RLE command + int RLE_cmd = stbi__get8(s); + RLE_count = 1 + (RLE_cmd & 127); + RLE_repeating = RLE_cmd >> 7; + read_next_pixel = 1; + } else if ( !RLE_repeating ) + { + read_next_pixel = 1; + } + } else + { + read_next_pixel = 1; + } + // OK, if I need to read a pixel, do it now + if ( read_next_pixel ) + { + // load however much data we did have + if ( tga_indexed ) + { + // read in index, then perform the lookup + int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); + if ( pal_idx >= tga_palette_len ) { + // invalid index + pal_idx = 0; + } + pal_idx *= tga_comp; + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = tga_palette[pal_idx+j]; + } + } else if(tga_rgb16) { + STBI_ASSERT(tga_comp == STBI_rgb); + stbi__tga_read_rgb16(s, raw_data); + } else { + // read in the data raw + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = stbi__get8(s); + } + } + // clear the reading flag for the next pixel + read_next_pixel = 0; + } // end of reading a pixel + + // copy data + for (j = 0; j < tga_comp; ++j) + tga_data[i*tga_comp+j] = raw_data[j]; + + // in case we're in RLE mode, keep counting down + --RLE_count; + } + // do I need to invert the image? + if ( tga_inverted ) + { + for (j = 0; j*2 < tga_height; ++j) + { + int index1 = j * tga_width * tga_comp; + int index2 = (tga_height - 1 - j) * tga_width * tga_comp; + for (i = tga_width * tga_comp; i > 0; --i) + { + unsigned char temp = tga_data[index1]; + tga_data[index1] = tga_data[index2]; + tga_data[index2] = temp; + ++index1; + ++index2; + } + } + } + // clear my palette, if I had one + if ( tga_palette != NULL ) + { + STBI_FREE( tga_palette ); + } + } + + // swap RGB - if the source data was RGB16, it already is in the right order + if (tga_comp >= 3 && !tga_rgb16) + { + unsigned char* tga_pixel = tga_data; + for (i=0; i < tga_width * tga_height; ++i) + { + unsigned char temp = tga_pixel[0]; + tga_pixel[0] = tga_pixel[2]; + tga_pixel[2] = temp; + tga_pixel += tga_comp; + } + } + + // convert to target component count + if (req_comp && req_comp != tga_comp) + tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); + + // the things I do to get rid of an error message, and yet keep + // Microsoft's C compilers happy... [8^( + tga_palette_start = tga_palette_len = tga_palette_bits = + tga_x_origin = tga_y_origin = 0; + STBI_NOTUSED(tga_palette_start); + // OK, done + return tga_data; +} +#endif + +// ************************************************************************************************* +// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s) +{ + int r = (stbi__get32be(s) == 0x38425053); + stbi__rewind(s); + return r; +} + +static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) +{ + int count, nleft, len; + + count = 0; + while ((nleft = pixelCount - count) > 0) { + len = stbi__get8(s); + if (len == 128) { + // No-op. + } else if (len < 128) { + // Copy next len+1 bytes literally. + len++; + if (len > nleft) return 0; // corrupt data + count += len; + while (len) { + *p = stbi__get8(s); + p += 4; + len--; + } + } else if (len > 128) { + stbi_uc val; + // Next -len+1 bytes in the dest are replicated from next source byte. + // (Interpret len as a negative 8-bit int.) + len = 257 - len; + if (len > nleft) return 0; // corrupt data + val = stbi__get8(s); + count += len; + while (len) { + *p = val; + p += 4; + len--; + } + } + } + + return 1; +} + +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + int pixelCount; + int channelCount, compression; + int channel, i; + int bitdepth; + int w,h; + stbi_uc *out; + STBI_NOTUSED(ri); + + // Check identifier + if (stbi__get32be(s) != 0x38425053) // "8BPS" + return stbi__errpuc("not PSD", "Corrupt PSD image"); + + // Check file type version. + if (stbi__get16be(s) != 1) + return stbi__errpuc("wrong version", "Unsupported version of PSD image"); + + // Skip 6 reserved bytes. + stbi__skip(s, 6 ); + + // Read the number of channels (R, G, B, A, etc). + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) + return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); + + // Read the rows and columns of the image. + h = stbi__get32be(s); + w = stbi__get32be(s); + + if (h > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (w > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // Make sure the depth is 8 bits. + bitdepth = stbi__get16be(s); + if (bitdepth != 8 && bitdepth != 16) + return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); + + // Make sure the color mode is RGB. + // Valid options are: + // 0: Bitmap + // 1: Grayscale + // 2: Indexed color + // 3: RGB color + // 4: CMYK color + // 7: Multichannel + // 8: Duotone + // 9: Lab color + if (stbi__get16be(s) != 3) + return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); + + // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) + stbi__skip(s,stbi__get32be(s) ); + + // Skip the image resources. (resolution, pen tool paths, etc) + stbi__skip(s, stbi__get32be(s) ); + + // Skip the reserved data. + stbi__skip(s, stbi__get32be(s) ); + + // Find out if the data is compressed. + // Known values: + // 0: no compression + // 1: RLE compressed + compression = stbi__get16be(s); + if (compression > 1) + return stbi__errpuc("bad compression", "PSD has an unknown compression format"); + + // Check size + if (!stbi__mad3sizes_valid(4, w, h, 0)) + return stbi__errpuc("too large", "Corrupt PSD"); + + // Create the destination image. + + if (!compression && bitdepth == 16 && bpc == 16) { + out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0); + ri->bits_per_channel = 16; + } else + out = (stbi_uc *) stbi__malloc(4 * w*h); + + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + pixelCount = w*h; + + // Initialize the data to zero. + //memset( out, 0, pixelCount * 4 ); + + // Finally, the image data. + if (compression) { + // RLE as used by .PSD and .TIFF + // Loop until you get the number of unpacked bytes you are expecting: + // Read the next source byte into n. + // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. + // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. + // Else if n is 128, noop. + // Endloop + + // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, + // which we're going to just skip. + stbi__skip(s, h * channelCount * 2 ); + + // Read the RLE data by channel. + for (channel = 0; channel < 4; channel++) { + stbi_uc *p; + + p = out+channel; + if (channel >= channelCount) { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++, p += 4) + *p = (channel == 3 ? 255 : 0); + } else { + // Read the RLE data. + if (!stbi__psd_decode_rle(s, p, pixelCount)) { + STBI_FREE(out); + return stbi__errpuc("corrupt", "bad RLE data"); + } + } + } + + } else { + // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) + // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. + + // Read the data by channel. + for (channel = 0; channel < 4; channel++) { + if (channel >= channelCount) { + // Fill this channel with default data. + if (bitdepth == 16 && bpc == 16) { + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + stbi__uint16 val = channel == 3 ? 65535 : 0; + for (i = 0; i < pixelCount; i++, q += 4) + *q = val; + } else { + stbi_uc *p = out+channel; + stbi_uc val = channel == 3 ? 255 : 0; + for (i = 0; i < pixelCount; i++, p += 4) + *p = val; + } + } else { + if (ri->bits_per_channel == 16) { // output bpc + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + for (i = 0; i < pixelCount; i++, q += 4) + *q = (stbi__uint16) stbi__get16be(s); + } else { + stbi_uc *p = out+channel; + if (bitdepth == 16) { // input bpc + for (i = 0; i < pixelCount; i++, p += 4) + *p = (stbi_uc) (stbi__get16be(s) >> 8); + } else { + for (i = 0; i < pixelCount; i++, p += 4) + *p = stbi__get8(s); + } + } + } + } + } + + // remove weird white matte from PSD + if (channelCount >= 4) { + if (ri->bits_per_channel == 16) { + for (i=0; i < w*h; ++i) { + stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i; + if (pixel[3] != 0 && pixel[3] != 65535) { + float a = pixel[3] / 65535.0f; + float ra = 1.0f / a; + float inv_a = 65535.0f * (1 - ra); + pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a); + pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a); + pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a); + } + } + } else { + for (i=0; i < w*h; ++i) { + unsigned char *pixel = out + 4*i; + if (pixel[3] != 0 && pixel[3] != 255) { + float a = pixel[3] / 255.0f; + float ra = 1.0f / a; + float inv_a = 255.0f * (1 - ra); + pixel[0] = (unsigned char) (pixel[0]*ra + inv_a); + pixel[1] = (unsigned char) (pixel[1]*ra + inv_a); + pixel[2] = (unsigned char) (pixel[2]*ra + inv_a); + } + } + } + } + + // convert to desired output format + if (req_comp && req_comp != 4) { + if (ri->bits_per_channel == 16) + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h); + else + out = stbi__convert_format(out, 4, req_comp, w, h); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + if (comp) *comp = 4; + *y = h; + *x = w; + + return out; +} +#endif + +// ************************************************************************************************* +// Softimage PIC loader +// by Tom Seddon +// +// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format +// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ + +#ifndef STBI_NO_PIC +static int stbi__pic_is4(stbi__context *s,const char *str) +{ + int i; + for (i=0; i<4; ++i) + if (stbi__get8(s) != (stbi_uc)str[i]) + return 0; + + return 1; +} + +static int stbi__pic_test_core(stbi__context *s) +{ + int i; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) + return 0; + + for(i=0;i<84;++i) + stbi__get8(s); + + if (!stbi__pic_is4(s,"PICT")) + return 0; + + return 1; +} + +typedef struct +{ + stbi_uc size,type,channel; +} stbi__pic_packet; + +static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) +{ + int mask=0x80, i; + + for (i=0; i<4; ++i, mask>>=1) { + if (channel & mask) { + if (stbi__at_eof(s)) return stbi__errpuc("bad file","PIC file too short"); + dest[i]=stbi__get8(s); + } + } + + return dest; +} + +static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src) +{ + int mask=0x80,i; + + for (i=0;i<4; ++i, mask>>=1) + if (channel&mask) + dest[i]=src[i]; +} + +static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result) +{ + int act_comp=0,num_packets=0,y,chained; + stbi__pic_packet packets[10]; + + // this will (should...) cater for even some bizarre stuff like having data + // for the same channel in multiple packets. + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return stbi__errpuc("bad format","too many packets"); + + packet = &packets[num_packets++]; + + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + + act_comp |= packet->channel; + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (reading packets)"); + if (packet->size != 8) return stbi__errpuc("bad format","packet isn't 8bpp"); + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? + + for(y=0; ytype) { + default: + return stbi__errpuc("bad format","packet has bad compression type"); + + case 0: {//uncompressed + int x; + + for(x=0;xchannel,dest)) + return 0; + break; + } + + case 1://Pure RLE + { + int left=width, i; + + while (left>0) { + stbi_uc count,value[4]; + + count=stbi__get8(s); + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pure read count)"); + + if (count > left) + count = (stbi_uc) left; + + if (!stbi__readval(s,packet->channel,value)) return 0; + + for(i=0; ichannel,dest,value); + left -= count; + } + } + break; + + case 2: {//Mixed RLE + int left=width; + while (left>0) { + int count = stbi__get8(s), i; + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (mixed read count)"); + + if (count >= 128) { // Repeated + stbi_uc value[4]; + + if (count==128) + count = stbi__get16be(s); + else + count -= 127; + if (count > left) + return stbi__errpuc("bad file","scanline overrun"); + + if (!stbi__readval(s,packet->channel,value)) + return 0; + + for(i=0;ichannel,dest,value); + } else { // Raw + ++count; + if (count>left) return stbi__errpuc("bad file","scanline overrun"); + + for(i=0;ichannel,dest)) + return 0; + } + left-=count; + } + break; + } + } + } + } + + return result; +} + +static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri) +{ + stbi_uc *result; + int i, x,y, internal_comp; + STBI_NOTUSED(ri); + + if (!comp) comp = &internal_comp; + + for (i=0; i<92; ++i) + stbi__get8(s); + + x = stbi__get16be(s); + y = stbi__get16be(s); + + if (y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pic header)"); + if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc("too large", "PIC image too large to decode"); + + stbi__get32be(s); //skip `ratio' + stbi__get16be(s); //skip `fields' + stbi__get16be(s); //skip `pad' + + // intermediate buffer is RGBA + result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0); + if (!result) return stbi__errpuc("outofmem", "Out of memory"); + memset(result, 0xff, x*y*4); + + if (!stbi__pic_load_core(s,x,y,comp, result)) { + STBI_FREE(result); + result=0; + } + *px = x; + *py = y; + if (req_comp == 0) req_comp = *comp; + result=stbi__convert_format(result,4,req_comp,x,y); + + return result; +} + +static int stbi__pic_test(stbi__context *s) +{ + int r = stbi__pic_test_core(s); + stbi__rewind(s); + return r; +} +#endif + +// ************************************************************************************************* +// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb + +#ifndef STBI_NO_GIF +typedef struct +{ + stbi__int16 prefix; + stbi_uc first; + stbi_uc suffix; +} stbi__gif_lzw; + +typedef struct +{ + int w,h; + stbi_uc *out; // output buffer (always 4 components) + stbi_uc *background; // The current "background" as far as a gif is concerned + stbi_uc *history; + int flags, bgindex, ratio, transparent, eflags; + stbi_uc pal[256][4]; + stbi_uc lpal[256][4]; + stbi__gif_lzw codes[8192]; + stbi_uc *color_table; + int parse, step; + int lflags; + int start_x, start_y; + int max_x, max_y; + int cur_x, cur_y; + int line_size; + int delay; +} stbi__gif; + +static int stbi__gif_test_raw(stbi__context *s) +{ + int sz; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0; + sz = stbi__get8(s); + if (sz != '9' && sz != '7') return 0; + if (stbi__get8(s) != 'a') return 0; + return 1; +} + +static int stbi__gif_test(stbi__context *s) +{ + int r = stbi__gif_test_raw(s); + stbi__rewind(s); + return r; +} + +static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) +{ + int i; + for (i=0; i < num_entries; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + pal[i][3] = transp == i ? 0 : 255; + } +} + +static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) +{ + stbi_uc version; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') + return stbi__err("not GIF", "Corrupt GIF"); + + version = stbi__get8(s); + if (version != '7' && version != '9') return stbi__err("not GIF", "Corrupt GIF"); + if (stbi__get8(s) != 'a') return stbi__err("not GIF", "Corrupt GIF"); + + stbi__g_failure_reason = ""; + g->w = stbi__get16le(s); + g->h = stbi__get16le(s); + g->flags = stbi__get8(s); + g->bgindex = stbi__get8(s); + g->ratio = stbi__get8(s); + g->transparent = -1; + + if (g->w > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (g->h > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + + if (comp != 0) *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments + + if (is_info) return 1; + + if (g->flags & 0x80) + stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1); + + return 1; +} + +static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif)); + if (!g) return stbi__err("outofmem", "Out of memory"); + if (!stbi__gif_header(s, g, comp, 1)) { + STBI_FREE(g); + stbi__rewind( s ); + return 0; + } + if (x) *x = g->w; + if (y) *y = g->h; + STBI_FREE(g); + return 1; +} + +static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) +{ + stbi_uc *p, *c; + int idx; + + // recurse to decode the prefixes, since the linked-list is backwards, + // and working backwards through an interleaved image would be nasty + if (g->codes[code].prefix >= 0) + stbi__out_gif_code(g, g->codes[code].prefix); + + if (g->cur_y >= g->max_y) return; + + idx = g->cur_x + g->cur_y; + p = &g->out[idx]; + g->history[idx / 4] = 1; + + c = &g->color_table[g->codes[code].suffix * 4]; + if (c[3] > 128) { // don't render transparent pixels; + p[0] = c[2]; + p[1] = c[1]; + p[2] = c[0]; + p[3] = c[3]; + } + g->cur_x += 4; + + if (g->cur_x >= g->max_x) { + g->cur_x = g->start_x; + g->cur_y += g->step; + + while (g->cur_y >= g->max_y && g->parse > 0) { + g->step = (1 << g->parse) * g->line_size; + g->cur_y = g->start_y + (g->step >> 1); + --g->parse; + } + } +} + +static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) +{ + stbi_uc lzw_cs; + stbi__int32 len, init_code; + stbi__uint32 first; + stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; + stbi__gif_lzw *p; + + lzw_cs = stbi__get8(s); + if (lzw_cs > 12) return NULL; + clear = 1 << lzw_cs; + first = 1; + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + bits = 0; + valid_bits = 0; + for (init_code = 0; init_code < clear; init_code++) { + g->codes[init_code].prefix = -1; + g->codes[init_code].first = (stbi_uc) init_code; + g->codes[init_code].suffix = (stbi_uc) init_code; + } + + // support no starting clear code + avail = clear+2; + oldcode = -1; + + len = 0; + for(;;) { + if (valid_bits < codesize) { + if (len == 0) { + len = stbi__get8(s); // start new block + if (len == 0) + return g->out; + } + --len; + bits |= (stbi__int32) stbi__get8(s) << valid_bits; + valid_bits += 8; + } else { + stbi__int32 code = bits & codemask; + bits >>= codesize; + valid_bits -= codesize; + // @OPTIMIZE: is there some way we can accelerate the non-clear path? + if (code == clear) { // clear code + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + avail = clear + 2; + oldcode = -1; + first = 0; + } else if (code == clear + 1) { // end of stream code + stbi__skip(s, len); + while ((len = stbi__get8(s)) > 0) + stbi__skip(s,len); + return g->out; + } else if (code <= avail) { + if (first) { + return stbi__errpuc("no clear code", "Corrupt GIF"); + } + + if (oldcode >= 0) { + p = &g->codes[avail++]; + if (avail > 8192) { + return stbi__errpuc("too many codes", "Corrupt GIF"); + } + + p->prefix = (stbi__int16) oldcode; + p->first = g->codes[oldcode].first; + p->suffix = (code == avail) ? p->first : g->codes[code].first; + } else if (code == avail) + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + + stbi__out_gif_code(g, (stbi__uint16) code); + + if ((avail & codemask) == 0 && avail <= 0x0FFF) { + codesize++; + codemask = (1 << codesize) - 1; + } + + oldcode = code; + } else { + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + } + } + } +} + +// this function is designed to support animated gifs, although stb_image doesn't support it +// two back is the image from two frames ago, used for a very specific disposal format +static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) +{ + int dispose; + int first_frame; + int pi; + int pcount; + STBI_NOTUSED(req_comp); + + // on first frame, any non-written pixels get the background colour (non-transparent) + first_frame = 0; + if (g->out == 0) { + if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header + if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) + return stbi__errpuc("too large", "GIF image is too large"); + pcount = g->w * g->h; + g->out = (stbi_uc *) stbi__malloc(4 * pcount); + g->background = (stbi_uc *) stbi__malloc(4 * pcount); + g->history = (stbi_uc *) stbi__malloc(pcount); + if (!g->out || !g->background || !g->history) + return stbi__errpuc("outofmem", "Out of memory"); + + // image is treated as "transparent" at the start - ie, nothing overwrites the current background; + // background colour is only used for pixels that are not rendered first frame, after that "background" + // color refers to the color that was there the previous frame. + memset(g->out, 0x00, 4 * pcount); + memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent) + memset(g->history, 0x00, pcount); // pixels that were affected previous frame + first_frame = 1; + } else { + // second frame - how do we dispose of the previous one? + dispose = (g->eflags & 0x1C) >> 2; + pcount = g->w * g->h; + + if ((dispose == 3) && (two_back == 0)) { + dispose = 2; // if I don't have an image to revert back to, default to the old background + } + + if (dispose == 3) { // use previous graphic + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 ); + } + } + } else if (dispose == 2) { + // restore what was changed last frame to background before that frame; + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 ); + } + } + } else { + // This is a non-disposal case eithe way, so just + // leave the pixels as is, and they will become the new background + // 1: do not dispose + // 0: not specified. + } + + // background is what out is after the undoing of the previou frame; + memcpy( g->background, g->out, 4 * g->w * g->h ); + } + + // clear my history; + memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame + + for (;;) { + int tag = stbi__get8(s); + switch (tag) { + case 0x2C: /* Image Descriptor */ + { + stbi__int32 x, y, w, h; + stbi_uc *o; + + x = stbi__get16le(s); + y = stbi__get16le(s); + w = stbi__get16le(s); + h = stbi__get16le(s); + if (((x + w) > (g->w)) || ((y + h) > (g->h))) + return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); + + g->line_size = g->w * 4; + g->start_x = x * 4; + g->start_y = y * g->line_size; + g->max_x = g->start_x + w * 4; + g->max_y = g->start_y + h * g->line_size; + g->cur_x = g->start_x; + g->cur_y = g->start_y; + + // if the width of the specified rectangle is 0, that means + // we may not see *any* pixels or the image is malformed; + // to make sure this is caught, move the current y down to + // max_y (which is what out_gif_code checks). + if (w == 0) + g->cur_y = g->max_y; + + g->lflags = stbi__get8(s); + + if (g->lflags & 0x40) { + g->step = 8 * g->line_size; // first interlaced spacing + g->parse = 3; + } else { + g->step = g->line_size; + g->parse = 0; + } + + if (g->lflags & 0x80) { + stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); + g->color_table = (stbi_uc *) g->lpal; + } else if (g->flags & 0x80) { + g->color_table = (stbi_uc *) g->pal; + } else + return stbi__errpuc("missing color table", "Corrupt GIF"); + + o = stbi__process_gif_raster(s, g); + if (!o) return NULL; + + // if this was the first frame, + pcount = g->w * g->h; + if (first_frame && (g->bgindex > 0)) { + // if first frame, any pixel not drawn to gets the background color + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi] == 0) { + g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; + memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 ); + } + } + } + + return o; + } + + case 0x21: // Comment Extension. + { + int len; + int ext = stbi__get8(s); + if (ext == 0xF9) { // Graphic Control Extension. + len = stbi__get8(s); + if (len == 4) { + g->eflags = stbi__get8(s); + g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. + + // unset old transparent + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 255; + } + if (g->eflags & 0x01) { + g->transparent = stbi__get8(s); + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 0; + } + } else { + // don't need transparent + stbi__skip(s, 1); + g->transparent = -1; + } + } else { + stbi__skip(s, len); + break; + } + } + while ((len = stbi__get8(s)) != 0) { + stbi__skip(s, len); + } + break; + } + + case 0x3B: // gif stream termination code + return (stbi_uc *) s; // using '1' causes warning on some compilers + + default: + return stbi__errpuc("unknown code", "Corrupt GIF"); + } + } +} + +static void *stbi__load_gif_main_outofmem(stbi__gif *g, stbi_uc *out, int **delays) +{ + STBI_FREE(g->out); + STBI_FREE(g->history); + STBI_FREE(g->background); + + if (out) STBI_FREE(out); + if (delays && *delays) STBI_FREE(*delays); + return stbi__errpuc("outofmem", "Out of memory"); +} + +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + if (stbi__gif_test(s)) { + int layers = 0; + stbi_uc *u = 0; + stbi_uc *out = 0; + stbi_uc *two_back = 0; + stbi__gif g; + int stride; + int out_size = 0; + int delays_size = 0; + + STBI_NOTUSED(out_size); + STBI_NOTUSED(delays_size); + + memset(&g, 0, sizeof(g)); + if (delays) { + *delays = 0; + } + + do { + u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + + if (u) { + *x = g.w; + *y = g.h; + ++layers; + stride = g.w * g.h * 4; + + if (out) { + void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride ); + if (!tmp) + return stbi__load_gif_main_outofmem(&g, out, delays); + else { + out = (stbi_uc*) tmp; + out_size = layers * stride; + } + + if (delays) { + int *new_delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers ); + if (!new_delays) + return stbi__load_gif_main_outofmem(&g, out, delays); + *delays = new_delays; + delays_size = layers * sizeof(int); + } + } else { + out = (stbi_uc*)stbi__malloc( layers * stride ); + if (!out) + return stbi__load_gif_main_outofmem(&g, out, delays); + out_size = layers * stride; + if (delays) { + *delays = (int*) stbi__malloc( layers * sizeof(int) ); + if (!*delays) + return stbi__load_gif_main_outofmem(&g, out, delays); + delays_size = layers * sizeof(int); + } + } + memcpy( out + ((layers - 1) * stride), u, stride ); + if (layers >= 2) { + two_back = out - 2 * stride; + } + + if (delays) { + (*delays)[layers - 1U] = g.delay; + } + } + } while (u != 0); + + // free temp buffer; + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + + // do the final conversion after loading everything; + if (req_comp && req_comp != 4) + out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); + + *z = layers; + return out; + } else { + return stbi__errpuc("not GIF", "Image was not as a gif type."); + } +} + +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *u = 0; + stbi__gif g; + memset(&g, 0, sizeof(g)); + STBI_NOTUSED(ri); + + u = stbi__gif_load_next(s, &g, comp, req_comp, 0); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + if (u) { + *x = g.w; + *y = g.h; + + // moved conversion to after successful load so that the same + // can be done for multiple frames. + if (req_comp && req_comp != 4) + u = stbi__convert_format(u, 4, req_comp, g.w, g.h); + } else if (g.out) { + // if there was an error and we allocated an image buffer, free it! + STBI_FREE(g.out); + } + + // free buffers needed for multiple frame loading; + STBI_FREE(g.history); + STBI_FREE(g.background); + + return u; +} + +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) +{ + return stbi__gif_info_raw(s,x,y,comp); +} +#endif + +// ************************************************************************************************* +// Radiance RGBE HDR loader +// originally by Nicolas Schulz +#ifndef STBI_NO_HDR +static int stbi__hdr_test_core(stbi__context *s, const char *signature) +{ + int i; + for (i=0; signature[i]; ++i) + if (stbi__get8(s) != signature[i]) + return 0; + stbi__rewind(s); + return 1; +} + +static int stbi__hdr_test(stbi__context* s) +{ + int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); + stbi__rewind(s); + if(!r) { + r = stbi__hdr_test_core(s, "#?RGBE\n"); + stbi__rewind(s); + } + return r; +} + +#define STBI__HDR_BUFLEN 1024 +static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) +{ + int len=0; + char c = '\0'; + + c = (char) stbi__get8(z); + + while (!stbi__at_eof(z) && c != '\n') { + buffer[len++] = c; + if (len == STBI__HDR_BUFLEN-1) { + // flush to end of line + while (!stbi__at_eof(z) && stbi__get8(z) != '\n') + ; + break; + } + c = (char) stbi__get8(z); + } + + buffer[len] = 0; + return buffer; +} + +static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) +{ + if ( input[3] != 0 ) { + float f1; + // Exponent + f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); + if (req_comp <= 2) + output[0] = (input[0] + input[1] + input[2]) * f1 / 3; + else { + output[0] = input[0] * f1; + output[1] = input[1] * f1; + output[2] = input[2] * f1; + } + if (req_comp == 2) output[1] = 1; + if (req_comp == 4) output[3] = 1; + } else { + switch (req_comp) { + case 4: output[3] = 1; /* fallthrough */ + case 3: output[0] = output[1] = output[2] = 0; + break; + case 2: output[1] = 1; /* fallthrough */ + case 1: output[0] = 0; + break; + } + } +} + +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int width, height; + stbi_uc *scanline; + float *hdr_data; + int len; + unsigned char count, value; + int i, j, k, c1,c2, z; + const char *headerToken; + STBI_NOTUSED(ri); + + // Check identifier + headerToken = stbi__hdr_gettoken(s,buffer); + if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) + return stbi__errpf("not HDR", "Corrupt HDR image"); + + // Parse header + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) return stbi__errpf("unsupported format", "Unsupported HDR format"); + + // Parse width and height + // can't use sscanf() if we're not using stdio! + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + height = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + width = (int) strtol(token, NULL, 10); + + if (height > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + if (width > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + + *x = width; + *y = height; + + if (comp) *comp = 3; + if (req_comp == 0) req_comp = 3; + + if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) + return stbi__errpf("too large", "HDR image is too large"); + + // Read data + hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); + if (!hdr_data) + return stbi__errpf("outofmem", "Out of memory"); + + // Load image data + // image data is stored as some number of sca + if ( width < 8 || width >= 32768) { + // Read flat data + for (j=0; j < height; ++j) { + for (i=0; i < width; ++i) { + stbi_uc rgbe[4]; + main_decode_loop: + stbi__getn(s, rgbe, 4); + stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); + } + } + } else { + // Read RLE-encoded data + scanline = NULL; + + for (j = 0; j < height; ++j) { + c1 = stbi__get8(s); + c2 = stbi__get8(s); + len = stbi__get8(s); + if (c1 != 2 || c2 != 2 || (len & 0x80)) { + // not run-length encoded, so we have to actually use THIS data as a decoded + // pixel (note this can't be a valid pixel--one of RGB must be >= 128) + stbi_uc rgbe[4]; + rgbe[0] = (stbi_uc) c1; + rgbe[1] = (stbi_uc) c2; + rgbe[2] = (stbi_uc) len; + rgbe[3] = (stbi_uc) stbi__get8(s); + stbi__hdr_convert(hdr_data, rgbe, req_comp); + i = 1; + j = 0; + STBI_FREE(scanline); + goto main_decode_loop; // yes, this makes no sense + } + len <<= 8; + len |= stbi__get8(s); + if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); } + if (scanline == NULL) { + scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0); + if (!scanline) { + STBI_FREE(hdr_data); + return stbi__errpf("outofmem", "Out of memory"); + } + } + + for (k = 0; k < 4; ++k) { + int nleft; + i = 0; + while ((nleft = width - i) > 0) { + count = stbi__get8(s); + if (count > 128) { + // Run + value = stbi__get8(s); + count -= 128; + if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = value; + } else { + // Dump + if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = stbi__get8(s); + } + } + } + for (i=0; i < width; ++i) + stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); + } + if (scanline) + STBI_FREE(scanline); + } + + return hdr_data; +} + +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int dummy; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (stbi__hdr_test(s) == 0) { + stbi__rewind( s ); + return 0; + } + + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) { + stbi__rewind( s ); + return 0; + } + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *y = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *x = (int) strtol(token, NULL, 10); + *comp = 3; + return 1; +} +#endif // STBI_NO_HDR + +#ifndef STBI_NO_BMP +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) +{ + void *p; + stbi__bmp_data info; + + info.all_a = 255; + p = stbi__bmp_parse_header(s, &info); + if (p == NULL) { + stbi__rewind( s ); + return 0; + } + if (x) *x = s->img_x; + if (y) *y = s->img_y; + if (comp) { + if (info.bpp == 24 && info.ma == 0xff000000) + *comp = 3; + else + *comp = info.ma ? 4 : 3; + } + return 1; +} +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) +{ + int channelCount, dummy, depth; + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + *y = stbi__get32be(s); + *x = stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 8 && depth != 16) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 3) { + stbi__rewind( s ); + return 0; + } + *comp = 4; + return 1; +} + +static int stbi__psd_is16(stbi__context *s) +{ + int channelCount, depth; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + STBI_NOTUSED(stbi__get32be(s)); + STBI_NOTUSED(stbi__get32be(s)); + depth = stbi__get16be(s); + if (depth != 16) { + stbi__rewind( s ); + return 0; + } + return 1; +} +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) +{ + int act_comp=0,num_packets=0,chained,dummy; + stbi__pic_packet packets[10]; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) { + stbi__rewind(s); + return 0; + } + + stbi__skip(s, 88); + + *x = stbi__get16be(s); + *y = stbi__get16be(s); + if (stbi__at_eof(s)) { + stbi__rewind( s); + return 0; + } + if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) { + stbi__rewind( s ); + return 0; + } + + stbi__skip(s, 8); + + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return 0; + + packet = &packets[num_packets++]; + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + act_comp |= packet->channel; + + if (stbi__at_eof(s)) { + stbi__rewind( s ); + return 0; + } + if (packet->size != 8) { + stbi__rewind( s ); + return 0; + } + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); + + return 1; +} +#endif + +// ************************************************************************************************* +// Portable Gray Map and Portable Pixel Map loader +// by Ken Miller +// +// PGM: http://netpbm.sourceforge.net/doc/pgm.html +// PPM: http://netpbm.sourceforge.net/doc/ppm.html +// +// Known limitations: +// Does not support comments in the header section +// Does not support ASCII image data (formats P2 and P3) + +#ifndef STBI_NO_PNM + +static int stbi__pnm_test(stbi__context *s) +{ + char p, t; + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind( s ); + return 0; + } + return 1; +} + +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + STBI_NOTUSED(ri); + + ri->bits_per_channel = stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n); + if (ri->bits_per_channel == 0) + return 0; + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + + if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0)) + return stbi__errpuc("too large", "PNM too large"); + + out = (stbi_uc *) stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + if (!stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8))) { + STBI_FREE(out); + return stbi__errpuc("bad PNM", "PNM file truncated"); + } + + if (req_comp && req_comp != s->img_n) { + if (ri->bits_per_channel == 16) { + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, s->img_n, req_comp, s->img_x, s->img_y); + } else { + out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); + } + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + return out; +} + +static int stbi__pnm_isspace(char c) +{ + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; +} + +static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) +{ + for (;;) { + while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) + *c = (char) stbi__get8(s); + + if (stbi__at_eof(s) || *c != '#') + break; + + while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' ) + *c = (char) stbi__get8(s); + } +} + +static int stbi__pnm_isdigit(char c) +{ + return c >= '0' && c <= '9'; +} + +static int stbi__pnm_getinteger(stbi__context *s, char *c) +{ + int value = 0; + + while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { + value = value*10 + (*c - '0'); + *c = (char) stbi__get8(s); + if((value > 214748364) || (value == 214748364 && *c > '7')) + return stbi__err("integer parse overflow", "Parsing an integer in the PPM header overflowed a 32-bit int"); + } + + return value; +} + +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) +{ + int maxv, dummy; + char c, p, t; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + stbi__rewind(s); + + // Get identifier + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind(s); + return 0; + } + + *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm + + c = (char) stbi__get8(s); + stbi__pnm_skip_whitespace(s, &c); + + *x = stbi__pnm_getinteger(s, &c); // read width + if(*x == 0) + return stbi__err("invalid width", "PPM image header had zero or overflowing width"); + stbi__pnm_skip_whitespace(s, &c); + + *y = stbi__pnm_getinteger(s, &c); // read height + if (*y == 0) + return stbi__err("invalid width", "PPM image header had zero or overflowing width"); + stbi__pnm_skip_whitespace(s, &c); + + maxv = stbi__pnm_getinteger(s, &c); // read max value + if (maxv > 65535) + return stbi__err("max value > 65535", "PPM image supports only 8-bit and 16-bit images"); + else if (maxv > 255) + return 16; + else + return 8; +} + +static int stbi__pnm_is16(stbi__context *s) +{ + if (stbi__pnm_info(s, NULL, NULL, NULL) == 16) + return 1; + return 0; +} +#endif + +static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) +{ + #ifndef STBI_NO_JPEG + if (stbi__jpeg_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNG + if (stbi__png_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_GIF + if (stbi__gif_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_BMP + if (stbi__bmp_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PIC + if (stbi__pic_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_info(s, x, y, comp)) return 1; + #endif + + // test tga last because it's a crappy test! + #ifndef STBI_NO_TGA + if (stbi__tga_info(s, x, y, comp)) + return 1; + #endif + return stbi__err("unknown image type", "Image not of any known type, or corrupt"); +} + +static int stbi__is_16_main(stbi__context *s) +{ + #ifndef STBI_NO_PNG + if (stbi__png_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_is16(s)) return 1; + #endif + return 0; +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_info_from_file(f, x, y, comp); + fclose(f); + return result; +} + +STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__info_main(&s,x,y,comp); + fseek(f,pos,SEEK_SET); + return r; +} + +STBIDEF int stbi_is_16_bit(char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_is_16_bit_from_file(f); + fclose(f); + return result; +} + +STBIDEF int stbi_is_16_bit_from_file(FILE *f) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__is_16_main(&s); + fseek(f,pos,SEEK_SET); + return r; +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__is_16_main(&s); +} + +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__is_16_main(&s); +} + +#endif // STB_IMAGE_IMPLEMENTATION + +/* + revision history: + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug + 1-bit BMP + *_is_16_bit api + avoid warnings + 2.16 (2017-07-23) all functions have 16-bit variants; + STBI_NO_STDIO works again; + compilation fixes; + fix rounding in unpremultiply; + optimize vertical flip; + disable raw_len validation; + documentation fixes + 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; + warning fixes; disable run-time SSE detection on gcc; + uniform handling of optional "return" values; + thread-safe initialization of zlib tables + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) allocate large structures on the stack + remove white matting for transparent PSD + fix reported channel count for PNG & BMP + re-enable SSE2 in non-gcc 64-bit + support RGB-formatted JPEG + read 16-bit PNGs (only as 8-bit) + 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED + 2.09 (2016-01-16) allow comments in PNM files + 16-bit-per-pixel TGA (not bit-per-component) + info() for TGA could break due to .hdr handling + info() for BMP to shares code instead of sloppy parse + can use STBI_REALLOC_SIZED if allocator doesn't support realloc + code cleanup + 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA + 2.07 (2015-09-13) fix compiler warnings + partial animated GIF support + limited 16-bpc PSD support + #ifdef unused functions + bug with < 92 byte PIC,PNM,HDR,TGA + 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value + 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning + 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit + 2.03 (2015-04-12) extra corruption checking (mmozeiko) + stbi_set_flip_vertically_on_load (nguillemot) + fix NEON support; fix mingw support + 2.02 (2015-01-19) fix incorrect assert, fix warning + 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 + 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG + 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) + progressive JPEG (stb) + PGM/PPM support (Ken Miller) + STBI_MALLOC,STBI_REALLOC,STBI_FREE + GIF bugfix -- seemingly never worked + STBI_NO_*, STBI_ONLY_* + 1.48 (2014-12-14) fix incorrectly-named assert() + 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) + optimize PNG (ryg) + fix bug in interlaced PNG with user-specified channel count (stb) + 1.46 (2014-08-26) + fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG + 1.45 (2014-08-16) + fix MSVC-ARM internal compiler error by wrapping malloc + 1.44 (2014-08-07) + various warning fixes from Ronny Chevalier + 1.43 (2014-07-15) + fix MSVC-only compiler problem in code changed in 1.42 + 1.42 (2014-07-09) + don't define _CRT_SECURE_NO_WARNINGS (affects user code) + fixes to stbi__cleanup_jpeg path + added STBI_ASSERT to avoid requiring assert.h + 1.41 (2014-06-25) + fix search&replace from 1.36 that messed up comments/error messages + 1.40 (2014-06-22) + fix gcc struct-initialization warning + 1.39 (2014-06-15) + fix to TGA optimization when req_comp != number of components in TGA; + fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) + add support for BMP version 5 (more ignored fields) + 1.38 (2014-06-06) + suppress MSVC warnings on integer casts truncating values + fix accidental rename of 'skip' field of I/O + 1.37 (2014-06-04) + remove duplicate typedef + 1.36 (2014-06-03) + convert to header file single-file library + if de-iphone isn't set, load iphone images color-swapped instead of returning NULL + 1.35 (2014-05-27) + various warnings + fix broken STBI_SIMD path + fix bug where stbi_load_from_file no longer left file pointer in correct place + fix broken non-easy path for 32-bit BMP (possibly never used) + TGA optimization by Arseny Kapoulkine + 1.34 (unknown) + use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case + 1.33 (2011-07-14) + make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements + 1.32 (2011-07-13) + support for "info" function for all supported filetypes (SpartanJ) + 1.31 (2011-06-20) + a few more leak fixes, bug in PNG handling (SpartanJ) + 1.30 (2011-06-11) + added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) + removed deprecated format-specific test/load functions + removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway + error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) + fix inefficiency in decoding 32-bit BMP (David Woo) + 1.29 (2010-08-16) + various warning fixes from Aurelien Pocheville + 1.28 (2010-08-01) + fix bug in GIF palette transparency (SpartanJ) + 1.27 (2010-08-01) + cast-to-stbi_uc to fix warnings + 1.26 (2010-07-24) + fix bug in file buffering for PNG reported by SpartanJ + 1.25 (2010-07-17) + refix trans_data warning (Won Chun) + 1.24 (2010-07-12) + perf improvements reading from files on platforms with lock-heavy fgetc() + minor perf improvements for jpeg + deprecated type-specific functions so we'll get feedback if they're needed + attempt to fix trans_data warning (Won Chun) + 1.23 fixed bug in iPhone support + 1.22 (2010-07-10) + removed image *writing* support + stbi_info support from Jetro Lauha + GIF support from Jean-Marc Lienher + iPhone PNG-extensions from James Brown + warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) + 1.21 fix use of 'stbi_uc' in header (reported by jon blow) + 1.20 added support for Softimage PIC, by Tom Seddon + 1.19 bug in interlaced PNG corruption check (found by ryg) + 1.18 (2008-08-02) + fix a threading bug (local mutable static) + 1.17 support interlaced PNG + 1.16 major bugfix - stbi__convert_format converted one too many pixels + 1.15 initialize some fields for thread safety + 1.14 fix threadsafe conversion bug + header-file-only version (#define STBI_HEADER_FILE_ONLY before including) + 1.13 threadsafe + 1.12 const qualifiers in the API + 1.11 Support installable IDCT, colorspace conversion routines + 1.10 Fixes for 64-bit (don't use "unsigned long") + optimized upsampling by Fabian "ryg" Giesen + 1.09 Fix format-conversion for PSD code (bad global variables!) + 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz + 1.07 attempt to fix C++ warning/errors again + 1.06 attempt to fix C++ warning/errors again + 1.05 fix TGA loading to return correct *comp and use good luminance calc + 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free + 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR + 1.02 support for (subset of) HDR files, float interface for preferred access to them + 1.01 fix bug: possible bug in handling right-side up bmps... not sure + fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all + 1.00 interface to zlib that skips zlib header + 0.99 correct handling of alpha in palette + 0.98 TGA loader by lonesock; dynamically add loaders (untested) + 0.97 jpeg errors on too large a file; also catch another malloc failure + 0.96 fix detection of invalid v value - particleman@mollyrocket forum + 0.95 during header scan, seek to markers in case of padding + 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same + 0.93 handle jpegtran output; verbose errors + 0.92 read 4,8,16,24,32-bit BMP files of several formats + 0.91 output 24-bit Windows 3.0 BMP files + 0.90 fix a few more warnings; bump version number to approach 1.0 + 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd + 0.60 fix compiling as c++ + 0.59 fix warnings: merge Dave Moore's -Wall fixes + 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian + 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available + 0.56 fix bug: zlib uncompressed mode len vs. nlen + 0.55 fix bug: restart_interval not initialized to 0 + 0.54 allow NULL for 'int *comp' + 0.53 fix bug in png 3->4; speedup png decoding + 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments + 0.51 obey req_comp requests, 1-component jpegs return as 1-component, + on 'test' only check type, not whether we support this variant + 0.50 (2006-11-19) + first released version +*/ + + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------------ +*/ \ No newline at end of file diff --git a/app/src/main/cpp/native_renderer.cpp b/app/src/main/cpp/native_renderer.cpp index 525b7aed..46aa0d5b 100644 --- a/app/src/main/cpp/native_renderer.cpp +++ b/app/src/main/cpp/native_renderer.cpp @@ -1,82 +1,697 @@ -#include -#include #include +#include #include +#include +#include +#include +#include +#include +#include +#include + +extern "C" { +#include +#include +#include +} + +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" + #define LOG_TAG "NativeRenderer" #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) static ANativeWindow* window = nullptr; -extern "C" JNIEXPORT void JNICALL +// 비디오 변수 +static AVFormatContext* fmt_ctx = nullptr; +static AVCodecContext* codec_ctx = nullptr; +static AVFrame* frame = nullptr; +static AVPacket* pkt = nullptr; +static SwsContext* sws_ctx = nullptr; +static int video_stream_idx = -1; +static int videoWidth = 0; +static int videoHeight = 0; +static std::vector rgbBuffer; + +// 이미지 변수 +static uint8_t* imageData = nullptr; +static int imageWidth = 0; +static int imageHeight = 0; +static int imageChannels = 0; +static bool isImage = false; + +// 다음 미디어 변수 +static AVFormatContext* next_fmt_ctx = nullptr; +static AVCodecContext* next_codec_ctx = nullptr; +static AVFrame* next_frame = nullptr; +static AVPacket* next_pkt = nullptr; +static SwsContext* next_sws_ctx = nullptr; +static int next_video_stream_idx = -1; +static int next_videoWidth = 0; +static int next_videoHeight = 0; +static std::vector next_rgbBuffer; + +static uint8_t* next_imageData = nullptr; +static int next_imageWidth = 0; +static int next_imageHeight = 0; +static int next_imageChannels = 0; +static bool nextIsImage = false; + +static bool nextMediaReady = false; + +static std::mutex renderMutex; + +static constexpr float frameDurationMs = 16.0f; +static constexpr long long displayDurationMs = 20000; +static constexpr long long fadeDurationMs = 3000; + +static std::vector mediaPaths; +static int currentMediaIndex = 0; +static int nextMediaIndex = 1; + +// 애니메이션 변수 +static float offsetX = 0.f; +static float offsetY = 0.f; +static bool movingForwardLocX = true; +static bool movingDownLocY = true; + +// 페이드 및 미디어 전환 시간 상태 +static std::chrono::steady_clock::time_point mediaStartTime; +static std::chrono::steady_clock::time_point fadeStartTime; +static bool isFading = false; + +// 페이드 알파값 +static float fadeOutAlpha = 1.f; +static float fadeInAlpha = 0.f; + + +// ==================== 메모리 해제: 이미지 ==================== +static void releaseImageData(uint8_t** data) { + if (*data) { + stbi_image_free(*data); + *data = nullptr; + } +} + +// ==================== 메모리 해제: FFmpeg 컨텍스트 ==================== +static void releaseFFmpegContext( + AVFormatContext** fctx, AVCodecContext** cctx, + AVFrame** frm, AVPacket** pck, + SwsContext** sws, std::vector* buffer) { + if (*cctx) avcodec_free_context(cctx); + if (*fctx) avformat_close_input(fctx); + if (*frm) av_frame_free(frm); + if (*pck) av_packet_free(pck); + if (*sws) sws_freeContext(*sws); + if (buffer) buffer->clear(); + + *cctx = nullptr; + *fctx = nullptr; + *frm = nullptr; + *pck = nullptr; + *sws = nullptr; +} + +// ==================== 미디어 데이터 해제 ==================== +static void releaseMediaData(bool loadIsImage, + uint8_t** imgData, + AVFormatContext** fmtCtx, AVCodecContext** codecCtx, + AVFrame** frm, AVPacket** pck, SwsContext** sws, + std::vector* rgbBuf) { + if (loadIsImage) { + releaseImageData(imgData); + } else { + releaseFFmpegContext(fmtCtx, codecCtx, frm, pck, sws, rgbBuf); + } +} + +// ==================== 스케일 계산 구조체 및 함수 ==================== +struct ScaleResult { + float scale; + float scaledW; + float scaledH; + float overflowX; + float overflowY; +}; + +static ScaleResult calculateScale(float mediaW, float mediaH, float bufW, float bufH) { + ScaleResult res{}; + if ((mediaW / mediaH) > (bufW / bufH)) { + res.scale = bufH / mediaH; + res.scaledW = mediaW * res.scale; + res.scaledH = bufH; + } else { + res.scale = bufW / mediaW; + res.scaledW = bufW; + res.scaledH = mediaH * res.scale; + } + res.overflowX = std::max(0.f, res.scaledW - bufW); + res.overflowY = std::max(0.f, res.scaledH - bufH); + return res; +} + +// ==================== 오프셋 애니메이션 업데이트 ==================== +static void updateOffset(float& offsetX, float& offsetY, + bool& movingX, bool& movingY, + float overflowX, float overflowY) { + if (overflowX > 0) { + float speedX = overflowX / displayDurationMs; + float deltaX = speedX * frameDurationMs; + if (movingX) { + offsetX += deltaX; + if (offsetX >= overflowX) { + offsetX = overflowX; + movingX = false; + } + } else { + offsetX -= deltaX; + if (offsetX <= 0) { + offsetX = 0.f; + movingX = true; + } + } + } else { + offsetX = 0.f; + } + + if (overflowY > 0) { + float speedY = overflowY / displayDurationMs; + float deltaY = speedY * frameDurationMs; + if (movingY) { + offsetY += deltaY; + if (offsetY >= overflowY) { + offsetY = overflowY; + movingY = false; + } + } else { + offsetY -= deltaY; + if (offsetY <= 0) { + offsetY = 0.f; + movingY = true; + } + } + } else { + offsetY = 0.f; + } +} + +// ==================== 버퍼 클리어 함수 ==================== +static void clearBufferIfNeeded(ANativeWindow_Buffer& buffer, bool shouldClear) { + if (!shouldClear) return; + uint32_t* dstPixels = (uint32_t*)buffer.bits; + int dstStride = buffer.stride; + for (int y = 0; y < buffer.height; ++y) { + uint32_t* dstRow = dstPixels + y * dstStride; + for (int x = 0; x < buffer.width; ++x) { + dstRow[x] = 0x00000000; // 완전 투명 또는 검은색 + } + } +} + +// ==================== 픽셀 그리기: 이미지 및 비디오 프레임 ==================== +static void drawToBuffer(ANativeWindow_Buffer& buffer, + uint8_t* pixelData, int imgW, int imgH, + float scale, float offsetX, float offsetY, float alpha) { + if (alpha <= 0.f) return; + alpha = std::clamp(alpha, 0.f, 1.f); + + uint32_t* dstPixels = (uint32_t*)buffer.bits; + int dstStride = buffer.stride; + + for (int y = 0; y < buffer.height; ++y) { + int srcY = (int)((y + offsetY) / scale); + if (srcY < 0 || srcY >= imgH) continue; + + uint32_t* dstRow = dstPixels + y * dstStride; + for (int x = 0; x < buffer.width; ++x) { + int srcX = (int)((x + offsetX) / scale); + if (srcX < 0 || srcX >= imgW) continue; + + uint8_t* px = &pixelData[(srcY * imgW + srcX) * 4]; + uint8_t r = (uint8_t)(px[0] * alpha); + uint8_t g = (uint8_t)(px[1] * alpha); + uint8_t b = (uint8_t)(px[2] * alpha); + uint8_t a = (uint8_t)(px[3] * alpha); + + dstRow[x] = (a << 24) | (r << 16) | (g << 8) | b; + } + } +} + +// ==================== 미디어 로딩 함수(이미지/비디오) ==================== +static bool loadMedia(const std::string& path, bool loadIsImage, + uint8_t** imgData, int* imgW, int* imgH, int* imgCh, + AVFormatContext** fmtCtx, AVCodecContext** codecCtx, AVFrame** frm, AVPacket** pck, + SwsContext** sws, int* videoIdx, int* vidW, int* vidH, + std::vector* rgbBuf) { + try { + if (!loadIsImage) { + *fmtCtx = avformat_alloc_context(); + if (avformat_open_input(fmtCtx, path.c_str(), nullptr, nullptr) != 0) { + LOGE("Failed to open video: %s", path.c_str()); + return false; + } + if (avformat_find_stream_info(*fmtCtx, nullptr) < 0) { + LOGE("Failed to get stream info: %s", path.c_str()); + avformat_close_input(fmtCtx); + return false; + } + + *videoIdx = -1; + for (unsigned int i = 0; i < (*fmtCtx)->nb_streams; ++i) { + if ((*fmtCtx)->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { + *videoIdx = i; + break; + } + } + if (*videoIdx == -1) { + LOGE("No video stream found: %s", path.c_str()); + avformat_close_input(fmtCtx); + return false; + } + + AVCodecParameters* codecpar = (*fmtCtx)->streams[*videoIdx]->codecpar; + const AVCodec* codec = avcodec_find_decoder(codecpar->codec_id); + if (!codec) { + LOGE("Decoder not found"); + avformat_close_input(fmtCtx); + return false; + } + + *codecCtx = avcodec_alloc_context3(codec); + if (!*codecCtx) { + LOGE("Failed to alloc codec context"); + avformat_close_input(fmtCtx); + return false; + } + if (avcodec_parameters_to_context(*codecCtx, codecpar) < 0) { + LOGE("Failed to copy codec params"); + avcodec_free_context(codecCtx); + avformat_close_input(fmtCtx); + return false; + } + if (avcodec_open2(*codecCtx, codec, nullptr) < 0) { + LOGE("Failed to open codec"); + avcodec_free_context(codecCtx); + avformat_close_input(fmtCtx); + return false; + } + *vidW = (*codecCtx)->width; + *vidH = (*codecCtx)->height; + + *frm = av_frame_alloc(); + *pck = av_packet_alloc(); + *sws = sws_getContext(*vidW, *vidH, (*codecCtx)->pix_fmt, *vidW, *vidH, + AV_PIX_FMT_RGBA, SWS_BILINEAR, nullptr, nullptr, nullptr); + + if (!*sws) { + LOGE("Failed to create sws context"); + av_frame_free(frm); + av_packet_free(pck); + avcodec_free_context(codecCtx); + avformat_close_input(fmtCtx); + return false; + } + + rgbBuf->resize((*vidW) * (*vidH) * 4); + *imgData = nullptr; + *imgW = 0; + *imgH = 0; + *imgCh = 0; + } else { + *imgData = stbi_load(path.c_str(), imgW, imgH, imgCh, 4); + if (!*imgData) { + LOGE("Failed to load image: %s", path.c_str()); + return false; + } + *fmtCtx = nullptr; + *codecCtx = nullptr; + *frm = nullptr; + *pck = nullptr; + *sws = nullptr; + *videoIdx = -1; + *vidW = 0; + *vidH = 0; + rgbBuf->clear(); + } + LOGI("Successfully loaded media: %s", path.c_str()); + return true; + } catch (...) { + LOGE("Exception occurred during media loading: %s", path.c_str()); + return false; + } +} + +// ==================== 다음 미디어 비동기 로드 ==================== +static bool loadNextMedia() { + LOGI("loadNextMedia: Trying to load media index %d", nextMediaIndex); + + releaseMediaData(nextIsImage, &next_imageData, &next_fmt_ctx, &next_codec_ctx, + &next_frame, &next_pkt, &next_sws_ctx, &next_rgbBuffer); + + if (mediaPaths.empty()) { + LOGE("loadNextMedia: mediaPaths is empty"); + return false; + } + + const std::string& nextPath = mediaPaths[nextMediaIndex]; + LOGI("loadNextMedia: nextPath=%s", nextPath.c_str()); + + nextIsImage = (nextPath.find(".mp4") == std::string::npos && + nextPath.find(".mkv") == std::string::npos); + + bool ok = loadMedia(nextPath, nextIsImage, + &next_imageData, &next_imageWidth, &next_imageHeight, &next_imageChannels, + &next_fmt_ctx, &next_codec_ctx, &next_frame, &next_pkt, &next_sws_ctx, + &next_video_stream_idx, &next_videoWidth, &next_videoHeight, &next_rgbBuffer); + if (!ok) { + LOGE("loadNextMedia: Failed to load media %s", nextPath.c_str()); + } else { + LOGI("loadNextMedia: Successfully loaded media"); + } + return ok; +} + +// ==================== 비디오/이미지 렌더링 ==================== +static void renderMedia(ANativeWindow_Buffer& buffer, + uint8_t* imgData, int imgW, int imgH, int imgCh, + AVFormatContext* fctx, AVCodecContext* cctx, + AVFrame* frm, AVPacket* pck, SwsContext* sws, + int vidStreamIdx, int vidW, int vidH, + std::vector& rgbBuf, + bool isImageLocal, + float scale, + float offsetXLocal, + float offsetYLocal, + float alpha) { + + if (isImageLocal) { + drawToBuffer(buffer, imgData, imgW, imgH, scale, offsetXLocal, offsetYLocal, alpha); + return; + } + + if (!fctx || !cctx) return; + + int ret = av_read_frame(fctx, pck); + bool gotFrame = false; + while (ret >= 0) { + if (pck->stream_index == vidStreamIdx) { + ret = avcodec_send_packet(cctx, pck); + if (ret < 0) break; + ret = avcodec_receive_frame(cctx, frm); + if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) { + av_packet_unref(pck); + ret = av_read_frame(fctx, pck); + continue; + } else if (ret < 0) break; + + uint8_t* dst[4] = { rgbBuf.data(), nullptr, nullptr, nullptr }; + int dstStride_arr[4] = { vidW * 4, 0, 0, 0 }; + sws_scale(sws, frm->data, frm->linesize, 0, vidH, dst, dstStride_arr); + + gotFrame = true; + break; + } + av_packet_unref(pck); + ret = av_read_frame(fctx, pck); + } + av_packet_unref(pck); + + if (!gotFrame) { + av_seek_frame(fctx, vidStreamIdx, 0, AVSEEK_FLAG_BACKWARD); + return; + } + + drawToBuffer(buffer, rgbBuf.data(), vidW, vidH, scale, offsetXLocal, offsetYLocal, alpha); +} + +// ==================== 페이드 인/아웃 크로스렌더링 ==================== +static void renderWithFade(ANativeWindow_Buffer& buffer, + float bufW, float bufH, + uint8_t* curImgData, int curImgW, int curImgH, int curImgCh, + AVFormatContext* curFmtCtx, AVCodecContext* curCodecCtx, + AVFrame* curFrame, AVPacket* curPkt, SwsContext* curSwsCtx, + int curVidStreamIdx, int curVidW, int curVidH, + std::vector& curRgbBuf, + bool curIsImage, + uint8_t* nextImgData, int nextImgW, int nextImgH, int nextImgCh, + AVFormatContext* nextFmtCtx, AVCodecContext* nextCodecCtx, + AVFrame* nextFrame, AVPacket* nextPkt, SwsContext* nextSwsCtx, + int nextVidStreamIdx, int nextVidW, int nextVidH, + std::vector& nextRgbBuf, + bool nextIsImage, + float fadeOutAlpha, float fadeInAlpha, + float& curOffsetX, float& curOffsetY, + bool& curMovingX, bool& curMovingY, + float& nextOffsetX, float& nextOffsetY, + bool& nextMovingX, bool& nextMovingY) { + + auto curScaleRes = calculateScale( + curIsImage ? (float)curImgW : (float)curVidW, + curIsImage ? (float)curImgH : (float)curVidH, + bufW, bufH); + + auto nextScaleRes = calculateScale( + nextIsImage ? (float)nextImgW : (float)nextVidW, + nextIsImage ? (float)nextImgH : (float)nextVidH, + bufW, bufH); + + updateOffset(curOffsetX, curOffsetY, curMovingX, curMovingY, curScaleRes.overflowX, curScaleRes.overflowY); + updateOffset(nextOffsetX, nextOffsetY, nextMovingX, nextMovingY, nextScaleRes.overflowX, nextScaleRes.overflowY); + + if (curIsImage) { + drawToBuffer(buffer, curImgData, curImgW, curImgH, + curScaleRes.scale, curOffsetX, curOffsetY, fadeOutAlpha); + } else { + renderMedia(buffer, curImgData, curImgW, curImgH, curImgCh, + curFmtCtx, curCodecCtx, curFrame, curPkt, curSwsCtx, + curVidStreamIdx, curVidW, curVidH, curRgbBuf, + false, + curScaleRes.scale, curOffsetX, curOffsetY, + fadeOutAlpha); + } + + if (nextIsImage) { + drawToBuffer(buffer, nextImgData, nextImgW, nextImgH, + nextScaleRes.scale, nextOffsetX, nextOffsetY, fadeInAlpha); + } else { + renderMedia(buffer, nextImgData, nextImgW, nextImgH, nextImgCh, + nextFmtCtx, nextCodecCtx, nextFrame, nextPkt, nextSwsCtx, + nextVidStreamIdx, nextVidW, nextVidH, nextRgbBuf, + false, + nextScaleRes.scale, nextOffsetX, nextOffsetY, + fadeInAlpha); + } +} + +// ==================== JNI 함수: 미디어 리스트 세팅 ==================== +extern "C" { + +JNIEXPORT void JNICALL +Java_bums_lunatic_launcher_wall_NativeRenderer_nativeSetMediaList(JNIEnv* env, jobject, jobjectArray paths) { + std::lock_guard lock(renderMutex); + mediaPaths.clear(); + jsize len = env->GetArrayLength(paths); + for (jsize i = 0; i < len; ++i) { + jstring pathStr = (jstring) env->GetObjectArrayElement(paths, i); + const char* pathCStr = env->GetStringUTFChars(pathStr, nullptr); + mediaPaths.push_back(std::string(pathCStr)); + env->ReleaseStringUTFChars(pathStr, pathCStr); + env->DeleteLocalRef(pathStr); + } + currentMediaIndex = 0; + nextMediaIndex = (len > 1) ? 1 : 0; + + releaseMediaData(isImage, &imageData, &fmt_ctx, &codec_ctx, &frame, &pkt, &sws_ctx, &rgbBuffer); + isImage = false; + + if (!mediaPaths.empty()) { + const bool loadIsImage = (mediaPaths[0].find(".mp4") == std::string::npos && + mediaPaths[0].find(".mkv") == std::string::npos); + isImage = loadIsImage; + + if (!loadMedia(mediaPaths[0], loadIsImage, + &imageData, &imageWidth, &imageHeight, &imageChannels, + &fmt_ctx, &codec_ctx, &frame, &pkt, &sws_ctx, + &video_stream_idx, &videoWidth, &videoHeight, &rgbBuffer)) { + LOGE("Failed to load the first media"); + return; + } + + offsetX = 0.f; offsetY = 0.f; + movingForwardLocX = true; movingDownLocY = true; + mediaStartTime = std::chrono::steady_clock::now(); + isFading = false; + nextMediaReady = false; + + releaseMediaData(nextIsImage, &next_imageData, &next_fmt_ctx, &next_codec_ctx, + &next_frame, &next_pkt, &next_sws_ctx, &next_rgbBuffer); + + std::thread([](){ + std::lock_guard preloadLock(renderMutex); + nextMediaReady = loadNextMedia(); + if (nextMediaReady) { + LOGI("Preloaded next media ready"); + } else { + LOGE("Preload failed"); + } + }).detach(); + } +} + +JNIEXPORT void JNICALL +Java_bums_lunatic_launcher_wall_NativeRenderer_nativeRender(JNIEnv* env, jobject) { + std::lock_guard lock(renderMutex); + if (!window || mediaPaths.empty()) { + LOGI("nativeRender: no window or empty media"); + return; + } + + ANativeWindow_Buffer buffer; + if (ANativeWindow_lock(window, &buffer, nullptr) < 0) { + LOGE("nativeRender: Failed to lock window"); + return; + } + + clearBufferIfNeeded(buffer, !isFading); + + auto now = std::chrono::steady_clock::now(); + auto elapsedMs = std::chrono::duration_cast(now - mediaStartTime).count(); + elapsedMs = std::max(elapsedMs, 0LL); + + if (!isFading && elapsedMs > (displayDurationMs - fadeDurationMs - 10) && nextMediaReady) { + isFading = true; + fadeStartTime = now; + LOGI("Fade started"); + } + + if (isFading) { + auto fadeElapsed = std::chrono::duration_cast(now - fadeStartTime).count(); + fadeOutAlpha = std::clamp(1.f - (float)fadeElapsed / fadeDurationMs, 0.f, 1.f); + fadeInAlpha = std::clamp((float)fadeElapsed / fadeDurationMs, 0.f, 1.f); + + static float nextOffsetX = 0.f; + static float nextOffsetY = 0.f; + static bool nextMovingForwardX = true; + static bool nextMovingDownY = true; + + renderWithFade(buffer, + (float)buffer.width, (float)buffer.height, + imageData, imageWidth, imageHeight, imageChannels, + fmt_ctx, codec_ctx, frame, pkt, sws_ctx, + video_stream_idx, videoWidth, videoHeight, + rgbBuffer, + isImage, + next_imageData, next_imageWidth, next_imageHeight, next_imageChannels, + next_fmt_ctx, next_codec_ctx, next_frame, next_pkt, next_sws_ctx, + next_video_stream_idx, next_videoWidth, next_videoHeight, + next_rgbBuffer, + nextIsImage, + fadeOutAlpha, fadeInAlpha, + offsetX, offsetY, + movingForwardLocX, movingDownLocY, + nextOffsetX, nextOffsetY, + nextMovingForwardX, nextMovingDownY); + + if (fadeElapsed >= fadeDurationMs) { + LOGI("Fade ended, switching media"); + + releaseMediaData(isImage, &imageData, &fmt_ctx, &codec_ctx, &frame, &pkt, &sws_ctx, &rgbBuffer); + + imageData = next_imageData; + imageWidth = next_imageWidth; + imageHeight = next_imageHeight; + imageChannels = next_imageChannels; + + fmt_ctx = next_fmt_ctx; + codec_ctx = next_codec_ctx; + frame = next_frame; + pkt = next_pkt; + sws_ctx = next_sws_ctx; + + video_stream_idx = next_video_stream_idx; + videoWidth = next_videoWidth; + videoHeight = next_videoHeight; + rgbBuffer = std::move(next_rgbBuffer); + + isImage = nextIsImage; + + currentMediaIndex = nextMediaIndex; + nextMediaIndex = (nextMediaIndex + 1) % mediaPaths.size(); + + offsetX = 0.f; offsetY = 0.f; + movingForwardLocX = true; movingDownLocY = true; + + nextOffsetX = 0.f; nextOffsetY = 0.f; + nextMovingForwardX = true; nextMovingDownY = true; + + mediaStartTime = std::chrono::steady_clock::now(); + + isFading = false; + nextMediaReady = false; + + std::thread([](){ + std::lock_guard preloadLock(renderMutex); + nextMediaReady = loadNextMedia(); + if (nextMediaReady) { + LOGI("Preloaded next media ready"); + } else { + LOGE("Preload failed"); + } + }).detach(); + } + } else { + auto curScaleRes = calculateScale( + isImage ? (float)imageWidth : (float)videoWidth, + isImage ? (float)imageHeight : (float)videoHeight, + (float)buffer.width, (float)buffer.height); + + updateOffset(offsetX, offsetY, + movingForwardLocX, movingDownLocY, + curScaleRes.overflowX, curScaleRes.overflowY); + + if (isImage) { + drawToBuffer(buffer, imageData, imageWidth, imageHeight, + curScaleRes.scale, offsetX, offsetY, 1.f); + } else { + renderMedia(buffer, imageData, imageWidth, imageHeight, imageChannels, + fmt_ctx, codec_ctx, frame, pkt, sws_ctx, + video_stream_idx, videoWidth, videoHeight, rgbBuffer, + false, + curScaleRes.scale, offsetX, offsetY, + 1.f); + } + } + + ANativeWindow_unlockAndPost(window); +} + +JNIEXPORT jboolean JNICALL Java_bums_lunatic_launcher_wall_NativeRenderer_nativeInit(JNIEnv* env, jobject, jobject surface) { - if (window != nullptr) { + std::lock_guard lock(renderMutex); + if (window) { ANativeWindow_release(window); window = nullptr; } window = ANativeWindow_fromSurface(env, surface); LOGI("Native window initialized"); + return true; } -extern "C" JNIEXPORT void JNICALL -Java_bums_lunatic_launcher_wall_NativeRenderer_nativeRender( - JNIEnv* env, jobject, jintArray pixels, jint width, jint height, - jfloat offsetX, jfloat offsetY, jfloat fadeAlpha) { +JNIEXPORT void JNICALL +Java_bums_lunatic_launcher_wall_NativeRenderer_nativeDestroy(JNIEnv* env, jobject) { + std::lock_guard lock(renderMutex); + releaseMediaData(isImage, &imageData, &fmt_ctx, &codec_ctx, &frame, &pkt, &sws_ctx, &rgbBuffer); + releaseMediaData(nextIsImage, &next_imageData, &next_fmt_ctx, &next_codec_ctx, &next_frame, &next_pkt, &next_sws_ctx, &next_rgbBuffer); - if (!window) return; - - ANativeWindow_Buffer buffer; - if (ANativeWindow_lock(window, &buffer, nullptr) < 0) { - LOGE("Failed to lock native window"); - return; - } - - jint* srcPixels = env->GetIntArrayElements(pixels, nullptr); - if (!srcPixels) { - ANativeWindow_unlockAndPost(window); - return; - } - - uint32_t* dstPixels = (uint32_t*)buffer.bits; - int stride = buffer.stride; - - int offsetXInt = static_cast(offsetX); - int offsetYInt = static_cast(offsetY); - - for (int y = 0; y < buffer.height; y++) { - int srcY = y - offsetYInt; - if (srcY < 0 || srcY >= height) continue; - - for (int x = 0; x < buffer.width; x++) { - int srcX = x - offsetXInt; - if (srcX < 0 || srcX >= width) continue; - - uint32_t pixel = srcPixels[srcY * width + srcX]; - - uint8_t alpha = static_cast(fadeAlpha * 255); - uint8_t r = (pixel >> 16) & 0xFF; - uint8_t g = (pixel >> 8) & 0xFF; - uint8_t b = pixel & 0xFF; - - r = (r * alpha) / 255; - g = (g * alpha) / 255; - b = (b * alpha) / 255; - - dstPixels[y * stride + x] = (0xFF << 24) | (r << 16) | (g << 8) | b; - } - } - - env->ReleaseIntArrayElements(pixels, srcPixels, JNI_ABORT); - - ANativeWindow_unlockAndPost(window); -} - -extern "C" JNIEXPORT void JNICALL -Java_bums_lunatic_launcher_wall_NativeRenderer_nativeDestroy(JNIEnv*, jobject) { if (window) { ANativeWindow_release(window); window = nullptr; - LOGI("Native window released"); } + LOGI("Native window released"); } + +} // extern "C" diff --git a/app/src/main/jniLibs/android.sh b/app/src/main/jniLibs/android.sh new file mode 100644 index 00000000..eef3e59e --- /dev/null +++ b/app/src/main/jniLibs/android.sh @@ -0,0 +1,250 @@ +#!/bin/bash + +### Describe Your Target Android Api or Architectures ### +ANDROID_API_LEVEL="25" +ARCH_LIST=("armv8a" "armv7a" "x86" "x86-64") + + +### Supported Architectures "armv8a" "armv7a" "x86" "x86-64" ####### + +### Enable FFMPEG BUILD MODULES #### +ENABLED_CONFIG="\ + --enable-avcodec \ + --enable-avformat \ + --enable-avutil \ + --enable-swscale \ + --enable-libdav1d \ + --enable-demuxer=* \ + --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub \ + --enable-parser=* \ + --enable-bsf=* \ + --enable-shared " + + +### Disable FFMPEG BUILD MODULES #### +DISABLED_CONFIG="\ + --disable-small \ + --disable-zlib \ + --disable-swresample \ + --disable-avfilter \ + --disable-v4l2-m2m \ + --disable-cuda-llvm \ + --disable-indevs \ + --disable-libxml2 \ + --disable-avdevice \ + --disable-network \ + --disable-static \ + --disable-debug \ + --disable-ffplay \ + --disable-ffprobe \ + --disable-doc \ + --disable-symver \ + --disable-gpl " + + + + + + + + + +############ Dont Change ################ +############ Dont Change ################ +############ Dont Change ################ +############ Dont Change ################ +############ Dont Change ################ + +SYSROOT="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/sysroot" +LLVM_AR="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar" +LLVM_NM="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm" +LLVM_RANLIB="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib" +LLVM_STRIP="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip" +export ASFLAGS="-fPIC" + + +buildLibdav1d(){ + TARGET_ARCH=$1 + TARGET_CPU=$2 + PREFIX=$3 + CROSS_PREFIX=$4 + EXTRA_CFLAGS=$5 + EXTRA_CXXFLAGS=$6 + EXTRA_CONFIG=$7 + CLANG="${CROSS_PREFIX}clang" + CLANGXX="${CROSS_PREFIX}clang++" + + if [ "$TARGET_ARCH" = "i686" ]; then + TARGET_ARCH="x86" + fi + + if [ ! -d "dav1d" ]; then + echo "Cloning libdav1d..." + git clone https://code.videolan.org/videolan/dav1d.git + else + echo "Updating libdav1d..." + cd dav1d + git pull + cd .. + fi + + cd dav1d + # --- Create cross file --- + CROSS_FILE="android-$TARGET_ARCH-$ANDROID_API_LEVEL-cross.messon" + cat > "$CROSS_FILE" < +#include + +/** + * Extract the bitstream ID and the frame size from AC-3 data. + */ +int av_ac3_parse_header(const uint8_t *buf, size_t size, + uint8_t *bitstream_id, uint16_t *frame_size); + + +#endif /* AVCODEC_AC3_PARSER_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/adts_parser.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/adts_parser.h new file mode 100644 index 00000000..f85becd1 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/adts_parser.h @@ -0,0 +1,37 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_ADTS_PARSER_H +#define AVCODEC_ADTS_PARSER_H + +#include +#include + +#define AV_AAC_ADTS_HEADER_SIZE 7 + +/** + * Extract the number of samples and frames from AAC data. + * @param[in] buf pointer to AAC data buffer + * @param[out] samples Pointer to where number of samples is written + * @param[out] frames Pointer to where number of frames is written + * @return Returns 0 on success, error code on failure. + */ +int av_adts_header_parse(const uint8_t *buf, uint32_t *samples, + uint8_t *frames); + +#endif /* AVCODEC_ADTS_PARSER_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/avcodec.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/avcodec.h new file mode 100644 index 00000000..77ca8dee --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/avcodec.h @@ -0,0 +1,3128 @@ +/* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AVCODEC_H +#define AVCODEC_AVCODEC_H + +/** + * @file + * @ingroup libavc + * Libavcodec external API header + */ + +#include "libavutil/samplefmt.h" +#include "libavutil/attributes.h" +#include "libavutil/avutil.h" +#include "libavutil/buffer.h" +#include "libavutil/channel_layout.h" +#include "libavutil/dict.h" +#include "libavutil/frame.h" +#include "libavutil/log.h" +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" + +#include "codec.h" +#include "codec_id.h" +#include "defs.h" +#include "packet.h" +#include "version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "version.h" + +#include "codec_desc.h" +#include "codec_par.h" +#endif + +struct AVCodecParameters; + +/** + * @defgroup libavc libavcodec + * Encoding/Decoding Library + * + * @{ + * + * @defgroup lavc_decoding Decoding + * @{ + * @} + * + * @defgroup lavc_encoding Encoding + * @{ + * @} + * + * @defgroup lavc_codec Codecs + * @{ + * @defgroup lavc_codec_native Native Codecs + * @{ + * @} + * @defgroup lavc_codec_wrappers External library wrappers + * @{ + * @} + * @defgroup lavc_codec_hwaccel Hardware Accelerators bridge + * @{ + * @} + * @} + * @defgroup lavc_internal Internal + * @{ + * @} + * @} + */ + +/** + * @ingroup libavc + * @defgroup lavc_encdec send/receive encoding and decoding API overview + * @{ + * + * The avcodec_send_packet()/avcodec_receive_frame()/avcodec_send_frame()/ + * avcodec_receive_packet() functions provide an encode/decode API, which + * decouples input and output. + * + * The API is very similar for encoding/decoding and audio/video, and works as + * follows: + * - Set up and open the AVCodecContext as usual. + * - Send valid input: + * - For decoding, call avcodec_send_packet() to give the decoder raw + * compressed data in an AVPacket. + * - For encoding, call avcodec_send_frame() to give the encoder an AVFrame + * containing uncompressed audio or video. + * + * In both cases, it is recommended that AVPackets and AVFrames are + * refcounted, or libavcodec might have to copy the input data. (libavformat + * always returns refcounted AVPackets, and av_frame_get_buffer() allocates + * refcounted AVFrames.) + * - Receive output in a loop. Periodically call one of the avcodec_receive_*() + * functions and process their output: + * - For decoding, call avcodec_receive_frame(). On success, it will return + * an AVFrame containing uncompressed audio or video data. + * - For encoding, call avcodec_receive_packet(). On success, it will return + * an AVPacket with a compressed frame. + * + * Repeat this call until it returns AVERROR(EAGAIN) or an error. The + * AVERROR(EAGAIN) return value means that new input data is required to + * return new output. In this case, continue with sending input. For each + * input frame/packet, the codec will typically return 1 output frame/packet, + * but it can also be 0 or more than 1. + * + * At the beginning of decoding or encoding, the codec might accept multiple + * input frames/packets without returning a frame, until its internal buffers + * are filled. This situation is handled transparently if you follow the steps + * outlined above. + * + * In theory, sending input can result in EAGAIN - this should happen only if + * not all output was received. You can use this to structure alternative decode + * or encode loops other than the one suggested above. For example, you could + * try sending new input on each iteration, and try to receive output if that + * returns EAGAIN. + * + * End of stream situations. These require "flushing" (aka draining) the codec, + * as the codec might buffer multiple frames or packets internally for + * performance or out of necessity (consider B-frames). + * This is handled as follows: + * - Instead of valid input, send NULL to the avcodec_send_packet() (decoding) + * or avcodec_send_frame() (encoding) functions. This will enter draining + * mode. + * - Call avcodec_receive_frame() (decoding) or avcodec_receive_packet() + * (encoding) in a loop until AVERROR_EOF is returned. The functions will + * not return AVERROR(EAGAIN), unless you forgot to enter draining mode. + * - Before decoding can be resumed again, the codec has to be reset with + * avcodec_flush_buffers(). + * + * Using the API as outlined above is highly recommended. But it is also + * possible to call functions outside of this rigid schema. For example, you can + * call avcodec_send_packet() repeatedly without calling + * avcodec_receive_frame(). In this case, avcodec_send_packet() will succeed + * until the codec's internal buffer has been filled up (which is typically of + * size 1 per output frame, after initial input), and then reject input with + * AVERROR(EAGAIN). Once it starts rejecting input, you have no choice but to + * read at least some output. + * + * Not all codecs will follow a rigid and predictable dataflow; the only + * guarantee is that an AVERROR(EAGAIN) return value on a send/receive call on + * one end implies that a receive/send call on the other end will succeed, or + * at least will not fail with AVERROR(EAGAIN). In general, no codec will + * permit unlimited buffering of input or output. + * + * A codec is not allowed to return AVERROR(EAGAIN) for both sending and receiving. This + * would be an invalid state, which could put the codec user into an endless + * loop. The API has no concept of time either: it cannot happen that trying to + * do avcodec_send_packet() results in AVERROR(EAGAIN), but a repeated call 1 second + * later accepts the packet (with no other receive/flush API calls involved). + * The API is a strict state machine, and the passage of time is not supposed + * to influence it. Some timing-dependent behavior might still be deemed + * acceptable in certain cases. But it must never result in both send/receive + * returning EAGAIN at the same time at any point. It must also absolutely be + * avoided that the current state is "unstable" and can "flip-flop" between + * the send/receive APIs allowing progress. For example, it's not allowed that + * the codec randomly decides that it actually wants to consume a packet now + * instead of returning a frame, after it just returned AVERROR(EAGAIN) on an + * avcodec_send_packet() call. + * @} + */ + +/** + * @defgroup lavc_core Core functions/structures. + * @ingroup libavc + * + * Basic definitions, functions for querying libavcodec capabilities, + * allocating core structures, etc. + * @{ + */ + +#if FF_API_BUFFER_MIN_SIZE +/** + * @ingroup lavc_encoding + * minimum encoding buffer size + * Used to avoid some checks during header writing. + * @deprecated Unused: avcodec_receive_packet() does not work + * with preallocated packet buffers. + */ +#define AV_INPUT_BUFFER_MIN_SIZE 16384 +#endif + +/** + * @ingroup lavc_encoding + */ +typedef struct RcOverride{ + int start_frame; + int end_frame; + int qscale; // If this is 0 then quality_factor will be used instead. + float quality_factor; +} RcOverride; + +/* encoding support + These flags can be passed in AVCodecContext.flags before initialization. + Note: Not everything is supported yet. +*/ + +/** + * Allow decoders to produce frames with data planes that are not aligned + * to CPU requirements (e.g. due to cropping). + */ +#define AV_CODEC_FLAG_UNALIGNED (1 << 0) +/** + * Use fixed qscale. + */ +#define AV_CODEC_FLAG_QSCALE (1 << 1) +/** + * 4 MV per MB allowed / advanced prediction for H.263. + */ +#define AV_CODEC_FLAG_4MV (1 << 2) +/** + * Output even those frames that might be corrupted. + */ +#define AV_CODEC_FLAG_OUTPUT_CORRUPT (1 << 3) +/** + * Use qpel MC. + */ +#define AV_CODEC_FLAG_QPEL (1 << 4) +#if FF_API_DROPCHANGED +/** + * Don't output frames whose parameters differ from first + * decoded frame in stream. + * + * @deprecated callers should implement this functionality in their own code + */ +#define AV_CODEC_FLAG_DROPCHANGED (1 << 5) +#endif +/** + * Request the encoder to output reconstructed frames, i.e.\ frames that would + * be produced by decoding the encoded bistream. These frames may be retrieved + * by calling avcodec_receive_frame() immediately after a successful call to + * avcodec_receive_packet(). + * + * Should only be used with encoders flagged with the + * @ref AV_CODEC_CAP_ENCODER_RECON_FRAME capability. + * + * @note + * Each reconstructed frame returned by the encoder corresponds to the last + * encoded packet, i.e. the frames are returned in coded order rather than + * presentation order. + * + * @note + * Frame parameters (like pixel format or dimensions) do not have to match the + * AVCodecContext values. Make sure to use the values from the returned frame. + */ +#define AV_CODEC_FLAG_RECON_FRAME (1 << 6) +/** + * @par decoding + * Request the decoder to propagate each packet's AVPacket.opaque and + * AVPacket.opaque_ref to its corresponding output AVFrame. + * + * @par encoding: + * Request the encoder to propagate each frame's AVFrame.opaque and + * AVFrame.opaque_ref values to its corresponding output AVPacket. + * + * @par + * May only be set on encoders that have the + * @ref AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE capability flag. + * + * @note + * While in typical cases one input frame produces exactly one output packet + * (perhaps after a delay), in general the mapping of frames to packets is + * M-to-N, so + * - Any number of input frames may be associated with any given output packet. + * This includes zero - e.g. some encoders may output packets that carry only + * metadata about the whole stream. + * - A given input frame may be associated with any number of output packets. + * Again this includes zero - e.g. some encoders may drop frames under certain + * conditions. + * . + * This implies that when using this flag, the caller must NOT assume that + * - a given input frame's opaques will necessarily appear on some output packet; + * - every output packet will have some non-NULL opaque value. + * . + * When an output packet contains multiple frames, the opaque values will be + * taken from the first of those. + * + * @note + * The converse holds for decoders, with frames and packets switched. + */ +#define AV_CODEC_FLAG_COPY_OPAQUE (1 << 7) +/** + * Signal to the encoder that the values of AVFrame.duration are valid and + * should be used (typically for transferring them to output packets). + * + * If this flag is not set, frame durations are ignored. + */ +#define AV_CODEC_FLAG_FRAME_DURATION (1 << 8) +/** + * Use internal 2pass ratecontrol in first pass mode. + */ +#define AV_CODEC_FLAG_PASS1 (1 << 9) +/** + * Use internal 2pass ratecontrol in second pass mode. + */ +#define AV_CODEC_FLAG_PASS2 (1 << 10) +/** + * loop filter. + */ +#define AV_CODEC_FLAG_LOOP_FILTER (1 << 11) +/** + * Only decode/encode grayscale. + */ +#define AV_CODEC_FLAG_GRAY (1 << 13) +/** + * error[?] variables will be set during encoding. + */ +#define AV_CODEC_FLAG_PSNR (1 << 15) +/** + * Use interlaced DCT. + */ +#define AV_CODEC_FLAG_INTERLACED_DCT (1 << 18) +/** + * Force low delay. + */ +#define AV_CODEC_FLAG_LOW_DELAY (1 << 19) +/** + * Place global headers in extradata instead of every keyframe. + */ +#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22) +/** + * Use only bitexact stuff (except (I)DCT). + */ +#define AV_CODEC_FLAG_BITEXACT (1 << 23) +/* Fx : Flag for H.263+ extra options */ +/** + * H.263 advanced intra coding / MPEG-4 AC prediction + */ +#define AV_CODEC_FLAG_AC_PRED (1 << 24) +/** + * interlaced motion estimation + */ +#define AV_CODEC_FLAG_INTERLACED_ME (1 << 29) +#define AV_CODEC_FLAG_CLOSED_GOP (1U << 31) + +/** + * Allow non spec compliant speedup tricks. + */ +#define AV_CODEC_FLAG2_FAST (1 << 0) +/** + * Skip bitstream encoding. + */ +#define AV_CODEC_FLAG2_NO_OUTPUT (1 << 2) +/** + * Place global headers at every keyframe instead of in extradata. + */ +#define AV_CODEC_FLAG2_LOCAL_HEADER (1 << 3) + +/** + * Input bitstream might be truncated at a packet boundaries + * instead of only at frame boundaries. + */ +#define AV_CODEC_FLAG2_CHUNKS (1 << 15) +/** + * Discard cropping information from SPS. + */ +#define AV_CODEC_FLAG2_IGNORE_CROP (1 << 16) + +/** + * Show all frames before the first keyframe + */ +#define AV_CODEC_FLAG2_SHOW_ALL (1 << 22) +/** + * Export motion vectors through frame side data + */ +#define AV_CODEC_FLAG2_EXPORT_MVS (1 << 28) +/** + * Do not skip samples and export skip information as frame side data + */ +#define AV_CODEC_FLAG2_SKIP_MANUAL (1 << 29) +/** + * Do not reset ASS ReadOrder field on flush (subtitles decoding) + */ +#define AV_CODEC_FLAG2_RO_FLUSH_NOOP (1 << 30) +/** + * Generate/parse ICC profiles on encode/decode, as appropriate for the type of + * file. No effect on codecs which cannot contain embedded ICC profiles, or + * when compiled without support for lcms2. + */ +#define AV_CODEC_FLAG2_ICC_PROFILES (1U << 31) + +/* Exported side data. + These flags can be passed in AVCodecContext.export_side_data before initialization. +*/ +/** + * Export motion vectors through frame side data + */ +#define AV_CODEC_EXPORT_DATA_MVS (1 << 0) +/** + * Export encoder Producer Reference Time through packet side data + */ +#define AV_CODEC_EXPORT_DATA_PRFT (1 << 1) +/** + * Decoding only. + * Export the AVVideoEncParams structure through frame side data. + */ +#define AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS (1 << 2) +/** + * Decoding only. + * Do not apply film grain, export it instead. + */ +#define AV_CODEC_EXPORT_DATA_FILM_GRAIN (1 << 3) + +/** + * Decoding only. + * Do not apply picture enhancement layers, export them instead. + */ +#define AV_CODEC_EXPORT_DATA_ENHANCEMENTS (1 << 4) + +/** + * The decoder will keep a reference to the frame and may reuse it later. + */ +#define AV_GET_BUFFER_FLAG_REF (1 << 0) + +/** + * The encoder will keep a reference to the packet and may reuse it later. + */ +#define AV_GET_ENCODE_BUFFER_FLAG_REF (1 << 0) + +/** + * main external API structure. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user + * applications. + * The name string for AVOptions options matches the associated command line + * parameter name and can be found in libavcodec/options_table.h + * The AVOption/command line parameter names differ in some cases from the C + * structure field names for historic reasons or brevity. + * sizeof(AVCodecContext) must not be used outside libav*. + */ +typedef struct AVCodecContext { + /** + * information on struct for av_log + * - set by avcodec_alloc_context3 + */ + const AVClass *av_class; + int log_level_offset; + + enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */ + const struct AVCodec *codec; + enum AVCodecID codec_id; /* see AV_CODEC_ID_xxx */ + + /** + * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). + * This is used to work around some encoder bugs. + * A demuxer should set this to what is stored in the field used to identify the codec. + * If there are multiple such fields in a container then the demuxer should choose the one + * which maximizes the information about the used codec. + * If the codec tag field in a container is larger than 32 bits then the demuxer should + * remap the longer ID to 32 bits with a table or other structure. Alternatively a new + * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated + * first. + * - encoding: Set by user, if not then the default based on codec_id will be used. + * - decoding: Set by user, will be converted to uppercase by libavcodec during init. + */ + unsigned int codec_tag; + + void *priv_data; + + /** + * Private context used for internal data. + * + * Unlike priv_data, this is not codec-specific. It is used in general + * libavcodec functions. + */ + struct AVCodecInternal *internal; + + /** + * Private data of the user, can be used to carry app specific stuff. + * - encoding: Set by user. + * - decoding: Set by user. + */ + void *opaque; + + /** + * the average bitrate + * - encoding: Set by user; unused for constant quantizer encoding. + * - decoding: Set by user, may be overwritten by libavcodec + * if this info is available in the stream + */ + int64_t bit_rate; + + /** + * AV_CODEC_FLAG_*. + * - encoding: Set by user. + * - decoding: Set by user. + */ + int flags; + + /** + * AV_CODEC_FLAG2_* + * - encoding: Set by user. + * - decoding: Set by user. + */ + int flags2; + + /** + * some codecs need / can use extradata like Huffman tables. + * MJPEG: Huffman tables + * rv10: additional flags + * MPEG-4: global headers (they can be in the bitstream or here) + * The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger + * than extradata_size to avoid problems if it is read with the bitstream reader. + * The bytewise contents of extradata must not depend on the architecture or CPU endianness. + * Must be allocated with the av_malloc() family of functions. + * - encoding: Set/allocated/freed by libavcodec. + * - decoding: Set/allocated/freed by user. + */ + uint8_t *extradata; + int extradata_size; + + /** + * This is the fundamental unit of time (in seconds) in terms + * of which frame timestamps are represented. For fixed-fps content, + * timebase should be 1/framerate and timestamp increments should be + * identically 1. + * This often, but not always is the inverse of the frame rate or field rate + * for video. 1/time_base is not the average frame rate if the frame rate is not + * constant. + * + * Like containers, elementary streams also can store timestamps, 1/time_base + * is the unit in which these timestamps are specified. + * As example of such codec time base see ISO/IEC 14496-2:2001(E) + * vop_time_increment_resolution and fixed_vop_rate + * (fixed_vop_rate == 0 implies that it is different from the framerate) + * + * - encoding: MUST be set by user. + * - decoding: unused. + */ + AVRational time_base; + + /** + * Timebase in which pkt_dts/pts and AVPacket.dts/pts are expressed. + * - encoding: unused. + * - decoding: set by user. + */ + AVRational pkt_timebase; + + /** + * - decoding: For codecs that store a framerate value in the compressed + * bitstream, the decoder may export it here. { 0, 1} when + * unknown. + * - encoding: May be used to signal the framerate of CFR content to an + * encoder. + */ + AVRational framerate; + +#if FF_API_TICKS_PER_FRAME + /** + * For some codecs, the time base is closer to the field rate than the frame rate. + * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration + * if no telecine is used ... + * + * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2. + * + * @deprecated + * - decoding: Use AVCodecDescriptor.props & AV_CODEC_PROP_FIELDS + * - encoding: Set AVCodecContext.framerate instead + * + */ + attribute_deprecated + int ticks_per_frame; +#endif + + /** + * Codec delay. + * + * Encoding: Number of frames delay there will be from the encoder input to + * the decoder output. (we assume the decoder matches the spec) + * Decoding: Number of frames delay in addition to what a standard decoder + * as specified in the spec would produce. + * + * Video: + * Number of frames the decoded output will be delayed relative to the + * encoded input. + * + * Audio: + * For encoding, this field is unused (see initial_padding). + * + * For decoding, this is the number of samples the decoder needs to + * output before the decoder's output is valid. When seeking, you should + * start decoding this many samples prior to your desired seek point. + * + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int delay; + + + /* video only */ + /** + * picture width / height. + * + * @note Those fields may not match the values of the last + * AVFrame output by avcodec_receive_frame() due frame + * reordering. + * + * - encoding: MUST be set by user. + * - decoding: May be set by the user before opening the decoder if known e.g. + * from the container. Some decoders will require the dimensions + * to be set by the caller. During decoding, the decoder may + * overwrite those values as required while parsing the data. + */ + int width, height; + + /** + * Bitstream width / height, may be different from width/height e.g. when + * the decoded frame is cropped before being output or lowres is enabled. + * + * @note Those field may not match the value of the last + * AVFrame output by avcodec_receive_frame() due frame + * reordering. + * + * - encoding: unused + * - decoding: May be set by the user before opening the decoder if known + * e.g. from the container. During decoding, the decoder may + * overwrite those values as required while parsing the data. + */ + int coded_width, coded_height; + + /** + * sample aspect ratio (0 if unknown) + * That is the width of a pixel divided by the height of the pixel. + * Numerator and denominator must be relatively prime and smaller than 256 for some video standards. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + AVRational sample_aspect_ratio; + + /** + * Pixel format, see AV_PIX_FMT_xxx. + * May be set by the demuxer if known from headers. + * May be overridden by the decoder if it knows better. + * + * @note This field may not match the value of the last + * AVFrame output by avcodec_receive_frame() due frame + * reordering. + * + * - encoding: Set by user. + * - decoding: Set by user if known, overridden by libavcodec while + * parsing the data. + */ + enum AVPixelFormat pix_fmt; + + /** + * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx. + * - encoding: unused. + * - decoding: Set by libavcodec before calling get_format() + */ + enum AVPixelFormat sw_pix_fmt; + + /** + * Chromaticity coordinates of the source primaries. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorPrimaries color_primaries; + + /** + * Color Transfer Characteristic. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorTransferCharacteristic color_trc; + + /** + * YUV colorspace type. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorSpace colorspace; + + /** + * MPEG vs JPEG YUV range. + * - encoding: Set by user to override the default output color range value, + * If not specified, libavcodec sets the color range depending on the + * output format. + * - decoding: Set by libavcodec, can be set by the user to propagate the + * color range to components reading from the decoder context. + */ + enum AVColorRange color_range; + + /** + * This defines the location of chroma samples. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVChromaLocation chroma_sample_location; + + /** Field order + * - encoding: set by libavcodec + * - decoding: Set by user. + */ + enum AVFieldOrder field_order; + + /** + * number of reference frames + * - encoding: Set by user. + * - decoding: Set by lavc. + */ + int refs; + + /** + * Size of the frame reordering buffer in the decoder. + * For MPEG-2 it is 1 IPB or 0 low delay IP. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int has_b_frames; + + /** + * slice flags + * - encoding: unused + * - decoding: Set by user. + */ + int slice_flags; +#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display +#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG-2 field pics) +#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1) + + /** + * If non NULL, 'draw_horiz_band' is called by the libavcodec + * decoder to draw a horizontal band. It improves cache usage. Not + * all codecs can do that. You must check the codec capabilities + * beforehand. + * When multithreading is used, it may be called from multiple threads + * at the same time; threads might draw different parts of the same AVFrame, + * or multiple AVFrames, and there is no guarantee that slices will be drawn + * in order. + * The function is also used by hardware acceleration APIs. + * It is called at least once during frame decoding to pass + * the data needed for hardware render. + * In that mode instead of pixel data, AVFrame points to + * a structure specific to the acceleration API. The application + * reads the structure and can change some fields to indicate progress + * or mark state. + * - encoding: unused + * - decoding: Set by user. + * @param height the height of the slice + * @param y the y position of the slice + * @param type 1->top field, 2->bottom field, 3->frame + * @param offset offset into the AVFrame.data from which the slice should be read + */ + void (*draw_horiz_band)(struct AVCodecContext *s, + const AVFrame *src, int offset[AV_NUM_DATA_POINTERS], + int y, int type, int height); + + /** + * Callback to negotiate the pixel format. Decoding only, may be set by the + * caller before avcodec_open2(). + * + * Called by some decoders to select the pixel format that will be used for + * the output frames. This is mainly used to set up hardware acceleration, + * then the provided format list contains the corresponding hwaccel pixel + * formats alongside the "software" one. The software pixel format may also + * be retrieved from \ref sw_pix_fmt. + * + * This callback will be called when the coded frame properties (such as + * resolution, pixel format, etc.) change and more than one output format is + * supported for those new properties. If a hardware pixel format is chosen + * and initialization for it fails, the callback may be called again + * immediately. + * + * This callback may be called from different threads if the decoder is + * multi-threaded, but not from more than one thread simultaneously. + * + * @param fmt list of formats which may be used in the current + * configuration, terminated by AV_PIX_FMT_NONE. + * @warning Behavior is undefined if the callback returns a value other + * than one of the formats in fmt or AV_PIX_FMT_NONE. + * @return the chosen format or AV_PIX_FMT_NONE + */ + enum AVPixelFormat (*get_format)(struct AVCodecContext *s, const enum AVPixelFormat * fmt); + + /** + * maximum number of B-frames between non-B-frames + * Note: The output will be delayed by max_b_frames+1 relative to the input. + * - encoding: Set by user. + * - decoding: unused + */ + int max_b_frames; + + /** + * qscale factor between IP and B-frames + * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset). + * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). + * - encoding: Set by user. + * - decoding: unused + */ + float b_quant_factor; + + /** + * qscale offset between IP and B-frames + * - encoding: Set by user. + * - decoding: unused + */ + float b_quant_offset; + + /** + * qscale factor between P- and I-frames + * If > 0 then the last P-frame quantizer will be used (q = lastp_q * factor + offset). + * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). + * - encoding: Set by user. + * - decoding: unused + */ + float i_quant_factor; + + /** + * qscale offset between P and I-frames + * - encoding: Set by user. + * - decoding: unused + */ + float i_quant_offset; + + /** + * luminance masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float lumi_masking; + + /** + * temporary complexity masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float temporal_cplx_masking; + + /** + * spatial complexity masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float spatial_cplx_masking; + + /** + * p block masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float p_masking; + + /** + * darkness masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float dark_masking; + + /** + * noise vs. sse weight for the nsse comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int nsse_weight; + + /** + * motion estimation comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int me_cmp; + /** + * subpixel motion estimation comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int me_sub_cmp; + /** + * macroblock comparison function (not supported yet) + * - encoding: Set by user. + * - decoding: unused + */ + int mb_cmp; + /** + * interlaced DCT comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int ildct_cmp; +#define FF_CMP_SAD 0 +#define FF_CMP_SSE 1 +#define FF_CMP_SATD 2 +#define FF_CMP_DCT 3 +#define FF_CMP_PSNR 4 +#define FF_CMP_BIT 5 +#define FF_CMP_RD 6 +#define FF_CMP_ZERO 7 +#define FF_CMP_VSAD 8 +#define FF_CMP_VSSE 9 +#define FF_CMP_NSSE 10 +#define FF_CMP_W53 11 +#define FF_CMP_W97 12 +#define FF_CMP_DCTMAX 13 +#define FF_CMP_DCT264 14 +#define FF_CMP_MEDIAN_SAD 15 +#define FF_CMP_CHROMA 256 + + /** + * ME diamond size & shape + * - encoding: Set by user. + * - decoding: unused + */ + int dia_size; + + /** + * amount of previous MV predictors (2a+1 x 2a+1 square) + * - encoding: Set by user. + * - decoding: unused + */ + int last_predictor_count; + + /** + * motion estimation prepass comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int me_pre_cmp; + + /** + * ME prepass diamond size & shape + * - encoding: Set by user. + * - decoding: unused + */ + int pre_dia_size; + + /** + * subpel ME quality + * - encoding: Set by user. + * - decoding: unused + */ + int me_subpel_quality; + + /** + * maximum motion estimation search range in subpel units + * If 0 then no limit. + * + * - encoding: Set by user. + * - decoding: unused + */ + int me_range; + + /** + * macroblock decision mode + * - encoding: Set by user. + * - decoding: unused + */ + int mb_decision; +#define FF_MB_DECISION_SIMPLE 0 ///< uses mb_cmp +#define FF_MB_DECISION_BITS 1 ///< chooses the one which needs the fewest bits +#define FF_MB_DECISION_RD 2 ///< rate distortion + + /** + * custom intra quantization matrix + * Must be allocated with the av_malloc() family of functions, and will be freed in + * avcodec_free_context(). + * - encoding: Set/allocated by user, freed by libavcodec. Can be NULL. + * - decoding: Set/allocated/freed by libavcodec. + */ + uint16_t *intra_matrix; + + /** + * custom inter quantization matrix + * Must be allocated with the av_malloc() family of functions, and will be freed in + * avcodec_free_context(). + * - encoding: Set/allocated by user, freed by libavcodec. Can be NULL. + * - decoding: Set/allocated/freed by libavcodec. + */ + uint16_t *inter_matrix; + + /** + * custom intra quantization matrix + * - encoding: Set by user, can be NULL. + * - decoding: unused. + */ + uint16_t *chroma_intra_matrix; + + /** + * precision of the intra DC coefficient - 8 + * - encoding: Set by user. + * - decoding: Set by libavcodec + */ + int intra_dc_precision; + + /** + * minimum MB Lagrange multiplier + * - encoding: Set by user. + * - decoding: unused + */ + int mb_lmin; + + /** + * maximum MB Lagrange multiplier + * - encoding: Set by user. + * - decoding: unused + */ + int mb_lmax; + + /** + * - encoding: Set by user. + * - decoding: unused + */ + int bidir_refine; + + /** + * minimum GOP size + * - encoding: Set by user. + * - decoding: unused + */ + int keyint_min; + + /** + * the number of pictures in a group of pictures, or 0 for intra_only + * - encoding: Set by user. + * - decoding: unused + */ + int gop_size; + + /** + * Note: Value depends upon the compare function used for fullpel ME. + * - encoding: Set by user. + * - decoding: unused + */ + int mv0_threshold; + + /** + * Number of slices. + * Indicates number of picture subdivisions. Used for parallelized + * decoding. + * - encoding: Set by user + * - decoding: unused + */ + int slices; + + /* audio only */ + int sample_rate; ///< samples per second + + /** + * audio sample format + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + enum AVSampleFormat sample_fmt; ///< sample format + + /** + * Audio channel layout. + * - encoding: must be set by the caller, to one of AVCodec.ch_layouts. + * - decoding: may be set by the caller if known e.g. from the container. + * The decoder can then override during decoding as needed. + */ + AVChannelLayout ch_layout; + + /* The following data should not be initialized. */ + /** + * Number of samples per channel in an audio frame. + * + * - encoding: set by libavcodec in avcodec_open2(). Each submitted frame + * except the last must contain exactly frame_size samples per channel. + * May be 0 when the codec has AV_CODEC_CAP_VARIABLE_FRAME_SIZE set, then the + * frame size is not restricted. + * - decoding: may be set by some decoders to indicate constant frame size + */ + int frame_size; + + /** + * number of bytes per packet if constant and known or 0 + * Used by some WAV based audio codecs. + */ + int block_align; + + /** + * Audio cutoff bandwidth (0 means "automatic") + * - encoding: Set by user. + * - decoding: unused + */ + int cutoff; + + /** + * Type of service that the audio stream conveys. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + enum AVAudioServiceType audio_service_type; + + /** + * desired sample format + * - encoding: Not used. + * - decoding: Set by user. + * Decoder will decode to this format if it can. + */ + enum AVSampleFormat request_sample_fmt; + + /** + * Audio only. The number of "priming" samples (padding) inserted by the + * encoder at the beginning of the audio. I.e. this number of leading + * decoded samples must be discarded by the caller to get the original audio + * without leading padding. + * + * - decoding: unused + * - encoding: Set by libavcodec. The timestamps on the output packets are + * adjusted by the encoder so that they always refer to the + * first sample of the data actually contained in the packet, + * including any added padding. E.g. if the timebase is + * 1/samplerate and the timestamp of the first input sample is + * 0, the timestamp of the first output packet will be + * -initial_padding. + */ + int initial_padding; + + /** + * Audio only. The amount of padding (in samples) appended by the encoder to + * the end of the audio. I.e. this number of decoded samples must be + * discarded by the caller from the end of the stream to get the original + * audio without any trailing padding. + * + * - decoding: unused + * - encoding: unused + */ + int trailing_padding; + + /** + * Number of samples to skip after a discontinuity + * - decoding: unused + * - encoding: set by libavcodec + */ + int seek_preroll; + + /** + * This callback is called at the beginning of each frame to get data + * buffer(s) for it. There may be one contiguous buffer for all the data or + * there may be a buffer per each data plane or anything in between. What + * this means is, you may set however many entries in buf[] you feel necessary. + * Each buffer must be reference-counted using the AVBuffer API (see description + * of buf[] below). + * + * The following fields will be set in the frame before this callback is + * called: + * - format + * - width, height (video only) + * - sample_rate, channel_layout, nb_samples (audio only) + * Their values may differ from the corresponding values in + * AVCodecContext. This callback must use the frame values, not the codec + * context values, to calculate the required buffer size. + * + * This callback must fill the following fields in the frame: + * - data[] + * - linesize[] + * - extended_data: + * * if the data is planar audio with more than 8 channels, then this + * callback must allocate and fill extended_data to contain all pointers + * to all data planes. data[] must hold as many pointers as it can. + * extended_data must be allocated with av_malloc() and will be freed in + * av_frame_unref(). + * * otherwise extended_data must point to data + * - buf[] must contain one or more pointers to AVBufferRef structures. Each of + * the frame's data and extended_data pointers must be contained in these. That + * is, one AVBufferRef for each allocated chunk of memory, not necessarily one + * AVBufferRef per data[] entry. See: av_buffer_create(), av_buffer_alloc(), + * and av_buffer_ref(). + * - extended_buf and nb_extended_buf must be allocated with av_malloc() by + * this callback and filled with the extra buffers if there are more + * buffers than buf[] can hold. extended_buf will be freed in + * av_frame_unref(). + * Decoders will generally initialize the whole buffer before it is output + * but it can in rare error conditions happen that uninitialized data is passed + * through. \important The buffers returned by get_buffer* should thus not contain sensitive + * data. + * + * If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call + * avcodec_default_get_buffer2() instead of providing buffers allocated by + * some other means. + * + * Each data plane must be aligned to the maximum required by the target + * CPU. + * + * @see avcodec_default_get_buffer2() + * + * Video: + * + * If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused + * (read and/or written to if it is writable) later by libavcodec. + * + * avcodec_align_dimensions2() should be used to find the required width and + * height, as they normally need to be rounded up to the next multiple of 16. + * + * Some decoders do not support linesizes changing between frames. + * + * If frame multithreading is used, this callback may be called from a + * different thread, but not from more than one at once. Does not need to be + * reentrant. + * + * @see avcodec_align_dimensions2() + * + * Audio: + * + * Decoders request a buffer of a particular size by setting + * AVFrame.nb_samples prior to calling get_buffer2(). The decoder may, + * however, utilize only part of the buffer by setting AVFrame.nb_samples + * to a smaller value in the output frame. + * + * As a convenience, av_samples_get_buffer_size() and + * av_samples_fill_arrays() in libavutil may be used by custom get_buffer2() + * functions to find the required data size and to fill data pointers and + * linesize. In AVFrame.linesize, only linesize[0] may be set for audio + * since all planes must be the same size. + * + * @see av_samples_get_buffer_size(), av_samples_fill_arrays() + * + * - encoding: unused + * - decoding: Set by libavcodec, user can override. + */ + int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int flags); + + /* - encoding parameters */ + /** + * number of bits the bitstream is allowed to diverge from the reference. + * the reference can be CBR (for CBR pass1) or VBR (for pass2) + * - encoding: Set by user; unused for constant quantizer encoding. + * - decoding: unused + */ + int bit_rate_tolerance; + + /** + * Global quality for codecs which cannot change it per frame. + * This should be proportional to MPEG-1/2/4 qscale. + * - encoding: Set by user. + * - decoding: unused + */ + int global_quality; + + /** + * - encoding: Set by user. + * - decoding: unused + */ + int compression_level; +#define FF_COMPRESSION_DEFAULT -1 + + float qcompress; ///< amount of qscale change between easy & hard scenes (0.0-1.0) + float qblur; ///< amount of qscale smoothing over time (0.0-1.0) + + /** + * minimum quantizer + * - encoding: Set by user. + * - decoding: unused + */ + int qmin; + + /** + * maximum quantizer + * - encoding: Set by user. + * - decoding: unused + */ + int qmax; + + /** + * maximum quantizer difference between frames + * - encoding: Set by user. + * - decoding: unused + */ + int max_qdiff; + + /** + * decoder bitstream buffer size + * - encoding: Set by user. + * - decoding: May be set by libavcodec. + */ + int rc_buffer_size; + + /** + * ratecontrol override, see RcOverride + * - encoding: Allocated/set/freed by user. + * - decoding: unused + */ + int rc_override_count; + RcOverride *rc_override; + + /** + * maximum bitrate + * - encoding: Set by user. + * - decoding: Set by user, may be overwritten by libavcodec. + */ + int64_t rc_max_rate; + + /** + * minimum bitrate + * - encoding: Set by user. + * - decoding: unused + */ + int64_t rc_min_rate; + + /** + * Ratecontrol attempt to use, at maximum, of what can be used without an underflow. + * - encoding: Set by user. + * - decoding: unused. + */ + float rc_max_available_vbv_use; + + /** + * Ratecontrol attempt to use, at least, times the amount needed to prevent a vbv overflow. + * - encoding: Set by user. + * - decoding: unused. + */ + float rc_min_vbv_overflow_use; + + /** + * Number of bits which should be loaded into the rc buffer before decoding starts. + * - encoding: Set by user. + * - decoding: unused + */ + int rc_initial_buffer_occupancy; + + /** + * trellis RD quantization + * - encoding: Set by user. + * - decoding: unused + */ + int trellis; + + /** + * pass1 encoding statistics output buffer + * - encoding: Set by libavcodec. + * - decoding: unused + */ + char *stats_out; + + /** + * pass2 encoding statistics input buffer + * Concatenated stuff from stats_out of pass1 should be placed here. + * - encoding: Allocated/set/freed by user. + * - decoding: unused + */ + char *stats_in; + + /** + * Work around bugs in encoders which sometimes cannot be detected automatically. + * - encoding: Set by user + * - decoding: Set by user + */ + int workaround_bugs; +#define FF_BUG_AUTODETECT 1 ///< autodetection +#define FF_BUG_XVID_ILACE 4 +#define FF_BUG_UMP4 8 +#define FF_BUG_NO_PADDING 16 +#define FF_BUG_AMV 32 +#define FF_BUG_QPEL_CHROMA 64 +#define FF_BUG_STD_QPEL 128 +#define FF_BUG_QPEL_CHROMA2 256 +#define FF_BUG_DIRECT_BLOCKSIZE 512 +#define FF_BUG_EDGE 1024 +#define FF_BUG_HPEL_CHROMA 2048 +#define FF_BUG_DC_CLIP 4096 +#define FF_BUG_MS 8192 ///< Work around various bugs in Microsoft's broken decoders. +#define FF_BUG_TRUNCATED 16384 +#define FF_BUG_IEDGE 32768 + + /** + * strictly follow the standard (MPEG-4, ...). + * - encoding: Set by user. + * - decoding: Set by user. + * Setting this to STRICT or higher means the encoder and decoder will + * generally do stupid things, whereas setting it to unofficial or lower + * will mean the encoder might produce output that is not supported by all + * spec-compliant decoders. Decoders don't differentiate between normal, + * unofficial and experimental (that is, they always try to decode things + * when they can) unless they are explicitly asked to behave stupidly + * (=strictly conform to the specs) + * This may only be set to one of the FF_COMPLIANCE_* values in defs.h. + */ + int strict_std_compliance; + + /** + * error concealment flags + * - encoding: unused + * - decoding: Set by user. + */ + int error_concealment; +#define FF_EC_GUESS_MVS 1 +#define FF_EC_DEBLOCK 2 +#define FF_EC_FAVOR_INTER 256 + + /** + * debug + * - encoding: Set by user. + * - decoding: Set by user. + */ + int debug; +#define FF_DEBUG_PICT_INFO 1 +#define FF_DEBUG_RC 2 +#define FF_DEBUG_BITSTREAM 4 +#define FF_DEBUG_MB_TYPE 8 +#define FF_DEBUG_QP 16 +#define FF_DEBUG_DCT_COEFF 0x00000040 +#define FF_DEBUG_SKIP 0x00000080 +#define FF_DEBUG_STARTCODE 0x00000100 +#define FF_DEBUG_ER 0x00000400 +#define FF_DEBUG_MMCO 0x00000800 +#define FF_DEBUG_BUGS 0x00001000 +#define FF_DEBUG_BUFFERS 0x00008000 +#define FF_DEBUG_THREADS 0x00010000 +#define FF_DEBUG_GREEN_MD 0x00800000 +#define FF_DEBUG_NOMC 0x01000000 + + /** + * Error recognition; may misdetect some more or less valid parts as errors. + * This is a bitfield of the AV_EF_* values defined in defs.h. + * + * - encoding: Set by user. + * - decoding: Set by user. + */ + int err_recognition; + + /** + * Hardware accelerator in use + * - encoding: unused. + * - decoding: Set by libavcodec + */ + const struct AVHWAccel *hwaccel; + + /** + * Legacy hardware accelerator context. + * + * For some hardware acceleration methods, the caller may use this field to + * signal hwaccel-specific data to the codec. The struct pointed to by this + * pointer is hwaccel-dependent and defined in the respective header. Please + * refer to the FFmpeg HW accelerator documentation to know how to fill + * this. + * + * In most cases this field is optional - the necessary information may also + * be provided to libavcodec through @ref hw_frames_ctx or @ref + * hw_device_ctx (see avcodec_get_hw_config()). However, in some cases it + * may be the only method of signalling some (optional) information. + * + * The struct and its contents are owned by the caller. + * + * - encoding: May be set by the caller before avcodec_open2(). Must remain + * valid until avcodec_free_context(). + * - decoding: May be set by the caller in the get_format() callback. + * Must remain valid until the next get_format() call, + * or avcodec_free_context() (whichever comes first). + */ + void *hwaccel_context; + + /** + * A reference to the AVHWFramesContext describing the input (for encoding) + * or output (decoding) frames. The reference is set by the caller and + * afterwards owned (and freed) by libavcodec - it should never be read by + * the caller after being set. + * + * - decoding: This field should be set by the caller from the get_format() + * callback. The previous reference (if any) will always be + * unreffed by libavcodec before the get_format() call. + * + * If the default get_buffer2() is used with a hwaccel pixel + * format, then this AVHWFramesContext will be used for + * allocating the frame buffers. + * + * - encoding: For hardware encoders configured to use a hwaccel pixel + * format, this field should be set by the caller to a reference + * to the AVHWFramesContext describing input frames. + * AVHWFramesContext.format must be equal to + * AVCodecContext.pix_fmt. + * + * This field should be set before avcodec_open2() is called. + */ + AVBufferRef *hw_frames_ctx; + + /** + * A reference to the AVHWDeviceContext describing the device which will + * be used by a hardware encoder/decoder. The reference is set by the + * caller and afterwards owned (and freed) by libavcodec. + * + * This should be used if either the codec device does not require + * hardware frames or any that are used are to be allocated internally by + * libavcodec. If the user wishes to supply any of the frames used as + * encoder input or decoder output then hw_frames_ctx should be used + * instead. When hw_frames_ctx is set in get_format() for a decoder, this + * field will be ignored while decoding the associated stream segment, but + * may again be used on a following one after another get_format() call. + * + * For both encoders and decoders this field should be set before + * avcodec_open2() is called and must not be written to thereafter. + * + * Note that some decoders may require this field to be set initially in + * order to support hw_frames_ctx at all - in that case, all frames + * contexts used must be created on the same device. + */ + AVBufferRef *hw_device_ctx; + + /** + * Bit set of AV_HWACCEL_FLAG_* flags, which affect hardware accelerated + * decoding (if active). + * - encoding: unused + * - decoding: Set by user (either before avcodec_open2(), or in the + * AVCodecContext.get_format callback) + */ + int hwaccel_flags; + + /** + * Video decoding only. Sets the number of extra hardware frames which + * the decoder will allocate for use by the caller. This must be set + * before avcodec_open2() is called. + * + * Some hardware decoders require all frames that they will use for + * output to be defined in advance before decoding starts. For such + * decoders, the hardware frame pool must therefore be of a fixed size. + * The extra frames set here are on top of any number that the decoder + * needs internally in order to operate normally (for example, frames + * used as reference pictures). + */ + int extra_hw_frames; + + /** + * error + * - encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR. + * - decoding: unused + */ + uint64_t error[AV_NUM_DATA_POINTERS]; + + /** + * DCT algorithm, see FF_DCT_* below + * - encoding: Set by user. + * - decoding: unused + */ + int dct_algo; +#define FF_DCT_AUTO 0 +#define FF_DCT_FASTINT 1 +#define FF_DCT_INT 2 +#define FF_DCT_MMX 3 +#define FF_DCT_ALTIVEC 5 +#define FF_DCT_FAAN 6 +#define FF_DCT_NEON 7 + + /** + * IDCT algorithm, see FF_IDCT_* below. + * - encoding: Set by user. + * - decoding: Set by user. + */ + int idct_algo; +#define FF_IDCT_AUTO 0 +#define FF_IDCT_INT 1 +#define FF_IDCT_SIMPLE 2 +#define FF_IDCT_SIMPLEMMX 3 +#define FF_IDCT_ARM 7 +#define FF_IDCT_ALTIVEC 8 +#define FF_IDCT_SIMPLEARM 10 +#define FF_IDCT_XVID 14 +#define FF_IDCT_SIMPLEARMV5TE 16 +#define FF_IDCT_SIMPLEARMV6 17 +#define FF_IDCT_FAAN 20 +#define FF_IDCT_SIMPLENEON 22 +#define FF_IDCT_SIMPLEAUTO 128 + + /** + * bits per sample/pixel from the demuxer (needed for huffyuv). + * - encoding: Set by libavcodec. + * - decoding: Set by user. + */ + int bits_per_coded_sample; + + /** + * Bits per sample/pixel of internal libavcodec pixel/sample format. + * - encoding: set by user. + * - decoding: set by libavcodec. + */ + int bits_per_raw_sample; + + /** + * thread count + * is used to decide how many independent tasks should be passed to execute() + * - encoding: Set by user. + * - decoding: Set by user. + */ + int thread_count; + + /** + * Which multithreading methods to use. + * Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread, + * so clients which cannot provide future frames should not use it. + * + * - encoding: Set by user, otherwise the default is used. + * - decoding: Set by user, otherwise the default is used. + */ + int thread_type; +#define FF_THREAD_FRAME 1 ///< Decode more than one frame at once +#define FF_THREAD_SLICE 2 ///< Decode more than one part of a single frame at once + + /** + * Which multithreading methods are in use by the codec. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int active_thread_type; + + /** + * The codec may call this to execute several independent things. + * It will return only after finishing all tasks. + * The user may replace this with some multithreaded implementation, + * the default implementation will execute the parts serially. + * @param count the number of things to execute + * - encoding: Set by libavcodec, user can override. + * - decoding: Set by libavcodec, user can override. + */ + int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size); + + /** + * The codec may call this to execute several independent things. + * It will return only after finishing all tasks. + * The user may replace this with some multithreaded implementation, + * the default implementation will execute the parts serially. + * @param c context passed also to func + * @param count the number of things to execute + * @param arg2 argument passed unchanged to func + * @param ret return values of executed functions, must have space for "count" values. May be NULL. + * @param func function that will be called count times, with jobnr from 0 to count-1. + * threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no + * two instances of func executing at the same time will have the same threadnr. + * @return always 0 currently, but code should handle a future improvement where when any call to func + * returns < 0 no further calls to func may be done and < 0 is returned. + * - encoding: Set by libavcodec, user can override. + * - decoding: Set by libavcodec, user can override. + */ + int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count); + + /** + * profile + * - encoding: Set by user. + * - decoding: Set by libavcodec. + * See the AV_PROFILE_* defines in defs.h. + */ + int profile; +#if FF_API_FF_PROFILE_LEVEL + /** @deprecated The following defines are deprecated; use AV_PROFILE_* + * in defs.h instead. */ +#define FF_PROFILE_UNKNOWN -99 +#define FF_PROFILE_RESERVED -100 + +#define FF_PROFILE_AAC_MAIN 0 +#define FF_PROFILE_AAC_LOW 1 +#define FF_PROFILE_AAC_SSR 2 +#define FF_PROFILE_AAC_LTP 3 +#define FF_PROFILE_AAC_HE 4 +#define FF_PROFILE_AAC_HE_V2 28 +#define FF_PROFILE_AAC_LD 22 +#define FF_PROFILE_AAC_ELD 38 +#define FF_PROFILE_MPEG2_AAC_LOW 128 +#define FF_PROFILE_MPEG2_AAC_HE 131 + +#define FF_PROFILE_DNXHD 0 +#define FF_PROFILE_DNXHR_LB 1 +#define FF_PROFILE_DNXHR_SQ 2 +#define FF_PROFILE_DNXHR_HQ 3 +#define FF_PROFILE_DNXHR_HQX 4 +#define FF_PROFILE_DNXHR_444 5 + +#define FF_PROFILE_DTS 20 +#define FF_PROFILE_DTS_ES 30 +#define FF_PROFILE_DTS_96_24 40 +#define FF_PROFILE_DTS_HD_HRA 50 +#define FF_PROFILE_DTS_HD_MA 60 +#define FF_PROFILE_DTS_EXPRESS 70 +#define FF_PROFILE_DTS_HD_MA_X 61 +#define FF_PROFILE_DTS_HD_MA_X_IMAX 62 + + +#define FF_PROFILE_EAC3_DDP_ATMOS 30 + +#define FF_PROFILE_TRUEHD_ATMOS 30 + +#define FF_PROFILE_MPEG2_422 0 +#define FF_PROFILE_MPEG2_HIGH 1 +#define FF_PROFILE_MPEG2_SS 2 +#define FF_PROFILE_MPEG2_SNR_SCALABLE 3 +#define FF_PROFILE_MPEG2_MAIN 4 +#define FF_PROFILE_MPEG2_SIMPLE 5 + +#define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag +#define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag + +#define FF_PROFILE_H264_BASELINE 66 +#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED) +#define FF_PROFILE_H264_MAIN 77 +#define FF_PROFILE_H264_EXTENDED 88 +#define FF_PROFILE_H264_HIGH 100 +#define FF_PROFILE_H264_HIGH_10 110 +#define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_MULTIVIEW_HIGH 118 +#define FF_PROFILE_H264_HIGH_422 122 +#define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_STEREO_HIGH 128 +#define FF_PROFILE_H264_HIGH_444 144 +#define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244 +#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_CAVLC_444 44 + +#define FF_PROFILE_VC1_SIMPLE 0 +#define FF_PROFILE_VC1_MAIN 1 +#define FF_PROFILE_VC1_COMPLEX 2 +#define FF_PROFILE_VC1_ADVANCED 3 + +#define FF_PROFILE_MPEG4_SIMPLE 0 +#define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1 +#define FF_PROFILE_MPEG4_CORE 2 +#define FF_PROFILE_MPEG4_MAIN 3 +#define FF_PROFILE_MPEG4_N_BIT 4 +#define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5 +#define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6 +#define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7 +#define FF_PROFILE_MPEG4_HYBRID 8 +#define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9 +#define FF_PROFILE_MPEG4_CORE_SCALABLE 10 +#define FF_PROFILE_MPEG4_ADVANCED_CODING 11 +#define FF_PROFILE_MPEG4_ADVANCED_CORE 12 +#define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13 +#define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14 +#define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15 + +#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 1 +#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 2 +#define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 32768 +#define FF_PROFILE_JPEG2000_DCINEMA_2K 3 +#define FF_PROFILE_JPEG2000_DCINEMA_4K 4 + +#define FF_PROFILE_VP9_0 0 +#define FF_PROFILE_VP9_1 1 +#define FF_PROFILE_VP9_2 2 +#define FF_PROFILE_VP9_3 3 + +#define FF_PROFILE_HEVC_MAIN 1 +#define FF_PROFILE_HEVC_MAIN_10 2 +#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3 +#define FF_PROFILE_HEVC_REXT 4 +#define FF_PROFILE_HEVC_SCC 9 + +#define FF_PROFILE_VVC_MAIN_10 1 +#define FF_PROFILE_VVC_MAIN_10_444 33 + +#define FF_PROFILE_AV1_MAIN 0 +#define FF_PROFILE_AV1_HIGH 1 +#define FF_PROFILE_AV1_PROFESSIONAL 2 + +#define FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT 0xc0 +#define FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT 0xc1 +#define FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT 0xc2 +#define FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS 0xc3 +#define FF_PROFILE_MJPEG_JPEG_LS 0xf7 + +#define FF_PROFILE_SBC_MSBC 1 + +#define FF_PROFILE_PRORES_PROXY 0 +#define FF_PROFILE_PRORES_LT 1 +#define FF_PROFILE_PRORES_STANDARD 2 +#define FF_PROFILE_PRORES_HQ 3 +#define FF_PROFILE_PRORES_4444 4 +#define FF_PROFILE_PRORES_XQ 5 + +#define FF_PROFILE_ARIB_PROFILE_A 0 +#define FF_PROFILE_ARIB_PROFILE_C 1 + +#define FF_PROFILE_KLVA_SYNC 0 +#define FF_PROFILE_KLVA_ASYNC 1 + +#define FF_PROFILE_EVC_BASELINE 0 +#define FF_PROFILE_EVC_MAIN 1 +#endif + + /** + * Encoding level descriptor. + * - encoding: Set by user, corresponds to a specific level defined by the + * codec, usually corresponding to the profile level, if not specified it + * is set to FF_LEVEL_UNKNOWN. + * - decoding: Set by libavcodec. + * See AV_LEVEL_* in defs.h. + */ + int level; +#if FF_API_FF_PROFILE_LEVEL + /** @deprecated The following define is deprecated; use AV_LEVEL_UNKOWN + * in defs.h instead. */ +#define FF_LEVEL_UNKNOWN -99 +#endif + + /** + * Properties of the stream that gets decoded + * - encoding: unused + * - decoding: set by libavcodec + */ + unsigned properties; +#define FF_CODEC_PROPERTY_LOSSLESS 0x00000001 +#define FF_CODEC_PROPERTY_CLOSED_CAPTIONS 0x00000002 +#define FF_CODEC_PROPERTY_FILM_GRAIN 0x00000004 + + /** + * Skip loop filtering for selected frames. + * - encoding: unused + * - decoding: Set by user. + */ + enum AVDiscard skip_loop_filter; + + /** + * Skip IDCT/dequantization for selected frames. + * - encoding: unused + * - decoding: Set by user. + */ + enum AVDiscard skip_idct; + + /** + * Skip decoding for selected frames. + * - encoding: unused + * - decoding: Set by user. + */ + enum AVDiscard skip_frame; + + /** + * Skip processing alpha if supported by codec. + * Note that if the format uses pre-multiplied alpha (common with VP6, + * and recommended due to better video quality/compression) + * the image will look as if alpha-blended onto a black background. + * However for formats that do not use pre-multiplied alpha + * there might be serious artefacts (though e.g. libswscale currently + * assumes pre-multiplied alpha anyway). + * + * - decoding: set by user + * - encoding: unused + */ + int skip_alpha; + + /** + * Number of macroblock rows at the top which are skipped. + * - encoding: unused + * - decoding: Set by user. + */ + int skip_top; + + /** + * Number of macroblock rows at the bottom which are skipped. + * - encoding: unused + * - decoding: Set by user. + */ + int skip_bottom; + + /** + * low resolution decoding, 1-> 1/2 size, 2->1/4 size + * - encoding: unused + * - decoding: Set by user. + */ + int lowres; + + /** + * AVCodecDescriptor + * - encoding: unused. + * - decoding: set by libavcodec. + */ + const struct AVCodecDescriptor *codec_descriptor; + + /** + * Character encoding of the input subtitles file. + * - decoding: set by user + * - encoding: unused + */ + char *sub_charenc; + + /** + * Subtitles character encoding mode. Formats or codecs might be adjusting + * this setting (if they are doing the conversion themselves for instance). + * - decoding: set by libavcodec + * - encoding: unused + */ + int sub_charenc_mode; +#define FF_SUB_CHARENC_MODE_DO_NOTHING -1 ///< do nothing (demuxer outputs a stream supposed to be already in UTF-8, or the codec is bitmap for instance) +#define FF_SUB_CHARENC_MODE_AUTOMATIC 0 ///< libavcodec will select the mode itself +#define FF_SUB_CHARENC_MODE_PRE_DECODER 1 ///< the AVPacket data needs to be recoded to UTF-8 before being fed to the decoder, requires iconv +#define FF_SUB_CHARENC_MODE_IGNORE 2 ///< neither convert the subtitles, nor check them for valid UTF-8 + + /** + * Header containing style information for text subtitles. + * For SUBTITLE_ASS subtitle type, it should contain the whole ASS + * [Script Info] and [V4+ Styles] section, plus the [Events] line and + * the Format line following. It shouldn't include any Dialogue line. + * - encoding: Set/allocated/freed by user (before avcodec_open2()) + * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2()) + */ + int subtitle_header_size; + uint8_t *subtitle_header; + + /** + * dump format separator. + * can be ", " or "\n " or anything else + * - encoding: Set by user. + * - decoding: Set by user. + */ + uint8_t *dump_separator; + + /** + * ',' separated list of allowed decoders. + * If NULL then all are allowed + * - encoding: unused + * - decoding: set by user + */ + char *codec_whitelist; + + /** + * Additional data associated with the entire coded stream. + * + * - decoding: may be set by user before calling avcodec_open2(). + * - encoding: may be set by libavcodec after avcodec_open2(). + */ + AVPacketSideData *coded_side_data; + int nb_coded_side_data; + + /** + * Bit set of AV_CODEC_EXPORT_DATA_* flags, which affects the kind of + * metadata exported in frame, packet, or coded stream side data by + * decoders and encoders. + * + * - decoding: set by user + * - encoding: set by user + */ + int export_side_data; + + /** + * The number of pixels per image to maximally accept. + * + * - decoding: set by user + * - encoding: set by user + */ + int64_t max_pixels; + + /** + * Video decoding only. Certain video codecs support cropping, meaning that + * only a sub-rectangle of the decoded frame is intended for display. This + * option controls how cropping is handled by libavcodec. + * + * When set to 1 (the default), libavcodec will apply cropping internally. + * I.e. it will modify the output frame width/height fields and offset the + * data pointers (only by as much as possible while preserving alignment, or + * by the full amount if the AV_CODEC_FLAG_UNALIGNED flag is set) so that + * the frames output by the decoder refer only to the cropped area. The + * crop_* fields of the output frames will be zero. + * + * When set to 0, the width/height fields of the output frames will be set + * to the coded dimensions and the crop_* fields will describe the cropping + * rectangle. Applying the cropping is left to the caller. + * + * @warning When hardware acceleration with opaque output frames is used, + * libavcodec is unable to apply cropping from the top/left border. + * + * @note when this option is set to zero, the width/height fields of the + * AVCodecContext and output AVFrames have different meanings. The codec + * context fields store display dimensions (with the coded dimensions in + * coded_width/height), while the frame fields store the coded dimensions + * (with the display dimensions being determined by the crop_* fields). + */ + int apply_cropping; + + /** + * The percentage of damaged samples to discard a frame. + * + * - decoding: set by user + * - encoding: unused + */ + int discard_damaged_percentage; + + /** + * The number of samples per frame to maximally accept. + * + * - decoding: set by user + * - encoding: set by user + */ + int64_t max_samples; + + /** + * This callback is called at the beginning of each packet to get a data + * buffer for it. + * + * The following field will be set in the packet before this callback is + * called: + * - size + * This callback must use the above value to calculate the required buffer size, + * which must padded by at least AV_INPUT_BUFFER_PADDING_SIZE bytes. + * + * In some specific cases, the encoder may not use the entire buffer allocated by this + * callback. This will be reflected in the size value in the packet once returned by + * avcodec_receive_packet(). + * + * This callback must fill the following fields in the packet: + * - data: alignment requirements for AVPacket apply, if any. Some architectures and + * encoders may benefit from having aligned data. + * - buf: must contain a pointer to an AVBufferRef structure. The packet's + * data pointer must be contained in it. See: av_buffer_create(), av_buffer_alloc(), + * and av_buffer_ref(). + * + * If AV_CODEC_CAP_DR1 is not set then get_encode_buffer() must call + * avcodec_default_get_encode_buffer() instead of providing a buffer allocated by + * some other means. + * + * The flags field may contain a combination of AV_GET_ENCODE_BUFFER_FLAG_ flags. + * They may be used for example to hint what use the buffer may get after being + * created. + * Implementations of this callback may ignore flags they don't understand. + * If AV_GET_ENCODE_BUFFER_FLAG_REF is set in flags then the packet may be reused + * (read and/or written to if it is writable) later by libavcodec. + * + * This callback must be thread-safe, as when frame threading is used, it may + * be called from multiple threads simultaneously. + * + * @see avcodec_default_get_encode_buffer() + * + * - encoding: Set by libavcodec, user can override. + * - decoding: unused + */ + int (*get_encode_buffer)(struct AVCodecContext *s, AVPacket *pkt, int flags); + + /** + * Frame counter, set by libavcodec. + * + * - decoding: total number of frames returned from the decoder so far. + * - encoding: total number of frames passed to the encoder so far. + * + * @note the counter is not incremented if encoding/decoding resulted in + * an error. + */ + int64_t frame_num; + + /** + * Decoding only. May be set by the caller before avcodec_open2() to an + * av_malloc()'ed array (or via AVOptions). Owned and freed by the decoder + * afterwards. + * + * Side data attached to decoded frames may come from several sources: + * 1. coded_side_data, which the decoder will for certain types translate + * from packet-type to frame-type and attach to frames; + * 2. side data attached to an AVPacket sent for decoding (same + * considerations as above); + * 3. extracted from the coded bytestream. + * The first two cases are supplied by the caller and typically come from a + * container. + * + * This array configures decoder behaviour in cases when side data of the + * same type is present both in the coded bytestream and in the + * user-supplied side data (items 1. and 2. above). In all cases, at most + * one instance of each side data type will be attached to output frames. By + * default it will be the bytestream side data. Adding an + * AVPacketSideDataType value to this array will flip the preference for + * this type, thus making the decoder prefer user-supplied side data over + * bytestream. In case side data of the same type is present both in + * coded_data and attacked to a packet, the packet instance always has + * priority. + * + * The array may also contain a single -1, in which case the preference is + * switched for all side data types. + */ + int *side_data_prefer_packet; + /** + * Number of entries in side_data_prefer_packet. + */ + unsigned nb_side_data_prefer_packet; + + /** + * Array containing static side data, such as HDR10 CLL / MDCV structures. + * Side data entries should be allocated by usage of helpers defined in + * libavutil/frame.h. + * + * - encoding: may be set by user before calling avcodec_open2() for + * encoder configuration. Afterwards owned and freed by the + * encoder. + * - decoding: may be set by libavcodec in avcodec_open2(). + */ + AVFrameSideData **decoded_side_data; + int nb_decoded_side_data; +} AVCodecContext; + +/** + * @defgroup lavc_hwaccel AVHWAccel + * + * @note Nothing in this structure should be accessed by the user. At some + * point in future it will not be externally visible at all. + * + * @{ + */ +typedef struct AVHWAccel { + /** + * Name of the hardware accelerated codec. + * The name is globally unique among encoders and among decoders (but an + * encoder and a decoder can share the same name). + */ + const char *name; + + /** + * Type of codec implemented by the hardware accelerator. + * + * See AVMEDIA_TYPE_xxx + */ + enum AVMediaType type; + + /** + * Codec implemented by the hardware accelerator. + * + * See AV_CODEC_ID_xxx + */ + enum AVCodecID id; + + /** + * Supported pixel format. + * + * Only hardware accelerated formats are supported here. + */ + enum AVPixelFormat pix_fmt; + + /** + * Hardware accelerated codec capabilities. + * see AV_HWACCEL_CODEC_CAP_* + */ + int capabilities; +} AVHWAccel; + +/** + * HWAccel is experimental and is thus avoided in favor of non experimental + * codecs + */ +#define AV_HWACCEL_CODEC_CAP_EXPERIMENTAL 0x0200 + +/** + * Hardware acceleration should be used for decoding even if the codec level + * used is unknown or higher than the maximum supported level reported by the + * hardware driver. + * + * It's generally a good idea to pass this flag unless you have a specific + * reason not to, as hardware tends to under-report supported levels. + */ +#define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0) + +/** + * Hardware acceleration can output YUV pixel formats with a different chroma + * sampling than 4:2:0 and/or other than 8 bits per component. + */ +#define AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH (1 << 1) + +/** + * Hardware acceleration should still be attempted for decoding when the + * codec profile does not match the reported capabilities of the hardware. + * + * For example, this can be used to try to decode baseline profile H.264 + * streams in hardware - it will often succeed, because many streams marked + * as baseline profile actually conform to constrained baseline profile. + * + * @warning If the stream is actually not supported then the behaviour is + * undefined, and may include returning entirely incorrect output + * while indicating success. + */ +#define AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH (1 << 2) + +/** + * Some hardware decoders (namely nvdec) can either output direct decoder + * surfaces, or make an on-device copy and return said copy. + * There is a hard limit on how many decoder surfaces there can be, and it + * cannot be accurately guessed ahead of time. + * For some processing chains, this can be okay, but others will run into the + * limit and in turn produce very confusing errors that require fine tuning of + * more or less obscure options by the user, or in extreme cases cannot be + * resolved at all without inserting an avfilter that forces a copy. + * + * Thus, the hwaccel will by default make a copy for safety and resilience. + * If a users really wants to minimize the amount of copies, they can set this + * flag and ensure their processing chain does not exhaust the surface pool. + */ +#define AV_HWACCEL_FLAG_UNSAFE_OUTPUT (1 << 3) + +/** + * @} + */ + +enum AVSubtitleType { + SUBTITLE_NONE, + + SUBTITLE_BITMAP, ///< A bitmap, pict will be set + + /** + * Plain text, the text field must be set by the decoder and is + * authoritative. ass and pict fields may contain approximations. + */ + SUBTITLE_TEXT, + + /** + * Formatted text, the ass field must be set by the decoder and is + * authoritative. pict and text fields may contain approximations. + */ + SUBTITLE_ASS, +}; + +#define AV_SUBTITLE_FLAG_FORCED 0x00000001 + +typedef struct AVSubtitleRect { + int x; ///< top left corner of pict, undefined when pict is not set + int y; ///< top left corner of pict, undefined when pict is not set + int w; ///< width of pict, undefined when pict is not set + int h; ///< height of pict, undefined when pict is not set + int nb_colors; ///< number of colors in pict, undefined when pict is not set + + /** + * data+linesize for the bitmap of this subtitle. + * Can be set for text/ass as well once they are rendered. + */ + uint8_t *data[4]; + int linesize[4]; + + int flags; + enum AVSubtitleType type; + + char *text; ///< 0 terminated plain UTF-8 text + + /** + * 0 terminated ASS/SSA compatible event line. + * The presentation of this is unaffected by the other values in this + * struct. + */ + char *ass; +} AVSubtitleRect; + +typedef struct AVSubtitle { + uint16_t format; /* 0 = graphics */ + uint32_t start_display_time; /* relative to packet pts, in ms */ + uint32_t end_display_time; /* relative to packet pts, in ms */ + unsigned num_rects; + AVSubtitleRect **rects; + int64_t pts; ///< Same as packet pts, in AV_TIME_BASE +} AVSubtitle; + +/** + * Return the LIBAVCODEC_VERSION_INT constant. + */ +unsigned avcodec_version(void); + +/** + * Return the libavcodec build-time configuration. + */ +const char *avcodec_configuration(void); + +/** + * Return the libavcodec license. + */ +const char *avcodec_license(void); + +/** + * Allocate an AVCodecContext and set its fields to default values. The + * resulting struct should be freed with avcodec_free_context(). + * + * @param codec if non-NULL, allocate private data and initialize defaults + * for the given codec. It is illegal to then call avcodec_open2() + * with a different codec. + * If NULL, then the codec-specific defaults won't be initialized, + * which may result in suboptimal default settings (this is + * important mainly for encoders, e.g. libx264). + * + * @return An AVCodecContext filled with default values or NULL on failure. + */ +AVCodecContext *avcodec_alloc_context3(const AVCodec *codec); + +/** + * Free the codec context and everything associated with it and write NULL to + * the provided pointer. + */ +void avcodec_free_context(AVCodecContext **avctx); + +/** + * Get the AVClass for AVCodecContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *avcodec_get_class(void); + +/** + * Get the AVClass for AVSubtitleRect. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *avcodec_get_subtitle_rect_class(void); + +/** + * Fill the parameters struct based on the values from the supplied codec + * context. Any allocated fields in par are freed and replaced with duplicates + * of the corresponding fields in codec. + * + * @return >= 0 on success, a negative AVERROR code on failure + */ +int avcodec_parameters_from_context(struct AVCodecParameters *par, + const AVCodecContext *codec); + +/** + * Fill the codec context based on the values from the supplied codec + * parameters. Any allocated fields in codec that have a corresponding field in + * par are freed and replaced with duplicates of the corresponding field in par. + * Fields in codec that do not have a counterpart in par are not touched. + * + * @return >= 0 on success, a negative AVERROR code on failure. + */ +int avcodec_parameters_to_context(AVCodecContext *codec, + const struct AVCodecParameters *par); + +/** + * Initialize the AVCodecContext to use the given AVCodec. Prior to using this + * function the context has to be allocated with avcodec_alloc_context3(). + * + * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(), + * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for + * retrieving a codec. + * + * Depending on the codec, you might need to set options in the codec context + * also for decoding (e.g. width, height, or the pixel or audio sample format in + * the case the information is not available in the bitstream, as when decoding + * raw audio or video). + * + * Options in the codec context can be set either by setting them in the options + * AVDictionary, or by setting the values in the context itself, directly or by + * using the av_opt_set() API before calling this function. + * + * Example: + * @code + * av_dict_set(&opts, "b", "2.5M", 0); + * codec = avcodec_find_decoder(AV_CODEC_ID_H264); + * if (!codec) + * exit(1); + * + * context = avcodec_alloc_context3(codec); + * + * if (avcodec_open2(context, codec, opts) < 0) + * exit(1); + * @endcode + * + * In the case AVCodecParameters are available (e.g. when demuxing a stream + * using libavformat, and accessing the AVStream contained in the demuxer), the + * codec parameters can be copied to the codec context using + * avcodec_parameters_to_context(), as in the following example: + * + * @code + * AVStream *stream = ...; + * context = avcodec_alloc_context3(codec); + * if (avcodec_parameters_to_context(context, stream->codecpar) < 0) + * exit(1); + * if (avcodec_open2(context, codec, NULL) < 0) + * exit(1); + * @endcode + * + * @note Always call this function before using decoding routines (such as + * @ref avcodec_receive_frame()). + * + * @param avctx The context to initialize. + * @param codec The codec to open this context for. If a non-NULL codec has been + * previously passed to avcodec_alloc_context3() or + * for this context, then this parameter MUST be either NULL or + * equal to the previously passed codec. + * @param options A dictionary filled with AVCodecContext and codec-private + * options, which are set on top of the options already set in + * avctx, can be NULL. On return this object will be filled with + * options that were not found in the avctx codec context. + * + * @return zero on success, a negative value on error + * @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(), + * av_dict_set(), av_opt_set(), av_opt_find(), avcodec_parameters_to_context() + */ +int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options); + +#if FF_API_AVCODEC_CLOSE +/** + * Close a given AVCodecContext and free all the data associated with it + * (but not the AVCodecContext itself). + * + * Calling this function on an AVCodecContext that hasn't been opened will free + * the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL + * codec. Subsequent calls will do nothing. + * + * @deprecated Do not use this function. Use avcodec_free_context() to destroy a + * codec context (either open or closed). Opening and closing a codec context + * multiple times is not supported anymore -- use multiple codec contexts + * instead. + */ +attribute_deprecated +int avcodec_close(AVCodecContext *avctx); +#endif + +/** + * Free all allocated data in the given subtitle struct. + * + * @param sub AVSubtitle to free. + */ +void avsubtitle_free(AVSubtitle *sub); + +/** + * @} + */ + +/** + * @addtogroup lavc_decoding + * @{ + */ + +/** + * The default callback for AVCodecContext.get_buffer2(). It is made public so + * it can be called by custom get_buffer2() implementations for decoders without + * AV_CODEC_CAP_DR1 set. + */ +int avcodec_default_get_buffer2(AVCodecContext *s, AVFrame *frame, int flags); + +/** + * The default callback for AVCodecContext.get_encode_buffer(). It is made public so + * it can be called by custom get_encode_buffer() implementations for encoders without + * AV_CODEC_CAP_DR1 set. + */ +int avcodec_default_get_encode_buffer(AVCodecContext *s, AVPacket *pkt, int flags); + +/** + * Modify width and height values so that they will result in a memory + * buffer that is acceptable for the codec if you do not use any horizontal + * padding. + * + * May only be used if a codec with AV_CODEC_CAP_DR1 has been opened. + */ +void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height); + +/** + * Modify width and height values so that they will result in a memory + * buffer that is acceptable for the codec if you also ensure that all + * line sizes are a multiple of the respective linesize_align[i]. + * + * May only be used if a codec with AV_CODEC_CAP_DR1 has been opened. + */ +void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, + int linesize_align[AV_NUM_DATA_POINTERS]); + +/** + * Decode a subtitle message. + * Return a negative value on error, otherwise return the number of bytes used. + * If no subtitle could be decompressed, got_sub_ptr is zero. + * Otherwise, the subtitle is stored in *sub. + * Note that AV_CODEC_CAP_DR1 is not available for subtitle codecs. This is for + * simplicity, because the performance difference is expected to be negligible + * and reusing a get_buffer written for video codecs would probably perform badly + * due to a potentially very different allocation pattern. + * + * Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input + * and output. This means that for some packets they will not immediately + * produce decoded output and need to be flushed at the end of decoding to get + * all the decoded data. Flushing is done by calling this function with packets + * with avpkt->data set to NULL and avpkt->size set to 0 until it stops + * returning subtitles. It is safe to flush even those decoders that are not + * marked with AV_CODEC_CAP_DELAY, then no subtitles will be returned. + * + * @note The AVCodecContext MUST have been opened with @ref avcodec_open2() + * before packets may be fed to the decoder. + * + * @param avctx the codec context + * @param[out] sub The preallocated AVSubtitle in which the decoded subtitle will be stored, + * must be freed with avsubtitle_free if *got_sub_ptr is set. + * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero. + * @param[in] avpkt The input AVPacket containing the input buffer. + */ +int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, + int *got_sub_ptr, const AVPacket *avpkt); + +/** + * Supply raw packet data as input to a decoder. + * + * Internally, this call will copy relevant AVCodecContext fields, which can + * influence decoding per-packet, and apply them when the packet is actually + * decoded. (For example AVCodecContext.skip_frame, which might direct the + * decoder to drop the frame contained by the packet sent with this function.) + * + * @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE + * larger than the actual read bytes because some optimized bitstream + * readers read 32 or 64 bits at once and could read over the end. + * + * @note The AVCodecContext MUST have been opened with @ref avcodec_open2() + * before packets may be fed to the decoder. + * + * @param avctx codec context + * @param[in] avpkt The input AVPacket. Usually, this will be a single video + * frame, or several complete audio frames. + * Ownership of the packet remains with the caller, and the + * decoder will not write to the packet. The decoder may create + * a reference to the packet data (or copy it if the packet is + * not reference-counted). + * Unlike with older APIs, the packet is always fully consumed, + * and if it contains multiple frames (e.g. some audio codecs), + * will require you to call avcodec_receive_frame() multiple + * times afterwards before you can send a new packet. + * It can be NULL (or an AVPacket with data set to NULL and + * size set to 0); in this case, it is considered a flush + * packet, which signals the end of the stream. Sending the + * first flush packet will return success. Subsequent ones are + * unnecessary and will return AVERROR_EOF. If the decoder + * still has frames buffered, it will return them after sending + * a flush packet. + * + * @retval 0 success + * @retval AVERROR(EAGAIN) input is not accepted in the current state - user + * must read output with avcodec_receive_frame() (once + * all output is read, the packet should be resent, + * and the call will not fail with EAGAIN). + * @retval AVERROR_EOF the decoder has been flushed, and no new packets can be + * sent to it (also returned if more than 1 flush + * packet is sent) + * @retval AVERROR(EINVAL) codec not opened, it is an encoder, or requires flush + * @retval AVERROR(ENOMEM) failed to add packet to internal queue, or similar + * @retval "another negative error code" legitimate decoding errors + */ +int avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt); + +/** + * Return decoded output data from a decoder or encoder (when the + * @ref AV_CODEC_FLAG_RECON_FRAME flag is used). + * + * @param avctx codec context + * @param frame This will be set to a reference-counted video or audio + * frame (depending on the decoder type) allocated by the + * codec. Note that the function will always call + * av_frame_unref(frame) before doing anything else. + * + * @retval 0 success, a frame was returned + * @retval AVERROR(EAGAIN) output is not available in this state - user must + * try to send new input + * @retval AVERROR_EOF the codec has been fully flushed, and there will be + * no more output frames + * @retval AVERROR(EINVAL) codec not opened, or it is an encoder without the + * @ref AV_CODEC_FLAG_RECON_FRAME flag enabled + * @retval "other negative error code" legitimate decoding errors + */ +int avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame); + +/** + * Supply a raw video or audio frame to the encoder. Use avcodec_receive_packet() + * to retrieve buffered output packets. + * + * @param avctx codec context + * @param[in] frame AVFrame containing the raw audio or video frame to be encoded. + * Ownership of the frame remains with the caller, and the + * encoder will not write to the frame. The encoder may create + * a reference to the frame data (or copy it if the frame is + * not reference-counted). + * It can be NULL, in which case it is considered a flush + * packet. This signals the end of the stream. If the encoder + * still has packets buffered, it will return them after this + * call. Once flushing mode has been entered, additional flush + * packets are ignored, and sending frames will return + * AVERROR_EOF. + * + * For audio: + * If AV_CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame + * can have any number of samples. + * If it is not set, frame->nb_samples must be equal to + * avctx->frame_size for all frames except the last. + * The final frame may be smaller than avctx->frame_size. + * @retval 0 success + * @retval AVERROR(EAGAIN) input is not accepted in the current state - user must + * read output with avcodec_receive_packet() (once all + * output is read, the packet should be resent, and the + * call will not fail with EAGAIN). + * @retval AVERROR_EOF the encoder has been flushed, and no new frames can + * be sent to it + * @retval AVERROR(EINVAL) codec not opened, it is a decoder, or requires flush + * @retval AVERROR(ENOMEM) failed to add packet to internal queue, or similar + * @retval "another negative error code" legitimate encoding errors + */ +int avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame); + +/** + * Read encoded data from the encoder. + * + * @param avctx codec context + * @param avpkt This will be set to a reference-counted packet allocated by the + * encoder. Note that the function will always call + * av_packet_unref(avpkt) before doing anything else. + * @retval 0 success + * @retval AVERROR(EAGAIN) output is not available in the current state - user must + * try to send input + * @retval AVERROR_EOF the encoder has been fully flushed, and there will be no + * more output packets + * @retval AVERROR(EINVAL) codec not opened, or it is a decoder + * @retval "another negative error code" legitimate encoding errors + */ +int avcodec_receive_packet(AVCodecContext *avctx, AVPacket *avpkt); + +/** + * Create and return a AVHWFramesContext with values adequate for hardware + * decoding. This is meant to get called from the get_format callback, and is + * a helper for preparing a AVHWFramesContext for AVCodecContext.hw_frames_ctx. + * This API is for decoding with certain hardware acceleration modes/APIs only. + * + * The returned AVHWFramesContext is not initialized. The caller must do this + * with av_hwframe_ctx_init(). + * + * Calling this function is not a requirement, but makes it simpler to avoid + * codec or hardware API specific details when manually allocating frames. + * + * Alternatively to this, an API user can set AVCodecContext.hw_device_ctx, + * which sets up AVCodecContext.hw_frames_ctx fully automatically, and makes + * it unnecessary to call this function or having to care about + * AVHWFramesContext initialization at all. + * + * There are a number of requirements for calling this function: + * + * - It must be called from get_format with the same avctx parameter that was + * passed to get_format. Calling it outside of get_format is not allowed, and + * can trigger undefined behavior. + * - The function is not always supported (see description of return values). + * Even if this function returns successfully, hwaccel initialization could + * fail later. (The degree to which implementations check whether the stream + * is actually supported varies. Some do this check only after the user's + * get_format callback returns.) + * - The hw_pix_fmt must be one of the choices suggested by get_format. If the + * user decides to use a AVHWFramesContext prepared with this API function, + * the user must return the same hw_pix_fmt from get_format. + * - The device_ref passed to this function must support the given hw_pix_fmt. + * - After calling this API function, it is the user's responsibility to + * initialize the AVHWFramesContext (returned by the out_frames_ref parameter), + * and to set AVCodecContext.hw_frames_ctx to it. If done, this must be done + * before returning from get_format (this is implied by the normal + * AVCodecContext.hw_frames_ctx API rules). + * - The AVHWFramesContext parameters may change every time time get_format is + * called. Also, AVCodecContext.hw_frames_ctx is reset before get_format. So + * you are inherently required to go through this process again on every + * get_format call. + * - It is perfectly possible to call this function without actually using + * the resulting AVHWFramesContext. One use-case might be trying to reuse a + * previously initialized AVHWFramesContext, and calling this API function + * only to test whether the required frame parameters have changed. + * - Fields that use dynamically allocated values of any kind must not be set + * by the user unless setting them is explicitly allowed by the documentation. + * If the user sets AVHWFramesContext.free and AVHWFramesContext.user_opaque, + * the new free callback must call the potentially set previous free callback. + * This API call may set any dynamically allocated fields, including the free + * callback. + * + * The function will set at least the following fields on AVHWFramesContext + * (potentially more, depending on hwaccel API): + * + * - All fields set by av_hwframe_ctx_alloc(). + * - Set the format field to hw_pix_fmt. + * - Set the sw_format field to the most suited and most versatile format. (An + * implication is that this will prefer generic formats over opaque formats + * with arbitrary restrictions, if possible.) + * - Set the width/height fields to the coded frame size, rounded up to the + * API-specific minimum alignment. + * - Only _if_ the hwaccel requires a pre-allocated pool: set the initial_pool_size + * field to the number of maximum reference surfaces possible with the codec, + * plus 1 surface for the user to work (meaning the user can safely reference + * at most 1 decoded surface at a time), plus additional buffering introduced + * by frame threading. If the hwaccel does not require pre-allocation, the + * field is left to 0, and the decoder will allocate new surfaces on demand + * during decoding. + * - Possibly AVHWFramesContext.hwctx fields, depending on the underlying + * hardware API. + * + * Essentially, out_frames_ref returns the same as av_hwframe_ctx_alloc(), but + * with basic frame parameters set. + * + * The function is stateless, and does not change the AVCodecContext or the + * device_ref AVHWDeviceContext. + * + * @param avctx The context which is currently calling get_format, and which + * implicitly contains all state needed for filling the returned + * AVHWFramesContext properly. + * @param device_ref A reference to the AVHWDeviceContext describing the device + * which will be used by the hardware decoder. + * @param hw_pix_fmt The hwaccel format you are going to return from get_format. + * @param out_frames_ref On success, set to a reference to an _uninitialized_ + * AVHWFramesContext, created from the given device_ref. + * Fields will be set to values required for decoding. + * Not changed if an error is returned. + * @return zero on success, a negative value on error. The following error codes + * have special semantics: + * AVERROR(ENOENT): the decoder does not support this functionality. Setup + * is always manual, or it is a decoder which does not + * support setting AVCodecContext.hw_frames_ctx at all, + * or it is a software format. + * AVERROR(EINVAL): it is known that hardware decoding is not supported for + * this configuration, or the device_ref is not supported + * for the hwaccel referenced by hw_pix_fmt. + */ +int avcodec_get_hw_frames_parameters(AVCodecContext *avctx, + AVBufferRef *device_ref, + enum AVPixelFormat hw_pix_fmt, + AVBufferRef **out_frames_ref); + +enum AVCodecConfig { + AV_CODEC_CONFIG_PIX_FORMAT, ///< AVPixelFormat, terminated by AV_PIX_FMT_NONE + AV_CODEC_CONFIG_FRAME_RATE, ///< AVRational, terminated by {0, 0} + AV_CODEC_CONFIG_SAMPLE_RATE, ///< int, terminated by 0 + AV_CODEC_CONFIG_SAMPLE_FORMAT, ///< AVSampleFormat, terminated by AV_SAMPLE_FMT_NONE + AV_CODEC_CONFIG_CHANNEL_LAYOUT, ///< AVChannelLayout, terminated by {0} + AV_CODEC_CONFIG_COLOR_RANGE, ///< AVColorRange, terminated by AVCOL_RANGE_UNSPECIFIED + AV_CODEC_CONFIG_COLOR_SPACE, ///< AVColorSpace, terminated by AVCOL_SPC_UNSPECIFIED +}; + +/** + * Retrieve a list of all supported values for a given configuration type. + * + * @param avctx An optional context to use. Values such as + * `strict_std_compliance` may affect the result. If NULL, + * default values are used. + * @param codec The codec to query, or NULL to use avctx->codec. + * @param config The configuration to query. + * @param flags Currently unused; should be set to zero. + * @param out_configs On success, set to a list of configurations, terminated + * by a config-specific terminator, or NULL if all + * possible values are supported. + * @param out_num_configs On success, set to the number of elements in + *out_configs, excluding the terminator. Optional. + */ +int avcodec_get_supported_config(const AVCodecContext *avctx, + const AVCodec *codec, enum AVCodecConfig config, + unsigned flags, const void **out_configs, + int *out_num_configs); + + + +/** + * @defgroup lavc_parsing Frame parsing + * @{ + */ + +enum AVPictureStructure { + AV_PICTURE_STRUCTURE_UNKNOWN, ///< unknown + AV_PICTURE_STRUCTURE_TOP_FIELD, ///< coded as top field + AV_PICTURE_STRUCTURE_BOTTOM_FIELD, ///< coded as bottom field + AV_PICTURE_STRUCTURE_FRAME, ///< coded as frame +}; + +typedef struct AVCodecParserContext { + void *priv_data; + const struct AVCodecParser *parser; + int64_t frame_offset; /* offset of the current frame */ + int64_t cur_offset; /* current offset + (incremented by each av_parser_parse()) */ + int64_t next_frame_offset; /* offset of the next frame */ + /* video info */ + int pict_type; /* XXX: Put it back in AVCodecContext. */ + /** + * This field is used for proper frame duration computation in lavf. + * It signals, how much longer the frame duration of the current frame + * is compared to normal frame duration. + * + * frame_duration = (1 + repeat_pict) * time_base + * + * It is used by codecs like H.264 to display telecined material. + */ + int repeat_pict; /* XXX: Put it back in AVCodecContext. */ + int64_t pts; /* pts of the current frame */ + int64_t dts; /* dts of the current frame */ + + /* private data */ + int64_t last_pts; + int64_t last_dts; + int fetch_timestamp; + +#define AV_PARSER_PTS_NB 4 + int cur_frame_start_index; + int64_t cur_frame_offset[AV_PARSER_PTS_NB]; + int64_t cur_frame_pts[AV_PARSER_PTS_NB]; + int64_t cur_frame_dts[AV_PARSER_PTS_NB]; + + int flags; +#define PARSER_FLAG_COMPLETE_FRAMES 0x0001 +#define PARSER_FLAG_ONCE 0x0002 +/// Set if the parser has a valid file offset +#define PARSER_FLAG_FETCHED_OFFSET 0x0004 +#define PARSER_FLAG_USE_CODEC_TS 0x1000 + + int64_t offset; ///< byte offset from starting packet start + int64_t cur_frame_end[AV_PARSER_PTS_NB]; + + /** + * Set by parser to 1 for key frames and 0 for non-key frames. + * It is initialized to -1, so if the parser doesn't set this flag, + * old-style fallback using AV_PICTURE_TYPE_I picture type as key frames + * will be used. + */ + int key_frame; + + // Timestamp generation support: + /** + * Synchronization point for start of timestamp generation. + * + * Set to >0 for sync point, 0 for no sync point and <0 for undefined + * (default). + * + * For example, this corresponds to presence of H.264 buffering period + * SEI message. + */ + int dts_sync_point; + + /** + * Offset of the current timestamp against last timestamp sync point in + * units of AVCodecContext.time_base. + * + * Set to INT_MIN when dts_sync_point unused. Otherwise, it must + * contain a valid timestamp offset. + * + * Note that the timestamp of sync point has usually a nonzero + * dts_ref_dts_delta, which refers to the previous sync point. Offset of + * the next frame after timestamp sync point will be usually 1. + * + * For example, this corresponds to H.264 cpb_removal_delay. + */ + int dts_ref_dts_delta; + + /** + * Presentation delay of current frame in units of AVCodecContext.time_base. + * + * Set to INT_MIN when dts_sync_point unused. Otherwise, it must + * contain valid non-negative timestamp delta (presentation time of a frame + * must not lie in the past). + * + * This delay represents the difference between decoding and presentation + * time of the frame. + * + * For example, this corresponds to H.264 dpb_output_delay. + */ + int pts_dts_delta; + + /** + * Position of the packet in file. + * + * Analogous to cur_frame_pts/dts + */ + int64_t cur_frame_pos[AV_PARSER_PTS_NB]; + + /** + * Byte position of currently parsed frame in stream. + */ + int64_t pos; + + /** + * Previous frame byte position. + */ + int64_t last_pos; + + /** + * Duration of the current frame. + * For audio, this is in units of 1 / AVCodecContext.sample_rate. + * For all other types, this is in units of AVCodecContext.time_base. + */ + int duration; + + enum AVFieldOrder field_order; + + /** + * Indicate whether a picture is coded as a frame, top field or bottom field. + * + * For example, H.264 field_pic_flag equal to 0 corresponds to + * AV_PICTURE_STRUCTURE_FRAME. An H.264 picture with field_pic_flag + * equal to 1 and bottom_field_flag equal to 0 corresponds to + * AV_PICTURE_STRUCTURE_TOP_FIELD. + */ + enum AVPictureStructure picture_structure; + + /** + * Picture number incremented in presentation or output order. + * This field may be reinitialized at the first picture of a new sequence. + * + * For example, this corresponds to H.264 PicOrderCnt. + */ + int output_picture_number; + + /** + * Dimensions of the decoded video intended for presentation. + */ + int width; + int height; + + /** + * Dimensions of the coded video. + */ + int coded_width; + int coded_height; + + /** + * The format of the coded data, corresponds to enum AVPixelFormat for video + * and for enum AVSampleFormat for audio. + * + * Note that a decoder can have considerable freedom in how exactly it + * decodes the data, so the format reported here might be different from the + * one returned by a decoder. + */ + int format; +} AVCodecParserContext; + +typedef struct AVCodecParser { + int codec_ids[7]; /* several codec IDs are permitted */ + int priv_data_size; + int (*parser_init)(AVCodecParserContext *s); + /* This callback never returns an error, a negative value means that + * the frame start was in a previous packet. */ + int (*parser_parse)(AVCodecParserContext *s, + AVCodecContext *avctx, + const uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size); + void (*parser_close)(AVCodecParserContext *s); + int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size); +} AVCodecParser; + +/** + * Iterate over all registered codec parsers. + * + * @param opaque a pointer where libavcodec will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered codec parser or NULL when the iteration is + * finished + */ +const AVCodecParser *av_parser_iterate(void **opaque); + +AVCodecParserContext *av_parser_init(int codec_id); + +/** + * Parse a packet. + * + * @param s parser context. + * @param avctx codec context. + * @param poutbuf set to pointer to parsed buffer or NULL if not yet finished. + * @param poutbuf_size set to size of parsed buffer or zero if not yet finished. + * @param buf input buffer. + * @param buf_size buffer size in bytes without the padding. I.e. the full buffer + size is assumed to be buf_size + AV_INPUT_BUFFER_PADDING_SIZE. + To signal EOF, this should be 0 (so that the last frame + can be output). + * @param pts input presentation timestamp. + * @param dts input decoding timestamp. + * @param pos input byte position in stream. + * @return the number of bytes of the input bitstream used. + * + * Example: + * @code + * while(in_len){ + * len = av_parser_parse2(myparser, AVCodecContext, &data, &size, + * in_data, in_len, + * pts, dts, pos); + * in_data += len; + * in_len -= len; + * + * if(size) + * decode_frame(data, size); + * } + * @endcode + */ +int av_parser_parse2(AVCodecParserContext *s, + AVCodecContext *avctx, + uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size, + int64_t pts, int64_t dts, + int64_t pos); + +void av_parser_close(AVCodecParserContext *s); + +/** + * @} + * @} + */ + +/** + * @addtogroup lavc_encoding + * @{ + */ + +int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size, + const AVSubtitle *sub); + + +/** + * @} + */ + +/** + * @defgroup lavc_misc Utility functions + * @ingroup libavc + * + * Miscellaneous utility functions related to both encoding and decoding + * (or neither). + * @{ + */ + +/** + * @defgroup lavc_misc_pixfmt Pixel formats + * + * Functions for working with pixel formats. + * @{ + */ + +/** + * Return a value representing the fourCC code associated to the + * pixel format pix_fmt, or 0 if no associated fourCC code can be + * found. + */ +unsigned int avcodec_pix_fmt_to_codec_tag(enum AVPixelFormat pix_fmt); + +/** + * Find the best pixel format to convert to given a certain source pixel + * format. When converting from one pixel format to another, information loss + * may occur. For example, when converting from RGB24 to GRAY, the color + * information will be lost. Similarly, other losses occur when converting from + * some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches which of + * the given pixel formats should be used to suffer the least amount of loss. + * The pixel formats from which it chooses one, are determined by the + * pix_fmt_list parameter. + * + * + * @param[in] pix_fmt_list AV_PIX_FMT_NONE terminated array of pixel formats to choose from + * @param[in] src_pix_fmt source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @param[out] loss_ptr Combination of flags informing you what kind of losses will occur. + * @return The best pixel format to convert to or -1 if none was found. + */ +enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *pix_fmt_list, + enum AVPixelFormat src_pix_fmt, + int has_alpha, int *loss_ptr); + +enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat * fmt); + +/** + * @} + */ + +void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode); + +int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size); +int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count); +//FIXME func typedef + +/** + * Fill AVFrame audio data and linesize pointers. + * + * The buffer buf must be a preallocated buffer with a size big enough + * to contain the specified samples amount. The filled AVFrame data + * pointers will point to this buffer. + * + * AVFrame extended_data channel pointers are allocated if necessary for + * planar audio. + * + * @param frame the AVFrame + * frame->nb_samples must be set prior to calling the + * function. This function fills in frame->data, + * frame->extended_data, frame->linesize[0]. + * @param nb_channels channel count + * @param sample_fmt sample format + * @param buf buffer to use for frame data + * @param buf_size size of buffer + * @param align plane size sample alignment (0 = default) + * @return >=0 on success, negative error code on failure + * @todo return the size in bytes required to store the samples in + * case of success, at the next libavutil bump + */ +int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels, + enum AVSampleFormat sample_fmt, const uint8_t *buf, + int buf_size, int align); + +/** + * Reset the internal codec state / flush internal buffers. Should be called + * e.g. when seeking or when switching to a different stream. + * + * @note for decoders, this function just releases any references the decoder + * might keep internally, but the caller's references remain valid. + * + * @note for encoders, this function will only do something if the encoder + * declares support for AV_CODEC_CAP_ENCODER_FLUSH. When called, the encoder + * will drain any remaining packets, and can then be re-used for a different + * stream (as opposed to sending a null frame which will leave the encoder + * in a permanent EOF state after draining). This can be desirable if the + * cost of tearing down and replacing the encoder instance is high. + */ +void avcodec_flush_buffers(AVCodecContext *avctx); + +/** + * Return audio frame duration. + * + * @param avctx codec context + * @param frame_bytes size of the frame, or 0 if unknown + * @return frame duration, in samples, if known. 0 if not able to + * determine. + */ +int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes); + +/* memory */ + +/** + * Same behaviour av_fast_malloc but the buffer has additional + * AV_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0. + * + * In addition the whole buffer will initially and after resizes + * be 0-initialized so that no uninitialized data will ever appear. + */ +void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size); + +/** + * Same behaviour av_fast_padded_malloc except that buffer will always + * be 0-initialized after call. + */ +void av_fast_padded_mallocz(void *ptr, unsigned int *size, size_t min_size); + +/** + * @return a positive value if s is open (i.e. avcodec_open2() was called on it + * with no corresponding avcodec_close()), 0 otherwise. + */ +int avcodec_is_open(AVCodecContext *s); + +/** + * @} + */ + +#endif /* AVCODEC_AVCODEC_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/avdct.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/avdct.h new file mode 100644 index 00000000..6411fab6 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/avdct.h @@ -0,0 +1,88 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AVDCT_H +#define AVCODEC_AVDCT_H + +#include "libavutil/opt.h" + +/** + * AVDCT context. + * @note function pointers can be NULL if the specific features have been + * disabled at build time. + */ +typedef struct AVDCT { + const AVClass *av_class; + + void (*idct)(int16_t *block /* align 16 */); + + /** + * IDCT input permutation. + * Several optimized IDCTs need a permutated input (relative to the + * normal order of the reference IDCT). + * This permutation must be performed before the idct_put/add. + * Note, normally this can be merged with the zigzag/alternate scan
+ * An example to avoid confusion: + * - (->decode coeffs -> zigzag reorder -> dequant -> reference IDCT -> ...) + * - (x -> reference DCT -> reference IDCT -> x) + * - (x -> reference DCT -> simple_mmx_perm = idct_permutation + * -> simple_idct_mmx -> x) + * - (-> decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant + * -> simple_idct_mmx -> ...) + */ + uint8_t idct_permutation[64]; + + void (*fdct)(int16_t *block /* align 16 */); + + + /** + * DCT algorithm. + * must use AVOptions to set this field. + */ + int dct_algo; + + /** + * IDCT algorithm. + * must use AVOptions to set this field. + */ + int idct_algo; + + void (*get_pixels)(int16_t *block /* align 16 */, + const uint8_t *pixels /* align 8 */, + ptrdiff_t line_size); + + int bits_per_sample; + + void (*get_pixels_unaligned)(int16_t *block /* align 16 */, + const uint8_t *pixels, + ptrdiff_t line_size); +} AVDCT; + +/** + * Allocates a AVDCT context. + * This needs to be initialized with avcodec_dct_init() after optionally + * configuring it with AVOptions. + * + * To free it use av_free() + */ +AVDCT *avcodec_dct_alloc(void); +int avcodec_dct_init(AVDCT *); + +const AVClass *avcodec_dct_get_class(void); + +#endif /* AVCODEC_AVDCT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/avfft.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/avfft.h new file mode 100644 index 00000000..e3a0da1e --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/avfft.h @@ -0,0 +1,149 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AVFFT_H +#define AVCODEC_AVFFT_H + +#include "libavutil/attributes.h" +#include "version_major.h" +#if FF_API_AVFFT + +/** + * @file + * @ingroup lavc_fft + * FFT functions + */ + +/** + * @defgroup lavc_fft FFT functions + * @ingroup lavc_misc + * + * @{ + */ + +typedef float FFTSample; + +typedef struct FFTComplex { + FFTSample re, im; +} FFTComplex; + +typedef struct FFTContext FFTContext; + +/** + * Set up a complex FFT. + * @param nbits log2 of the length of the input array + * @param inverse if 0 perform the forward transform, if 1 perform the inverse + * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_FFT + */ +attribute_deprecated +FFTContext *av_fft_init(int nbits, int inverse); + +/** + * Do the permutation needed BEFORE calling ff_fft_calc(). + * @deprecated without replacement + */ +attribute_deprecated +void av_fft_permute(FFTContext *s, FFTComplex *z); + +/** + * Do a complex FFT with the parameters defined in av_fft_init(). The + * input data must be permuted before. No 1.0/sqrt(n) normalization is done. + * @deprecated use the av_tx_fn value returned by av_tx_init, which also does permutation + */ +attribute_deprecated +void av_fft_calc(FFTContext *s, FFTComplex *z); + +attribute_deprecated +void av_fft_end(FFTContext *s); + +/** + * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_MDCT, + * with a flag of AV_TX_FULL_IMDCT for a replacement to av_imdct_calc. + */ +attribute_deprecated +FFTContext *av_mdct_init(int nbits, int inverse, double scale); +attribute_deprecated +void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); +attribute_deprecated +void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); +attribute_deprecated +void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); +attribute_deprecated +void av_mdct_end(FFTContext *s); + +/* Real Discrete Fourier Transform */ + +enum RDFTransformType { + DFT_R2C, + IDFT_C2R, + IDFT_R2C, + DFT_C2R, +}; + +typedef struct RDFTContext RDFTContext; + +/** + * Set up a real FFT. + * @param nbits log2 of the length of the input array + * @param trans the type of transform + * + * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_RDFT + */ +attribute_deprecated +RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans); +attribute_deprecated +void av_rdft_calc(RDFTContext *s, FFTSample *data); +attribute_deprecated +void av_rdft_end(RDFTContext *s); + +/* Discrete Cosine Transform */ + +typedef struct DCTContext DCTContext; + +enum DCTTransformType { + DCT_II = 0, + DCT_III, + DCT_I, + DST_I, +}; + +/** + * Set up DCT. + * + * @param nbits size of the input array: + * (1 << nbits) for DCT-II, DCT-III and DST-I + * (1 << nbits) + 1 for DCT-I + * @param type the type of transform + * + * @note the first element of the input of DST-I is ignored + * + * @deprecated use av_tx_init from libavutil/tx.h with an appropriate type of AV_TX_FLOAT_DCT + */ +attribute_deprecated +DCTContext *av_dct_init(int nbits, enum DCTTransformType type); +attribute_deprecated +void av_dct_calc(DCTContext *s, FFTSample *data); +attribute_deprecated +void av_dct_end (DCTContext *s); + +/** + * @} + */ + +#endif /* FF_API_AVFFT */ +#endif /* AVCODEC_AVFFT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/bsf.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/bsf.h new file mode 100644 index 00000000..a09c69f2 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/bsf.h @@ -0,0 +1,332 @@ +/* + * Bitstream filters public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_BSF_H +#define AVCODEC_BSF_H + +#include "libavutil/dict.h" +#include "libavutil/log.h" +#include "libavutil/rational.h" + +#include "codec_id.h" +#include "codec_par.h" +#include "packet.h" + +/** + * @defgroup lavc_bsf Bitstream filters + * @ingroup libavc + * + * Bitstream filters transform encoded media data without decoding it. This + * allows e.g. manipulating various header values. Bitstream filters operate on + * @ref AVPacket "AVPackets". + * + * The bitstream filtering API is centered around two structures: + * AVBitStreamFilter and AVBSFContext. The former represents a bitstream filter + * in abstract, the latter a specific filtering process. Obtain an + * AVBitStreamFilter using av_bsf_get_by_name() or av_bsf_iterate(), then pass + * it to av_bsf_alloc() to create an AVBSFContext. Fill in the user-settable + * AVBSFContext fields, as described in its documentation, then call + * av_bsf_init() to prepare the filter context for use. + * + * Submit packets for filtering using av_bsf_send_packet(), obtain filtered + * results with av_bsf_receive_packet(). When no more input packets will be + * sent, submit a NULL AVPacket to signal the end of the stream to the filter. + * av_bsf_receive_packet() will then return trailing packets, if any are + * produced by the filter. + * + * Finally, free the filter context with av_bsf_free(). + * @{ + */ + +/** + * The bitstream filter state. + * + * This struct must be allocated with av_bsf_alloc() and freed with + * av_bsf_free(). + * + * The fields in the struct will only be changed (by the caller or by the + * filter) as described in their documentation, and are to be considered + * immutable otherwise. + */ +typedef struct AVBSFContext { + /** + * A class for logging and AVOptions + */ + const AVClass *av_class; + + /** + * The bitstream filter this context is an instance of. + */ + const struct AVBitStreamFilter *filter; + + /** + * Opaque filter-specific private data. If filter->priv_class is non-NULL, + * this is an AVOptions-enabled struct. + */ + void *priv_data; + + /** + * Parameters of the input stream. This field is allocated in + * av_bsf_alloc(), it needs to be filled by the caller before + * av_bsf_init(). + */ + AVCodecParameters *par_in; + + /** + * Parameters of the output stream. This field is allocated in + * av_bsf_alloc(), it is set by the filter in av_bsf_init(). + */ + AVCodecParameters *par_out; + + /** + * The timebase used for the timestamps of the input packets. Set by the + * caller before av_bsf_init(). + */ + AVRational time_base_in; + + /** + * The timebase used for the timestamps of the output packets. Set by the + * filter in av_bsf_init(). + */ + AVRational time_base_out; +} AVBSFContext; + +typedef struct AVBitStreamFilter { + const char *name; + + /** + * A list of codec ids supported by the filter, terminated by + * AV_CODEC_ID_NONE. + * May be NULL, in that case the bitstream filter works with any codec id. + */ + const enum AVCodecID *codec_ids; + + /** + * A class for the private data, used to declare bitstream filter private + * AVOptions. This field is NULL for bitstream filters that do not declare + * any options. + * + * If this field is non-NULL, the first member of the filter private data + * must be a pointer to AVClass, which will be set by libavcodec generic + * code to this class. + */ + const AVClass *priv_class; +} AVBitStreamFilter; + +/** + * @return a bitstream filter with the specified name or NULL if no such + * bitstream filter exists. + */ +const AVBitStreamFilter *av_bsf_get_by_name(const char *name); + +/** + * Iterate over all registered bitstream filters. + * + * @param opaque a pointer where libavcodec will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered bitstream filter or NULL when the iteration is + * finished + */ +const AVBitStreamFilter *av_bsf_iterate(void **opaque); + +/** + * Allocate a context for a given bitstream filter. The caller must fill in the + * context parameters as described in the documentation and then call + * av_bsf_init() before sending any data to the filter. + * + * @param filter the filter for which to allocate an instance. + * @param[out] ctx a pointer into which the pointer to the newly-allocated context + * will be written. It must be freed with av_bsf_free() after the + * filtering is done. + * + * @return 0 on success, a negative AVERROR code on failure + */ +int av_bsf_alloc(const AVBitStreamFilter *filter, AVBSFContext **ctx); + +/** + * Prepare the filter for use, after all the parameters and options have been + * set. + * + * @param ctx a AVBSFContext previously allocated with av_bsf_alloc() + */ +int av_bsf_init(AVBSFContext *ctx); + +/** + * Submit a packet for filtering. + * + * After sending each packet, the filter must be completely drained by calling + * av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or + * AVERROR_EOF. + * + * @param ctx an initialized AVBSFContext + * @param pkt the packet to filter. The bitstream filter will take ownership of + * the packet and reset the contents of pkt. pkt is not touched if an error occurs. + * If pkt is empty (i.e. NULL, or pkt->data is NULL and pkt->side_data_elems zero), + * it signals the end of the stream (i.e. no more non-empty packets will be sent; + * sending more empty packets does nothing) and will cause the filter to output + * any packets it may have buffered internally. + * + * @return + * - 0 on success. + * - AVERROR(EAGAIN) if packets need to be retrieved from the filter (using + * av_bsf_receive_packet()) before new input can be consumed. + * - Another negative AVERROR value if an error occurs. + */ +int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt); + +/** + * Retrieve a filtered packet. + * + * @param ctx an initialized AVBSFContext + * @param[out] pkt this struct will be filled with the contents of the filtered + * packet. It is owned by the caller and must be freed using + * av_packet_unref() when it is no longer needed. + * This parameter should be "clean" (i.e. freshly allocated + * with av_packet_alloc() or unreffed with av_packet_unref()) + * when this function is called. If this function returns + * successfully, the contents of pkt will be completely + * overwritten by the returned data. On failure, pkt is not + * touched. + * + * @return + * - 0 on success. + * - AVERROR(EAGAIN) if more packets need to be sent to the filter (using + * av_bsf_send_packet()) to get more output. + * - AVERROR_EOF if there will be no further output from the filter. + * - Another negative AVERROR value if an error occurs. + * + * @note one input packet may result in several output packets, so after sending + * a packet with av_bsf_send_packet(), this function needs to be called + * repeatedly until it stops returning 0. It is also possible for a filter to + * output fewer packets than were sent to it, so this function may return + * AVERROR(EAGAIN) immediately after a successful av_bsf_send_packet() call. + */ +int av_bsf_receive_packet(AVBSFContext *ctx, AVPacket *pkt); + +/** + * Reset the internal bitstream filter state. Should be called e.g. when seeking. + */ +void av_bsf_flush(AVBSFContext *ctx); + +/** + * Free a bitstream filter context and everything associated with it; write NULL + * into the supplied pointer. + */ +void av_bsf_free(AVBSFContext **ctx); + +/** + * Get the AVClass for AVBSFContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *av_bsf_get_class(void); + +/** + * Structure for chain/list of bitstream filters. + * Empty list can be allocated by av_bsf_list_alloc(). + */ +typedef struct AVBSFList AVBSFList; + +/** + * Allocate empty list of bitstream filters. + * The list must be later freed by av_bsf_list_free() + * or finalized by av_bsf_list_finalize(). + * + * @return Pointer to @ref AVBSFList on success, NULL in case of failure + */ +AVBSFList *av_bsf_list_alloc(void); + +/** + * Free list of bitstream filters. + * + * @param lst Pointer to pointer returned by av_bsf_list_alloc() + */ +void av_bsf_list_free(AVBSFList **lst); + +/** + * Append bitstream filter to the list of bitstream filters. + * + * @param lst List to append to + * @param bsf Filter context to be appended + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_append(AVBSFList *lst, AVBSFContext *bsf); + +/** + * Construct new bitstream filter context given it's name and options + * and append it to the list of bitstream filters. + * + * @param lst List to append to + * @param bsf_name Name of the bitstream filter + * @param options Options for the bitstream filter, can be set to NULL + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_append2(AVBSFList *lst, const char * bsf_name, AVDictionary **options); +/** + * Finalize list of bitstream filters. + * + * This function will transform @ref AVBSFList to single @ref AVBSFContext, + * so the whole chain of bitstream filters can be treated as single filter + * freshly allocated by av_bsf_alloc(). + * If the call is successful, @ref AVBSFList structure is freed and lst + * will be set to NULL. In case of failure, caller is responsible for + * freeing the structure by av_bsf_list_free() + * + * @param lst Filter list structure to be transformed + * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure + * representing the chain of bitstream filters + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_finalize(AVBSFList **lst, AVBSFContext **bsf); + +/** + * Parse string describing list of bitstream filters and create single + * @ref AVBSFContext describing the whole chain of bitstream filters. + * Resulting @ref AVBSFContext can be treated as any other @ref AVBSFContext freshly + * allocated by av_bsf_alloc(). + * + * @param str String describing chain of bitstream filters in format + * `bsf1[=opt1=val1:opt2=val2][,bsf2]` + * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure + * representing the chain of bitstream filters + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_parse_str(const char *str, AVBSFContext **bsf); + +/** + * Get null/pass-through bitstream filter. + * + * @param[out] bsf Pointer to be set to new instance of pass-through bitstream filter + * + * @return + */ +int av_bsf_get_null_filter(AVBSFContext **bsf); + +/** + * @} + */ + +#endif // AVCODEC_BSF_H diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec.h new file mode 100644 index 00000000..f7541ffc --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec.h @@ -0,0 +1,382 @@ +/* + * AVCodec public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_CODEC_H +#define AVCODEC_CODEC_H + +#include + +#include "libavutil/avutil.h" +#include "libavutil/hwcontext.h" +#include "libavutil/log.h" +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" +#include "libavutil/samplefmt.h" + +#include "libavcodec/codec_id.h" +#include "libavcodec/version_major.h" + +/** + * @addtogroup lavc_core + * @{ + */ + +/** + * Decoder can use draw_horiz_band callback. + */ +#define AV_CODEC_CAP_DRAW_HORIZ_BAND (1 << 0) +/** + * Codec uses get_buffer() or get_encode_buffer() for allocating buffers and + * supports custom allocators. + * If not set, it might not use get_buffer() or get_encode_buffer() at all, or + * use operations that assume the buffer was allocated by + * avcodec_default_get_buffer2 or avcodec_default_get_encode_buffer. + */ +#define AV_CODEC_CAP_DR1 (1 << 1) +/** + * Encoder or decoder requires flushing with NULL input at the end in order to + * give the complete and correct output. + * + * NOTE: If this flag is not set, the codec is guaranteed to never be fed with + * with NULL data. The user can still send NULL data to the public encode + * or decode function, but libavcodec will not pass it along to the codec + * unless this flag is set. + * + * Decoders: + * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL, + * avpkt->size=0 at the end to get the delayed data until the decoder no longer + * returns frames. + * + * Encoders: + * The encoder needs to be fed with NULL data at the end of encoding until the + * encoder no longer returns data. + * + * NOTE: For encoders implementing the AVCodec.encode2() function, setting this + * flag also means that the encoder must set the pts and duration for + * each output packet. If this flag is not set, the pts and duration will + * be determined by libavcodec from the input frame. + */ +#define AV_CODEC_CAP_DELAY (1 << 5) +/** + * Codec can be fed a final frame with a smaller size. + * This can be used to prevent truncation of the last audio samples. + */ +#define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6) + +#if FF_API_SUBFRAMES +/** + * Codec can output multiple frames per AVPacket + * Normally demuxers return one frame at a time, demuxers which do not do + * are connected to a parser to split what they return into proper frames. + * This flag is reserved to the very rare category of codecs which have a + * bitstream that cannot be split into frames without timeconsuming + * operations like full decoding. Demuxers carrying such bitstreams thus + * may return multiple frames in a packet. This has many disadvantages like + * prohibiting stream copy in many cases thus it should only be considered + * as a last resort. + */ +#define AV_CODEC_CAP_SUBFRAMES (1 << 8) +#endif + +/** + * Codec is experimental and is thus avoided in favor of non experimental + * encoders + */ +#define AV_CODEC_CAP_EXPERIMENTAL (1 << 9) +/** + * Codec should fill in channel configuration and samplerate instead of container + */ +#define AV_CODEC_CAP_CHANNEL_CONF (1 << 10) +/** + * Codec supports frame-level multithreading. + */ +#define AV_CODEC_CAP_FRAME_THREADS (1 << 12) +/** + * Codec supports slice-based (or partition-based) multithreading. + */ +#define AV_CODEC_CAP_SLICE_THREADS (1 << 13) +/** + * Codec supports changed parameters at any point. + */ +#define AV_CODEC_CAP_PARAM_CHANGE (1 << 14) +/** + * Codec supports multithreading through a method other than slice- or + * frame-level multithreading. Typically this marks wrappers around + * multithreading-capable external libraries. + */ +#define AV_CODEC_CAP_OTHER_THREADS (1 << 15) +/** + * Audio encoder supports receiving a different number of samples in each call. + */ +#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE (1 << 16) +/** + * Decoder is not a preferred choice for probing. + * This indicates that the decoder is not a good choice for probing. + * It could for example be an expensive to spin up hardware decoder, + * or it could simply not provide a lot of useful information about + * the stream. + * A decoder marked with this flag should only be used as last resort + * choice for probing. + */ +#define AV_CODEC_CAP_AVOID_PROBING (1 << 17) + +/** + * Codec is backed by a hardware implementation. Typically used to + * identify a non-hwaccel hardware decoder. For information about hwaccels, use + * avcodec_get_hw_config() instead. + */ +#define AV_CODEC_CAP_HARDWARE (1 << 18) + +/** + * Codec is potentially backed by a hardware implementation, but not + * necessarily. This is used instead of AV_CODEC_CAP_HARDWARE, if the + * implementation provides some sort of internal fallback. + */ +#define AV_CODEC_CAP_HYBRID (1 << 19) + +/** + * This encoder can reorder user opaque values from input AVFrames and return + * them with corresponding output packets. + * @see AV_CODEC_FLAG_COPY_OPAQUE + */ +#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE (1 << 20) + +/** + * This encoder can be flushed using avcodec_flush_buffers(). If this flag is + * not set, the encoder must be closed and reopened to ensure that no frames + * remain pending. + */ +#define AV_CODEC_CAP_ENCODER_FLUSH (1 << 21) + +/** + * The encoder is able to output reconstructed frame data, i.e. raw frames that + * would be produced by decoding the encoded bitstream. + * + * Reconstructed frame output is enabled by the AV_CODEC_FLAG_RECON_FRAME flag. + */ +#define AV_CODEC_CAP_ENCODER_RECON_FRAME (1 << 22) + +/** + * AVProfile. + */ +typedef struct AVProfile { + int profile; + const char *name; ///< short name for the profile +} AVProfile; + +/** + * AVCodec. + */ +typedef struct AVCodec { + /** + * Name of the codec implementation. + * The name is globally unique among encoders and among decoders (but an + * encoder and a decoder can share the same name). + * This is the primary way to find a codec from the user perspective. + */ + const char *name; + /** + * Descriptive name for the codec, meant to be more human readable than name. + * You should use the NULL_IF_CONFIG_SMALL() macro to define it. + */ + const char *long_name; + enum AVMediaType type; + enum AVCodecID id; + /** + * Codec capabilities. + * see AV_CODEC_CAP_* + */ + int capabilities; + uint8_t max_lowres; ///< maximum value for lowres supported by the decoder + + /** + * Deprecated codec capabilities. + */ + attribute_deprecated + const AVRational *supported_framerates; ///< @deprecated use avcodec_get_supported_config() + attribute_deprecated + const enum AVPixelFormat *pix_fmts; ///< @deprecated use avcodec_get_supported_config() + attribute_deprecated + const int *supported_samplerates; ///< @deprecated use avcodec_get_supported_config() + attribute_deprecated + const enum AVSampleFormat *sample_fmts; ///< @deprecated use avcodec_get_supported_config() + + const AVClass *priv_class; ///< AVClass for the private context + const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {AV_PROFILE_UNKNOWN} + + /** + * Group name of the codec implementation. + * This is a short symbolic name of the wrapper backing this codec. A + * wrapper uses some kind of external implementation for the codec, such + * as an external library, or a codec implementation provided by the OS or + * the hardware. + * If this field is NULL, this is a builtin, libavcodec native codec. + * If non-NULL, this will be the suffix in AVCodec.name in most cases + * (usually AVCodec.name will be of the form "_"). + */ + const char *wrapper_name; + + /** + * Array of supported channel layouts, terminated with a zeroed layout. + * @deprecated use avcodec_get_supported_config() + */ + attribute_deprecated + const AVChannelLayout *ch_layouts; +} AVCodec; + +/** + * Iterate over all registered codecs. + * + * @param opaque a pointer where libavcodec will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered codec or NULL when the iteration is + * finished + */ +const AVCodec *av_codec_iterate(void **opaque); + +/** + * Find a registered decoder with a matching codec ID. + * + * @param id AVCodecID of the requested decoder + * @return A decoder if one was found, NULL otherwise. + */ +const AVCodec *avcodec_find_decoder(enum AVCodecID id); + +/** + * Find a registered decoder with the specified name. + * + * @param name name of the requested decoder + * @return A decoder if one was found, NULL otherwise. + */ +const AVCodec *avcodec_find_decoder_by_name(const char *name); + +/** + * Find a registered encoder with a matching codec ID. + * + * @param id AVCodecID of the requested encoder + * @return An encoder if one was found, NULL otherwise. + */ +const AVCodec *avcodec_find_encoder(enum AVCodecID id); + +/** + * Find a registered encoder with the specified name. + * + * @param name name of the requested encoder + * @return An encoder if one was found, NULL otherwise. + */ +const AVCodec *avcodec_find_encoder_by_name(const char *name); +/** + * @return a non-zero number if codec is an encoder, zero otherwise + */ +int av_codec_is_encoder(const AVCodec *codec); + +/** + * @return a non-zero number if codec is a decoder, zero otherwise + */ +int av_codec_is_decoder(const AVCodec *codec); + +/** + * Return a name for the specified profile, if available. + * + * @param codec the codec that is searched for the given profile + * @param profile the profile value for which a name is requested + * @return A name for the profile if found, NULL otherwise. + */ +const char *av_get_profile_name(const AVCodec *codec, int profile); + +enum { + /** + * The codec supports this format via the hw_device_ctx interface. + * + * When selecting this format, AVCodecContext.hw_device_ctx should + * have been set to a device of the specified type before calling + * avcodec_open2(). + */ + AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = 0x01, + /** + * The codec supports this format via the hw_frames_ctx interface. + * + * When selecting this format for a decoder, + * AVCodecContext.hw_frames_ctx should be set to a suitable frames + * context inside the get_format() callback. The frames context + * must have been created on a device of the specified type. + * + * When selecting this format for an encoder, + * AVCodecContext.hw_frames_ctx should be set to the context which + * will be used for the input frames before calling avcodec_open2(). + */ + AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 0x02, + /** + * The codec supports this format by some internal method. + * + * This format can be selected without any additional configuration - + * no device or frames context is required. + */ + AV_CODEC_HW_CONFIG_METHOD_INTERNAL = 0x04, + /** + * The codec supports this format by some ad-hoc method. + * + * Additional settings and/or function calls are required. See the + * codec-specific documentation for details. (Methods requiring + * this sort of configuration are deprecated and others should be + * used in preference.) + */ + AV_CODEC_HW_CONFIG_METHOD_AD_HOC = 0x08, +}; + +typedef struct AVCodecHWConfig { + /** + * For decoders, a hardware pixel format which that decoder may be + * able to decode to if suitable hardware is available. + * + * For encoders, a pixel format which the encoder may be able to + * accept. If set to AV_PIX_FMT_NONE, this applies to all pixel + * formats supported by the codec. + */ + enum AVPixelFormat pix_fmt; + /** + * Bit set of AV_CODEC_HW_CONFIG_METHOD_* flags, describing the possible + * setup methods which can be used with this configuration. + */ + int methods; + /** + * The device type associated with the configuration. + * + * Must be set for AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX and + * AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX, otherwise unused. + */ + enum AVHWDeviceType device_type; +} AVCodecHWConfig; + +/** + * Retrieve supported hardware configurations for a codec. + * + * Values of index from zero to some maximum return the indexed configuration + * descriptor; all other values return NULL. If the codec does not support + * any hardware configurations then it will always return NULL. + */ +const AVCodecHWConfig *avcodec_get_hw_config(const AVCodec *codec, int index); + +/** + * @} + */ + +#endif /* AVCODEC_CODEC_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_desc.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_desc.h new file mode 100644 index 00000000..96afd202 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_desc.h @@ -0,0 +1,134 @@ +/* + * Codec descriptors public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_CODEC_DESC_H +#define AVCODEC_CODEC_DESC_H + +#include "libavutil/avutil.h" + +#include "codec_id.h" + +/** + * @addtogroup lavc_core + * @{ + */ + +/** + * This struct describes the properties of a single codec described by an + * AVCodecID. + * @see avcodec_descriptor_get() + */ +typedef struct AVCodecDescriptor { + enum AVCodecID id; + enum AVMediaType type; + /** + * Name of the codec described by this descriptor. It is non-empty and + * unique for each codec descriptor. It should contain alphanumeric + * characters and '_' only. + */ + const char *name; + /** + * A more descriptive name for this codec. May be NULL. + */ + const char *long_name; + /** + * Codec properties, a combination of AV_CODEC_PROP_* flags. + */ + int props; + /** + * MIME type(s) associated with the codec. + * May be NULL; if not, a NULL-terminated array of MIME types. + * The first item is always non-NULL and is the preferred MIME type. + */ + const char *const *mime_types; + /** + * If non-NULL, an array of profiles recognized for this codec. + * Terminated with AV_PROFILE_UNKNOWN. + */ + const struct AVProfile *profiles; +} AVCodecDescriptor; + +/** + * Codec uses only intra compression. + * Video and audio codecs only. + */ +#define AV_CODEC_PROP_INTRA_ONLY (1 << 0) +/** + * Codec supports lossy compression. Audio and video codecs only. + * @note a codec may support both lossy and lossless + * compression modes + */ +#define AV_CODEC_PROP_LOSSY (1 << 1) +/** + * Codec supports lossless compression. Audio and video codecs only. + */ +#define AV_CODEC_PROP_LOSSLESS (1 << 2) +/** + * Codec supports frame reordering. That is, the coded order (the order in which + * the encoded packets are output by the encoders / stored / input to the + * decoders) may be different from the presentation order of the corresponding + * frames. + * + * For codecs that do not have this property set, PTS and DTS should always be + * equal. + */ +#define AV_CODEC_PROP_REORDER (1 << 3) + +/** + * Video codec supports separate coding of fields in interlaced frames. + */ +#define AV_CODEC_PROP_FIELDS (1 << 4) + +/** + * Subtitle codec is bitmap based + * Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field. + */ +#define AV_CODEC_PROP_BITMAP_SUB (1 << 16) +/** + * Subtitle codec is text based. + * Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field. + */ +#define AV_CODEC_PROP_TEXT_SUB (1 << 17) + +/** + * @return descriptor for given codec ID or NULL if no descriptor exists. + */ +const AVCodecDescriptor *avcodec_descriptor_get(enum AVCodecID id); + +/** + * Iterate over all codec descriptors known to libavcodec. + * + * @param prev previous descriptor. NULL to get the first descriptor. + * + * @return next descriptor or NULL after the last descriptor + */ +const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev); + +/** + * @return codec descriptor with the given name or NULL if no such descriptor + * exists. + */ +const AVCodecDescriptor *avcodec_descriptor_get_by_name(const char *name); + +/** + * @} + */ + +#endif // AVCODEC_CODEC_DESC_H diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_id.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_id.h new file mode 100644 index 00000000..0a8d3bed --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_id.h @@ -0,0 +1,669 @@ +/* + * Codec IDs + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_CODEC_ID_H +#define AVCODEC_CODEC_ID_H + +#include "libavutil/avutil.h" +#include "libavutil/samplefmt.h" + +#include "version_major.h" + +/** + * @addtogroup lavc_core + * @{ + */ + +/** + * Identify the syntax and semantics of the bitstream. + * The principle is roughly: + * Two decoders with the same ID can decode the same streams. + * Two encoders with the same ID can encode compatible streams. + * There may be slight deviations from the principle due to implementation + * details. + * + * If you add a codec ID to this list, add it so that + * 1. no value of an existing codec ID changes (that would break ABI), + * 2. it is as close as possible to similar codecs + * + * After adding new codec IDs, do not forget to add an entry to the codec + * descriptor list and bump libavcodec minor version. + */ +enum AVCodecID { + AV_CODEC_ID_NONE, + + /* video codecs */ + AV_CODEC_ID_MPEG1VIDEO, + AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding + AV_CODEC_ID_H261, + AV_CODEC_ID_H263, + AV_CODEC_ID_RV10, + AV_CODEC_ID_RV20, + AV_CODEC_ID_MJPEG, + AV_CODEC_ID_MJPEGB, + AV_CODEC_ID_LJPEG, + AV_CODEC_ID_SP5X, + AV_CODEC_ID_JPEGLS, + AV_CODEC_ID_MPEG4, + AV_CODEC_ID_RAWVIDEO, + AV_CODEC_ID_MSMPEG4V1, + AV_CODEC_ID_MSMPEG4V2, + AV_CODEC_ID_MSMPEG4V3, + AV_CODEC_ID_WMV1, + AV_CODEC_ID_WMV2, + AV_CODEC_ID_H263P, + AV_CODEC_ID_H263I, + AV_CODEC_ID_FLV1, + AV_CODEC_ID_SVQ1, + AV_CODEC_ID_SVQ3, + AV_CODEC_ID_DVVIDEO, + AV_CODEC_ID_HUFFYUV, + AV_CODEC_ID_CYUV, + AV_CODEC_ID_H264, + AV_CODEC_ID_INDEO3, + AV_CODEC_ID_VP3, + AV_CODEC_ID_THEORA, + AV_CODEC_ID_ASV1, + AV_CODEC_ID_ASV2, + AV_CODEC_ID_FFV1, + AV_CODEC_ID_4XM, + AV_CODEC_ID_VCR1, + AV_CODEC_ID_CLJR, + AV_CODEC_ID_MDEC, + AV_CODEC_ID_ROQ, + AV_CODEC_ID_INTERPLAY_VIDEO, + AV_CODEC_ID_XAN_WC3, + AV_CODEC_ID_XAN_WC4, + AV_CODEC_ID_RPZA, + AV_CODEC_ID_CINEPAK, + AV_CODEC_ID_WS_VQA, + AV_CODEC_ID_MSRLE, + AV_CODEC_ID_MSVIDEO1, + AV_CODEC_ID_IDCIN, + AV_CODEC_ID_8BPS, + AV_CODEC_ID_SMC, + AV_CODEC_ID_FLIC, + AV_CODEC_ID_TRUEMOTION1, + AV_CODEC_ID_VMDVIDEO, + AV_CODEC_ID_MSZH, + AV_CODEC_ID_ZLIB, + AV_CODEC_ID_QTRLE, + AV_CODEC_ID_TSCC, + AV_CODEC_ID_ULTI, + AV_CODEC_ID_QDRAW, + AV_CODEC_ID_VIXL, + AV_CODEC_ID_QPEG, + AV_CODEC_ID_PNG, + AV_CODEC_ID_PPM, + AV_CODEC_ID_PBM, + AV_CODEC_ID_PGM, + AV_CODEC_ID_PGMYUV, + AV_CODEC_ID_PAM, + AV_CODEC_ID_FFVHUFF, + AV_CODEC_ID_RV30, + AV_CODEC_ID_RV40, + AV_CODEC_ID_VC1, + AV_CODEC_ID_WMV3, + AV_CODEC_ID_LOCO, + AV_CODEC_ID_WNV1, + AV_CODEC_ID_AASC, + AV_CODEC_ID_INDEO2, + AV_CODEC_ID_FRAPS, + AV_CODEC_ID_TRUEMOTION2, + AV_CODEC_ID_BMP, + AV_CODEC_ID_CSCD, + AV_CODEC_ID_MMVIDEO, + AV_CODEC_ID_ZMBV, + AV_CODEC_ID_AVS, + AV_CODEC_ID_SMACKVIDEO, + AV_CODEC_ID_NUV, + AV_CODEC_ID_KMVC, + AV_CODEC_ID_FLASHSV, + AV_CODEC_ID_CAVS, + AV_CODEC_ID_JPEG2000, + AV_CODEC_ID_VMNC, + AV_CODEC_ID_VP5, + AV_CODEC_ID_VP6, + AV_CODEC_ID_VP6F, + AV_CODEC_ID_TARGA, + AV_CODEC_ID_DSICINVIDEO, + AV_CODEC_ID_TIERTEXSEQVIDEO, + AV_CODEC_ID_TIFF, + AV_CODEC_ID_GIF, + AV_CODEC_ID_DXA, + AV_CODEC_ID_DNXHD, + AV_CODEC_ID_THP, + AV_CODEC_ID_SGI, + AV_CODEC_ID_C93, + AV_CODEC_ID_BETHSOFTVID, + AV_CODEC_ID_PTX, + AV_CODEC_ID_TXD, + AV_CODEC_ID_VP6A, + AV_CODEC_ID_AMV, + AV_CODEC_ID_VB, + AV_CODEC_ID_PCX, + AV_CODEC_ID_SUNRAST, + AV_CODEC_ID_INDEO4, + AV_CODEC_ID_INDEO5, + AV_CODEC_ID_MIMIC, + AV_CODEC_ID_RL2, + AV_CODEC_ID_ESCAPE124, + AV_CODEC_ID_DIRAC, + AV_CODEC_ID_BFI, + AV_CODEC_ID_CMV, + AV_CODEC_ID_MOTIONPIXELS, + AV_CODEC_ID_TGV, + AV_CODEC_ID_TGQ, + AV_CODEC_ID_TQI, + AV_CODEC_ID_AURA, + AV_CODEC_ID_AURA2, + AV_CODEC_ID_V210X, + AV_CODEC_ID_TMV, + AV_CODEC_ID_V210, + AV_CODEC_ID_DPX, + AV_CODEC_ID_MAD, + AV_CODEC_ID_FRWU, + AV_CODEC_ID_FLASHSV2, + AV_CODEC_ID_CDGRAPHICS, + AV_CODEC_ID_R210, + AV_CODEC_ID_ANM, + AV_CODEC_ID_BINKVIDEO, + AV_CODEC_ID_IFF_ILBM, +#define AV_CODEC_ID_IFF_BYTERUN1 AV_CODEC_ID_IFF_ILBM + AV_CODEC_ID_KGV1, + AV_CODEC_ID_YOP, + AV_CODEC_ID_VP8, + AV_CODEC_ID_PICTOR, + AV_CODEC_ID_ANSI, + AV_CODEC_ID_A64_MULTI, + AV_CODEC_ID_A64_MULTI5, + AV_CODEC_ID_R10K, + AV_CODEC_ID_MXPEG, + AV_CODEC_ID_LAGARITH, + AV_CODEC_ID_PRORES, + AV_CODEC_ID_JV, + AV_CODEC_ID_DFA, + AV_CODEC_ID_WMV3IMAGE, + AV_CODEC_ID_VC1IMAGE, + AV_CODEC_ID_UTVIDEO, + AV_CODEC_ID_BMV_VIDEO, + AV_CODEC_ID_VBLE, + AV_CODEC_ID_DXTORY, + AV_CODEC_ID_V410, + AV_CODEC_ID_XWD, + AV_CODEC_ID_CDXL, + AV_CODEC_ID_XBM, + AV_CODEC_ID_ZEROCODEC, + AV_CODEC_ID_MSS1, + AV_CODEC_ID_MSA1, + AV_CODEC_ID_TSCC2, + AV_CODEC_ID_MTS2, + AV_CODEC_ID_CLLC, + AV_CODEC_ID_MSS2, + AV_CODEC_ID_VP9, + AV_CODEC_ID_AIC, + AV_CODEC_ID_ESCAPE130, + AV_CODEC_ID_G2M, + AV_CODEC_ID_WEBP, + AV_CODEC_ID_HNM4_VIDEO, + AV_CODEC_ID_HEVC, +#define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC + AV_CODEC_ID_FIC, + AV_CODEC_ID_ALIAS_PIX, + AV_CODEC_ID_BRENDER_PIX, + AV_CODEC_ID_PAF_VIDEO, + AV_CODEC_ID_EXR, + AV_CODEC_ID_VP7, + AV_CODEC_ID_SANM, + AV_CODEC_ID_SGIRLE, + AV_CODEC_ID_MVC1, + AV_CODEC_ID_MVC2, + AV_CODEC_ID_HQX, + AV_CODEC_ID_TDSC, + AV_CODEC_ID_HQ_HQA, + AV_CODEC_ID_HAP, + AV_CODEC_ID_DDS, + AV_CODEC_ID_DXV, + AV_CODEC_ID_SCREENPRESSO, + AV_CODEC_ID_RSCC, + AV_CODEC_ID_AVS2, + AV_CODEC_ID_PGX, + AV_CODEC_ID_AVS3, + AV_CODEC_ID_MSP2, + AV_CODEC_ID_VVC, +#define AV_CODEC_ID_H266 AV_CODEC_ID_VVC + AV_CODEC_ID_Y41P, + AV_CODEC_ID_AVRP, + AV_CODEC_ID_012V, + AV_CODEC_ID_AVUI, + AV_CODEC_ID_TARGA_Y216, + AV_CODEC_ID_V308, + AV_CODEC_ID_V408, + AV_CODEC_ID_YUV4, + AV_CODEC_ID_AVRN, + AV_CODEC_ID_CPIA, + AV_CODEC_ID_XFACE, + AV_CODEC_ID_SNOW, + AV_CODEC_ID_SMVJPEG, + AV_CODEC_ID_APNG, + AV_CODEC_ID_DAALA, + AV_CODEC_ID_CFHD, + AV_CODEC_ID_TRUEMOTION2RT, + AV_CODEC_ID_M101, + AV_CODEC_ID_MAGICYUV, + AV_CODEC_ID_SHEERVIDEO, + AV_CODEC_ID_YLC, + AV_CODEC_ID_PSD, + AV_CODEC_ID_PIXLET, + AV_CODEC_ID_SPEEDHQ, + AV_CODEC_ID_FMVC, + AV_CODEC_ID_SCPR, + AV_CODEC_ID_CLEARVIDEO, + AV_CODEC_ID_XPM, + AV_CODEC_ID_AV1, + AV_CODEC_ID_BITPACKED, + AV_CODEC_ID_MSCC, + AV_CODEC_ID_SRGC, + AV_CODEC_ID_SVG, + AV_CODEC_ID_GDV, + AV_CODEC_ID_FITS, + AV_CODEC_ID_IMM4, + AV_CODEC_ID_PROSUMER, + AV_CODEC_ID_MWSC, + AV_CODEC_ID_WCMV, + AV_CODEC_ID_RASC, + AV_CODEC_ID_HYMT, + AV_CODEC_ID_ARBC, + AV_CODEC_ID_AGM, + AV_CODEC_ID_LSCR, + AV_CODEC_ID_VP4, + AV_CODEC_ID_IMM5, + AV_CODEC_ID_MVDV, + AV_CODEC_ID_MVHA, + AV_CODEC_ID_CDTOONS, + AV_CODEC_ID_MV30, + AV_CODEC_ID_NOTCHLC, + AV_CODEC_ID_PFM, + AV_CODEC_ID_MOBICLIP, + AV_CODEC_ID_PHOTOCD, + AV_CODEC_ID_IPU, + AV_CODEC_ID_ARGO, + AV_CODEC_ID_CRI, + AV_CODEC_ID_SIMBIOSIS_IMX, + AV_CODEC_ID_SGA_VIDEO, + AV_CODEC_ID_GEM, + AV_CODEC_ID_VBN, + AV_CODEC_ID_JPEGXL, + AV_CODEC_ID_QOI, + AV_CODEC_ID_PHM, + AV_CODEC_ID_RADIANCE_HDR, + AV_CODEC_ID_WBMP, + AV_CODEC_ID_MEDIA100, + AV_CODEC_ID_VQC, + AV_CODEC_ID_PDV, + AV_CODEC_ID_EVC, + AV_CODEC_ID_RTV1, + AV_CODEC_ID_VMIX, + AV_CODEC_ID_LEAD, + + /* various PCM "codecs" */ + AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs + AV_CODEC_ID_PCM_S16LE = 0x10000, + AV_CODEC_ID_PCM_S16BE, + AV_CODEC_ID_PCM_U16LE, + AV_CODEC_ID_PCM_U16BE, + AV_CODEC_ID_PCM_S8, + AV_CODEC_ID_PCM_U8, + AV_CODEC_ID_PCM_MULAW, + AV_CODEC_ID_PCM_ALAW, + AV_CODEC_ID_PCM_S32LE, + AV_CODEC_ID_PCM_S32BE, + AV_CODEC_ID_PCM_U32LE, + AV_CODEC_ID_PCM_U32BE, + AV_CODEC_ID_PCM_S24LE, + AV_CODEC_ID_PCM_S24BE, + AV_CODEC_ID_PCM_U24LE, + AV_CODEC_ID_PCM_U24BE, + AV_CODEC_ID_PCM_S24DAUD, + AV_CODEC_ID_PCM_ZORK, + AV_CODEC_ID_PCM_S16LE_PLANAR, + AV_CODEC_ID_PCM_DVD, + AV_CODEC_ID_PCM_F32BE, + AV_CODEC_ID_PCM_F32LE, + AV_CODEC_ID_PCM_F64BE, + AV_CODEC_ID_PCM_F64LE, + AV_CODEC_ID_PCM_BLURAY, + AV_CODEC_ID_PCM_LXF, + AV_CODEC_ID_S302M, + AV_CODEC_ID_PCM_S8_PLANAR, + AV_CODEC_ID_PCM_S24LE_PLANAR, + AV_CODEC_ID_PCM_S32LE_PLANAR, + AV_CODEC_ID_PCM_S16BE_PLANAR, + AV_CODEC_ID_PCM_S64LE, + AV_CODEC_ID_PCM_S64BE, + AV_CODEC_ID_PCM_F16LE, + AV_CODEC_ID_PCM_F24LE, + AV_CODEC_ID_PCM_VIDC, + AV_CODEC_ID_PCM_SGA, + + /* various ADPCM codecs */ + AV_CODEC_ID_ADPCM_IMA_QT = 0x11000, + AV_CODEC_ID_ADPCM_IMA_WAV, + AV_CODEC_ID_ADPCM_IMA_DK3, + AV_CODEC_ID_ADPCM_IMA_DK4, + AV_CODEC_ID_ADPCM_IMA_WS, + AV_CODEC_ID_ADPCM_IMA_SMJPEG, + AV_CODEC_ID_ADPCM_MS, + AV_CODEC_ID_ADPCM_4XM, + AV_CODEC_ID_ADPCM_XA, + AV_CODEC_ID_ADPCM_ADX, + AV_CODEC_ID_ADPCM_EA, + AV_CODEC_ID_ADPCM_G726, + AV_CODEC_ID_ADPCM_CT, + AV_CODEC_ID_ADPCM_SWF, + AV_CODEC_ID_ADPCM_YAMAHA, + AV_CODEC_ID_ADPCM_SBPRO_4, + AV_CODEC_ID_ADPCM_SBPRO_3, + AV_CODEC_ID_ADPCM_SBPRO_2, + AV_CODEC_ID_ADPCM_THP, + AV_CODEC_ID_ADPCM_IMA_AMV, + AV_CODEC_ID_ADPCM_EA_R1, + AV_CODEC_ID_ADPCM_EA_R3, + AV_CODEC_ID_ADPCM_EA_R2, + AV_CODEC_ID_ADPCM_IMA_EA_SEAD, + AV_CODEC_ID_ADPCM_IMA_EA_EACS, + AV_CODEC_ID_ADPCM_EA_XAS, + AV_CODEC_ID_ADPCM_EA_MAXIS_XA, + AV_CODEC_ID_ADPCM_IMA_ISS, + AV_CODEC_ID_ADPCM_G722, + AV_CODEC_ID_ADPCM_IMA_APC, + AV_CODEC_ID_ADPCM_VIMA, + AV_CODEC_ID_ADPCM_AFC, + AV_CODEC_ID_ADPCM_IMA_OKI, + AV_CODEC_ID_ADPCM_DTK, + AV_CODEC_ID_ADPCM_IMA_RAD, + AV_CODEC_ID_ADPCM_G726LE, + AV_CODEC_ID_ADPCM_THP_LE, + AV_CODEC_ID_ADPCM_PSX, + AV_CODEC_ID_ADPCM_AICA, + AV_CODEC_ID_ADPCM_IMA_DAT4, + AV_CODEC_ID_ADPCM_MTAF, + AV_CODEC_ID_ADPCM_AGM, + AV_CODEC_ID_ADPCM_ARGO, + AV_CODEC_ID_ADPCM_IMA_SSI, + AV_CODEC_ID_ADPCM_ZORK, + AV_CODEC_ID_ADPCM_IMA_APM, + AV_CODEC_ID_ADPCM_IMA_ALP, + AV_CODEC_ID_ADPCM_IMA_MTF, + AV_CODEC_ID_ADPCM_IMA_CUNNING, + AV_CODEC_ID_ADPCM_IMA_MOFLEX, + AV_CODEC_ID_ADPCM_IMA_ACORN, + AV_CODEC_ID_ADPCM_XMD, + + /* AMR */ + AV_CODEC_ID_AMR_NB = 0x12000, + AV_CODEC_ID_AMR_WB, + + /* RealAudio codecs*/ + AV_CODEC_ID_RA_144 = 0x13000, + AV_CODEC_ID_RA_288, + + /* various DPCM codecs */ + AV_CODEC_ID_ROQ_DPCM = 0x14000, + AV_CODEC_ID_INTERPLAY_DPCM, + AV_CODEC_ID_XAN_DPCM, + AV_CODEC_ID_SOL_DPCM, + AV_CODEC_ID_SDX2_DPCM, + AV_CODEC_ID_GREMLIN_DPCM, + AV_CODEC_ID_DERF_DPCM, + AV_CODEC_ID_WADY_DPCM, + AV_CODEC_ID_CBD2_DPCM, + + /* audio codecs */ + AV_CODEC_ID_MP2 = 0x15000, + AV_CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3 + AV_CODEC_ID_AAC, + AV_CODEC_ID_AC3, + AV_CODEC_ID_DTS, + AV_CODEC_ID_VORBIS, + AV_CODEC_ID_DVAUDIO, + AV_CODEC_ID_WMAV1, + AV_CODEC_ID_WMAV2, + AV_CODEC_ID_MACE3, + AV_CODEC_ID_MACE6, + AV_CODEC_ID_VMDAUDIO, + AV_CODEC_ID_FLAC, + AV_CODEC_ID_MP3ADU, + AV_CODEC_ID_MP3ON4, + AV_CODEC_ID_SHORTEN, + AV_CODEC_ID_ALAC, + AV_CODEC_ID_WESTWOOD_SND1, + AV_CODEC_ID_GSM, ///< as in Berlin toast format + AV_CODEC_ID_QDM2, + AV_CODEC_ID_COOK, + AV_CODEC_ID_TRUESPEECH, + AV_CODEC_ID_TTA, + AV_CODEC_ID_SMACKAUDIO, + AV_CODEC_ID_QCELP, + AV_CODEC_ID_WAVPACK, + AV_CODEC_ID_DSICINAUDIO, + AV_CODEC_ID_IMC, + AV_CODEC_ID_MUSEPACK7, + AV_CODEC_ID_MLP, + AV_CODEC_ID_GSM_MS, /* as found in WAV */ + AV_CODEC_ID_ATRAC3, + AV_CODEC_ID_APE, + AV_CODEC_ID_NELLYMOSER, + AV_CODEC_ID_MUSEPACK8, + AV_CODEC_ID_SPEEX, + AV_CODEC_ID_WMAVOICE, + AV_CODEC_ID_WMAPRO, + AV_CODEC_ID_WMALOSSLESS, + AV_CODEC_ID_ATRAC3P, + AV_CODEC_ID_EAC3, + AV_CODEC_ID_SIPR, + AV_CODEC_ID_MP1, + AV_CODEC_ID_TWINVQ, + AV_CODEC_ID_TRUEHD, + AV_CODEC_ID_MP4ALS, + AV_CODEC_ID_ATRAC1, + AV_CODEC_ID_BINKAUDIO_RDFT, + AV_CODEC_ID_BINKAUDIO_DCT, + AV_CODEC_ID_AAC_LATM, + AV_CODEC_ID_QDMC, + AV_CODEC_ID_CELT, + AV_CODEC_ID_G723_1, + AV_CODEC_ID_G729, + AV_CODEC_ID_8SVX_EXP, + AV_CODEC_ID_8SVX_FIB, + AV_CODEC_ID_BMV_AUDIO, + AV_CODEC_ID_RALF, + AV_CODEC_ID_IAC, + AV_CODEC_ID_ILBC, + AV_CODEC_ID_OPUS, + AV_CODEC_ID_COMFORT_NOISE, + AV_CODEC_ID_TAK, + AV_CODEC_ID_METASOUND, + AV_CODEC_ID_PAF_AUDIO, + AV_CODEC_ID_ON2AVC, + AV_CODEC_ID_DSS_SP, + AV_CODEC_ID_CODEC2, + AV_CODEC_ID_FFWAVESYNTH, + AV_CODEC_ID_SONIC, + AV_CODEC_ID_SONIC_LS, + AV_CODEC_ID_EVRC, + AV_CODEC_ID_SMV, + AV_CODEC_ID_DSD_LSBF, + AV_CODEC_ID_DSD_MSBF, + AV_CODEC_ID_DSD_LSBF_PLANAR, + AV_CODEC_ID_DSD_MSBF_PLANAR, + AV_CODEC_ID_4GV, + AV_CODEC_ID_INTERPLAY_ACM, + AV_CODEC_ID_XMA1, + AV_CODEC_ID_XMA2, + AV_CODEC_ID_DST, + AV_CODEC_ID_ATRAC3AL, + AV_CODEC_ID_ATRAC3PAL, + AV_CODEC_ID_DOLBY_E, + AV_CODEC_ID_APTX, + AV_CODEC_ID_APTX_HD, + AV_CODEC_ID_SBC, + AV_CODEC_ID_ATRAC9, + AV_CODEC_ID_HCOM, + AV_CODEC_ID_ACELP_KELVIN, + AV_CODEC_ID_MPEGH_3D_AUDIO, + AV_CODEC_ID_SIREN, + AV_CODEC_ID_HCA, + AV_CODEC_ID_FASTAUDIO, + AV_CODEC_ID_MSNSIREN, + AV_CODEC_ID_DFPWM, + AV_CODEC_ID_BONK, + AV_CODEC_ID_MISC4, + AV_CODEC_ID_APAC, + AV_CODEC_ID_FTR, + AV_CODEC_ID_WAVARC, + AV_CODEC_ID_RKA, + AV_CODEC_ID_AC4, + AV_CODEC_ID_OSQ, + AV_CODEC_ID_QOA, + AV_CODEC_ID_LC3, + + /* subtitle codecs */ + AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs. + AV_CODEC_ID_DVD_SUBTITLE = 0x17000, + AV_CODEC_ID_DVB_SUBTITLE, + AV_CODEC_ID_TEXT, ///< raw UTF-8 text + AV_CODEC_ID_XSUB, + AV_CODEC_ID_SSA, + AV_CODEC_ID_MOV_TEXT, + AV_CODEC_ID_HDMV_PGS_SUBTITLE, + AV_CODEC_ID_DVB_TELETEXT, + AV_CODEC_ID_SRT, + AV_CODEC_ID_MICRODVD, + AV_CODEC_ID_EIA_608, + AV_CODEC_ID_JACOSUB, + AV_CODEC_ID_SAMI, + AV_CODEC_ID_REALTEXT, + AV_CODEC_ID_STL, + AV_CODEC_ID_SUBVIEWER1, + AV_CODEC_ID_SUBVIEWER, + AV_CODEC_ID_SUBRIP, + AV_CODEC_ID_WEBVTT, + AV_CODEC_ID_MPL2, + AV_CODEC_ID_VPLAYER, + AV_CODEC_ID_PJS, + AV_CODEC_ID_ASS, + AV_CODEC_ID_HDMV_TEXT_SUBTITLE, + AV_CODEC_ID_TTML, + AV_CODEC_ID_ARIB_CAPTION, + + /* other specific kind of codecs (generally used for attachments) */ + AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs. + AV_CODEC_ID_TTF = 0x18000, + + AV_CODEC_ID_SCTE_35, ///< Contain timestamp estimated through PCR of program stream. + AV_CODEC_ID_EPG, + AV_CODEC_ID_BINTEXT, + AV_CODEC_ID_XBIN, + AV_CODEC_ID_IDF, + AV_CODEC_ID_OTF, + AV_CODEC_ID_SMPTE_KLV, + AV_CODEC_ID_DVD_NAV, + AV_CODEC_ID_TIMED_ID3, + AV_CODEC_ID_BIN_DATA, + AV_CODEC_ID_SMPTE_2038, + AV_CODEC_ID_LCEVC, + + + AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it + + AV_CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS + * stream (only used by libavformat) */ + AV_CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems + * stream (only used by libavformat) */ + AV_CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information. + AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001, ///< Passthrough codec, AVFrames wrapped in AVPacket + /** + * Dummy null video codec, useful mainly for development and debugging. + * Null encoder/decoder discard all input and never return any output. + */ + AV_CODEC_ID_VNULL, + /** + * Dummy null audio codec, useful mainly for development and debugging. + * Null encoder/decoder discard all input and never return any output. + */ + AV_CODEC_ID_ANULL, +}; + +/** + * Get the type of the given codec. + */ +enum AVMediaType avcodec_get_type(enum AVCodecID codec_id); + +/** + * Get the name of a codec. + * @return a static string identifying the codec; never NULL + */ +const char *avcodec_get_name(enum AVCodecID id); + +/** + * Return codec bits per sample. + * + * @param[in] codec_id the codec + * @return Number of bits per sample or zero if unknown for the given codec. + */ +int av_get_bits_per_sample(enum AVCodecID codec_id); + +/** + * Return codec bits per sample. + * Only return non-zero if the bits per sample is exactly correct, not an + * approximation. + * + * @param[in] codec_id the codec + * @return Number of bits per sample or zero if unknown for the given codec. + */ +int av_get_exact_bits_per_sample(enum AVCodecID codec_id); + +/** + * Return a name for the specified profile, if available. + * + * @param codec_id the ID of the codec to which the requested profile belongs + * @param profile the profile value for which a name is requested + * @return A name for the profile if found, NULL otherwise. + * + * @note unlike av_get_profile_name(), which searches a list of profiles + * supported by a specific decoder or encoder implementation, this + * function searches the list of profiles from the AVCodecDescriptor + */ +const char *avcodec_profile_name(enum AVCodecID codec_id, int profile); + +/** + * Return the PCM codec associated with a sample format. + * @param be endianness, 0 for little, 1 for big, + * -1 (or anything else) for native + * @return AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE + */ +enum AVCodecID av_get_pcm_codec(enum AVSampleFormat fmt, int be); + +/** + * @} + */ + +#endif // AVCODEC_CODEC_ID_H diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_par.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_par.h new file mode 100644 index 00000000..f4b9bb5c --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/codec_par.h @@ -0,0 +1,248 @@ +/* + * Codec parameters public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_CODEC_PAR_H +#define AVCODEC_CODEC_PAR_H + +#include + +#include "libavutil/avutil.h" +#include "libavutil/channel_layout.h" +#include "libavutil/rational.h" +#include "libavutil/pixfmt.h" + +#include "codec_id.h" +#include "defs.h" +#include "packet.h" + +/** + * @addtogroup lavc_core + * @{ + */ + +/** + * This struct describes the properties of an encoded stream. + * + * sizeof(AVCodecParameters) is not a part of the public ABI, this struct must + * be allocated with avcodec_parameters_alloc() and freed with + * avcodec_parameters_free(). + */ +typedef struct AVCodecParameters { + /** + * General type of the encoded data. + */ + enum AVMediaType codec_type; + /** + * Specific type of the encoded data (the codec used). + */ + enum AVCodecID codec_id; + /** + * Additional information about the codec (corresponds to the AVI FOURCC). + */ + uint32_t codec_tag; + + /** + * Extra binary data needed for initializing the decoder, codec-dependent. + * + * Must be allocated with av_malloc() and will be freed by + * avcodec_parameters_free(). The allocated size of extradata must be at + * least extradata_size + AV_INPUT_BUFFER_PADDING_SIZE, with the padding + * bytes zeroed. + */ + uint8_t *extradata; + /** + * Size of the extradata content in bytes. + */ + int extradata_size; + + /** + * Additional data associated with the entire stream. + * + * Should be allocated with av_packet_side_data_new() or + * av_packet_side_data_add(), and will be freed by avcodec_parameters_free(). + */ + AVPacketSideData *coded_side_data; + + /** + * Amount of entries in @ref coded_side_data. + */ + int nb_coded_side_data; + + /** + * - video: the pixel format, the value corresponds to enum AVPixelFormat. + * - audio: the sample format, the value corresponds to enum AVSampleFormat. + */ + int format; + + /** + * The average bitrate of the encoded data (in bits per second). + */ + int64_t bit_rate; + + /** + * The number of bits per sample in the codedwords. + * + * This is basically the bitrate per sample. It is mandatory for a bunch of + * formats to actually decode them. It's the number of bits for one sample in + * the actual coded bitstream. + * + * This could be for example 4 for ADPCM + * For PCM formats this matches bits_per_raw_sample + * Can be 0 + */ + int bits_per_coded_sample; + + /** + * This is the number of valid bits in each output sample. If the + * sample format has more bits, the least significant bits are additional + * padding bits, which are always 0. Use right shifts to reduce the sample + * to its actual size. For example, audio formats with 24 bit samples will + * have bits_per_raw_sample set to 24, and format set to AV_SAMPLE_FMT_S32. + * To get the original sample use "(int32_t)sample >> 8"." + * + * For ADPCM this might be 12 or 16 or similar + * Can be 0 + */ + int bits_per_raw_sample; + + /** + * Codec-specific bitstream restrictions that the stream conforms to. + */ + int profile; + int level; + + /** + * Video only. The dimensions of the video frame in pixels. + */ + int width; + int height; + + /** + * Video only. The aspect ratio (width / height) which a single pixel + * should have when displayed. + * + * When the aspect ratio is unknown / undefined, the numerator should be + * set to 0 (the denominator may have any value). + */ + AVRational sample_aspect_ratio; + + /** + * Video only. Number of frames per second, for streams with constant frame + * durations. Should be set to { 0, 1 } when some frames have differing + * durations or if the value is not known. + * + * @note This field correponds to values that are stored in codec-level + * headers and is typically overridden by container/transport-layer + * timestamps, when available. It should thus be used only as a last resort, + * when no higher-level timing information is available. + */ + AVRational framerate; + + /** + * Video only. The order of the fields in interlaced video. + */ + enum AVFieldOrder field_order; + + /** + * Video only. Additional colorspace characteristics. + */ + enum AVColorRange color_range; + enum AVColorPrimaries color_primaries; + enum AVColorTransferCharacteristic color_trc; + enum AVColorSpace color_space; + enum AVChromaLocation chroma_location; + + /** + * Video only. Number of delayed frames. + */ + int video_delay; + + /** + * Audio only. The channel layout and number of channels. + */ + AVChannelLayout ch_layout; + /** + * Audio only. The number of audio samples per second. + */ + int sample_rate; + /** + * Audio only. The number of bytes per coded audio frame, required by some + * formats. + * + * Corresponds to nBlockAlign in WAVEFORMATEX. + */ + int block_align; + /** + * Audio only. Audio frame size, if known. Required by some formats to be static. + */ + int frame_size; + + /** + * Audio only. The amount of padding (in samples) inserted by the encoder at + * the beginning of the audio. I.e. this number of leading decoded samples + * must be discarded by the caller to get the original audio without leading + * padding. + */ + int initial_padding; + /** + * Audio only. The amount of padding (in samples) appended by the encoder to + * the end of the audio. I.e. this number of decoded samples must be + * discarded by the caller from the end of the stream to get the original + * audio without any trailing padding. + */ + int trailing_padding; + /** + * Audio only. Number of samples to skip after a discontinuity. + */ + int seek_preroll; +} AVCodecParameters; + +/** + * Allocate a new AVCodecParameters and set its fields to default values + * (unknown/invalid/0). The returned struct must be freed with + * avcodec_parameters_free(). + */ +AVCodecParameters *avcodec_parameters_alloc(void); + +/** + * Free an AVCodecParameters instance and everything associated with it and + * write NULL to the supplied pointer. + */ +void avcodec_parameters_free(AVCodecParameters **par); + +/** + * Copy the contents of src to dst. Any allocated fields in dst are freed and + * replaced with newly allocated duplicates of the corresponding fields in src. + * + * @return >= 0 on success, a negative AVERROR code on failure. + */ +int avcodec_parameters_copy(AVCodecParameters *dst, const AVCodecParameters *src); + +/** + * This function is the same as av_get_audio_frame_duration(), except it works + * with AVCodecParameters instead of an AVCodecContext. + */ +int av_get_audio_frame_duration2(AVCodecParameters *par, int frame_bytes); + +/** + * @} + */ + +#endif // AVCODEC_CODEC_PAR_H diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/d3d11va.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/d3d11va.h new file mode 100644 index 00000000..27f40e55 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/d3d11va.h @@ -0,0 +1,109 @@ +/* + * Direct3D11 HW acceleration + * + * copyright (c) 2009 Laurent Aimar + * copyright (c) 2015 Steve Lhomme + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_D3D11VA_H +#define AVCODEC_D3D11VA_H + +/** + * @file + * @ingroup lavc_codec_hwaccel_d3d11va + * Public libavcodec D3D11VA header. + */ + +#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0602 +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0602 +#endif + +#include +#include + +/** + * @defgroup lavc_codec_hwaccel_d3d11va Direct3D11 + * @ingroup lavc_codec_hwaccel + * + * @{ + */ + +/** + * This structure is used to provides the necessary configurations and data + * to the Direct3D11 FFmpeg HWAccel implementation. + * + * The application must make it available as AVCodecContext.hwaccel_context. + * + * Use av_d3d11va_alloc_context() exclusively to allocate an AVD3D11VAContext. + */ +typedef struct AVD3D11VAContext { + /** + * D3D11 decoder object + */ + ID3D11VideoDecoder *decoder; + + /** + * D3D11 VideoContext + */ + ID3D11VideoContext *video_context; + + /** + * D3D11 configuration used to create the decoder + */ + D3D11_VIDEO_DECODER_CONFIG *cfg; + + /** + * The number of surface in the surface array + */ + unsigned surface_count; + + /** + * The array of Direct3D surfaces used to create the decoder + */ + ID3D11VideoDecoderOutputView **surface; + + /** + * A bit field configuring the workarounds needed for using the decoder + */ + uint64_t workaround; + + /** + * Private to the FFmpeg AVHWAccel implementation + */ + unsigned report_id; + + /** + * Mutex to access video_context + */ + HANDLE context_mutex; +} AVD3D11VAContext; + +/** + * Allocate an AVD3D11VAContext. + * + * @return Newly-allocated AVD3D11VAContext or NULL on failure. + */ +AVD3D11VAContext *av_d3d11va_alloc_context(void); + +/** + * @} + */ + +#endif /* AVCODEC_D3D11VA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/defs.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/defs.h new file mode 100644 index 00000000..24250f8a --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/defs.h @@ -0,0 +1,337 @@ +/* + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_DEFS_H +#define AVCODEC_DEFS_H + +/** + * @file + * @ingroup libavc + * Misc types and constants that do not belong anywhere else. + */ + +#include +#include + +/** + * @ingroup lavc_decoding + * Required number of additionally allocated bytes at the end of the input bitstream for decoding. + * This is mainly needed because some optimized bitstream readers read + * 32 or 64 bit at once and could read over the end.
+ * Note: If the first 23 bits of the additional bytes are not 0, then damaged + * MPEG bitstreams could cause overread and segfault. + */ +#define AV_INPUT_BUFFER_PADDING_SIZE 64 + +/** + * Verify checksums embedded in the bitstream (could be of either encoded or + * decoded data, depending on the format) and print an error message on mismatch. + * If AV_EF_EXPLODE is also set, a mismatching checksum will result in the + * decoder/demuxer returning an error. + */ +#define AV_EF_CRCCHECK (1<<0) +#define AV_EF_BITSTREAM (1<<1) ///< detect bitstream specification deviations +#define AV_EF_BUFFER (1<<2) ///< detect improper bitstream length +#define AV_EF_EXPLODE (1<<3) ///< abort decoding on minor error detection + +#define AV_EF_IGNORE_ERR (1<<15) ///< ignore errors and continue +#define AV_EF_CAREFUL (1<<16) ///< consider things that violate the spec, are fast to calculate and have not been seen in the wild as errors +#define AV_EF_COMPLIANT (1<<17) ///< consider all spec non compliances as errors +#define AV_EF_AGGRESSIVE (1<<18) ///< consider things that a sane encoder/muxer should not do as an error + +#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software. +#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences. +#define FF_COMPLIANCE_NORMAL 0 +#define FF_COMPLIANCE_UNOFFICIAL -1 ///< Allow unofficial extensions +#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things. + + +#define AV_PROFILE_UNKNOWN -99 +#define AV_PROFILE_RESERVED -100 + +#define AV_PROFILE_AAC_MAIN 0 +#define AV_PROFILE_AAC_LOW 1 +#define AV_PROFILE_AAC_SSR 2 +#define AV_PROFILE_AAC_LTP 3 +#define AV_PROFILE_AAC_HE 4 +#define AV_PROFILE_AAC_HE_V2 28 +#define AV_PROFILE_AAC_LD 22 +#define AV_PROFILE_AAC_ELD 38 +#define AV_PROFILE_AAC_USAC 41 +#define AV_PROFILE_MPEG2_AAC_LOW 128 +#define AV_PROFILE_MPEG2_AAC_HE 131 + +#define AV_PROFILE_DNXHD 0 +#define AV_PROFILE_DNXHR_LB 1 +#define AV_PROFILE_DNXHR_SQ 2 +#define AV_PROFILE_DNXHR_HQ 3 +#define AV_PROFILE_DNXHR_HQX 4 +#define AV_PROFILE_DNXHR_444 5 + +#define AV_PROFILE_DTS 20 +#define AV_PROFILE_DTS_ES 30 +#define AV_PROFILE_DTS_96_24 40 +#define AV_PROFILE_DTS_HD_HRA 50 +#define AV_PROFILE_DTS_HD_MA 60 +#define AV_PROFILE_DTS_EXPRESS 70 +#define AV_PROFILE_DTS_HD_MA_X 61 +#define AV_PROFILE_DTS_HD_MA_X_IMAX 62 + +#define AV_PROFILE_EAC3_DDP_ATMOS 30 + +#define AV_PROFILE_TRUEHD_ATMOS 30 + +#define AV_PROFILE_MPEG2_422 0 +#define AV_PROFILE_MPEG2_HIGH 1 +#define AV_PROFILE_MPEG2_SS 2 +#define AV_PROFILE_MPEG2_SNR_SCALABLE 3 +#define AV_PROFILE_MPEG2_MAIN 4 +#define AV_PROFILE_MPEG2_SIMPLE 5 + +#define AV_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag +#define AV_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag + +#define AV_PROFILE_H264_BASELINE 66 +#define AV_PROFILE_H264_CONSTRAINED_BASELINE (66|AV_PROFILE_H264_CONSTRAINED) +#define AV_PROFILE_H264_MAIN 77 +#define AV_PROFILE_H264_EXTENDED 88 +#define AV_PROFILE_H264_HIGH 100 +#define AV_PROFILE_H264_HIGH_10 110 +#define AV_PROFILE_H264_HIGH_10_INTRA (110|AV_PROFILE_H264_INTRA) +#define AV_PROFILE_H264_MULTIVIEW_HIGH 118 +#define AV_PROFILE_H264_HIGH_422 122 +#define AV_PROFILE_H264_HIGH_422_INTRA (122|AV_PROFILE_H264_INTRA) +#define AV_PROFILE_H264_STEREO_HIGH 128 +#define AV_PROFILE_H264_HIGH_444 144 +#define AV_PROFILE_H264_HIGH_444_PREDICTIVE 244 +#define AV_PROFILE_H264_HIGH_444_INTRA (244|AV_PROFILE_H264_INTRA) +#define AV_PROFILE_H264_CAVLC_444 44 + +#define AV_PROFILE_VC1_SIMPLE 0 +#define AV_PROFILE_VC1_MAIN 1 +#define AV_PROFILE_VC1_COMPLEX 2 +#define AV_PROFILE_VC1_ADVANCED 3 + +#define AV_PROFILE_MPEG4_SIMPLE 0 +#define AV_PROFILE_MPEG4_SIMPLE_SCALABLE 1 +#define AV_PROFILE_MPEG4_CORE 2 +#define AV_PROFILE_MPEG4_MAIN 3 +#define AV_PROFILE_MPEG4_N_BIT 4 +#define AV_PROFILE_MPEG4_SCALABLE_TEXTURE 5 +#define AV_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6 +#define AV_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7 +#define AV_PROFILE_MPEG4_HYBRID 8 +#define AV_PROFILE_MPEG4_ADVANCED_REAL_TIME 9 +#define AV_PROFILE_MPEG4_CORE_SCALABLE 10 +#define AV_PROFILE_MPEG4_ADVANCED_CODING 11 +#define AV_PROFILE_MPEG4_ADVANCED_CORE 12 +#define AV_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13 +#define AV_PROFILE_MPEG4_SIMPLE_STUDIO 14 +#define AV_PROFILE_MPEG4_ADVANCED_SIMPLE 15 + +#define AV_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 1 +#define AV_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 2 +#define AV_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 32768 +#define AV_PROFILE_JPEG2000_DCINEMA_2K 3 +#define AV_PROFILE_JPEG2000_DCINEMA_4K 4 + +#define AV_PROFILE_VP9_0 0 +#define AV_PROFILE_VP9_1 1 +#define AV_PROFILE_VP9_2 2 +#define AV_PROFILE_VP9_3 3 + +#define AV_PROFILE_HEVC_MAIN 1 +#define AV_PROFILE_HEVC_MAIN_10 2 +#define AV_PROFILE_HEVC_MAIN_STILL_PICTURE 3 +#define AV_PROFILE_HEVC_REXT 4 +#define AV_PROFILE_HEVC_MULTIVIEW_MAIN 6 +#define AV_PROFILE_HEVC_SCC 9 + +#define AV_PROFILE_VVC_MAIN_10 1 +#define AV_PROFILE_VVC_MAIN_10_444 33 + +#define AV_PROFILE_AV1_MAIN 0 +#define AV_PROFILE_AV1_HIGH 1 +#define AV_PROFILE_AV1_PROFESSIONAL 2 + +#define AV_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT 0xc0 +#define AV_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT 0xc1 +#define AV_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT 0xc2 +#define AV_PROFILE_MJPEG_HUFFMAN_LOSSLESS 0xc3 +#define AV_PROFILE_MJPEG_JPEG_LS 0xf7 + +#define AV_PROFILE_SBC_MSBC 1 + +#define AV_PROFILE_PRORES_PROXY 0 +#define AV_PROFILE_PRORES_LT 1 +#define AV_PROFILE_PRORES_STANDARD 2 +#define AV_PROFILE_PRORES_HQ 3 +#define AV_PROFILE_PRORES_4444 4 +#define AV_PROFILE_PRORES_XQ 5 + +#define AV_PROFILE_ARIB_PROFILE_A 0 +#define AV_PROFILE_ARIB_PROFILE_C 1 + +#define AV_PROFILE_KLVA_SYNC 0 +#define AV_PROFILE_KLVA_ASYNC 1 + +#define AV_PROFILE_EVC_BASELINE 0 +#define AV_PROFILE_EVC_MAIN 1 + + +#define AV_LEVEL_UNKNOWN -99 + +enum AVFieldOrder { + AV_FIELD_UNKNOWN, + AV_FIELD_PROGRESSIVE, + AV_FIELD_TT, ///< Top coded_first, top displayed first + AV_FIELD_BB, ///< Bottom coded first, bottom displayed first + AV_FIELD_TB, ///< Top coded first, bottom displayed first + AV_FIELD_BT, ///< Bottom coded first, top displayed first +}; + +/** + * @ingroup lavc_decoding + */ +enum AVDiscard{ + /* We leave some space between them for extensions (drop some + * keyframes for intra-only or drop just some bidir frames). */ + AVDISCARD_NONE =-16, ///< discard nothing + AVDISCARD_DEFAULT = 0, ///< discard useless packets like 0 size packets in avi + AVDISCARD_NONREF = 8, ///< discard all non reference + AVDISCARD_BIDIR = 16, ///< discard all bidirectional frames + AVDISCARD_NONINTRA= 24, ///< discard all non intra frames + AVDISCARD_NONKEY = 32, ///< discard all frames except keyframes + AVDISCARD_ALL = 48, ///< discard all +}; + +enum AVAudioServiceType { + AV_AUDIO_SERVICE_TYPE_MAIN = 0, + AV_AUDIO_SERVICE_TYPE_EFFECTS = 1, + AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2, + AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3, + AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4, + AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5, + AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6, + AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7, + AV_AUDIO_SERVICE_TYPE_KARAOKE = 8, + AV_AUDIO_SERVICE_TYPE_NB , ///< Not part of ABI +}; + +/** + * Pan Scan area. + * This specifies the area which should be displayed. + * Note there may be multiple such areas for one frame. + */ +typedef struct AVPanScan { + /** + * id + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int id; + + /** + * width and height in 1/16 pel + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int width; + int height; + + /** + * position of the top left corner in 1/16 pel for up to 3 fields/frames + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int16_t position[3][2]; +} AVPanScan; + +/** + * This structure describes the bitrate properties of an encoded bitstream. It + * roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD + * parameters for H.264/HEVC. + */ +typedef struct AVCPBProperties { + /** + * Maximum bitrate of the stream, in bits per second. + * Zero if unknown or unspecified. + */ + int64_t max_bitrate; + /** + * Minimum bitrate of the stream, in bits per second. + * Zero if unknown or unspecified. + */ + int64_t min_bitrate; + /** + * Average bitrate of the stream, in bits per second. + * Zero if unknown or unspecified. + */ + int64_t avg_bitrate; + + /** + * The size of the buffer to which the ratecontrol is applied, in bits. + * Zero if unknown or unspecified. + */ + int64_t buffer_size; + + /** + * The delay between the time the packet this structure is associated with + * is received and the time when it should be decoded, in periods of a 27MHz + * clock. + * + * UINT64_MAX when unknown or unspecified. + */ + uint64_t vbv_delay; +} AVCPBProperties; + +/** + * Allocate a CPB properties structure and initialize its fields to default + * values. + * + * @param size if non-NULL, the size of the allocated struct will be written + * here. This is useful for embedding it in side data. + * + * @return the newly allocated struct or NULL on failure + */ +AVCPBProperties *av_cpb_properties_alloc(size_t *size); + +/** + * This structure supplies correlation between a packet timestamp and a wall clock + * production time. The definition follows the Producer Reference Time ('prft') + * as defined in ISO/IEC 14496-12 + */ +typedef struct AVProducerReferenceTime { + /** + * A UTC timestamp, in microseconds, since Unix epoch (e.g, av_gettime()). + */ + int64_t wallclock; + int flags; +} AVProducerReferenceTime; + +/** + * Encode extradata length to a buffer. Used by xiph codecs. + * + * @param s buffer to write to; must be at least (v/255+1) bytes long + * @param v size of extradata in bytes + * @return number of bytes written to the buffer. + */ +unsigned int av_xiphlacing(unsigned char *s, unsigned int v); + +#endif // AVCODEC_DEFS_H diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/dirac.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/dirac.h new file mode 100644 index 00000000..8c348cdc --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/dirac.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2007 Marco Gerards + * Copyright (C) 2009 David Conrad + * Copyright (C) 2011 Jordi Ortiz + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_DIRAC_H +#define AVCODEC_DIRAC_H + +/** + * @file + * Interface to Dirac Decoder/Encoder + * @author Marco Gerards + * @author David Conrad + * @author Jordi Ortiz + */ + +#include +#include + +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" + +/** + * The spec limits the number of wavelet decompositions to 4 for both + * level 1 (VC-2) and 128 (long-gop default). + * 5 decompositions is the maximum before >16-bit buffers are needed. + * Schroedinger allows this for DD 9,7 and 13,7 wavelets only, limiting + * the others to 4 decompositions (or 3 for the fidelity filter). + * + * We use this instead of MAX_DECOMPOSITIONS to save some memory. + */ +#define MAX_DWT_LEVELS 5 + +/** + * Parse code values: + * + * Dirac Specification -> + * 9.6.1 Table 9.1 + * + * VC-2 Specification -> + * 10.4.1 Table 10.1 + */ + +enum DiracParseCodes { + DIRAC_PCODE_SEQ_HEADER = 0x00, + DIRAC_PCODE_END_SEQ = 0x10, + DIRAC_PCODE_AUX = 0x20, + DIRAC_PCODE_PAD = 0x30, + DIRAC_PCODE_PICTURE_CODED = 0x08, + DIRAC_PCODE_PICTURE_RAW = 0x48, + DIRAC_PCODE_PICTURE_LOW_DEL = 0xC8, + DIRAC_PCODE_PICTURE_HQ = 0xE8, + DIRAC_PCODE_INTER_NOREF_CO1 = 0x0A, + DIRAC_PCODE_INTER_NOREF_CO2 = 0x09, + DIRAC_PCODE_INTER_REF_CO1 = 0x0D, + DIRAC_PCODE_INTER_REF_CO2 = 0x0E, + DIRAC_PCODE_INTRA_REF_CO = 0x0C, + DIRAC_PCODE_INTRA_REF_RAW = 0x4C, + DIRAC_PCODE_INTRA_REF_PICT = 0xCC, + DIRAC_PCODE_MAGIC = 0x42424344, +}; + +typedef struct DiracVersionInfo { + int major; + int minor; +} DiracVersionInfo; + +typedef struct AVDiracSeqHeader { + unsigned width; + unsigned height; + uint8_t chroma_format; ///< 0: 444 1: 422 2: 420 + + uint8_t interlaced; + uint8_t top_field_first; + + uint8_t frame_rate_index; ///< index into dirac_frame_rate[] + uint8_t aspect_ratio_index; ///< index into dirac_aspect_ratio[] + + uint16_t clean_width; + uint16_t clean_height; + uint16_t clean_left_offset; + uint16_t clean_right_offset; + + uint8_t pixel_range_index; ///< index into dirac_pixel_range_presets[] + uint8_t color_spec_index; ///< index into dirac_color_spec_presets[] + + int profile; + int level; + + AVRational framerate; + AVRational sample_aspect_ratio; + + enum AVPixelFormat pix_fmt; + enum AVColorRange color_range; + enum AVColorPrimaries color_primaries; + enum AVColorTransferCharacteristic color_trc; + enum AVColorSpace colorspace; + + DiracVersionInfo version; + int bit_depth; +} AVDiracSeqHeader; + +/** + * Parse a Dirac sequence header. + * + * @param dsh this function will allocate and fill an AVDiracSeqHeader struct + * and write it into this pointer. The caller must free it with + * av_free(). + * @param buf the data buffer + * @param buf_size the size of the data buffer in bytes + * @param log_ctx if non-NULL, this function will log errors here + * @return 0 on success, a negative AVERROR code on failure + */ +int av_dirac_parse_sequence_header(AVDiracSeqHeader **dsh, + const uint8_t *buf, size_t buf_size, + void *log_ctx); + +#endif /* AVCODEC_DIRAC_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/dv_profile.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/dv_profile.h new file mode 100644 index 00000000..4365f1b4 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/dv_profile.h @@ -0,0 +1,82 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_DV_PROFILE_H +#define AVCODEC_DV_PROFILE_H + +#include + +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" + +/* minimum number of bytes to read from a DV stream in order to + * determine the profile */ +#define DV_PROFILE_BYTES (6 * 80) /* 6 DIF blocks */ + + +/* + * AVDVProfile is used to express the differences between various + * DV flavors. For now it's primarily used for differentiating + * 525/60 and 625/50, but the plans are to use it for various + * DV specs as well (e.g. SMPTE314M vs. IEC 61834). + */ +typedef struct AVDVProfile { + int dsf; /* value of the dsf in the DV header */ + int video_stype; /* stype for VAUX source pack */ + int frame_size; /* total size of one frame in bytes */ + int difseg_size; /* number of DIF segments per DIF channel */ + int n_difchan; /* number of DIF channels per frame */ + AVRational time_base; /* 1/framerate */ + int ltc_divisor; /* FPS from the LTS standpoint */ + int height; /* picture height in pixels */ + int width; /* picture width in pixels */ + AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */ + enum AVPixelFormat pix_fmt; /* picture pixel format */ + int bpm; /* blocks per macroblock */ + const uint8_t *block_sizes; /* AC block sizes, in bits */ + int audio_stride; /* size of audio_shuffle table */ + int audio_min_samples[3]; /* min amount of audio samples */ + /* for 48kHz, 44.1kHz and 32kHz */ + int audio_samples_dist[5]; /* how many samples are supposed to be */ + /* in each frame in a 5 frames window */ + const uint8_t (*audio_shuffle)[9]; /* PCM shuffling table */ +} AVDVProfile; + +/** + * Get a DV profile for the provided compressed frame. + * + * @param sys the profile used for the previous frame, may be NULL + * @param frame the compressed data buffer + * @param buf_size size of the buffer in bytes + * @return the DV profile for the supplied data or NULL on failure + */ +const AVDVProfile *av_dv_frame_profile(const AVDVProfile *sys, + const uint8_t *frame, unsigned buf_size); + +/** + * Get a DV profile for the provided stream parameters. + */ +const AVDVProfile *av_dv_codec_profile(int width, int height, enum AVPixelFormat pix_fmt); + +/** + * Get a DV profile for the provided stream parameters. + * The frame rate is used as a best-effort parameter. + */ +const AVDVProfile *av_dv_codec_profile2(int width, int height, enum AVPixelFormat pix_fmt, AVRational frame_rate); + +#endif /* AVCODEC_DV_PROFILE_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/dxva2.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/dxva2.h new file mode 100644 index 00000000..bdec6112 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/dxva2.h @@ -0,0 +1,90 @@ +/* + * DXVA2 HW acceleration + * + * copyright (c) 2009 Laurent Aimar + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_DXVA2_H +#define AVCODEC_DXVA2_H + +/** + * @file + * @ingroup lavc_codec_hwaccel_dxva2 + * Public libavcodec DXVA2 header. + */ + +#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0602 +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0602 +#endif + +#include +#include +#include + +/** + * @defgroup lavc_codec_hwaccel_dxva2 DXVA2 + * @ingroup lavc_codec_hwaccel + * + * @{ + */ + +/** + * This structure is used to provides the necessary configurations and data + * to the DXVA2 FFmpeg HWAccel implementation. + * + * The application must make it available as AVCodecContext.hwaccel_context. + */ +struct dxva_context { + /** + * DXVA2 decoder object + */ + IDirectXVideoDecoder *decoder; + + /** + * DXVA2 configuration used to create the decoder + */ + const DXVA2_ConfigPictureDecode *cfg; + + /** + * The number of surface in the surface array + */ + unsigned surface_count; + + /** + * The array of Direct3D surfaces used to create the decoder + */ + LPDIRECT3DSURFACE9 *surface; + + /** + * A bit field configuring the workarounds needed for using the decoder + */ + uint64_t workaround; + + /** + * Private to the FFmpeg AVHWAccel implementation + */ + unsigned report_id; +}; + +/** + * @} + */ + +#endif /* AVCODEC_DXVA2_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/jni.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/jni.h new file mode 100644 index 00000000..955cd280 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/jni.h @@ -0,0 +1,67 @@ +/* + * JNI public API functions + * + * Copyright (c) 2015-2016 Matthieu Bouron + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_JNI_H +#define AVCODEC_JNI_H + +/* + * Manually set a Java virtual machine which will be used to retrieve the JNI + * environment. Once a Java VM is set it cannot be changed afterwards, meaning + * you can call multiple times av_jni_set_java_vm with the same Java VM pointer + * however it will error out if you try to set a different Java VM. + * + * @param vm Java virtual machine + * @param log_ctx context used for logging, can be NULL + * @return 0 on success, < 0 otherwise + */ +int av_jni_set_java_vm(void *vm, void *log_ctx); + +/* + * Get the Java virtual machine which has been set with av_jni_set_java_vm. + * + * @param vm Java virtual machine + * @return a pointer to the Java virtual machine + */ +void *av_jni_get_java_vm(void *log_ctx); + +/* + * Set the Android application context which will be used to retrieve the Android + * content resolver to handle content uris. + * + * This function is only available on Android. + * + * @param app_ctx global JNI reference to the Android application context + * @return 0 on success, < 0 otherwise + */ +int av_jni_set_android_app_ctx(void *app_ctx, void *log_ctx); + +/* + * Get the Android application context that has been set with + * av_jni_set_android_app_ctx. + * + * This function is only available on Android. + * + * @return a pointer the the Android application context + */ +void *av_jni_get_android_app_ctx(void); + +#endif /* AVCODEC_JNI_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/mediacodec.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/mediacodec.h new file mode 100644 index 00000000..4e9b56a6 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/mediacodec.h @@ -0,0 +1,103 @@ +/* + * Android MediaCodec public API + * + * Copyright (c) 2016 Matthieu Bouron + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_MEDIACODEC_H +#define AVCODEC_MEDIACODEC_H + +#include "libavcodec/avcodec.h" + +/** + * This structure holds a reference to a android/view/Surface object that will + * be used as output by the decoder. + * + */ +typedef struct AVMediaCodecContext { + + /** + * android/view/Surface object reference. + */ + void *surface; + +} AVMediaCodecContext; + +/** + * Allocate and initialize a MediaCodec context. + * + * When decoding with MediaCodec is finished, the caller must free the + * MediaCodec context with av_mediacodec_default_free. + * + * @return a pointer to a newly allocated AVMediaCodecContext on success, NULL otherwise + */ +AVMediaCodecContext *av_mediacodec_alloc_context(void); + +/** + * Convenience function that sets up the MediaCodec context. + * + * @param avctx codec context + * @param ctx MediaCodec context to initialize + * @param surface reference to an android/view/Surface + * @return 0 on success, < 0 otherwise + */ +int av_mediacodec_default_init(AVCodecContext *avctx, AVMediaCodecContext *ctx, void *surface); + +/** + * This function must be called to free the MediaCodec context initialized with + * av_mediacodec_default_init(). + * + * @param avctx codec context + */ +void av_mediacodec_default_free(AVCodecContext *avctx); + +/** + * Opaque structure representing a MediaCodec buffer to render. + */ +typedef struct MediaCodecBuffer AVMediaCodecBuffer; + +/** + * Release a MediaCodec buffer and render it to the surface that is associated + * with the decoder. This function should only be called once on a given + * buffer, once released the underlying buffer returns to the codec, thus + * subsequent calls to this function will have no effect. + * + * @param buffer the buffer to render + * @param render 1 to release and render the buffer to the surface or 0 to + * discard the buffer + * @return 0 on success, < 0 otherwise + */ +int av_mediacodec_release_buffer(AVMediaCodecBuffer *buffer, int render); + +/** + * Release a MediaCodec buffer and render it at the given time to the surface + * that is associated with the decoder. The timestamp must be within one second + * of the current `java/lang/System#nanoTime()` (which is implemented using + * `CLOCK_MONOTONIC` on Android). See the Android MediaCodec documentation + * of [`android/media/MediaCodec#releaseOutputBuffer(int,long)`][0] for more details. + * + * @param buffer the buffer to render + * @param time timestamp in nanoseconds of when to render the buffer + * @return 0 on success, < 0 otherwise + * + * [0]: https://developer.android.com/reference/android/media/MediaCodec#releaseOutputBuffer(int,%20long) + */ +int av_mediacodec_render_buffer_at_time(AVMediaCodecBuffer *buffer, int64_t time); + +#endif /* AVCODEC_MEDIACODEC_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/packet.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/packet.h new file mode 100644 index 00000000..0a280105 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/packet.h @@ -0,0 +1,887 @@ +/* + * AVPacket public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_PACKET_H +#define AVCODEC_PACKET_H + +#include +#include + +#include "libavutil/attributes.h" +#include "libavutil/buffer.h" +#include "libavutil/dict.h" +#include "libavutil/rational.h" +#include "libavutil/version.h" + +#include "libavcodec/version_major.h" + +/** + * @defgroup lavc_packet_side_data AVPacketSideData + * + * Types and functions for working with AVPacketSideData. + * @{ + */ +enum AVPacketSideDataType { + /** + * An AV_PKT_DATA_PALETTE side data packet contains exactly AVPALETTE_SIZE + * bytes worth of palette. This side data signals that a new palette is + * present. + */ + AV_PKT_DATA_PALETTE, + + /** + * The AV_PKT_DATA_NEW_EXTRADATA is used to notify the codec or the format + * that the extradata buffer was changed and the receiving side should + * act upon it appropriately. The new extradata is embedded in the side + * data buffer and should be immediately used for processing the current + * frame or packet. + */ + AV_PKT_DATA_NEW_EXTRADATA, + + /** + * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows: + * @code + * u32le param_flags + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) + * s32le sample_rate + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS) + * s32le width + * s32le height + * @endcode + */ + AV_PKT_DATA_PARAM_CHANGE, + + /** + * An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of + * structures with info about macroblocks relevant to splitting the + * packet into smaller packets on macroblock edges (e.g. as for RFC 2190). + * That is, it does not necessarily contain info about all macroblocks, + * as long as the distance between macroblocks in the info is smaller + * than the target payload size. + * Each MB info structure is 12 bytes, and is laid out as follows: + * @code + * u32le bit offset from the start of the packet + * u8 current quantizer at the start of the macroblock + * u8 GOB number + * u16le macroblock address within the GOB + * u8 horizontal MV predictor + * u8 vertical MV predictor + * u8 horizontal MV predictor for block number 3 + * u8 vertical MV predictor for block number 3 + * @endcode + */ + AV_PKT_DATA_H263_MB_INFO, + + /** + * This side data should be associated with an audio stream and contains + * ReplayGain information in form of the AVReplayGain struct. + */ + AV_PKT_DATA_REPLAYGAIN, + + /** + * This side data contains a 3x3 transformation matrix describing an affine + * transformation that needs to be applied to the decoded video frames for + * correct presentation. + * + * See libavutil/display.h for a detailed description of the data. + */ + AV_PKT_DATA_DISPLAYMATRIX, + + /** + * This side data should be associated with a video stream and contains + * Stereoscopic 3D information in form of the AVStereo3D struct. + */ + AV_PKT_DATA_STEREO3D, + + /** + * This side data should be associated with an audio stream and corresponds + * to enum AVAudioServiceType. + */ + AV_PKT_DATA_AUDIO_SERVICE_TYPE, + + /** + * This side data contains quality related information from the encoder. + * @code + * u32le quality factor of the compressed frame. Allowed range is between 1 (good) and FF_LAMBDA_MAX (bad). + * u8 picture type + * u8 error count + * u16 reserved + * u64le[error count] sum of squared differences between encoder in and output + * @endcode + */ + AV_PKT_DATA_QUALITY_STATS, + + /** + * This side data contains an integer value representing the stream index + * of a "fallback" track. A fallback track indicates an alternate + * track to use when the current track can not be decoded for some reason. + * e.g. no decoder available for codec. + */ + AV_PKT_DATA_FALLBACK_TRACK, + + /** + * This side data corresponds to the AVCPBProperties struct. + */ + AV_PKT_DATA_CPB_PROPERTIES, + + /** + * Recommmends skipping the specified number of samples + * @code + * u32le number of samples to skip from start of this packet + * u32le number of samples to skip from end of this packet + * u8 reason for start skip + * u8 reason for end skip (0=padding silence, 1=convergence) + * @endcode + */ + AV_PKT_DATA_SKIP_SAMPLES, + + /** + * An AV_PKT_DATA_JP_DUALMONO side data packet indicates that + * the packet may contain "dual mono" audio specific to Japanese DTV + * and if it is true, recommends only the selected channel to be used. + * @code + * u8 selected channels (0=main/left, 1=sub/right, 2=both) + * @endcode + */ + AV_PKT_DATA_JP_DUALMONO, + + /** + * A list of zero terminated key/value strings. There is no end marker for + * the list, so it is required to rely on the side data size to stop. + */ + AV_PKT_DATA_STRINGS_METADATA, + + /** + * Subtitle event position + * @code + * u32le x1 + * u32le y1 + * u32le x2 + * u32le y2 + * @endcode + */ + AV_PKT_DATA_SUBTITLE_POSITION, + + /** + * Data found in BlockAdditional element of matroska container. There is + * no end marker for the data, so it is required to rely on the side data + * size to recognize the end. 8 byte id (as found in BlockAddId) followed + * by data. + */ + AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, + + /** + * The optional first identifier line of a WebVTT cue. + */ + AV_PKT_DATA_WEBVTT_IDENTIFIER, + + /** + * The optional settings (rendering instructions) that immediately + * follow the timestamp specifier of a WebVTT cue. + */ + AV_PKT_DATA_WEBVTT_SETTINGS, + + /** + * A list of zero terminated key/value strings. There is no end marker for + * the list, so it is required to rely on the side data size to stop. This + * side data includes updated metadata which appeared in the stream. + */ + AV_PKT_DATA_METADATA_UPDATE, + + /** + * MPEGTS stream ID as uint8_t, this is required to pass the stream ID + * information from the demuxer to the corresponding muxer. + */ + AV_PKT_DATA_MPEGTS_STREAM_ID, + + /** + * Mastering display metadata (based on SMPTE-2086:2014). This metadata + * should be associated with a video stream and contains data in the form + * of the AVMasteringDisplayMetadata struct. + */ + AV_PKT_DATA_MASTERING_DISPLAY_METADATA, + + /** + * This side data should be associated with a video stream and corresponds + * to the AVSphericalMapping structure. + */ + AV_PKT_DATA_SPHERICAL, + + /** + * Content light level (based on CTA-861.3). This metadata should be + * associated with a video stream and contains data in the form of the + * AVContentLightMetadata struct. + */ + AV_PKT_DATA_CONTENT_LIGHT_LEVEL, + + /** + * ATSC A53 Part 4 Closed Captions. This metadata should be associated with + * a video stream. A53 CC bitstream is stored as uint8_t in AVPacketSideData.data. + * The number of bytes of CC data is AVPacketSideData.size. + */ + AV_PKT_DATA_A53_CC, + + /** + * This side data is encryption initialization data. + * The format is not part of ABI, use av_encryption_init_info_* methods to + * access. + */ + AV_PKT_DATA_ENCRYPTION_INIT_INFO, + + /** + * This side data contains encryption info for how to decrypt the packet. + * The format is not part of ABI, use av_encryption_info_* methods to access. + */ + AV_PKT_DATA_ENCRYPTION_INFO, + + /** + * Active Format Description data consisting of a single byte as specified + * in ETSI TS 101 154 using AVActiveFormatDescription enum. + */ + AV_PKT_DATA_AFD, + + /** + * Producer Reference Time data corresponding to the AVProducerReferenceTime struct, + * usually exported by some encoders (on demand through the prft flag set in the + * AVCodecContext export_side_data field). + */ + AV_PKT_DATA_PRFT, + + /** + * ICC profile data consisting of an opaque octet buffer following the + * format described by ISO 15076-1. + */ + AV_PKT_DATA_ICC_PROFILE, + + /** + * DOVI configuration + * ref: + * dolby-vision-bitstreams-within-the-iso-base-media-file-format-v2.1.2, section 2.2 + * dolby-vision-bitstreams-in-mpeg-2-transport-stream-multiplex-v1.2, section 3.3 + * Tags are stored in struct AVDOVIDecoderConfigurationRecord. + */ + AV_PKT_DATA_DOVI_CONF, + + /** + * Timecode which conforms to SMPTE ST 12-1:2014. The data is an array of 4 uint32_t + * where the first uint32_t describes how many (1-3) of the other timecodes are used. + * The timecode format is described in the documentation of av_timecode_get_smpte_from_framenum() + * function in libavutil/timecode.h. + */ + AV_PKT_DATA_S12M_TIMECODE, + + /** + * HDR10+ dynamic metadata associated with a video frame. The metadata is in + * the form of the AVDynamicHDRPlus struct and contains + * information for color volume transform - application 4 of + * SMPTE 2094-40:2016 standard. + */ + AV_PKT_DATA_DYNAMIC_HDR10_PLUS, + + /** + * IAMF Mix Gain Parameter Data associated with the audio frame. This metadata + * is in the form of the AVIAMFParamDefinition struct and contains information + * defined in sections 3.6.1 and 3.8.1 of the Immersive Audio Model and + * Formats standard. + */ + AV_PKT_DATA_IAMF_MIX_GAIN_PARAM, + + /** + * IAMF Demixing Info Parameter Data associated with the audio frame. This + * metadata is in the form of the AVIAMFParamDefinition struct and contains + * information defined in sections 3.6.1 and 3.8.2 of the Immersive Audio Model + * and Formats standard. + */ + AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM, + + /** + * IAMF Recon Gain Info Parameter Data associated with the audio frame. This + * metadata is in the form of the AVIAMFParamDefinition struct and contains + * information defined in sections 3.6.1 and 3.8.3 of the Immersive Audio Model + * and Formats standard. + */ + AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM, + + /** + * Ambient viewing environment metadata, as defined by H.274. This metadata + * should be associated with a video stream and contains data in the form + * of the AVAmbientViewingEnvironment struct. + */ + AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT, + + /** + * The number of pixels to discard from the top/bottom/left/right border of the + * decoded frame to obtain the sub-rectangle intended for presentation. + * + * @code + * u32le crop_top + * u32le crop_bottom + * u32le crop_left + * u32le crop_right + * @endcode + */ + AV_PKT_DATA_FRAME_CROPPING, + + /** + * Raw LCEVC payload data, as a uint8_t array, with NAL emulation + * bytes intact. + */ + AV_PKT_DATA_LCEVC, + + /** + * The number of side data types. + * This is not part of the public API/ABI in the sense that it may + * change when new side data types are added. + * This must stay the last enum value. + * If its value becomes huge, some code using it + * needs to be updated as it assumes it to be smaller than other limits. + */ + AV_PKT_DATA_NB +}; + +#if FF_API_QUALITY_FACTOR +#define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED +#endif + +/** + * This structure stores auxiliary information for decoding, presenting, or + * otherwise processing the coded stream. It is typically exported by demuxers + * and encoders and can be fed to decoders and muxers either in a per packet + * basis, or as global side data (applying to the entire coded stream). + * + * Global side data is handled as follows: + * - During demuxing, it may be exported through + * @ref AVStream.codecpar.side_data "AVStream's codec parameters", which can + * then be passed as input to decoders through the + * @ref AVCodecContext.coded_side_data "decoder context's side data", for + * initialization. + * - For muxing, it can be fed through @ref AVStream.codecpar.side_data + * "AVStream's codec parameters", typically the output of encoders through + * the @ref AVCodecContext.coded_side_data "encoder context's side data", for + * initialization. + * + * Packet specific side data is handled as follows: + * - During demuxing, it may be exported through @ref AVPacket.side_data + * "AVPacket's side data", which can then be passed as input to decoders. + * - For muxing, it can be fed through @ref AVPacket.side_data "AVPacket's + * side data", typically the output of encoders. + * + * Different modules may accept or export different types of side data + * depending on media type and codec. Refer to @ref AVPacketSideDataType for a + * list of defined types and where they may be found or used. + */ +typedef struct AVPacketSideData { + uint8_t *data; + size_t size; + enum AVPacketSideDataType type; +} AVPacketSideData; + +/** + * Allocate a new packet side data. + * + * @param sd pointer to an array of side data to which the side data should + * be added. *sd may be NULL, in which case the array will be + * initialized. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. The integer value will be increased by 1 on success. + * @param type side data type + * @param size desired side data size + * @param flags currently unused. Must be zero + * + * @return pointer to freshly allocated side data on success, or NULL otherwise. + */ +AVPacketSideData *av_packet_side_data_new(AVPacketSideData **psd, int *pnb_sd, + enum AVPacketSideDataType type, + size_t size, int flags); + +/** + * Wrap existing data as packet side data. + * + * @param sd pointer to an array of side data to which the side data should + * be added. *sd may be NULL, in which case the array will be + * initialized + * @param nb_sd pointer to an integer containing the number of entries in + * the array. The integer value will be increased by 1 on success. + * @param type side data type + * @param data a data array. It must be allocated with the av_malloc() family + * of functions. The ownership of the data is transferred to the + * side data array on success + * @param size size of the data array + * @param flags currently unused. Must be zero + * + * @return pointer to freshly allocated side data on success, or NULL otherwise + * On failure, the side data array is unchanged and the data remains + * owned by the caller. + */ +AVPacketSideData *av_packet_side_data_add(AVPacketSideData **sd, int *nb_sd, + enum AVPacketSideDataType type, + void *data, size_t size, int flags); + +/** + * Get side information from a side data array. + * + * @param sd the array from which the side data should be fetched + * @param nb_sd value containing the number of entries in the array. + * @param type desired side information type + * + * @return pointer to side data if present or NULL otherwise + */ +const AVPacketSideData *av_packet_side_data_get(const AVPacketSideData *sd, + int nb_sd, + enum AVPacketSideDataType type); + +/** + * Remove side data of the given type from a side data array. + * + * @param sd the array from which the side data should be removed + * @param nb_sd pointer to an integer containing the number of entries in + * the array. Will be reduced by the amount of entries removed + * upon return + * @param type side information type + */ +void av_packet_side_data_remove(AVPacketSideData *sd, int *nb_sd, + enum AVPacketSideDataType type); + +/** + * Convenience function to free all the side data stored in an array, and + * the array itself. + * + * @param sd pointer to array of side data to free. Will be set to NULL + * upon return. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. Will be set to 0 upon return. + */ +void av_packet_side_data_free(AVPacketSideData **sd, int *nb_sd); + +const char *av_packet_side_data_name(enum AVPacketSideDataType type); + +/** + * @} + */ + +/** + * @defgroup lavc_packet AVPacket + * + * Types and functions for working with AVPacket. + * @{ + */ + +/** + * This structure stores compressed data. It is typically exported by demuxers + * and then passed as input to decoders, or received as output from encoders and + * then passed to muxers. + * + * For video, it should typically contain one compressed frame. For audio it may + * contain several compressed frames. Encoders are allowed to output empty + * packets, with no compressed data, containing only side data + * (e.g. to update some stream parameters at the end of encoding). + * + * The semantics of data ownership depends on the buf field. + * If it is set, the packet data is dynamically allocated and is + * valid indefinitely until a call to av_packet_unref() reduces the + * reference count to 0. + * + * If the buf field is not set av_packet_ref() would make a copy instead + * of increasing the reference count. + * + * The side data is always allocated with av_malloc(), copied by + * av_packet_ref() and freed by av_packet_unref(). + * + * sizeof(AVPacket) being a part of the public ABI is deprecated. once + * av_init_packet() is removed, new packets will only be able to be allocated + * with av_packet_alloc(), and new fields may be added to the end of the struct + * with a minor bump. + * + * @see av_packet_alloc + * @see av_packet_ref + * @see av_packet_unref + */ +typedef struct AVPacket { + /** + * A reference to the reference-counted buffer where the packet data is + * stored. + * May be NULL, then the packet data is not reference-counted. + */ + AVBufferRef *buf; + /** + * Presentation timestamp in AVStream->time_base units; the time at which + * the decompressed packet will be presented to the user. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + * pts MUST be larger or equal to dts as presentation cannot happen before + * decompression, unless one wants to view hex dumps. Some formats misuse + * the terms dts and pts/cts to mean something different. Such timestamps + * must be converted to true pts/dts before they are stored in AVPacket. + */ + int64_t pts; + /** + * Decompression timestamp in AVStream->time_base units; the time at which + * the packet is decompressed. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + */ + int64_t dts; + uint8_t *data; + int size; + int stream_index; + /** + * A combination of AV_PKT_FLAG values + */ + int flags; + /** + * Additional packet data that can be provided by the container. + * Packet can contain several types of side information. + */ + AVPacketSideData *side_data; + int side_data_elems; + + /** + * Duration of this packet in AVStream->time_base units, 0 if unknown. + * Equals next_pts - this_pts in presentation order. + */ + int64_t duration; + + int64_t pos; ///< byte position in stream, -1 if unknown + + /** + * for some private data of the user + */ + void *opaque; + + /** + * AVBufferRef for free use by the API user. FFmpeg will never check the + * contents of the buffer ref. FFmpeg calls av_buffer_unref() on it when + * the packet is unreferenced. av_packet_copy_props() calls create a new + * reference with av_buffer_ref() for the target packet's opaque_ref field. + * + * This is unrelated to the opaque field, although it serves a similar + * purpose. + */ + AVBufferRef *opaque_ref; + + /** + * Time base of the packet's timestamps. + * In the future, this field may be set on packets output by encoders or + * demuxers, but its value will be by default ignored on input to decoders + * or muxers. + */ + AVRational time_base; +} AVPacket; + +#if FF_API_INIT_PACKET +attribute_deprecated +typedef struct AVPacketList { + AVPacket pkt; + struct AVPacketList *next; +} AVPacketList; +#endif + +#define AV_PKT_FLAG_KEY 0x0001 ///< The packet contains a keyframe +#define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted +/** + * Flag is used to discard packets which are required to maintain valid + * decoder state but are not required for output and should be dropped + * after decoding. + **/ +#define AV_PKT_FLAG_DISCARD 0x0004 +/** + * The packet comes from a trusted source. + * + * Otherwise-unsafe constructs such as arbitrary pointers to data + * outside the packet may be followed. + */ +#define AV_PKT_FLAG_TRUSTED 0x0008 +/** + * Flag is used to indicate packets that contain frames that can + * be discarded by the decoder. I.e. Non-reference frames. + */ +#define AV_PKT_FLAG_DISPOSABLE 0x0010 + +enum AVSideDataParamChangeFlags { + AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004, + AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008, +}; + +/** + * Allocate an AVPacket and set its fields to default values. The resulting + * struct must be freed using av_packet_free(). + * + * @return An AVPacket filled with default values or NULL on failure. + * + * @note this only allocates the AVPacket itself, not the data buffers. Those + * must be allocated through other means such as av_new_packet. + * + * @see av_new_packet + */ +AVPacket *av_packet_alloc(void); + +/** + * Create a new packet that references the same data as src. + * + * This is a shortcut for av_packet_alloc()+av_packet_ref(). + * + * @return newly created AVPacket on success, NULL on error. + * + * @see av_packet_alloc + * @see av_packet_ref + */ +AVPacket *av_packet_clone(const AVPacket *src); + +/** + * Free the packet, if the packet is reference counted, it will be + * unreferenced first. + * + * @param pkt packet to be freed. The pointer will be set to NULL. + * @note passing NULL is a no-op. + */ +void av_packet_free(AVPacket **pkt); + +#if FF_API_INIT_PACKET +/** + * Initialize optional fields of a packet with default values. + * + * Note, this does not touch the data and size members, which have to be + * initialized separately. + * + * @param pkt packet + * + * @see av_packet_alloc + * @see av_packet_unref + * + * @deprecated This function is deprecated. Once it's removed, + sizeof(AVPacket) will not be a part of the ABI anymore. + */ +attribute_deprecated +void av_init_packet(AVPacket *pkt); +#endif + +/** + * Allocate the payload of a packet and initialize its fields with + * default values. + * + * @param pkt packet + * @param size wanted payload size + * @return 0 if OK, AVERROR_xxx otherwise + */ +int av_new_packet(AVPacket *pkt, int size); + +/** + * Reduce packet size, correctly zeroing padding + * + * @param pkt packet + * @param size new size + */ +void av_shrink_packet(AVPacket *pkt, int size); + +/** + * Increase packet size, correctly zeroing padding + * + * @param pkt packet + * @param grow_by number of bytes by which to increase the size of the packet + */ +int av_grow_packet(AVPacket *pkt, int grow_by); + +/** + * Initialize a reference-counted packet from av_malloc()ed data. + * + * @param pkt packet to be initialized. This function will set the data, size, + * and buf fields, all others are left untouched. + * @param data Data allocated by av_malloc() to be used as packet data. If this + * function returns successfully, the data is owned by the underlying AVBuffer. + * The caller may not access the data through other means. + * @param size size of data in bytes, without the padding. I.e. the full buffer + * size is assumed to be size + AV_INPUT_BUFFER_PADDING_SIZE. + * + * @return 0 on success, a negative AVERROR on error + */ +int av_packet_from_data(AVPacket *pkt, uint8_t *data, int size); + +/** + * Allocate new information of a packet. + * + * @param pkt packet + * @param type side information type + * @param size side information size + * @return pointer to fresh allocated data or NULL otherwise + */ +uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type, + size_t size); + +/** + * Wrap an existing array as a packet side data. + * + * @param pkt packet + * @param type side information type + * @param data the side data array. It must be allocated with the av_malloc() + * family of functions. The ownership of the data is transferred to + * pkt. + * @param size side information size + * @return a non-negative number on success, a negative AVERROR code on + * failure. On failure, the packet is unchanged and the data remains + * owned by the caller. + */ +int av_packet_add_side_data(AVPacket *pkt, enum AVPacketSideDataType type, + uint8_t *data, size_t size); + +/** + * Shrink the already allocated side data buffer + * + * @param pkt packet + * @param type side information type + * @param size new side information size + * @return 0 on success, < 0 on failure + */ +int av_packet_shrink_side_data(AVPacket *pkt, enum AVPacketSideDataType type, + size_t size); + +/** + * Get side information from packet. + * + * @param pkt packet + * @param type desired side information type + * @param size If supplied, *size will be set to the size of the side data + * or to zero if the desired side data is not present. + * @return pointer to data if present or NULL otherwise + */ +uint8_t* av_packet_get_side_data(const AVPacket *pkt, enum AVPacketSideDataType type, + size_t *size); + +/** + * Pack a dictionary for use in side_data. + * + * @param dict The dictionary to pack. + * @param size pointer to store the size of the returned data + * @return pointer to data if successful, NULL otherwise + */ +uint8_t *av_packet_pack_dictionary(AVDictionary *dict, size_t *size); +/** + * Unpack a dictionary from side_data. + * + * @param data data from side_data + * @param size size of the data + * @param dict the metadata storage dictionary + * @return 0 on success, < 0 on failure + */ +int av_packet_unpack_dictionary(const uint8_t *data, size_t size, + AVDictionary **dict); + +/** + * Convenience function to free all the side data stored. + * All the other fields stay untouched. + * + * @param pkt packet + */ +void av_packet_free_side_data(AVPacket *pkt); + +/** + * Setup a new reference to the data described by a given packet + * + * If src is reference-counted, setup dst as a new reference to the + * buffer in src. Otherwise allocate a new buffer in dst and copy the + * data from src into it. + * + * All the other fields are copied from src. + * + * @see av_packet_unref + * + * @param dst Destination packet. Will be completely overwritten. + * @param src Source packet + * + * @return 0 on success, a negative AVERROR on error. On error, dst + * will be blank (as if returned by av_packet_alloc()). + */ +int av_packet_ref(AVPacket *dst, const AVPacket *src); + +/** + * Wipe the packet. + * + * Unreference the buffer referenced by the packet and reset the + * remaining packet fields to their default values. + * + * @param pkt The packet to be unreferenced. + */ +void av_packet_unref(AVPacket *pkt); + +/** + * Move every field in src to dst and reset src. + * + * @see av_packet_unref + * + * @param src Source packet, will be reset + * @param dst Destination packet + */ +void av_packet_move_ref(AVPacket *dst, AVPacket *src); + +/** + * Copy only "properties" fields from src to dst. + * + * Properties for the purpose of this function are all the fields + * beside those related to the packet data (buf, data, size) + * + * @param dst Destination packet + * @param src Source packet + * + * @return 0 on success AVERROR on failure. + */ +int av_packet_copy_props(AVPacket *dst, const AVPacket *src); + +/** + * Ensure the data described by a given packet is reference counted. + * + * @note This function does not ensure that the reference will be writable. + * Use av_packet_make_writable instead for that purpose. + * + * @see av_packet_ref + * @see av_packet_make_writable + * + * @param pkt packet whose data should be made reference counted. + * + * @return 0 on success, a negative AVERROR on error. On failure, the + * packet is unchanged. + */ +int av_packet_make_refcounted(AVPacket *pkt); + +/** + * Create a writable reference for the data described by a given packet, + * avoiding data copy if possible. + * + * @param pkt Packet whose data should be made writable. + * + * @return 0 on success, a negative AVERROR on failure. On failure, the + * packet is unchanged. + */ +int av_packet_make_writable(AVPacket *pkt); + +/** + * Convert valid timing fields (timestamps / durations) in a packet from one + * timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be + * ignored. + * + * @param pkt packet on which the conversion will be performed + * @param tb_src source timebase, in which the timing fields in pkt are + * expressed + * @param tb_dst destination timebase, to which the timing fields will be + * converted + */ +void av_packet_rescale_ts(AVPacket *pkt, AVRational tb_src, AVRational tb_dst); + +/** + * @} + */ + +#endif // AVCODEC_PACKET_H diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/qsv.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/qsv.h new file mode 100644 index 00000000..c156b08d --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/qsv.h @@ -0,0 +1,109 @@ +/* + * Intel MediaSDK QSV public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_QSV_H +#define AVCODEC_QSV_H + +#include + +#include "libavutil/buffer.h" + +/** + * This struct is used for communicating QSV parameters between libavcodec and + * the caller. It is managed by the caller and must be assigned to + * AVCodecContext.hwaccel_context. + * - decoding: hwaccel_context must be set on return from the get_format() + * callback + * - encoding: hwaccel_context must be set before avcodec_open2() + */ +typedef struct AVQSVContext { + /** + * If non-NULL, the session to use for encoding or decoding. + * Otherwise, libavcodec will try to create an internal session. + */ + mfxSession session; + + /** + * The IO pattern to use. + */ + int iopattern; + + /** + * Extra buffers to pass to encoder or decoder initialization. + */ + mfxExtBuffer **ext_buffers; + int nb_ext_buffers; + + /** + * Encoding only. If this field is set to non-zero by the caller, libavcodec + * will create an mfxExtOpaqueSurfaceAlloc extended buffer and pass it to + * the encoder initialization. This only makes sense if iopattern is also + * set to MFX_IOPATTERN_IN_OPAQUE_MEMORY. + * + * The number of allocated opaque surfaces will be the sum of the number + * required by the encoder and the user-provided value nb_opaque_surfaces. + * The array of the opaque surfaces will be exported to the caller through + * the opaque_surfaces field. + * + * The caller must set this field to zero for oneVPL (MFX_VERSION >= 2.0) + */ + int opaque_alloc; + + /** + * Encoding only, and only if opaque_alloc is set to non-zero. Before + * calling avcodec_open2(), the caller should set this field to the number + * of extra opaque surfaces to allocate beyond what is required by the + * encoder. + * + * On return from avcodec_open2(), this field will be set by libavcodec to + * the total number of allocated opaque surfaces. + */ + int nb_opaque_surfaces; + + /** + * Encoding only, and only if opaque_alloc is set to non-zero. On return + * from avcodec_open2(), this field will be used by libavcodec to export the + * array of the allocated opaque surfaces to the caller, so they can be + * passed to other parts of the pipeline. + * + * The buffer reference exported here is owned and managed by libavcodec, + * the callers should make their own reference with av_buffer_ref() and free + * it with av_buffer_unref() when it is no longer needed. + * + * The buffer data is an nb_opaque_surfaces-sized array of mfxFrameSurface1. + */ + AVBufferRef *opaque_surfaces; + + /** + * Encoding only, and only if opaque_alloc is set to non-zero. On return + * from avcodec_open2(), this field will be set to the surface type used in + * the opaque allocation request. + */ + int opaque_alloc_type; +} AVQSVContext; + +/** + * Allocate a new context. + * + * It must be freed by the caller with av_free(). + */ +AVQSVContext *av_qsv_alloc_context(void); + +#endif /* AVCODEC_QSV_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/vdpau.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/vdpau.h new file mode 100644 index 00000000..8021c257 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/vdpau.h @@ -0,0 +1,171 @@ +/* + * The Video Decode and Presentation API for UNIX (VDPAU) is used for + * hardware-accelerated decoding of MPEG-1/2, H.264 and VC-1. + * + * Copyright (C) 2008 NVIDIA + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VDPAU_H +#define AVCODEC_VDPAU_H + +/** + * @file + * @ingroup lavc_codec_hwaccel_vdpau + * Public libavcodec VDPAU header. + */ + + +/** + * @defgroup lavc_codec_hwaccel_vdpau VDPAU Decoder and Renderer + * @ingroup lavc_codec_hwaccel + * + * VDPAU hardware acceleration has two modules + * - VDPAU decoding + * - VDPAU presentation + * + * The VDPAU decoding module parses all headers using FFmpeg + * parsing mechanisms and uses VDPAU for the actual decoding. + * + * As per the current implementation, the actual decoding + * and rendering (API calls) are done as part of the VDPAU + * presentation (vo_vdpau.c) module. + * + * @{ + */ + +#include + +#include "libavutil/avconfig.h" +#include "libavutil/attributes.h" + +#include "avcodec.h" + +struct AVCodecContext; +struct AVFrame; + +typedef int (*AVVDPAU_Render2)(struct AVCodecContext *, struct AVFrame *, + const VdpPictureInfo *, uint32_t, + const VdpBitstreamBuffer *); + +/** + * This structure is used to share data between the libavcodec library and + * the client video application. + * This structure will be allocated and stored in AVCodecContext.hwaccel_context + * by av_vdpau_bind_context(). Members can be set by the user once + * during initialization or through each AVCodecContext.get_buffer() + * function call. In any case, they must be valid prior to calling + * decoding functions. + * + * The size of this structure is not a part of the public ABI and must not + * be used outside of libavcodec. + */ +typedef struct AVVDPAUContext { + /** + * VDPAU decoder handle + * + * Set by user. + */ + VdpDecoder decoder; + + /** + * VDPAU decoder render callback + * + * Set by the user. + */ + VdpDecoderRender *render; + + AVVDPAU_Render2 render2; +} AVVDPAUContext; + +#if FF_API_VDPAU_ALLOC_GET_SET +/** + * @brief allocation function for AVVDPAUContext + * + * Allows extending the struct without breaking API/ABI + * @deprecated use av_vdpau_bind_context() instead + */ +attribute_deprecated +AVVDPAUContext *av_alloc_vdpaucontext(void); + +/** + * @deprecated render2 is public and can be accessed directly + */ +attribute_deprecated +AVVDPAU_Render2 av_vdpau_hwaccel_get_render2(const AVVDPAUContext *); +/** + * @deprecated render2 is public and can be accessed directly + */ +attribute_deprecated +void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2); +#endif + +/** + * Associate a VDPAU device with a codec context for hardware acceleration. + * This function is meant to be called from the get_format() codec callback, + * or earlier. It can also be called after avcodec_flush_buffers() to change + * the underlying VDPAU device mid-stream (e.g. to recover from non-transparent + * display preemption). + * + * @note get_format() must return AV_PIX_FMT_VDPAU if this function completes + * successfully. + * + * @param avctx decoding context whose get_format() callback is invoked + * @param device VDPAU device handle to use for hardware acceleration + * @param get_proc_address VDPAU device driver + * @param flags zero of more OR'd AV_HWACCEL_FLAG_* flags + * + * @return 0 on success, an AVERROR code on failure. + */ +int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device, + VdpGetProcAddress *get_proc_address, unsigned flags); + +/** + * Gets the parameters to create an adequate VDPAU video surface for the codec + * context using VDPAU hardware decoding acceleration. + * + * @note Behavior is undefined if the context was not successfully bound to a + * VDPAU device using av_vdpau_bind_context(). + * + * @param avctx the codec context being used for decoding the stream + * @param type storage space for the VDPAU video surface chroma type + * (or NULL to ignore) + * @param width storage space for the VDPAU video surface pixel width + * (or NULL to ignore) + * @param height storage space for the VDPAU video surface pixel height + * (or NULL to ignore) + * + * @return 0 on success, a negative AVERROR code on failure. + */ +int av_vdpau_get_surface_parameters(AVCodecContext *avctx, VdpChromaType *type, + uint32_t *width, uint32_t *height); + +#if FF_API_VDPAU_ALLOC_GET_SET +/** + * Allocate an AVVDPAUContext. + * + * @return Newly-allocated AVVDPAUContext or NULL on failure. + * @deprecated use av_vdpau_bind_context() instead + */ +attribute_deprecated +AVVDPAUContext *av_vdpau_alloc_context(void); +#endif + +/** @} */ + +#endif /* AVCODEC_VDPAU_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/version.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/version.h new file mode 100644 index 00000000..b6ca025f --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/version.h @@ -0,0 +1,45 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VERSION_H +#define AVCODEC_VERSION_H + +/** + * @file + * @ingroup libavc + * Libavcodec version macros. + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBAVCODEC_VERSION_MINOR 19 +#define LIBAVCODEC_VERSION_MICRO 101 + +#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ + LIBAVCODEC_VERSION_MINOR, \ + LIBAVCODEC_VERSION_MICRO) +#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \ + LIBAVCODEC_VERSION_MINOR, \ + LIBAVCODEC_VERSION_MICRO) +#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT + +#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) + +#endif /* AVCODEC_VERSION_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/version_major.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/version_major.h new file mode 100644 index 00000000..63df40e9 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/version_major.h @@ -0,0 +1,52 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VERSION_MAJOR_H +#define AVCODEC_VERSION_MAJOR_H + +/** + * @file + * @ingroup libavc + * Libavcodec version macros. + */ + +#define LIBAVCODEC_VERSION_MAJOR 61 + +/** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + * + * @note, when bumping the major version it is recommended to manually + * disable each FF_API_* in its own commit instead of disabling them all + * at once through the bump. This improves the git bisect-ability of the change. + */ + +#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 62) + +#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_AVCODEC_CLOSE (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_BUFFER_MIN_SIZE (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_VDPAU_ALLOC_GET_SET (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_QUALITY_FACTOR (LIBAVCODEC_VERSION_MAJOR < 62) + +#endif /* AVCODEC_VERSION_MAJOR_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/videotoolbox.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/videotoolbox.h new file mode 100644 index 00000000..d68d76e4 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/videotoolbox.h @@ -0,0 +1,85 @@ +/* + * Videotoolbox hardware acceleration + * + * copyright (c) 2012 Sebastien Zwickert + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VIDEOTOOLBOX_H +#define AVCODEC_VIDEOTOOLBOX_H + +/** + * @file + * @ingroup lavc_codec_hwaccel_videotoolbox + * Public libavcodec Videotoolbox header. + */ + +/** + * @defgroup lavc_codec_hwaccel_videotoolbox VideoToolbox Decoder + * @ingroup lavc_codec_hwaccel + * + * Hardware accelerated decoding using VideoToolbox on Apple Platforms + * + * @{ + */ + +#include + +#define Picture QuickdrawPicture +#include +#undef Picture + +#include "libavcodec/avcodec.h" + +#include "libavutil/attributes.h" + +/** + * This struct holds all the information that needs to be passed + * between the caller and libavcodec for initializing Videotoolbox decoding. + * Its size is not a part of the public ABI, it must be allocated with + * av_videotoolbox_alloc_context() and freed with av_free(). + */ +typedef struct AVVideotoolboxContext { + /** + * Videotoolbox decompression session object. + */ + VTDecompressionSessionRef session; + + /** + * CVPixelBuffer Format Type that Videotoolbox will use for decoded frames. + * set by the caller. If this is set to 0, then no specific format is + * requested from the decoder, and its native format is output. + */ + OSType cv_pix_fmt_type; + + /** + * CoreMedia Format Description that Videotoolbox will use to create the decompression session. + */ + CMVideoFormatDescriptionRef cm_fmt_desc; + + /** + * CoreMedia codec type that Videotoolbox will use to create the decompression session. + */ + int cm_codec_type; +} AVVideotoolboxContext; + +/** + * @} + */ + +#endif /* AVCODEC_VIDEOTOOLBOX_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavcodec/vorbis_parser.h b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/vorbis_parser.h new file mode 100644 index 00000000..789932ac --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavcodec/vorbis_parser.h @@ -0,0 +1,74 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * A public API for Vorbis parsing + * + * Determines the duration for each packet. + */ + +#ifndef AVCODEC_VORBIS_PARSER_H +#define AVCODEC_VORBIS_PARSER_H + +#include + +typedef struct AVVorbisParseContext AVVorbisParseContext; + +/** + * Allocate and initialize the Vorbis parser using headers in the extradata. + */ +AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata, + int extradata_size); + +/** + * Free the parser and everything associated with it. + */ +void av_vorbis_parse_free(AVVorbisParseContext **s); + +#define VORBIS_FLAG_HEADER 0x00000001 +#define VORBIS_FLAG_COMMENT 0x00000002 +#define VORBIS_FLAG_SETUP 0x00000004 + +/** + * Get the duration for a Vorbis packet. + * + * If @p flags is @c NULL, + * special frames are considered invalid. + * + * @param s Vorbis parser context + * @param buf buffer containing a Vorbis frame + * @param buf_size size of the buffer + * @param flags flags for special frames + */ +int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf, + int buf_size, int *flags); + +/** + * Get the duration for a Vorbis packet. + * + * @param s Vorbis parser context + * @param buf buffer containing a Vorbis frame + * @param buf_size size of the buffer + */ +int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf, + int buf_size); + +void av_vorbis_parse_reset(AVVorbisParseContext *s); + +#endif /* AVCODEC_VORBIS_PARSER_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavfilter/avfilter.h b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/avfilter.h new file mode 100644 index 00000000..1401577c --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/avfilter.h @@ -0,0 +1,1379 @@ +/* + * filter layer + * Copyright (c) 2007 Bobby Bingham + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_AVFILTER_H +#define AVFILTER_AVFILTER_H + +/** + * @file + * @ingroup lavfi + * Main libavfilter public API header + */ + +/** + * @defgroup lavfi libavfilter + * Graph-based frame editing library. + * + * @{ + */ + +#include + +#include "libavutil/attributes.h" +#include "libavutil/avutil.h" +#include "libavutil/buffer.h" +#include "libavutil/dict.h" +#include "libavutil/frame.h" +#include "libavutil/log.h" +#include "libavutil/samplefmt.h" +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" + +#include "libavfilter/version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "libavfilter/version.h" +#endif + +/** + * Return the LIBAVFILTER_VERSION_INT constant. + */ +unsigned avfilter_version(void); + +/** + * Return the libavfilter build-time configuration. + */ +const char *avfilter_configuration(void); + +/** + * Return the libavfilter license. + */ +const char *avfilter_license(void); + +typedef struct AVFilterContext AVFilterContext; +typedef struct AVFilterLink AVFilterLink; +typedef struct AVFilterPad AVFilterPad; +typedef struct AVFilterFormats AVFilterFormats; +typedef struct AVFilterChannelLayouts AVFilterChannelLayouts; + +/** + * Get the name of an AVFilterPad. + * + * @param pads an array of AVFilterPads + * @param pad_idx index of the pad in the array; it is the caller's + * responsibility to ensure the index is valid + * + * @return name of the pad_idx'th pad in pads + */ +const char *avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx); + +/** + * Get the type of an AVFilterPad. + * + * @param pads an array of AVFilterPads + * @param pad_idx index of the pad in the array; it is the caller's + * responsibility to ensure the index is valid + * + * @return type of the pad_idx'th pad in pads + */ +enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx); + +/** + * Lists of formats / etc. supported by an end of a link. + * + * This structure is directly part of AVFilterLink, in two copies: + * one for the source filter, one for the destination filter. + + * These lists are used for negotiating the format to actually be used, + * which will be loaded into the format and channel_layout members of + * AVFilterLink, when chosen. + */ +typedef struct AVFilterFormatsConfig { + + /** + * List of supported formats (pixel or sample). + */ + AVFilterFormats *formats; + + /** + * Lists of supported sample rates, only for audio. + */ + AVFilterFormats *samplerates; + + /** + * Lists of supported channel layouts, only for audio. + */ + AVFilterChannelLayouts *channel_layouts; + + /** + * Lists of supported YUV color metadata, only for YUV video. + */ + AVFilterFormats *color_spaces; ///< AVColorSpace + AVFilterFormats *color_ranges; ///< AVColorRange + +} AVFilterFormatsConfig; + +/** + * The number of the filter inputs is not determined just by AVFilter.inputs. + * The filter might add additional inputs during initialization depending on the + * options supplied to it. + */ +#define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0) +/** + * The number of the filter outputs is not determined just by AVFilter.outputs. + * The filter might add additional outputs during initialization depending on + * the options supplied to it. + */ +#define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1) +/** + * The filter supports multithreading by splitting frames into multiple parts + * and processing them concurrently. + */ +#define AVFILTER_FLAG_SLICE_THREADS (1 << 2) +/** + * The filter is a "metadata" filter - it does not modify the frame data in any + * way. It may only affect the metadata (i.e. those fields copied by + * av_frame_copy_props()). + * + * More precisely, this means: + * - video: the data of any frame output by the filter must be exactly equal to + * some frame that is received on one of its inputs. Furthermore, all frames + * produced on a given output must correspond to frames received on the same + * input and their order must be unchanged. Note that the filter may still + * drop or duplicate the frames. + * - audio: the data produced by the filter on any of its outputs (viewed e.g. + * as an array of interleaved samples) must be exactly equal to the data + * received by the filter on one of its inputs. + */ +#define AVFILTER_FLAG_METADATA_ONLY (1 << 3) + +/** + * The filter can create hardware frames using AVFilterContext.hw_device_ctx. + */ +#define AVFILTER_FLAG_HWDEVICE (1 << 4) +/** + * Some filters support a generic "enable" expression option that can be used + * to enable or disable a filter in the timeline. Filters supporting this + * option have this flag set. When the enable expression is false, the default + * no-op filter_frame() function is called in place of the filter_frame() + * callback defined on each input pad, thus the frame is passed unchanged to + * the next filters. + */ +#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16) +/** + * Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will + * have its filter_frame() callback(s) called as usual even when the enable + * expression is false. The filter will disable filtering within the + * filter_frame() callback(s) itself, for example executing code depending on + * the AVFilterContext->is_disabled value. + */ +#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17) +/** + * Handy mask to test whether the filter supports or no the timeline feature + * (internally or generically). + */ +#define AVFILTER_FLAG_SUPPORT_TIMELINE (AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL) + +/** + * Filter definition. This defines the pads a filter contains, and all the + * callback functions used to interact with the filter. + */ +typedef struct AVFilter { + /** + * Filter name. Must be non-NULL and unique among filters. + */ + const char *name; + + /** + * A description of the filter. May be NULL. + * + * You should use the NULL_IF_CONFIG_SMALL() macro to define it. + */ + const char *description; + + /** + * List of static inputs. + * + * NULL if there are no (static) inputs. Instances of filters with + * AVFILTER_FLAG_DYNAMIC_INPUTS set may have more inputs than present in + * this list. + */ + const AVFilterPad *inputs; + + /** + * List of static outputs. + * + * NULL if there are no (static) outputs. Instances of filters with + * AVFILTER_FLAG_DYNAMIC_OUTPUTS set may have more outputs than present in + * this list. + */ + const AVFilterPad *outputs; + + /** + * A class for the private data, used to declare filter private AVOptions. + * This field is NULL for filters that do not declare any options. + * + * If this field is non-NULL, the first member of the filter private data + * must be a pointer to AVClass, which will be set by libavfilter generic + * code to this class. + */ + const AVClass *priv_class; + + /** + * A combination of AVFILTER_FLAG_* + */ + int flags; + + /***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavfilter and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + */ + + /** + * The number of entries in the list of inputs. + */ + uint8_t nb_inputs; + + /** + * The number of entries in the list of outputs. + */ + uint8_t nb_outputs; + + /** + * This field determines the state of the formats union. + * It is an enum FilterFormatsState value. + */ + uint8_t formats_state; + + /** + * Filter pre-initialization function + * + * This callback will be called immediately after the filter context is + * allocated, to allow allocating and initing sub-objects. + * + * If this callback is not NULL, the uninit callback will be called on + * allocation failure. + * + * @return 0 on success, + * AVERROR code on failure (but the code will be + * dropped and treated as ENOMEM by the calling code) + */ + int (*preinit)(AVFilterContext *ctx); + + /** + * Filter initialization function. + * + * This callback will be called only once during the filter lifetime, after + * all the options have been set, but before links between filters are + * established and format negotiation is done. + * + * Basic filter initialization should be done here. Filters with dynamic + * inputs and/or outputs should create those inputs/outputs here based on + * provided options. No more changes to this filter's inputs/outputs can be + * done after this callback. + * + * This callback must not assume that the filter links exist or frame + * parameters are known. + * + * @ref AVFilter.uninit "uninit" is guaranteed to be called even if + * initialization fails, so this callback does not have to clean up on + * failure. + * + * @return 0 on success, a negative AVERROR on failure + */ + int (*init)(AVFilterContext *ctx); + + /** + * Filter uninitialization function. + * + * Called only once right before the filter is freed. Should deallocate any + * memory held by the filter, release any buffer references, etc. It does + * not need to deallocate the AVFilterContext.priv memory itself. + * + * This callback may be called even if @ref AVFilter.init "init" was not + * called or failed, so it must be prepared to handle such a situation. + */ + void (*uninit)(AVFilterContext *ctx); + + /** + * The state of the following union is determined by formats_state. + * See the documentation of enum FilterFormatsState in internal.h. + */ + union { + /** + * Query formats supported by the filter on its inputs and outputs. + * + * This callback is called after the filter is initialized (so the inputs + * and outputs are fixed), shortly before the format negotiation. This + * callback may be called more than once. + * + * This callback must set ::AVFilterLink's + * @ref AVFilterFormatsConfig.formats "outcfg.formats" + * on every input link and + * @ref AVFilterFormatsConfig.formats "incfg.formats" + * on every output link to a list of pixel/sample formats that the filter + * supports on that link. + * For video links, this filter may also set + * @ref AVFilterFormatsConfig.color_spaces "incfg.color_spaces" + * / + * @ref AVFilterFormatsConfig.color_spaces "outcfg.color_spaces" + * and @ref AVFilterFormatsConfig.color_ranges "incfg.color_ranges" + * / + * @ref AVFilterFormatsConfig.color_ranges "outcfg.color_ranges" + * analogously. + * For audio links, this filter must also set + * @ref AVFilterFormatsConfig.samplerates "incfg.samplerates" + * / + * @ref AVFilterFormatsConfig.samplerates "outcfg.samplerates" + * and @ref AVFilterFormatsConfig.channel_layouts "incfg.channel_layouts" + * / + * @ref AVFilterFormatsConfig.channel_layouts "outcfg.channel_layouts" + * analogously. + * + * This callback must never be NULL if the union is in this state. + * + * @return zero on success, a negative value corresponding to an + * AVERROR code otherwise + */ + int (*query_func)(AVFilterContext *); + + /** + * Same as query_func(), except this function writes the results into + * provided arrays. + * + * @param cfg_in array of input format configurations with as many + * members as the filters has inputs (NULL when there are + * no inputs); + * @param cfg_out array of output format configurations with as many + * members as the filters has outputs (NULL when there + * are no outputs); + */ + int (*query_func2)(const AVFilterContext *, + struct AVFilterFormatsConfig **cfg_in, + struct AVFilterFormatsConfig **cfg_out); + /** + * A pointer to an array of admissible pixel formats delimited + * by AV_PIX_FMT_NONE. The generic code will use this list + * to indicate that this filter supports each of these pixel formats, + * provided that all inputs and outputs use the same pixel format. + * + * In addition to that the generic code will mark all inputs + * and all outputs as supporting all color spaces and ranges, as + * long as all inputs and outputs use the same color space/range. + * + * This list must never be NULL if the union is in this state. + * The type of all inputs and outputs of filters using this must + * be AVMEDIA_TYPE_VIDEO. + */ + const enum AVPixelFormat *pixels_list; + /** + * Analogous to pixels, but delimited by AV_SAMPLE_FMT_NONE + * and restricted to filters that only have AVMEDIA_TYPE_AUDIO + * inputs and outputs. + * + * In addition to that the generic code will mark all inputs + * and all outputs as supporting all sample rates and every + * channel count and channel layout, as long as all inputs + * and outputs use the same sample rate and channel count/layout. + */ + const enum AVSampleFormat *samples_list; + /** + * Equivalent to { pix_fmt, AV_PIX_FMT_NONE } as pixels_list. + */ + enum AVPixelFormat pix_fmt; + /** + * Equivalent to { sample_fmt, AV_SAMPLE_FMT_NONE } as samples_list. + */ + enum AVSampleFormat sample_fmt; + } formats; + + int priv_size; ///< size of private data to allocate for the filter + + int flags_internal; ///< Additional flags for avfilter internal use only. + + /** + * Make the filter instance process a command. + * + * @param cmd the command to process, for handling simplicity all commands must be alphanumeric only + * @param arg the argument for the command + * @param res a buffer with size res_size where the filter(s) can return a response. This must not change when the command is not supported. + * @param flags if AVFILTER_CMD_FLAG_FAST is set and the command would be + * time consuming then a filter should treat it like an unsupported command + * + * @returns >=0 on success otherwise an error code. + * AVERROR(ENOSYS) on unsupported commands + */ + int (*process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags); + + /** + * Filter activation function. + * + * Called when any processing is needed from the filter, instead of any + * filter_frame and request_frame on pads. + * + * The function must examine inlinks and outlinks and perform a single + * step of processing. If there is nothing to do, the function must do + * nothing and not return an error. If more steps are or may be + * possible, it must use ff_filter_set_ready() to schedule another + * activation. + */ + int (*activate)(AVFilterContext *ctx); +} AVFilter; + +/** + * Get the number of elements in an AVFilter's inputs or outputs array. + */ +unsigned avfilter_filter_pad_count(const AVFilter *filter, int is_output); + +/** + * Process multiple parts of the frame concurrently. + */ +#define AVFILTER_THREAD_SLICE (1 << 0) + +/** An instance of a filter */ +struct AVFilterContext { + const AVClass *av_class; ///< needed for av_log() and filters common options + + const AVFilter *filter; ///< the AVFilter of which this is an instance + + char *name; ///< name of this filter instance + + AVFilterPad *input_pads; ///< array of input pads + AVFilterLink **inputs; ///< array of pointers to input links + unsigned nb_inputs; ///< number of input pads + + AVFilterPad *output_pads; ///< array of output pads + AVFilterLink **outputs; ///< array of pointers to output links + unsigned nb_outputs; ///< number of output pads + + void *priv; ///< private data for use by the filter + + struct AVFilterGraph *graph; ///< filtergraph this filter belongs to + + /** + * Type of multithreading being allowed/used. A combination of + * AVFILTER_THREAD_* flags. + * + * May be set by the caller before initializing the filter to forbid some + * or all kinds of multithreading for this filter. The default is allowing + * everything. + * + * When the filter is initialized, this field is combined using bit AND with + * AVFilterGraph.thread_type to get the final mask used for determining + * allowed threading types. I.e. a threading type needs to be set in both + * to be allowed. + * + * After the filter is initialized, libavfilter sets this field to the + * threading type that is actually used (0 for no multithreading). + */ + int thread_type; + + /** + * Max number of threads allowed in this filter instance. + * If <= 0, its value is ignored. + * Overrides global number of threads set per filter graph. + */ + int nb_threads; + + struct AVFilterCommand *command_queue; + + char *enable_str; ///< enable expression string + void *enable; ///< parsed expression (AVExpr*) + double *var_values; ///< variable values for the enable expression + int is_disabled; ///< the enabled state from the last expression evaluation + + /** + * For filters which will create hardware frames, sets the device the + * filter should create them in. All other filters will ignore this field: + * in particular, a filter which consumes or processes hardware frames will + * instead use the hw_frames_ctx field in AVFilterLink to carry the + * hardware context information. + * + * May be set by the caller on filters flagged with AVFILTER_FLAG_HWDEVICE + * before initializing the filter with avfilter_init_str() or + * avfilter_init_dict(). + */ + AVBufferRef *hw_device_ctx; + + /** + * Ready status of the filter. + * A non-0 value means that the filter needs activating; + * a higher value suggests a more urgent activation. + */ + unsigned ready; + + /** + * Sets the number of extra hardware frames which the filter will + * allocate on its output links for use in following filters or by + * the caller. + * + * Some hardware filters require all frames that they will use for + * output to be defined in advance before filtering starts. For such + * filters, any hardware frame pools used for output must therefore be + * of fixed size. The extra frames set here are on top of any number + * that the filter needs internally in order to operate normally. + * + * This field must be set before the graph containing this filter is + * configured. + */ + int extra_hw_frames; +}; + +/** + * A link between two filters. This contains pointers to the source and + * destination filters between which this link exists, and the indexes of + * the pads involved. In addition, this link also contains the parameters + * which have been negotiated and agreed upon between the filter, such as + * image dimensions, format, etc. + * + * Applications must not normally access the link structure directly. + * Use the buffersrc and buffersink API instead. + * In the future, access to the header may be reserved for filters + * implementation. + */ +struct AVFilterLink { + AVFilterContext *src; ///< source filter + AVFilterPad *srcpad; ///< output pad on the source filter + + AVFilterContext *dst; ///< dest filter + AVFilterPad *dstpad; ///< input pad on the dest filter + + enum AVMediaType type; ///< filter media type + + int format; ///< agreed upon media format + + /* These parameters apply only to video */ + int w; ///< agreed upon image width + int h; ///< agreed upon image height + AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio + /** + * For non-YUV links, these are respectively set to fallback values (as + * appropriate for that colorspace). + * + * Note: This includes grayscale formats, as these are currently treated + * as forced full range always. + */ + enum AVColorSpace colorspace; ///< agreed upon YUV color space + enum AVColorRange color_range; ///< agreed upon YUV color range + + /* These parameters apply only to audio */ + int sample_rate; ///< samples per second + AVChannelLayout ch_layout; ///< channel layout of current buffer (see libavutil/channel_layout.h) + + /** + * Define the time base used by the PTS of the frames/samples + * which will pass through this link. + * During the configuration stage, each filter is supposed to + * change only the output timebase, while the timebase of the + * input link is assumed to be an unchangeable property. + */ + AVRational time_base; + + /***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavfilter and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + */ + + /** + * Lists of supported formats / etc. supported by the input filter. + */ + AVFilterFormatsConfig incfg; + + /** + * Lists of supported formats / etc. supported by the output filter. + */ + AVFilterFormatsConfig outcfg; +}; + +/** + * Link two filters together. + * + * @param src the source filter + * @param srcpad index of the output pad on the source filter + * @param dst the destination filter + * @param dstpad index of the input pad on the destination filter + * @return zero on success + */ +int avfilter_link(AVFilterContext *src, unsigned srcpad, + AVFilterContext *dst, unsigned dstpad); + +#if FF_API_LINK_PUBLIC +/** + * @deprecated this function should never be called by users + */ +attribute_deprecated +void avfilter_link_free(AVFilterLink **link); + +/** + * @deprecated this function should never be called by users + */ +attribute_deprecated +int avfilter_config_links(AVFilterContext *filter); +#endif + +#define AVFILTER_CMD_FLAG_ONE 1 ///< Stop once a filter understood the command (for target=all for example), fast filters are favored automatically +#define AVFILTER_CMD_FLAG_FAST 2 ///< Only execute command when its fast (like a video out that supports contrast adjustment in hw) + +/** + * Make the filter instance process a command. + * It is recommended to use avfilter_graph_send_command(). + */ +int avfilter_process_command(AVFilterContext *filter, const char *cmd, const char *arg, char *res, int res_len, int flags); + +/** + * Iterate over all registered filters. + * + * @param opaque a pointer where libavfilter will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered filter or NULL when the iteration is + * finished + */ +const AVFilter *av_filter_iterate(void **opaque); + +/** + * Get a filter definition matching the given name. + * + * @param name the filter name to find + * @return the filter definition, if any matching one is registered. + * NULL if none found. + */ +const AVFilter *avfilter_get_by_name(const char *name); + + +/** + * Initialize a filter with the supplied parameters. + * + * @param ctx uninitialized filter context to initialize + * @param args Options to initialize the filter with. This must be a + * ':'-separated list of options in the 'key=value' form. + * May be NULL if the options have been set directly using the + * AVOptions API or there are no options that need to be set. + * @return 0 on success, a negative AVERROR on failure + */ +int avfilter_init_str(AVFilterContext *ctx, const char *args); + +/** + * Initialize a filter with the supplied dictionary of options. + * + * @param ctx uninitialized filter context to initialize + * @param options An AVDictionary filled with options for this filter. On + * return this parameter will be destroyed and replaced with + * a dict containing options that were not found. This dictionary + * must be freed by the caller. + * May be NULL, then this function is equivalent to + * avfilter_init_str() with the second parameter set to NULL. + * @return 0 on success, a negative AVERROR on failure + * + * @note This function and avfilter_init_str() do essentially the same thing, + * the difference is in manner in which the options are passed. It is up to the + * calling code to choose whichever is more preferable. The two functions also + * behave differently when some of the provided options are not declared as + * supported by the filter. In such a case, avfilter_init_str() will fail, but + * this function will leave those extra options in the options AVDictionary and + * continue as usual. + */ +int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options); + +/** + * Free a filter context. This will also remove the filter from its + * filtergraph's list of filters. + * + * @param filter the filter to free + */ +void avfilter_free(AVFilterContext *filter); + +/** + * Insert a filter in the middle of an existing link. + * + * @param link the link into which the filter should be inserted + * @param filt the filter to be inserted + * @param filt_srcpad_idx the input pad on the filter to connect + * @param filt_dstpad_idx the output pad on the filter to connect + * @return zero on success + */ +int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, + unsigned filt_srcpad_idx, unsigned filt_dstpad_idx); + +/** + * @return AVClass for AVFilterContext. + * + * @see av_opt_find(). + */ +const AVClass *avfilter_get_class(void); + +/** + * A function pointer passed to the @ref AVFilterGraph.execute callback to be + * executed multiple times, possibly in parallel. + * + * @param ctx the filter context the job belongs to + * @param arg an opaque parameter passed through from @ref + * AVFilterGraph.execute + * @param jobnr the index of the job being executed + * @param nb_jobs the total number of jobs + * + * @return 0 on success, a negative AVERROR on error + */ +typedef int (avfilter_action_func)(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs); + +/** + * A function executing multiple jobs, possibly in parallel. + * + * @param ctx the filter context to which the jobs belong + * @param func the function to be called multiple times + * @param arg the argument to be passed to func + * @param ret a nb_jobs-sized array to be filled with return values from each + * invocation of func + * @param nb_jobs the number of jobs to execute + * + * @return 0 on success, a negative AVERROR on error + */ +typedef int (avfilter_execute_func)(AVFilterContext *ctx, avfilter_action_func *func, + void *arg, int *ret, int nb_jobs); + +typedef struct AVFilterGraph { + const AVClass *av_class; + AVFilterContext **filters; + unsigned nb_filters; + + char *scale_sws_opts; ///< sws options to use for the auto-inserted scale filters + + /** + * Type of multithreading allowed for filters in this graph. A combination + * of AVFILTER_THREAD_* flags. + * + * May be set by the caller at any point, the setting will apply to all + * filters initialized after that. The default is allowing everything. + * + * When a filter in this graph is initialized, this field is combined using + * bit AND with AVFilterContext.thread_type to get the final mask used for + * determining allowed threading types. I.e. a threading type needs to be + * set in both to be allowed. + */ + int thread_type; + + /** + * Maximum number of threads used by filters in this graph. May be set by + * the caller before adding any filters to the filtergraph. Zero (the + * default) means that the number of threads is determined automatically. + */ + int nb_threads; + + /** + * Opaque user data. May be set by the caller to an arbitrary value, e.g. to + * be used from callbacks like @ref AVFilterGraph.execute. + * Libavfilter will not touch this field in any way. + */ + void *opaque; + + /** + * This callback may be set by the caller immediately after allocating the + * graph and before adding any filters to it, to provide a custom + * multithreading implementation. + * + * If set, filters with slice threading capability will call this callback + * to execute multiple jobs in parallel. + * + * If this field is left unset, libavfilter will use its internal + * implementation, which may or may not be multithreaded depending on the + * platform and build options. + */ + avfilter_execute_func *execute; + + char *aresample_swr_opts; ///< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions +} AVFilterGraph; + +/** + * Allocate a filter graph. + * + * @return the allocated filter graph on success or NULL. + */ +AVFilterGraph *avfilter_graph_alloc(void); + +/** + * Create a new filter instance in a filter graph. + * + * @param graph graph in which the new filter will be used + * @param filter the filter to create an instance of + * @param name Name to give to the new instance (will be copied to + * AVFilterContext.name). This may be used by the caller to identify + * different filters, libavfilter itself assigns no semantics to + * this parameter. May be NULL. + * + * @return the context of the newly created filter instance (note that it is + * also retrievable directly through AVFilterGraph.filters or with + * avfilter_graph_get_filter()) on success or NULL on failure. + */ +AVFilterContext *avfilter_graph_alloc_filter(AVFilterGraph *graph, + const AVFilter *filter, + const char *name); + +/** + * Get a filter instance identified by instance name from graph. + * + * @param graph filter graph to search through. + * @param name filter instance name (should be unique in the graph). + * @return the pointer to the found filter instance or NULL if it + * cannot be found. + */ +AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, const char *name); + +/** + * Create and add a filter instance into an existing graph. + * The filter instance is created from the filter filt and inited + * with the parameter args. opaque is currently ignored. + * + * In case of success put in *filt_ctx the pointer to the created + * filter instance, otherwise set *filt_ctx to NULL. + * + * @param name the instance name to give to the created filter instance + * @param graph_ctx the filter graph + * @return a negative AVERROR error code in case of failure, a non + * negative value otherwise + */ +int avfilter_graph_create_filter(AVFilterContext **filt_ctx, const AVFilter *filt, + const char *name, const char *args, void *opaque, + AVFilterGraph *graph_ctx); + +/** + * Enable or disable automatic format conversion inside the graph. + * + * Note that format conversion can still happen inside explicitly inserted + * scale and aresample filters. + * + * @param flags any of the AVFILTER_AUTO_CONVERT_* constants + */ +void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags); + +enum { + AVFILTER_AUTO_CONVERT_ALL = 0, /**< all automatic conversions enabled */ + AVFILTER_AUTO_CONVERT_NONE = -1, /**< all automatic conversions disabled */ +}; + +/** + * Check validity and configure all the links and formats in the graph. + * + * @param graphctx the filter graph + * @param log_ctx context used for logging + * @return >= 0 in case of success, a negative AVERROR code otherwise + */ +int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx); + +/** + * Free a graph, destroy its links, and set *graph to NULL. + * If *graph is NULL, do nothing. + */ +void avfilter_graph_free(AVFilterGraph **graph); + +/** + * A linked-list of the inputs/outputs of the filter chain. + * + * This is mainly useful for avfilter_graph_parse() / avfilter_graph_parse2(), + * where it is used to communicate open (unlinked) inputs and outputs from and + * to the caller. + * This struct specifies, per each not connected pad contained in the graph, the + * filter context and the pad index required for establishing a link. + */ +typedef struct AVFilterInOut { + /** unique name for this input/output in the list */ + char *name; + + /** filter context associated to this input/output */ + AVFilterContext *filter_ctx; + + /** index of the filt_ctx pad to use for linking */ + int pad_idx; + + /** next input/input in the list, NULL if this is the last */ + struct AVFilterInOut *next; +} AVFilterInOut; + +/** + * Allocate a single AVFilterInOut entry. + * Must be freed with avfilter_inout_free(). + * @return allocated AVFilterInOut on success, NULL on failure. + */ +AVFilterInOut *avfilter_inout_alloc(void); + +/** + * Free the supplied list of AVFilterInOut and set *inout to NULL. + * If *inout is NULL, do nothing. + */ +void avfilter_inout_free(AVFilterInOut **inout); + +/** + * Add a graph described by a string to a graph. + * + * @note The caller must provide the lists of inputs and outputs, + * which therefore must be known before calling the function. + * + * @note The inputs parameter describes inputs of the already existing + * part of the graph; i.e. from the point of view of the newly created + * part, they are outputs. Similarly the outputs parameter describes + * outputs of the already existing filters, which are provided as + * inputs to the parsed filters. + * + * @param graph the filter graph where to link the parsed graph context + * @param filters string to be parsed + * @param inputs linked list to the inputs of the graph + * @param outputs linked list to the outputs of the graph + * @return zero on success, a negative AVERROR code on error + */ +int avfilter_graph_parse(AVFilterGraph *graph, const char *filters, + AVFilterInOut *inputs, AVFilterInOut *outputs, + void *log_ctx); + +/** + * Add a graph described by a string to a graph. + * + * In the graph filters description, if the input label of the first + * filter is not specified, "in" is assumed; if the output label of + * the last filter is not specified, "out" is assumed. + * + * @param graph the filter graph where to link the parsed graph context + * @param filters string to be parsed + * @param inputs pointer to a linked list to the inputs of the graph, may be NULL. + * If non-NULL, *inputs is updated to contain the list of open inputs + * after the parsing, should be freed with avfilter_inout_free(). + * @param outputs pointer to a linked list to the outputs of the graph, may be NULL. + * If non-NULL, *outputs is updated to contain the list of open outputs + * after the parsing, should be freed with avfilter_inout_free(). + * @return non negative on success, a negative AVERROR code on error + */ +int avfilter_graph_parse_ptr(AVFilterGraph *graph, const char *filters, + AVFilterInOut **inputs, AVFilterInOut **outputs, + void *log_ctx); + +/** + * Add a graph described by a string to a graph. + * + * @param[in] graph the filter graph where to link the parsed graph context + * @param[in] filters string to be parsed + * @param[out] inputs a linked list of all free (unlinked) inputs of the + * parsed graph will be returned here. It is to be freed + * by the caller using avfilter_inout_free(). + * @param[out] outputs a linked list of all free (unlinked) outputs of the + * parsed graph will be returned here. It is to be freed by the + * caller using avfilter_inout_free(). + * @return zero on success, a negative AVERROR code on error + * + * @note This function returns the inputs and outputs that are left + * unlinked after parsing the graph and the caller then deals with + * them. + * @note This function makes no reference whatsoever to already + * existing parts of the graph and the inputs parameter will on return + * contain inputs of the newly parsed part of the graph. Analogously + * the outputs parameter will contain outputs of the newly created + * filters. + */ +int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters, + AVFilterInOut **inputs, + AVFilterInOut **outputs); + +/** + * Parameters of a filter's input or output pad. + * + * Created as a child of AVFilterParams by avfilter_graph_segment_parse(). + * Freed in avfilter_graph_segment_free(). + */ +typedef struct AVFilterPadParams { + /** + * An av_malloc()'ed string containing the pad label. + * + * May be av_free()'d and set to NULL by the caller, in which case this pad + * will be treated as unlabeled for linking. + * May also be replaced by another av_malloc()'ed string. + */ + char *label; +} AVFilterPadParams; + +/** + * Parameters describing a filter to be created in a filtergraph. + * + * Created as a child of AVFilterGraphSegment by avfilter_graph_segment_parse(). + * Freed in avfilter_graph_segment_free(). + */ +typedef struct AVFilterParams { + /** + * The filter context. + * + * Created by avfilter_graph_segment_create_filters() based on + * AVFilterParams.filter_name and instance_name. + * + * Callers may also create the filter context manually, then they should + * av_free() filter_name and set it to NULL. Such AVFilterParams instances + * are then skipped by avfilter_graph_segment_create_filters(). + */ + AVFilterContext *filter; + + /** + * Name of the AVFilter to be used. + * + * An av_malloc()'ed string, set by avfilter_graph_segment_parse(). Will be + * passed to avfilter_get_by_name() by + * avfilter_graph_segment_create_filters(). + * + * Callers may av_free() this string and replace it with another one or + * NULL. If the caller creates the filter instance manually, this string + * MUST be set to NULL. + * + * When both AVFilterParams.filter an AVFilterParams.filter_name are NULL, + * this AVFilterParams instance is skipped by avfilter_graph_segment_*() + * functions. + */ + char *filter_name; + /** + * Name to be used for this filter instance. + * + * An av_malloc()'ed string, may be set by avfilter_graph_segment_parse() or + * left NULL. The caller may av_free() this string and replace with another + * one or NULL. + * + * Will be used by avfilter_graph_segment_create_filters() - passed as the + * third argument to avfilter_graph_alloc_filter(), then freed and set to + * NULL. + */ + char *instance_name; + + /** + * Options to be apllied to the filter. + * + * Filled by avfilter_graph_segment_parse(). Afterwards may be freely + * modified by the caller. + * + * Will be applied to the filter by avfilter_graph_segment_apply_opts() + * with an equivalent of av_opt_set_dict2(filter, &opts, AV_OPT_SEARCH_CHILDREN), + * i.e. any unapplied options will be left in this dictionary. + */ + AVDictionary *opts; + + AVFilterPadParams **inputs; + unsigned nb_inputs; + + AVFilterPadParams **outputs; + unsigned nb_outputs; +} AVFilterParams; + +/** + * A filterchain is a list of filter specifications. + * + * Created as a child of AVFilterGraphSegment by avfilter_graph_segment_parse(). + * Freed in avfilter_graph_segment_free(). + */ +typedef struct AVFilterChain { + AVFilterParams **filters; + size_t nb_filters; +} AVFilterChain; + +/** + * A parsed representation of a filtergraph segment. + * + * A filtergraph segment is conceptually a list of filterchains, with some + * supplementary information (e.g. format conversion flags). + * + * Created by avfilter_graph_segment_parse(). Must be freed with + * avfilter_graph_segment_free(). + */ +typedef struct AVFilterGraphSegment { + /** + * The filtergraph this segment is associated with. + * Set by avfilter_graph_segment_parse(). + */ + AVFilterGraph *graph; + + /** + * A list of filter chain contained in this segment. + * Set in avfilter_graph_segment_parse(). + */ + AVFilterChain **chains; + size_t nb_chains; + + /** + * A string containing a colon-separated list of key=value options applied + * to all scale filters in this segment. + * + * May be set by avfilter_graph_segment_parse(). + * The caller may free this string with av_free() and replace it with a + * different av_malloc()'ed string. + */ + char *scale_sws_opts; +} AVFilterGraphSegment; + +/** + * Parse a textual filtergraph description into an intermediate form. + * + * This intermediate representation is intended to be modified by the caller as + * described in the documentation of AVFilterGraphSegment and its children, and + * then applied to the graph either manually or with other + * avfilter_graph_segment_*() functions. See the documentation for + * avfilter_graph_segment_apply() for the canonical way to apply + * AVFilterGraphSegment. + * + * @param graph Filter graph the parsed segment is associated with. Will only be + * used for logging and similar auxiliary purposes. The graph will + * not be actually modified by this function - the parsing results + * are instead stored in seg for further processing. + * @param graph_str a string describing the filtergraph segment + * @param flags reserved for future use, caller must set to 0 for now + * @param seg A pointer to the newly-created AVFilterGraphSegment is written + * here on success. The graph segment is owned by the caller and must + * be freed with avfilter_graph_segment_free() before graph itself is + * freed. + * + * @retval "non-negative number" success + * @retval "negative error code" failure + */ +int avfilter_graph_segment_parse(AVFilterGraph *graph, const char *graph_str, + int flags, AVFilterGraphSegment **seg); + +/** + * Create filters specified in a graph segment. + * + * Walk through the creation-pending AVFilterParams in the segment and create + * new filter instances for them. + * Creation-pending params are those where AVFilterParams.filter_name is + * non-NULL (and hence AVFilterParams.filter is NULL). All other AVFilterParams + * instances are ignored. + * + * For any filter created by this function, the corresponding + * AVFilterParams.filter is set to the newly-created filter context, + * AVFilterParams.filter_name and AVFilterParams.instance_name are freed and set + * to NULL. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * + * @retval "non-negative number" Success, all creation-pending filters were + * successfully created + * @retval AVERROR_FILTER_NOT_FOUND some filter's name did not correspond to a + * known filter + * @retval "another negative error code" other failures + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_create_filters(AVFilterGraphSegment *seg, int flags); + +/** + * Apply parsed options to filter instances in a graph segment. + * + * Walk through all filter instances in the graph segment that have option + * dictionaries associated with them and apply those options with + * av_opt_set_dict2(..., AV_OPT_SEARCH_CHILDREN). AVFilterParams.opts is + * replaced by the dictionary output by av_opt_set_dict2(), which should be + * empty (NULL) if all options were successfully applied. + * + * If any options could not be found, this function will continue processing all + * other filters and finally return AVERROR_OPTION_NOT_FOUND (unless another + * error happens). The calling program may then deal with unapplied options as + * it wishes. + * + * Any creation-pending filters (see avfilter_graph_segment_create_filters()) + * present in the segment will cause this function to fail. AVFilterParams with + * no associated filter context are simply skipped. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * + * @retval "non-negative number" Success, all options were successfully applied. + * @retval AVERROR_OPTION_NOT_FOUND some options were not found in a filter + * @retval "another negative error code" other failures + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_apply_opts(AVFilterGraphSegment *seg, int flags); + +/** + * Initialize all filter instances in a graph segment. + * + * Walk through all filter instances in the graph segment and call + * avfilter_init_dict(..., NULL) on those that have not been initialized yet. + * + * Any creation-pending filters (see avfilter_graph_segment_create_filters()) + * present in the segment will cause this function to fail. AVFilterParams with + * no associated filter context or whose filter context is already initialized, + * are simply skipped. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * + * @retval "non-negative number" Success, all filter instances were successfully + * initialized + * @retval "negative error code" failure + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_init(AVFilterGraphSegment *seg, int flags); + +/** + * Link filters in a graph segment. + * + * Walk through all filter instances in the graph segment and try to link all + * unlinked input and output pads. Any creation-pending filters (see + * avfilter_graph_segment_create_filters()) present in the segment will cause + * this function to fail. Disabled filters and already linked pads are skipped. + * + * Every filter output pad that has a corresponding AVFilterPadParams with a + * non-NULL label is + * - linked to the input with the matching label, if one exists; + * - exported in the outputs linked list otherwise, with the label preserved. + * Unlabeled outputs are + * - linked to the first unlinked unlabeled input in the next non-disabled + * filter in the chain, if one exists + * - exported in the ouputs linked list otherwise, with NULL label + * + * Similarly, unlinked input pads are exported in the inputs linked list. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * @param[out] inputs a linked list of all free (unlinked) inputs of the + * filters in this graph segment will be returned here. It + * is to be freed by the caller using avfilter_inout_free(). + * @param[out] outputs a linked list of all free (unlinked) outputs of the + * filters in this graph segment will be returned here. It + * is to be freed by the caller using avfilter_inout_free(). + * + * @retval "non-negative number" success + * @retval "negative error code" failure + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_link(AVFilterGraphSegment *seg, int flags, + AVFilterInOut **inputs, + AVFilterInOut **outputs); + +/** + * Apply all filter/link descriptions from a graph segment to the associated filtergraph. + * + * This functions is currently equivalent to calling the following in sequence: + * - avfilter_graph_segment_create_filters(); + * - avfilter_graph_segment_apply_opts(); + * - avfilter_graph_segment_init(); + * - avfilter_graph_segment_link(); + * failing if any of them fails. This list may be extended in the future. + * + * Since the above functions are idempotent, the caller may call some of them + * manually, then do some custom processing on the filtergraph, then call this + * function to do the rest. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * @param[out] inputs passed to avfilter_graph_segment_link() + * @param[out] outputs passed to avfilter_graph_segment_link() + * + * @retval "non-negative number" success + * @retval "negative error code" failure + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_apply(AVFilterGraphSegment *seg, int flags, + AVFilterInOut **inputs, + AVFilterInOut **outputs); + +/** + * Free the provided AVFilterGraphSegment and everything associated with it. + * + * @param seg double pointer to the AVFilterGraphSegment to be freed. NULL will + * be written to this pointer on exit from this function. + * + * @note + * The filter contexts (AVFilterParams.filter) are owned by AVFilterGraph rather + * than AVFilterGraphSegment, so they are not freed. + */ +void avfilter_graph_segment_free(AVFilterGraphSegment **seg); + +/** + * Send a command to one or more filter instances. + * + * @param graph the filter graph + * @param target the filter(s) to which the command should be sent + * "all" sends to all filters + * otherwise it can be a filter or filter instance name + * which will send the command to all matching filters. + * @param cmd the command to send, for handling simplicity all commands must be alphanumeric only + * @param arg the argument for the command + * @param res a buffer with size res_size where the filter(s) can return a response. + * + * @returns >=0 on success otherwise an error code. + * AVERROR(ENOSYS) on unsupported commands + */ +int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags); + +/** + * Queue a command for one or more filter instances. + * + * @param graph the filter graph + * @param target the filter(s) to which the command should be sent + * "all" sends to all filters + * otherwise it can be a filter or filter instance name + * which will send the command to all matching filters. + * @param cmd the command to sent, for handling simplicity all commands must be alphanumeric only + * @param arg the argument for the command + * @param ts time at which the command should be sent to the filter + * + * @note As this executes commands after this function returns, no return code + * from the filter is provided, also AVFILTER_CMD_FLAG_ONE is not supported. + */ +int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts); + + +/** + * Dump a graph into a human-readable string representation. + * + * @param graph the graph to dump + * @param options formatting options; currently ignored + * @return a string, or NULL in case of memory allocation failure; + * the string must be freed using av_free + */ +char *avfilter_graph_dump(AVFilterGraph *graph, const char *options); + +/** + * Request a frame on the oldest sink link. + * + * If the request returns AVERROR_EOF, try the next. + * + * Note that this function is not meant to be the sole scheduling mechanism + * of a filtergraph, only a convenience function to help drain a filtergraph + * in a balanced way under normal circumstances. + * + * Also note that AVERROR_EOF does not mean that frames did not arrive on + * some of the sinks during the process. + * When there are multiple sink links, in case the requested link + * returns an EOF, this may cause a filter to flush pending frames + * which are sent to another sink link, although unrequested. + * + * @return the return value of ff_request_frame(), + * or AVERROR_EOF if all links returned AVERROR_EOF + */ +int avfilter_graph_request_oldest(AVFilterGraph *graph); + +/** + * @} + */ + +#endif /* AVFILTER_AVFILTER_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavfilter/buffersink.h b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/buffersink.h new file mode 100644 index 00000000..361d6036 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/buffersink.h @@ -0,0 +1,173 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_BUFFERSINK_H +#define AVFILTER_BUFFERSINK_H + +/** + * @file + * @ingroup lavfi_buffersink + * memory buffer sink API for audio and video + */ + +#include "avfilter.h" + +/** + * @defgroup lavfi_buffersink Buffer sink API + * @ingroup lavfi + * @{ + * + * The buffersink and abuffersink filters are there to connect filter graphs + * to applications. They have a single input, connected to the graph, and no + * output. Frames must be extracted using av_buffersink_get_frame() or + * av_buffersink_get_samples(). + * + * The format negotiated by the graph during configuration can be obtained + * using the accessor functions: + * - av_buffersink_get_time_base(), + * - av_buffersink_get_format(), + * - av_buffersink_get_frame_rate(), + * - av_buffersink_get_w(), + * - av_buffersink_get_h(), + * - av_buffersink_get_sample_aspect_ratio(), + * - av_buffersink_get_channels(), + * - av_buffersink_get_ch_layout(), + * - av_buffersink_get_sample_rate(). + * + * The layout returned by av_buffersink_get_ch_layout() must de uninitialized + * by the caller. + * + * The format can be constrained by setting options, using av_opt_set() and + * related functions with the AV_OPT_SEARCH_CHILDREN flag. + * - pix_fmts (int list), + * - color_spaces (int list), + * - color_ranges (int list), + * - sample_fmts (int list), + * - sample_rates (int list), + * - ch_layouts (string), + * - channel_counts (int list), + * - all_channel_counts (bool). + * Most of these options are of type binary, and should be set using + * av_opt_set_int_list() or av_opt_set_bin(). If they are not set, all + * corresponding formats are accepted. + * + * As a special case, if ch_layouts is not set, all valid channel layouts are + * accepted except for UNSPEC layouts, unless all_channel_counts is set. + */ + +/** + * Get a frame with filtered data from sink and put it in frame. + * + * @param ctx pointer to a buffersink or abuffersink filter context. + * @param frame pointer to an allocated frame that will be filled with data. + * The data must be freed using av_frame_unref() / av_frame_free() + * @param flags a combination of AV_BUFFERSINK_FLAG_* flags + * + * @return >= 0 in for success, a negative AVERROR code for failure. + */ +int av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFrame *frame, int flags); + +/** + * Tell av_buffersink_get_buffer_ref() to read video/samples buffer + * reference, but not remove it from the buffer. This is useful if you + * need only to read a video/samples buffer, without to fetch it. + */ +#define AV_BUFFERSINK_FLAG_PEEK 1 + +/** + * Tell av_buffersink_get_buffer_ref() not to request a frame from its input. + * If a frame is already buffered, it is read (and removed from the buffer), + * but if no frame is present, return AVERROR(EAGAIN). + */ +#define AV_BUFFERSINK_FLAG_NO_REQUEST 2 + +/** + * Set the frame size for an audio buffer sink. + * + * All calls to av_buffersink_get_buffer_ref will return a buffer with + * exactly the specified number of samples, or AVERROR(EAGAIN) if there is + * not enough. The last buffer at EOF will be padded with 0. + */ +void av_buffersink_set_frame_size(AVFilterContext *ctx, unsigned frame_size); + +/** + * @defgroup lavfi_buffersink_accessors Buffer sink accessors + * Get the properties of the stream + * @{ + */ + +enum AVMediaType av_buffersink_get_type (const AVFilterContext *ctx); +AVRational av_buffersink_get_time_base (const AVFilterContext *ctx); +int av_buffersink_get_format (const AVFilterContext *ctx); + +AVRational av_buffersink_get_frame_rate (const AVFilterContext *ctx); +int av_buffersink_get_w (const AVFilterContext *ctx); +int av_buffersink_get_h (const AVFilterContext *ctx); +AVRational av_buffersink_get_sample_aspect_ratio (const AVFilterContext *ctx); +enum AVColorSpace av_buffersink_get_colorspace (const AVFilterContext *ctx); +enum AVColorRange av_buffersink_get_color_range (const AVFilterContext *ctx); + +int av_buffersink_get_channels (const AVFilterContext *ctx); +int av_buffersink_get_ch_layout (const AVFilterContext *ctx, + AVChannelLayout *ch_layout); +int av_buffersink_get_sample_rate (const AVFilterContext *ctx); + +AVBufferRef * av_buffersink_get_hw_frames_ctx (const AVFilterContext *ctx); + +/** @} */ + +/** + * Get a frame with filtered data from sink and put it in frame. + * + * @param ctx pointer to a context of a buffersink or abuffersink AVFilter. + * @param frame pointer to an allocated frame that will be filled with data. + * The data must be freed using av_frame_unref() / av_frame_free() + * + * @return + * - >= 0 if a frame was successfully returned. + * - AVERROR(EAGAIN) if no frames are available at this point; more + * input frames must be added to the filtergraph to get more output. + * - AVERROR_EOF if there will be no more output frames on this sink. + * - A different negative AVERROR code in other failure cases. + */ +int av_buffersink_get_frame(AVFilterContext *ctx, AVFrame *frame); + +/** + * Same as av_buffersink_get_frame(), but with the ability to specify the number + * of samples read. This function is less efficient than + * av_buffersink_get_frame(), because it copies the data around. + * + * @param ctx pointer to a context of the abuffersink AVFilter. + * @param frame pointer to an allocated frame that will be filled with data. + * The data must be freed using av_frame_unref() / av_frame_free() + * frame will contain exactly nb_samples audio samples, except at + * the end of stream, when it can contain less than nb_samples. + * + * @return The return codes have the same meaning as for + * av_buffersink_get_frame(). + * + * @warning do not mix this function with av_buffersink_get_frame(). Use only one or + * the other with a single sink, not both. + */ +int av_buffersink_get_samples(AVFilterContext *ctx, AVFrame *frame, int nb_samples); + +/** + * @} + */ + +#endif /* AVFILTER_BUFFERSINK_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavfilter/buffersrc.h b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/buffersrc.h new file mode 100644 index 00000000..6f3344f4 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/buffersrc.h @@ -0,0 +1,215 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_BUFFERSRC_H +#define AVFILTER_BUFFERSRC_H + +/** + * @file + * @ingroup lavfi_buffersrc + * Memory buffer source API. + */ + +#include "avfilter.h" + +/** + * @defgroup lavfi_buffersrc Buffer source API + * @ingroup lavfi + * @{ + */ + +enum { + + /** + * Do not check for format changes. + */ + AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT = 1, + + /** + * Immediately push the frame to the output. + */ + AV_BUFFERSRC_FLAG_PUSH = 4, + + /** + * Keep a reference to the frame. + * If the frame if reference-counted, create a new reference; otherwise + * copy the frame data. + */ + AV_BUFFERSRC_FLAG_KEEP_REF = 8, + +}; + +/** + * Get the number of failed requests. + * + * A failed request is when the request_frame method is called while no + * frame is present in the buffer. + * The number is reset when a frame is added. + */ +unsigned av_buffersrc_get_nb_failed_requests(AVFilterContext *buffer_src); + +/** + * This structure contains the parameters describing the frames that will be + * passed to this filter. + * + * It should be allocated with av_buffersrc_parameters_alloc() and freed with + * av_free(). All the allocated fields in it remain owned by the caller. + */ +typedef struct AVBufferSrcParameters { + /** + * video: the pixel format, value corresponds to enum AVPixelFormat + * audio: the sample format, value corresponds to enum AVSampleFormat + */ + int format; + /** + * The timebase to be used for the timestamps on the input frames. + */ + AVRational time_base; + + /** + * Video only, the display dimensions of the input frames. + */ + int width, height; + + /** + * Video only, the sample (pixel) aspect ratio. + */ + AVRational sample_aspect_ratio; + + /** + * Video only, the frame rate of the input video. This field must only be + * set to a non-zero value if input stream has a known constant framerate + * and should be left at its initial value if the framerate is variable or + * unknown. + */ + AVRational frame_rate; + + /** + * Video with a hwaccel pixel format only. This should be a reference to an + * AVHWFramesContext instance describing the input frames. + */ + AVBufferRef *hw_frames_ctx; + + /** + * Audio only, the audio sampling rate in samples per second. + */ + int sample_rate; + + /** + * Audio only, the audio channel layout + */ + AVChannelLayout ch_layout; + + /** + * Video only, the YUV colorspace and range. + */ + enum AVColorSpace color_space; + enum AVColorRange color_range; +} AVBufferSrcParameters; + +/** + * Allocate a new AVBufferSrcParameters instance. It should be freed by the + * caller with av_free(). + */ +AVBufferSrcParameters *av_buffersrc_parameters_alloc(void); + +/** + * Initialize the buffersrc or abuffersrc filter with the provided parameters. + * This function may be called multiple times, the later calls override the + * previous ones. Some of the parameters may also be set through AVOptions, then + * whatever method is used last takes precedence. + * + * @param ctx an instance of the buffersrc or abuffersrc filter + * @param param the stream parameters. The frames later passed to this filter + * must conform to those parameters. All the allocated fields in + * param remain owned by the caller, libavfilter will make internal + * copies or references when necessary. + * @return 0 on success, a negative AVERROR code on failure. + */ +int av_buffersrc_parameters_set(AVFilterContext *ctx, AVBufferSrcParameters *param); + +/** + * Add a frame to the buffer source. + * + * @param ctx an instance of the buffersrc filter + * @param frame frame to be added. If the frame is reference counted, this + * function will make a new reference to it. Otherwise the frame data will be + * copied. + * + * @return 0 on success, a negative AVERROR on error + * + * This function is equivalent to av_buffersrc_add_frame_flags() with the + * AV_BUFFERSRC_FLAG_KEEP_REF flag. + */ +av_warn_unused_result +int av_buffersrc_write_frame(AVFilterContext *ctx, const AVFrame *frame); + +/** + * Add a frame to the buffer source. + * + * @param ctx an instance of the buffersrc filter + * @param frame frame to be added. If the frame is reference counted, this + * function will take ownership of the reference(s) and reset the frame. + * Otherwise the frame data will be copied. If this function returns an error, + * the input frame is not touched. + * + * @return 0 on success, a negative AVERROR on error. + * + * @note the difference between this function and av_buffersrc_write_frame() is + * that av_buffersrc_write_frame() creates a new reference to the input frame, + * while this function takes ownership of the reference passed to it. + * + * This function is equivalent to av_buffersrc_add_frame_flags() without the + * AV_BUFFERSRC_FLAG_KEEP_REF flag. + */ +av_warn_unused_result +int av_buffersrc_add_frame(AVFilterContext *ctx, AVFrame *frame); + +/** + * Add a frame to the buffer source. + * + * By default, if the frame is reference-counted, this function will take + * ownership of the reference(s) and reset the frame. This can be controlled + * using the flags. + * + * If this function returns an error, the input frame is not touched. + * + * @param buffer_src pointer to a buffer source context + * @param frame a frame, or NULL to mark EOF + * @param flags a combination of AV_BUFFERSRC_FLAG_* + * @return >= 0 in case of success, a negative AVERROR code + * in case of failure + */ +av_warn_unused_result +int av_buffersrc_add_frame_flags(AVFilterContext *buffer_src, + AVFrame *frame, int flags); + +/** + * Close the buffer source after EOF. + * + * This is similar to passing NULL to av_buffersrc_add_frame_flags() + * except it takes the timestamp of the EOF, i.e. the timestamp of the end + * of the last frame. + */ +int av_buffersrc_close(AVFilterContext *ctx, int64_t pts, unsigned flags); + +/** + * @} + */ + +#endif /* AVFILTER_BUFFERSRC_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavfilter/version.h b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/version.h new file mode 100644 index 00000000..4d8f28e5 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/version.h @@ -0,0 +1,48 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_VERSION_H +#define AVFILTER_VERSION_H + +/** + * @file + * @ingroup lavfi + * Libavfilter version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBAVFILTER_VERSION_MINOR 4 +#define LIBAVFILTER_VERSION_MICRO 100 + + +#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ + LIBAVFILTER_VERSION_MINOR, \ + LIBAVFILTER_VERSION_MICRO) +#define LIBAVFILTER_VERSION AV_VERSION(LIBAVFILTER_VERSION_MAJOR, \ + LIBAVFILTER_VERSION_MINOR, \ + LIBAVFILTER_VERSION_MICRO) +#define LIBAVFILTER_BUILD LIBAVFILTER_VERSION_INT + +#define LIBAVFILTER_IDENT "Lavfi" AV_STRINGIFY(LIBAVFILTER_VERSION) + +#endif /* AVFILTER_VERSION_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavfilter/version_major.h b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/version_major.h new file mode 100644 index 00000000..c5e660ee --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavfilter/version_major.h @@ -0,0 +1,40 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_VERSION_MAJOR_H +#define AVFILTER_VERSION_MAJOR_H + +/** + * @file + * @ingroup lavfi + * Libavfilter version macros + */ + +#define LIBAVFILTER_VERSION_MAJOR 10 + +/** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + */ + +#define FF_API_LINK_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 11) + +#endif /* AVFILTER_VERSION_MAJOR_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavformat/avformat.h b/app/src/main/jniLibs/arm64-v8a/include/libavformat/avformat.h new file mode 100644 index 00000000..56c1c802 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavformat/avformat.h @@ -0,0 +1,3107 @@ +/* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFORMAT_AVFORMAT_H +#define AVFORMAT_AVFORMAT_H + +/** + * @file + * @ingroup libavf + * Main libavformat public API header + */ + +/** + * @defgroup libavf libavformat + * I/O and Muxing/Demuxing Library + * + * Libavformat (lavf) is a library for dealing with various media container + * formats. Its main two purposes are demuxing - i.e. splitting a media file + * into component streams, and the reverse process of muxing - writing supplied + * data in a specified container format. It also has an @ref lavf_io + * "I/O module" which supports a number of protocols for accessing the data (e.g. + * file, tcp, http and others). + * Unless you are absolutely sure you won't use libavformat's network + * capabilities, you should also call avformat_network_init(). + * + * A supported input format is described by an AVInputFormat struct, conversely + * an output format is described by AVOutputFormat. You can iterate over all + * input/output formats using the av_demuxer_iterate / av_muxer_iterate() functions. + * The protocols layer is not part of the public API, so you can only get the names + * of supported protocols with the avio_enum_protocols() function. + * + * Main lavf structure used for both muxing and demuxing is AVFormatContext, + * which exports all information about the file being read or written. As with + * most Libavformat structures, its size is not part of public ABI, so it cannot be + * allocated on stack or directly with av_malloc(). To create an + * AVFormatContext, use avformat_alloc_context() (some functions, like + * avformat_open_input() might do that for you). + * + * Most importantly an AVFormatContext contains: + * @li the @ref AVFormatContext.iformat "input" or @ref AVFormatContext.oformat + * "output" format. It is either autodetected or set by user for input; + * always set by user for output. + * @li an @ref AVFormatContext.streams "array" of AVStreams, which describe all + * elementary streams stored in the file. AVStreams are typically referred to + * using their index in this array. + * @li an @ref AVFormatContext.pb "I/O context". It is either opened by lavf or + * set by user for input, always set by user for output (unless you are dealing + * with an AVFMT_NOFILE format). + * + * @section lavf_options Passing options to (de)muxers + * It is possible to configure lavf muxers and demuxers using the @ref avoptions + * mechanism. Generic (format-independent) libavformat options are provided by + * AVFormatContext, they can be examined from a user program by calling + * av_opt_next() / av_opt_find() on an allocated AVFormatContext (or its AVClass + * from avformat_get_class()). Private (format-specific) options are provided by + * AVFormatContext.priv_data if and only if AVInputFormat.priv_class / + * AVOutputFormat.priv_class of the corresponding format struct is non-NULL. + * Further options may be provided by the @ref AVFormatContext.pb "I/O context", + * if its AVClass is non-NULL, and the protocols layer. See the discussion on + * nesting in @ref avoptions documentation to learn how to access those. + * + * @section urls + * URL strings in libavformat are made of a scheme/protocol, a ':', and a + * scheme specific string. URLs without a scheme and ':' used for local files + * are supported but deprecated. "file:" should be used for local files. + * + * It is important that the scheme string is not taken from untrusted + * sources without checks. + * + * Note that some schemes/protocols are quite powerful, allowing access to + * both local and remote files, parts of them, concatenations of them, local + * audio and video devices and so on. + * + * @{ + * + * @defgroup lavf_decoding Demuxing + * @{ + * Demuxers read a media file and split it into chunks of data (@em packets). A + * @ref AVPacket "packet" contains one or more encoded frames which belongs to a + * single elementary stream. In the lavf API this process is represented by the + * avformat_open_input() function for opening a file, av_read_frame() for + * reading a single packet and finally avformat_close_input(), which does the + * cleanup. + * + * @section lavf_decoding_open Opening a media file + * The minimum information required to open a file is its URL, which + * is passed to avformat_open_input(), as in the following code: + * @code + * const char *url = "file:in.mp3"; + * AVFormatContext *s = NULL; + * int ret = avformat_open_input(&s, url, NULL, NULL); + * if (ret < 0) + * abort(); + * @endcode + * The above code attempts to allocate an AVFormatContext, open the + * specified file (autodetecting the format) and read the header, exporting the + * information stored there into s. Some formats do not have a header or do not + * store enough information there, so it is recommended that you call the + * avformat_find_stream_info() function which tries to read and decode a few + * frames to find missing information. + * + * In some cases you might want to preallocate an AVFormatContext yourself with + * avformat_alloc_context() and do some tweaking on it before passing it to + * avformat_open_input(). One such case is when you want to use custom functions + * for reading input data instead of lavf internal I/O layer. + * To do that, create your own AVIOContext with avio_alloc_context(), passing + * your reading callbacks to it. Then set the @em pb field of your + * AVFormatContext to newly created AVIOContext. + * + * Since the format of the opened file is in general not known until after + * avformat_open_input() has returned, it is not possible to set demuxer private + * options on a preallocated context. Instead, the options should be passed to + * avformat_open_input() wrapped in an AVDictionary: + * @code + * AVDictionary *options = NULL; + * av_dict_set(&options, "video_size", "640x480", 0); + * av_dict_set(&options, "pixel_format", "rgb24", 0); + * + * if (avformat_open_input(&s, url, NULL, &options) < 0) + * abort(); + * av_dict_free(&options); + * @endcode + * This code passes the private options 'video_size' and 'pixel_format' to the + * demuxer. They would be necessary for e.g. the rawvideo demuxer, since it + * cannot know how to interpret raw video data otherwise. If the format turns + * out to be something different than raw video, those options will not be + * recognized by the demuxer and therefore will not be applied. Such unrecognized + * options are then returned in the options dictionary (recognized options are + * consumed). The calling program can handle such unrecognized options as it + * wishes, e.g. + * @code + * AVDictionaryEntry *e; + * if (e = av_dict_get(options, "", NULL, AV_DICT_IGNORE_SUFFIX)) { + * fprintf(stderr, "Option %s not recognized by the demuxer.\n", e->key); + * abort(); + * } + * @endcode + * + * After you have finished reading the file, you must close it with + * avformat_close_input(). It will free everything associated with the file. + * + * @section lavf_decoding_read Reading from an opened file + * Reading data from an opened AVFormatContext is done by repeatedly calling + * av_read_frame() on it. Each call, if successful, will return an AVPacket + * containing encoded data for one AVStream, identified by + * AVPacket.stream_index. This packet may be passed straight into the libavcodec + * decoding functions avcodec_send_packet() or avcodec_decode_subtitle2() if the + * caller wishes to decode the data. + * + * AVPacket.pts, AVPacket.dts and AVPacket.duration timing information will be + * set if known. They may also be unset (i.e. AV_NOPTS_VALUE for + * pts/dts, 0 for duration) if the stream does not provide them. The timing + * information will be in AVStream.time_base units, i.e. it has to be + * multiplied by the timebase to convert them to seconds. + * + * A packet returned by av_read_frame() is always reference-counted, + * i.e. AVPacket.buf is set and the user may keep it indefinitely. + * The packet must be freed with av_packet_unref() when it is no + * longer needed. + * + * @section lavf_decoding_seek Seeking + * @} + * + * @defgroup lavf_encoding Muxing + * @{ + * Muxers take encoded data in the form of @ref AVPacket "AVPackets" and write + * it into files or other output bytestreams in the specified container format. + * + * The main API functions for muxing are avformat_write_header() for writing the + * file header, av_write_frame() / av_interleaved_write_frame() for writing the + * packets and av_write_trailer() for finalizing the file. + * + * At the beginning of the muxing process, the caller must first call + * avformat_alloc_context() to create a muxing context. The caller then sets up + * the muxer by filling the various fields in this context: + * + * - The @ref AVFormatContext.oformat "oformat" field must be set to select the + * muxer that will be used. + * - Unless the format is of the AVFMT_NOFILE type, the @ref AVFormatContext.pb + * "pb" field must be set to an opened IO context, either returned from + * avio_open2() or a custom one. + * - Unless the format is of the AVFMT_NOSTREAMS type, at least one stream must + * be created with the avformat_new_stream() function. The caller should fill + * the @ref AVStream.codecpar "stream codec parameters" information, such as the + * codec @ref AVCodecParameters.codec_type "type", @ref AVCodecParameters.codec_id + * "id" and other parameters (e.g. width / height, the pixel or sample format, + * etc.) as known. The @ref AVStream.time_base "stream timebase" should + * be set to the timebase that the caller desires to use for this stream (note + * that the timebase actually used by the muxer can be different, as will be + * described later). + * - It is advised to manually initialize only the relevant fields in + * AVCodecParameters, rather than using @ref avcodec_parameters_copy() during + * remuxing: there is no guarantee that the codec context values remain valid + * for both input and output format contexts. + * - The caller may fill in additional information, such as @ref + * AVFormatContext.metadata "global" or @ref AVStream.metadata "per-stream" + * metadata, @ref AVFormatContext.chapters "chapters", @ref + * AVFormatContext.programs "programs", etc. as described in the + * AVFormatContext documentation. Whether such information will actually be + * stored in the output depends on what the container format and the muxer + * support. + * + * When the muxing context is fully set up, the caller must call + * avformat_write_header() to initialize the muxer internals and write the file + * header. Whether anything actually is written to the IO context at this step + * depends on the muxer, but this function must always be called. Any muxer + * private options must be passed in the options parameter to this function. + * + * The data is then sent to the muxer by repeatedly calling av_write_frame() or + * av_interleaved_write_frame() (consult those functions' documentation for + * discussion on the difference between them; only one of them may be used with + * a single muxing context, they should not be mixed). Do note that the timing + * information on the packets sent to the muxer must be in the corresponding + * AVStream's timebase. That timebase is set by the muxer (in the + * avformat_write_header() step) and may be different from the timebase + * requested by the caller. + * + * Once all the data has been written, the caller must call av_write_trailer() + * to flush any buffered packets and finalize the output file, then close the IO + * context (if any) and finally free the muxing context with + * avformat_free_context(). + * @} + * + * @defgroup lavf_io I/O Read/Write + * @{ + * @section lavf_io_dirlist Directory listing + * The directory listing API makes it possible to list files on remote servers. + * + * Some of possible use cases: + * - an "open file" dialog to choose files from a remote location, + * - a recursive media finder providing a player with an ability to play all + * files from a given directory. + * + * @subsection lavf_io_dirlist_open Opening a directory + * At first, a directory needs to be opened by calling avio_open_dir() + * supplied with a URL and, optionally, ::AVDictionary containing + * protocol-specific parameters. The function returns zero or positive + * integer and allocates AVIODirContext on success. + * + * @code + * AVIODirContext *ctx = NULL; + * if (avio_open_dir(&ctx, "smb://example.com/some_dir", NULL) < 0) { + * fprintf(stderr, "Cannot open directory.\n"); + * abort(); + * } + * @endcode + * + * This code tries to open a sample directory using smb protocol without + * any additional parameters. + * + * @subsection lavf_io_dirlist_read Reading entries + * Each directory's entry (i.e. file, another directory, anything else + * within ::AVIODirEntryType) is represented by AVIODirEntry. + * Reading consecutive entries from an opened AVIODirContext is done by + * repeatedly calling avio_read_dir() on it. Each call returns zero or + * positive integer if successful. Reading can be stopped right after the + * NULL entry has been read -- it means there are no entries left to be + * read. The following code reads all entries from a directory associated + * with ctx and prints their names to standard output. + * @code + * AVIODirEntry *entry = NULL; + * for (;;) { + * if (avio_read_dir(ctx, &entry) < 0) { + * fprintf(stderr, "Cannot list directory.\n"); + * abort(); + * } + * if (!entry) + * break; + * printf("%s\n", entry->name); + * avio_free_directory_entry(&entry); + * } + * @endcode + * @} + * + * @defgroup lavf_codec Demuxers + * @{ + * @defgroup lavf_codec_native Native Demuxers + * @{ + * @} + * @defgroup lavf_codec_wrappers External library wrappers + * @{ + * @} + * @} + * @defgroup lavf_protos I/O Protocols + * @{ + * @} + * @defgroup lavf_internal Internal + * @{ + * @} + * @} + */ + +#include /* FILE */ + +#include "libavcodec/codec_par.h" +#include "libavcodec/defs.h" +#include "libavcodec/packet.h" + +#include "libavutil/dict.h" +#include "libavutil/log.h" + +#include "avio.h" +#include "libavformat/version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "libavformat/version.h" + +#include "libavutil/frame.h" +#include "libavcodec/codec.h" +#endif + +struct AVFormatContext; +struct AVFrame; + +/** + * @defgroup metadata_api Public Metadata API + * @{ + * @ingroup libavf + * The metadata API allows libavformat to export metadata tags to a client + * application when demuxing. Conversely it allows a client application to + * set metadata when muxing. + * + * Metadata is exported or set as pairs of key/value strings in the 'metadata' + * fields of the AVFormatContext, AVStream, AVChapter and AVProgram structs + * using the @ref lavu_dict "AVDictionary" API. Like all strings in FFmpeg, + * metadata is assumed to be UTF-8 encoded Unicode. Note that metadata + * exported by demuxers isn't checked to be valid UTF-8 in most cases. + * + * Important concepts to keep in mind: + * - Keys are unique; there can never be 2 tags with the same key. This is + * also meant semantically, i.e., a demuxer should not knowingly produce + * several keys that are literally different but semantically identical. + * E.g., key=Author5, key=Author6. In this example, all authors must be + * placed in the same tag. + * - Metadata is flat, not hierarchical; there are no subtags. If you + * want to store, e.g., the email address of the child of producer Alice + * and actor Bob, that could have key=alice_and_bobs_childs_email_address. + * - Several modifiers can be applied to the tag name. This is done by + * appending a dash character ('-') and the modifier name in the order + * they appear in the list below -- e.g. foo-eng-sort, not foo-sort-eng. + * - language -- a tag whose value is localized for a particular language + * is appended with the ISO 639-2/B 3-letter language code. + * For example: Author-ger=Michael, Author-eng=Mike + * The original/default language is in the unqualified "Author" tag. + * A demuxer should set a default if it sets any translated tag. + * - sorting -- a modified version of a tag that should be used for + * sorting will have '-sort' appended. E.g. artist="The Beatles", + * artist-sort="Beatles, The". + * - Some protocols and demuxers support metadata updates. After a successful + * call to av_read_frame(), AVFormatContext.event_flags or AVStream.event_flags + * will be updated to indicate if metadata changed. In order to detect metadata + * changes on a stream, you need to loop through all streams in the AVFormatContext + * and check their individual event_flags. + * + * - Demuxers attempt to export metadata in a generic format, however tags + * with no generic equivalents are left as they are stored in the container. + * Follows a list of generic tag names: + * + @verbatim + album -- name of the set this work belongs to + album_artist -- main creator of the set/album, if different from artist. + e.g. "Various Artists" for compilation albums. + artist -- main creator of the work + comment -- any additional description of the file. + composer -- who composed the work, if different from artist. + copyright -- name of copyright holder. + creation_time-- date when the file was created, preferably in ISO 8601. + date -- date when the work was created, preferably in ISO 8601. + disc -- number of a subset, e.g. disc in a multi-disc collection. + encoder -- name/settings of the software/hardware that produced the file. + encoded_by -- person/group who created the file. + filename -- original name of the file. + genre -- . + language -- main language in which the work is performed, preferably + in ISO 639-2 format. Multiple languages can be specified by + separating them with commas. + performer -- artist who performed the work, if different from artist. + E.g for "Also sprach Zarathustra", artist would be "Richard + Strauss" and performer "London Philharmonic Orchestra". + publisher -- name of the label/publisher. + service_name -- name of the service in broadcasting (channel name). + service_provider -- name of the service provider in broadcasting. + title -- name of the work. + track -- number of this work in the set, can be in form current/total. + variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of + @endverbatim + * + * Look in the examples section for an application example how to use the Metadata API. + * + * @} + */ + +/* packet functions */ + + +/** + * Allocate and read the payload of a packet and initialize its + * fields with default values. + * + * @param s associated IO context + * @param pkt packet + * @param size desired payload size + * @return >0 (read size) if OK, AVERROR_xxx otherwise + */ +int av_get_packet(AVIOContext *s, AVPacket *pkt, int size); + + +/** + * Read data and append it to the current content of the AVPacket. + * If pkt->size is 0 this is identical to av_get_packet. + * Note that this uses av_grow_packet and thus involves a realloc + * which is inefficient. Thus this function should only be used + * when there is no reasonable way to know (an upper bound of) + * the final size. + * + * @param s associated IO context + * @param pkt packet + * @param size amount of data to read + * @return >0 (read size) if OK, AVERROR_xxx otherwise, previous data + * will not be lost even if an error occurs. + */ +int av_append_packet(AVIOContext *s, AVPacket *pkt, int size); + +/*************************************************/ +/* input/output formats */ + +struct AVCodecTag; + +/** + * This structure contains the data a format has to probe a file. + */ +typedef struct AVProbeData { + const char *filename; + unsigned char *buf; /**< Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero. */ + int buf_size; /**< Size of buf except extra allocated bytes */ + const char *mime_type; /**< mime_type, when known. */ +} AVProbeData; + +#define AVPROBE_SCORE_RETRY (AVPROBE_SCORE_MAX/4) +#define AVPROBE_SCORE_STREAM_RETRY (AVPROBE_SCORE_MAX/4-1) + +#define AVPROBE_SCORE_EXTENSION 50 ///< score for file extension +#define AVPROBE_SCORE_MIME 75 ///< score for file mime type +#define AVPROBE_SCORE_MAX 100 ///< maximum score + +#define AVPROBE_PADDING_SIZE 32 ///< extra allocated bytes at the end of the probe buffer + +/// Demuxer will use avio_open, no opened file should be provided by the caller. +#define AVFMT_NOFILE 0x0001 +#define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */ +/** + * The muxer/demuxer is experimental and should be used with caution. + * + * - demuxers: will not be selected automatically by probing, must be specified + * explicitly. + */ +#define AVFMT_EXPERIMENTAL 0x0004 +#define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */ +#define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */ +#define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any timestamps. */ +#define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */ +#define AVFMT_TS_DISCONT 0x0200 /**< Format allows timestamp discontinuities. Note, muxers always require valid (monotone) timestamps */ +#define AVFMT_VARIABLE_FPS 0x0400 /**< Format allows variable fps. */ +#define AVFMT_NODIMENSIONS 0x0800 /**< Format does not need width/height */ +#define AVFMT_NOSTREAMS 0x1000 /**< Format does not require any streams */ +#define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fall back on binary search via read_timestamp */ +#define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fall back on generic search */ +#define AVFMT_NO_BYTE_SEEK 0x8000 /**< Format does not allow seeking by bytes */ +#if FF_API_ALLOW_FLUSH +#define AVFMT_ALLOW_FLUSH 0x10000 /**< @deprecated: Just send a NULL packet if you want to flush a muxer. */ +#endif +#define AVFMT_TS_NONSTRICT 0x20000 /**< Format does not require strictly + increasing timestamps, but they must + still be monotonic */ +#define AVFMT_TS_NEGATIVE 0x40000 /**< Format allows muxing negative + timestamps. If not set the timestamp + will be shifted in av_write_frame and + av_interleaved_write_frame so they + start from 0. + The user or muxer can override this through + AVFormatContext.avoid_negative_ts + */ + +#define AVFMT_SEEK_TO_PTS 0x4000000 /**< Seeking is based on PTS */ + +/** + * @addtogroup lavf_encoding + * @{ + */ +typedef struct AVOutputFormat { + const char *name; + /** + * Descriptive name for the format, meant to be more human-readable + * than name. You should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + */ + const char *long_name; + const char *mime_type; + const char *extensions; /**< comma-separated filename extensions */ + /* output support */ + enum AVCodecID audio_codec; /**< default audio codec */ + enum AVCodecID video_codec; /**< default video codec */ + enum AVCodecID subtitle_codec; /**< default subtitle codec */ + /** + * can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, + * AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, + * AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, + * AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVE + */ + int flags; + + /** + * List of supported codec_id-codec_tag pairs, ordered by "better + * choice first". The arrays are all terminated by AV_CODEC_ID_NONE. + */ + const struct AVCodecTag * const *codec_tag; + + + const AVClass *priv_class; ///< AVClass for the private context +} AVOutputFormat; +/** + * @} + */ + +/** + * @addtogroup lavf_decoding + * @{ + */ +typedef struct AVInputFormat { + /** + * A comma separated list of short names for the format. New names + * may be appended with a minor bump. + */ + const char *name; + + /** + * Descriptive name for the format, meant to be more human-readable + * than name. You should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + */ + const char *long_name; + + /** + * Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS, + * AVFMT_NOTIMESTAMPS, AVFMT_GENERIC_INDEX, AVFMT_TS_DISCONT, AVFMT_NOBINSEARCH, + * AVFMT_NOGENSEARCH, AVFMT_NO_BYTE_SEEK, AVFMT_SEEK_TO_PTS. + */ + int flags; + + /** + * If extensions are defined, then no probe is done. You should + * usually not use extension format guessing because it is not + * reliable enough + */ + const char *extensions; + + const struct AVCodecTag * const *codec_tag; + + const AVClass *priv_class; ///< AVClass for the private context + + /** + * Comma-separated list of mime types. + * It is used check for matching mime types while probing. + * @see av_probe_input_format2 + */ + const char *mime_type; +} AVInputFormat; +/** + * @} + */ + +enum AVStreamParseType { + AVSTREAM_PARSE_NONE, + AVSTREAM_PARSE_FULL, /**< full parsing and repack */ + AVSTREAM_PARSE_HEADERS, /**< Only parse headers, do not repack. */ + AVSTREAM_PARSE_TIMESTAMPS, /**< full parsing and interpolation of timestamps for frames not starting on a packet boundary */ + AVSTREAM_PARSE_FULL_ONCE, /**< full parsing and repack of the first frame only, only implemented for H.264 currently */ + AVSTREAM_PARSE_FULL_RAW, /**< full parsing and repack with timestamp and position generation by parser for raw + this assumes that each packet in the file contains no demuxer level headers and + just codec level data, otherwise position generation would fail */ +}; + +typedef struct AVIndexEntry { + int64_t pos; + int64_t timestamp; /**< + * Timestamp in AVStream.time_base units, preferably the time from which on correctly decoded frames are available + * when seeking to this entry. That means preferable PTS on keyframe based formats. + * But demuxers can choose to store a different timestamp, if it is more convenient for the implementation or nothing better + * is known + */ +#define AVINDEX_KEYFRAME 0x0001 +#define AVINDEX_DISCARD_FRAME 0x0002 /** + * Flag is used to indicate which frame should be discarded after decoding. + */ + int flags:2; + int size:30; //Yeah, trying to keep the size of this small to reduce memory requirements (it is 24 vs. 32 bytes due to possible 8-byte alignment). + int min_distance; /**< Minimum distance between this and the previous keyframe, used to avoid unneeded searching. */ +} AVIndexEntry; + +/** + * The stream should be chosen by default among other streams of the same type, + * unless the user has explicitly specified otherwise. + */ +#define AV_DISPOSITION_DEFAULT (1 << 0) +/** + * The stream is not in original language. + * + * @note AV_DISPOSITION_ORIGINAL is the inverse of this disposition. At most + * one of them should be set in properly tagged streams. + * @note This disposition may apply to any stream type, not just audio. + */ +#define AV_DISPOSITION_DUB (1 << 1) +/** + * The stream is in original language. + * + * @see the notes for AV_DISPOSITION_DUB + */ +#define AV_DISPOSITION_ORIGINAL (1 << 2) +/** + * The stream is a commentary track. + */ +#define AV_DISPOSITION_COMMENT (1 << 3) +/** + * The stream contains song lyrics. + */ +#define AV_DISPOSITION_LYRICS (1 << 4) +/** + * The stream contains karaoke audio. + */ +#define AV_DISPOSITION_KARAOKE (1 << 5) + +/** + * Track should be used during playback by default. + * Useful for subtitle track that should be displayed + * even when user did not explicitly ask for subtitles. + */ +#define AV_DISPOSITION_FORCED (1 << 6) +/** + * The stream is intended for hearing impaired audiences. + */ +#define AV_DISPOSITION_HEARING_IMPAIRED (1 << 7) +/** + * The stream is intended for visually impaired audiences. + */ +#define AV_DISPOSITION_VISUAL_IMPAIRED (1 << 8) +/** + * The audio stream contains music and sound effects without voice. + */ +#define AV_DISPOSITION_CLEAN_EFFECTS (1 << 9) +/** + * The stream is stored in the file as an attached picture/"cover art" (e.g. + * APIC frame in ID3v2). The first (usually only) packet associated with it + * will be returned among the first few packets read from the file unless + * seeking takes place. It can also be accessed at any time in + * AVStream.attached_pic. + */ +#define AV_DISPOSITION_ATTACHED_PIC (1 << 10) +/** + * The stream is sparse, and contains thumbnail images, often corresponding + * to chapter markers. Only ever used with AV_DISPOSITION_ATTACHED_PIC. + */ +#define AV_DISPOSITION_TIMED_THUMBNAILS (1 << 11) + +/** + * The stream is intended to be mixed with a spatial audio track. For example, + * it could be used for narration or stereo music, and may remain unchanged by + * listener head rotation. + */ +#define AV_DISPOSITION_NON_DIEGETIC (1 << 12) + +/** + * The subtitle stream contains captions, providing a transcription and possibly + * a translation of audio. Typically intended for hearing-impaired audiences. + */ +#define AV_DISPOSITION_CAPTIONS (1 << 16) +/** + * The subtitle stream contains a textual description of the video content. + * Typically intended for visually-impaired audiences or for the cases where the + * video cannot be seen. + */ +#define AV_DISPOSITION_DESCRIPTIONS (1 << 17) +/** + * The subtitle stream contains time-aligned metadata that is not intended to be + * directly presented to the user. + */ +#define AV_DISPOSITION_METADATA (1 << 18) +/** + * The stream is intended to be mixed with another stream before presentation. + * Used for example to signal the stream contains an image part of a HEIF grid, + * or for mix_type=0 in mpegts. + */ +#define AV_DISPOSITION_DEPENDENT (1 << 19) +/** + * The video stream contains still images. + */ +#define AV_DISPOSITION_STILL_IMAGE (1 << 20) +/** + * The video stream contains multiple layers, e.g. stereoscopic views (cf. H.264 + * Annex G/H, or HEVC Annex F). + */ +#define AV_DISPOSITION_MULTILAYER (1 << 21) + +/** + * @return The AV_DISPOSITION_* flag corresponding to disp or a negative error + * code if disp does not correspond to a known stream disposition. + */ +int av_disposition_from_string(const char *disp); + +/** + * @param disposition a combination of AV_DISPOSITION_* values + * @return The string description corresponding to the lowest set bit in + * disposition. NULL when the lowest set bit does not correspond + * to a known disposition or when disposition is 0. + */ +const char *av_disposition_to_string(int disposition); + +/** + * Options for behavior on timestamp wrap detection. + */ +#define AV_PTS_WRAP_IGNORE 0 ///< ignore the wrap +#define AV_PTS_WRAP_ADD_OFFSET 1 ///< add the format specific offset on wrap detection +#define AV_PTS_WRAP_SUB_OFFSET -1 ///< subtract the format specific offset on wrap detection + +/** + * Stream structure. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVStream) must not be used outside libav*. + */ +typedef struct AVStream { + /** + * A class for @ref avoptions. Set on stream creation. + */ + const AVClass *av_class; + + int index; /**< stream index in AVFormatContext */ + /** + * Format-specific stream ID. + * decoding: set by libavformat + * encoding: set by the user, replaced by libavformat if left unset + */ + int id; + + /** + * Codec parameters associated with this stream. Allocated and freed by + * libavformat in avformat_new_stream() and avformat_free_context() + * respectively. + * + * - demuxing: filled by libavformat on stream creation or in + * avformat_find_stream_info() + * - muxing: filled by the caller before avformat_write_header() + */ + AVCodecParameters *codecpar; + + void *priv_data; + + /** + * This is the fundamental unit of time (in seconds) in terms + * of which frame timestamps are represented. + * + * decoding: set by libavformat + * encoding: May be set by the caller before avformat_write_header() to + * provide a hint to the muxer about the desired timebase. In + * avformat_write_header(), the muxer will overwrite this field + * with the timebase that will actually be used for the timestamps + * written into the file (which may or may not be related to the + * user-provided one, depending on the format). + */ + AVRational time_base; + + /** + * Decoding: pts of the first frame of the stream in presentation order, in stream time base. + * Only set this if you are absolutely 100% sure that the value you set + * it to really is the pts of the first frame. + * This may be undefined (AV_NOPTS_VALUE). + * @note The ASF header does NOT contain a correct start_time the ASF + * demuxer must NOT set this. + */ + int64_t start_time; + + /** + * Decoding: duration of the stream, in stream time base. + * If a source file does not specify a duration, but does specify + * a bitrate, this value will be estimated from bitrate and file size. + * + * Encoding: May be set by the caller before avformat_write_header() to + * provide a hint to the muxer about the estimated duration. + */ + int64_t duration; + + int64_t nb_frames; ///< number of frames in this stream if known or 0 + + /** + * Stream disposition - a combination of AV_DISPOSITION_* flags. + * - demuxing: set by libavformat when creating the stream or in + * avformat_find_stream_info(). + * - muxing: may be set by the caller before avformat_write_header(). + */ + int disposition; + + enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed. + + /** + * sample aspect ratio (0 if unknown) + * - encoding: Set by user. + * - decoding: Set by libavformat. + */ + AVRational sample_aspect_ratio; + + AVDictionary *metadata; + + /** + * Average framerate + * + * - demuxing: May be set by libavformat when creating the stream or in + * avformat_find_stream_info(). + * - muxing: May be set by the caller before avformat_write_header(). + */ + AVRational avg_frame_rate; + + /** + * For streams with AV_DISPOSITION_ATTACHED_PIC disposition, this packet + * will contain the attached picture. + * + * decoding: set by libavformat, must not be modified by the caller. + * encoding: unused + */ + AVPacket attached_pic; + +#if FF_API_AVSTREAM_SIDE_DATA + /** + * An array of side data that applies to the whole stream (i.e. the + * container does not allow it to change between packets). + * + * There may be no overlap between the side data in this array and side data + * in the packets. I.e. a given side data is either exported by the muxer + * (demuxing) / set by the caller (muxing) in this array, then it never + * appears in the packets, or the side data is exported / sent through + * the packets (always in the first packet where the value becomes known or + * changes), then it does not appear in this array. + * + * - demuxing: Set by libavformat when the stream is created. + * - muxing: May be set by the caller before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + * + * @deprecated use AVStream's @ref AVCodecParameters.coded_side_data + * "codecpar side data". + */ + attribute_deprecated + AVPacketSideData *side_data; + /** + * The number of elements in the AVStream.side_data array. + * + * @deprecated use AVStream's @ref AVCodecParameters.nb_coded_side_data + * "codecpar side data". + */ + attribute_deprecated + int nb_side_data; +#endif + + /** + * Flags indicating events happening on the stream, a combination of + * AVSTREAM_EVENT_FLAG_*. + * + * - demuxing: may be set by the demuxer in avformat_open_input(), + * avformat_find_stream_info() and av_read_frame(). Flags must be cleared + * by the user once the event has been handled. + * - muxing: may be set by the user after avformat_write_header(). to + * indicate a user-triggered event. The muxer will clear the flags for + * events it has handled in av_[interleaved]_write_frame(). + */ + int event_flags; +/** + * - demuxing: the demuxer read new metadata from the file and updated + * AVStream.metadata accordingly + * - muxing: the user updated AVStream.metadata and wishes the muxer to write + * it into the file + */ +#define AVSTREAM_EVENT_FLAG_METADATA_UPDATED 0x0001 +/** + * - demuxing: new packets for this stream were read from the file. This + * event is informational only and does not guarantee that new packets + * for this stream will necessarily be returned from av_read_frame(). + */ +#define AVSTREAM_EVENT_FLAG_NEW_PACKETS (1 << 1) + + /** + * Real base framerate of the stream. + * This is the lowest framerate with which all timestamps can be + * represented accurately (it is the least common multiple of all + * framerates in the stream). Note, this value is just a guess! + * For example, if the time base is 1/90000 and all frames have either + * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1. + */ + AVRational r_frame_rate; + + /** + * Number of bits in timestamps. Used for wrapping control. + * + * - demuxing: set by libavformat + * - muxing: set by libavformat + * + */ + int pts_wrap_bits; +} AVStream; + +/** + * AVStreamGroupTileGrid holds information on how to combine several + * independent images on a single canvas for presentation. + * + * The output should be a @ref AVStreamGroupTileGrid.background "background" + * colored @ref AVStreamGroupTileGrid.coded_width "coded_width" x + * @ref AVStreamGroupTileGrid.coded_height "coded_height" canvas where a + * @ref AVStreamGroupTileGrid.nb_tiles "nb_tiles" amount of tiles are placed in + * the order they appear in the @ref AVStreamGroupTileGrid.offsets "offsets" + * array, at the exact offset described for them. In particular, if two or more + * tiles overlap, the image with higher index in the + * @ref AVStreamGroupTileGrid.offsets "offsets" array takes priority. + * Note that a single image may be used multiple times, i.e. multiple entries + * in @ref AVStreamGroupTileGrid.offsets "offsets" may have the same value of + * idx. + * + * The following is an example of a simple grid with 3 rows and 4 columns: + * + * +---+---+---+---+ + * | 0 | 1 | 2 | 3 | + * +---+---+---+---+ + * | 4 | 5 | 6 | 7 | + * +---+---+---+---+ + * | 8 | 9 |10 |11 | + * +---+---+---+---+ + * + * Assuming all tiles have a dimension of 512x512, the + * @ref AVStreamGroupTileGrid.offsets "offset" of the topleft pixel of + * the first @ref AVStreamGroup.streams "stream" in the group is "0,0", the + * @ref AVStreamGroupTileGrid.offsets "offset" of the topleft pixel of + * the second @ref AVStreamGroup.streams "stream" in the group is "512,0", the + * @ref AVStreamGroupTileGrid.offsets "offset" of the topleft pixel of + * the fifth @ref AVStreamGroup.streams "stream" in the group is "0,512", the + * @ref AVStreamGroupTileGrid.offsets "offset", of the topleft pixel of + * the sixth @ref AVStreamGroup.streams "stream" in the group is "512,512", + * etc. + * + * The following is an example of a canvas with overlaping tiles: + * + * +-----------+ + * | %%%%% | + * |***%%3%%@@@| + * |**0%%%%%2@@| + * |***##1@@@@@| + * | ##### | + * +-----------+ + * + * Assuming a canvas with size 1024x1024 and all tiles with a dimension of + * 512x512, a possible @ref AVStreamGroupTileGrid.offsets "offset" for the + * topleft pixel of the first @ref AVStreamGroup.streams "stream" in the group + * would be 0x256, the @ref AVStreamGroupTileGrid.offsets "offset" for the + * topleft pixel of the second @ref AVStreamGroup.streams "stream" in the group + * would be 256x512, the @ref AVStreamGroupTileGrid.offsets "offset" for the + * topleft pixel of the third @ref AVStreamGroup.streams "stream" in the group + * would be 512x256, and the @ref AVStreamGroupTileGrid.offsets "offset" for + * the topleft pixel of the fourth @ref AVStreamGroup.streams "stream" in the + * group would be 256x0. + * + * sizeof(AVStreamGroupTileGrid) is not a part of the ABI and may only be + * allocated by avformat_stream_group_create(). + */ +typedef struct AVStreamGroupTileGrid { + const AVClass *av_class; + + /** + * Amount of tiles in the grid. + * + * Must be > 0. + */ + unsigned int nb_tiles; + + /** + * Width of the canvas. + * + * Must be > 0. + */ + int coded_width; + /** + * Width of the canvas. + * + * Must be > 0. + */ + int coded_height; + + /** + * An @ref nb_tiles sized array of offsets in pixels from the topleft edge + * of the canvas, indicating where each stream should be placed. + * It must be allocated with the av_malloc() family of functions. + * + * - demuxing: set by libavformat, must not be modified by the caller. + * - muxing: set by the caller before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + */ + struct { + /** + * Index of the stream in the group this tile references. + * + * Must be < @ref AVStreamGroup.nb_streams "nb_streams". + */ + unsigned int idx; + /** + * Offset in pixels from the left edge of the canvas where the tile + * should be placed. + */ + int horizontal; + /** + * Offset in pixels from the top edge of the canvas where the tile + * should be placed. + */ + int vertical; + } *offsets; + + /** + * The pixel value per channel in RGBA format used if no pixel of any tile + * is located at a particular pixel location. + * + * @see av_image_fill_color(). + * @see av_parse_color(). + */ + uint8_t background[4]; + + /** + * Offset in pixels from the left edge of the canvas where the actual image + * meant for presentation starts. + * + * This field must be >= 0 and < @ref coded_width. + */ + int horizontal_offset; + /** + * Offset in pixels from the top edge of the canvas where the actual image + * meant for presentation starts. + * + * This field must be >= 0 and < @ref coded_height. + */ + int vertical_offset; + + /** + * Width of the final image for presentation. + * + * Must be > 0 and <= (@ref coded_width - @ref horizontal_offset). + * When it's not equal to (@ref coded_width - @ref horizontal_offset), the + * result of (@ref coded_width - width - @ref horizontal_offset) is the + * amount amount of pixels to be cropped from the right edge of the + * final image before presentation. + */ + int width; + /** + * Height of the final image for presentation. + * + * Must be > 0 and <= (@ref coded_height - @ref vertical_offset). + * When it's not equal to (@ref coded_height - @ref vertical_offset), the + * result of (@ref coded_height - height - @ref vertical_offset) is the + * amount amount of pixels to be cropped from the bottom edge of the + * final image before presentation. + */ + int height; +} AVStreamGroupTileGrid; + +/** + * AVStreamGroupLCEVC is meant to define the relation between video streams + * and a data stream containing LCEVC enhancement layer NALUs. + * + * No more than one stream of @ref AVCodecParameters.codec_type "codec_type" + * AVMEDIA_TYPE_DATA shall be present, and it must be of + * @ref AVCodecParameters.codec_id "codec_id" AV_CODEC_ID_LCEVC. + */ +typedef struct AVStreamGroupLCEVC { + const AVClass *av_class; + + /** + * Index of the LCEVC data stream in AVStreamGroup. + */ + unsigned int lcevc_index; + /** + * Width of the final stream for presentation. + */ + int width; + /** + * Height of the final image for presentation. + */ + int height; +} AVStreamGroupLCEVC; + +enum AVStreamGroupParamsType { + AV_STREAM_GROUP_PARAMS_NONE, + AV_STREAM_GROUP_PARAMS_IAMF_AUDIO_ELEMENT, + AV_STREAM_GROUP_PARAMS_IAMF_MIX_PRESENTATION, + AV_STREAM_GROUP_PARAMS_TILE_GRID, + AV_STREAM_GROUP_PARAMS_LCEVC, +}; + +struct AVIAMFAudioElement; +struct AVIAMFMixPresentation; + +typedef struct AVStreamGroup { + /** + * A class for @ref avoptions. Set by avformat_stream_group_create(). + */ + const AVClass *av_class; + + void *priv_data; + + /** + * Group index in AVFormatContext. + */ + unsigned int index; + + /** + * Group type-specific group ID. + * + * decoding: set by libavformat + * encoding: may set by the user + */ + int64_t id; + + /** + * Group type + * + * decoding: set by libavformat on group creation + * encoding: set by avformat_stream_group_create() + */ + enum AVStreamGroupParamsType type; + + /** + * Group type-specific parameters + */ + union { + struct AVIAMFAudioElement *iamf_audio_element; + struct AVIAMFMixPresentation *iamf_mix_presentation; + struct AVStreamGroupTileGrid *tile_grid; + struct AVStreamGroupLCEVC *lcevc; + } params; + + /** + * Metadata that applies to the whole group. + * + * - demuxing: set by libavformat on group creation + * - muxing: may be set by the caller before avformat_write_header() + * + * Freed by libavformat in avformat_free_context(). + */ + AVDictionary *metadata; + + /** + * Number of elements in AVStreamGroup.streams. + * + * Set by avformat_stream_group_add_stream() must not be modified by any other code. + */ + unsigned int nb_streams; + + /** + * A list of streams in the group. New entries are created with + * avformat_stream_group_add_stream(). + * + * - demuxing: entries are created by libavformat on group creation. + * If AVFMTCTX_NOHEADER is set in ctx_flags, then new entries may also + * appear in av_read_frame(). + * - muxing: entries are created by the user before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + */ + AVStream **streams; + + /** + * Stream group disposition - a combination of AV_DISPOSITION_* flags. + * This field currently applies to all defined AVStreamGroupParamsType. + * + * - demuxing: set by libavformat when creating the group or in + * avformat_find_stream_info(). + * - muxing: may be set by the caller before avformat_write_header(). + */ + int disposition; +} AVStreamGroup; + +struct AVCodecParserContext *av_stream_get_parser(const AVStream *s); + +#define AV_PROGRAM_RUNNING 1 + +/** + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVProgram) must not be used outside libav*. + */ +typedef struct AVProgram { + int id; + int flags; + enum AVDiscard discard; ///< selects which program to discard and which to feed to the caller + unsigned int *stream_index; + unsigned int nb_stream_indexes; + AVDictionary *metadata; + + int program_num; + int pmt_pid; + int pcr_pid; + int pmt_version; + + /***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavformat and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + */ + int64_t start_time; + int64_t end_time; + + int64_t pts_wrap_reference; ///< reference dts for wrap detection + int pts_wrap_behavior; ///< behavior on wrap detection +} AVProgram; + +#define AVFMTCTX_NOHEADER 0x0001 /**< signal that no header is present + (streams are added dynamically) */ +#define AVFMTCTX_UNSEEKABLE 0x0002 /**< signal that the stream is definitely + not seekable, and attempts to call the + seek function will fail. For some + network protocols (e.g. HLS), this can + change dynamically at runtime. */ + +typedef struct AVChapter { + int64_t id; ///< unique ID to identify the chapter + AVRational time_base; ///< time base in which the start/end timestamps are specified + int64_t start, end; ///< chapter start/end time in time_base units + AVDictionary *metadata; +} AVChapter; + + +/** + * Callback used by devices to communicate with application. + */ +typedef int (*av_format_control_message)(struct AVFormatContext *s, int type, + void *data, size_t data_size); + +typedef int (*AVOpenCallback)(struct AVFormatContext *s, AVIOContext **pb, const char *url, int flags, + const AVIOInterruptCB *int_cb, AVDictionary **options); + +/** + * The duration of a video can be estimated through various ways, and this enum can be used + * to know how the duration was estimated. + */ +enum AVDurationEstimationMethod { + AVFMT_DURATION_FROM_PTS, ///< Duration accurately estimated from PTSes + AVFMT_DURATION_FROM_STREAM, ///< Duration estimated from a stream with a known duration + AVFMT_DURATION_FROM_BITRATE ///< Duration estimated from bitrate (less accurate) +}; + +/** + * Format I/O context. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVFormatContext) must not be used outside libav*, use + * avformat_alloc_context() to create an AVFormatContext. + * + * Fields can be accessed through AVOptions (av_opt*), + * the name string used matches the associated command line parameter name and + * can be found in libavformat/options_table.h. + * The AVOption/command line parameter names differ in some cases from the C + * structure field names for historic reasons or brevity. + */ +typedef struct AVFormatContext { + /** + * A class for logging and @ref avoptions. Set by avformat_alloc_context(). + * Exports (de)muxer private options if they exist. + */ + const AVClass *av_class; + + /** + * The input container format. + * + * Demuxing only, set by avformat_open_input(). + */ + const struct AVInputFormat *iformat; + + /** + * The output container format. + * + * Muxing only, must be set by the caller before avformat_write_header(). + */ + const struct AVOutputFormat *oformat; + + /** + * Format private data. This is an AVOptions-enabled struct + * if and only if iformat/oformat.priv_class is not NULL. + * + * - muxing: set by avformat_write_header() + * - demuxing: set by avformat_open_input() + */ + void *priv_data; + + /** + * I/O context. + * + * - demuxing: either set by the user before avformat_open_input() (then + * the user must close it manually) or set by avformat_open_input(). + * - muxing: set by the user before avformat_write_header(). The caller must + * take care of closing / freeing the IO context. + * + * Do NOT set this field if AVFMT_NOFILE flag is set in + * iformat/oformat.flags. In such a case, the (de)muxer will handle + * I/O in some other way and this field will be NULL. + */ + AVIOContext *pb; + + /* stream info */ + /** + * Flags signalling stream properties. A combination of AVFMTCTX_*. + * Set by libavformat. + */ + int ctx_flags; + + /** + * Number of elements in AVFormatContext.streams. + * + * Set by avformat_new_stream(), must not be modified by any other code. + */ + unsigned int nb_streams; + /** + * A list of all streams in the file. New streams are created with + * avformat_new_stream(). + * + * - demuxing: streams are created by libavformat in avformat_open_input(). + * If AVFMTCTX_NOHEADER is set in ctx_flags, then new streams may also + * appear in av_read_frame(). + * - muxing: streams are created by the user before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + */ + AVStream **streams; + + /** + * Number of elements in AVFormatContext.stream_groups. + * + * Set by avformat_stream_group_create(), must not be modified by any other code. + */ + unsigned int nb_stream_groups; + /** + * A list of all stream groups in the file. New groups are created with + * avformat_stream_group_create(), and filled with avformat_stream_group_add_stream(). + * + * - demuxing: groups may be created by libavformat in avformat_open_input(). + * If AVFMTCTX_NOHEADER is set in ctx_flags, then new groups may also + * appear in av_read_frame(). + * - muxing: groups may be created by the user before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + */ + AVStreamGroup **stream_groups; + + /** + * Number of chapters in AVChapter array. + * When muxing, chapters are normally written in the file header, + * so nb_chapters should normally be initialized before write_header + * is called. Some muxers (e.g. mov and mkv) can also write chapters + * in the trailer. To write chapters in the trailer, nb_chapters + * must be zero when write_header is called and non-zero when + * write_trailer is called. + * - muxing: set by user + * - demuxing: set by libavformat + */ + unsigned int nb_chapters; + AVChapter **chapters; + + /** + * input or output URL. Unlike the old filename field, this field has no + * length restriction. + * + * - demuxing: set by avformat_open_input(), initialized to an empty + * string if url parameter was NULL in avformat_open_input(). + * - muxing: may be set by the caller before calling avformat_write_header() + * (or avformat_init_output() if that is called first) to a string + * which is freeable by av_free(). Set to an empty string if it + * was NULL in avformat_init_output(). + * + * Freed by libavformat in avformat_free_context(). + */ + char *url; + + /** + * Position of the first frame of the component, in + * AV_TIME_BASE fractional seconds. NEVER set this value directly: + * It is deduced from the AVStream values. + * + * Demuxing only, set by libavformat. + */ + int64_t start_time; + + /** + * Duration of the stream, in AV_TIME_BASE fractional + * seconds. Only set this value if you know none of the individual stream + * durations and also do not set any of them. This is deduced from the + * AVStream values if not set. + * + * Demuxing only, set by libavformat. + */ + int64_t duration; + + /** + * Total stream bitrate in bit/s, 0 if not + * available. Never set it directly if the file_size and the + * duration are known as FFmpeg can compute it automatically. + */ + int64_t bit_rate; + + unsigned int packet_size; + int max_delay; + + /** + * Flags modifying the (de)muxer behaviour. A combination of AVFMT_FLAG_*. + * Set by the user before avformat_open_input() / avformat_write_header(). + */ + int flags; +#define AVFMT_FLAG_GENPTS 0x0001 ///< Generate missing pts even if it requires parsing future frames. +#define AVFMT_FLAG_IGNIDX 0x0002 ///< Ignore index. +#define AVFMT_FLAG_NONBLOCK 0x0004 ///< Do not block when reading packets from input. +#define AVFMT_FLAG_IGNDTS 0x0008 ///< Ignore DTS on frames that contain both DTS & PTS +#define AVFMT_FLAG_NOFILLIN 0x0010 ///< Do not infer any values from other values, just return what is stored in the container +#define AVFMT_FLAG_NOPARSE 0x0020 ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled +#define AVFMT_FLAG_NOBUFFER 0x0040 ///< Do not buffer frames when possible +#define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it. +#define AVFMT_FLAG_DISCARD_CORRUPT 0x0100 ///< Discard frames marked corrupted +#define AVFMT_FLAG_FLUSH_PACKETS 0x0200 ///< Flush the AVIOContext every packet. +/** + * When muxing, try to avoid writing any random/volatile data to the output. + * This includes any random IDs, real-time timestamps/dates, muxer version, etc. + * + * This flag is mainly intended for testing. + */ +#define AVFMT_FLAG_BITEXACT 0x0400 +#define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down) +#define AVFMT_FLAG_FAST_SEEK 0x80000 ///< Enable fast, but inaccurate seeks for some formats +#if FF_API_LAVF_SHORTEST +#define AVFMT_FLAG_SHORTEST 0x100000 ///< Stop muxing when the shortest stream stops. +#endif +#define AVFMT_FLAG_AUTO_BSF 0x200000 ///< Add bitstream filters as requested by the muxer + + /** + * Maximum number of bytes read from input in order to determine stream + * properties. Used when reading the global header and in + * avformat_find_stream_info(). + * + * Demuxing only, set by the caller before avformat_open_input(). + * + * @note this is \e not used for determining the \ref AVInputFormat + * "input format" + * @see format_probesize + */ + int64_t probesize; + + /** + * Maximum duration (in AV_TIME_BASE units) of the data read + * from input in avformat_find_stream_info(). + * Demuxing only, set by the caller before avformat_find_stream_info(). + * Can be set to 0 to let avformat choose using a heuristic. + */ + int64_t max_analyze_duration; + + const uint8_t *key; + int keylen; + + unsigned int nb_programs; + AVProgram **programs; + + /** + * Forced video codec_id. + * Demuxing: Set by user. + */ + enum AVCodecID video_codec_id; + + /** + * Forced audio codec_id. + * Demuxing: Set by user. + */ + enum AVCodecID audio_codec_id; + + /** + * Forced subtitle codec_id. + * Demuxing: Set by user. + */ + enum AVCodecID subtitle_codec_id; + + /** + * Forced Data codec_id. + * Demuxing: Set by user. + */ + enum AVCodecID data_codec_id; + + /** + * Metadata that applies to the whole file. + * + * - demuxing: set by libavformat in avformat_open_input() + * - muxing: may be set by the caller before avformat_write_header() + * + * Freed by libavformat in avformat_free_context(). + */ + AVDictionary *metadata; + + /** + * Start time of the stream in real world time, in microseconds + * since the Unix epoch (00:00 1st January 1970). That is, pts=0 in the + * stream was captured at this real world time. + * - muxing: Set by the caller before avformat_write_header(). If set to + * either 0 or AV_NOPTS_VALUE, then the current wall-time will + * be used. + * - demuxing: Set by libavformat. AV_NOPTS_VALUE if unknown. Note that + * the value may become known after some number of frames + * have been received. + */ + int64_t start_time_realtime; + + /** + * The number of frames used for determining the framerate in + * avformat_find_stream_info(). + * Demuxing only, set by the caller before avformat_find_stream_info(). + */ + int fps_probe_size; + + /** + * Error recognition; higher values will detect more errors but may + * misdetect some more or less valid parts as errors. + * Demuxing only, set by the caller before avformat_open_input(). + */ + int error_recognition; + + /** + * Custom interrupt callbacks for the I/O layer. + * + * demuxing: set by the user before avformat_open_input(). + * muxing: set by the user before avformat_write_header() + * (mainly useful for AVFMT_NOFILE formats). The callback + * should also be passed to avio_open2() if it's used to + * open the file. + */ + AVIOInterruptCB interrupt_callback; + + /** + * Flags to enable debugging. + */ + int debug; +#define FF_FDEBUG_TS 0x0001 + + /** + * The maximum number of streams. + * - encoding: unused + * - decoding: set by user + */ + int max_streams; + + /** + * Maximum amount of memory in bytes to use for the index of each stream. + * If the index exceeds this size, entries will be discarded as + * needed to maintain a smaller size. This can lead to slower or less + * accurate seeking (depends on demuxer). + * Demuxers for which a full in-memory index is mandatory will ignore + * this. + * - muxing: unused + * - demuxing: set by user + */ + unsigned int max_index_size; + + /** + * Maximum amount of memory in bytes to use for buffering frames + * obtained from realtime capture devices. + */ + unsigned int max_picture_buffer; + + /** + * Maximum buffering duration for interleaving. + * + * To ensure all the streams are interleaved correctly, + * av_interleaved_write_frame() will wait until it has at least one packet + * for each stream before actually writing any packets to the output file. + * When some streams are "sparse" (i.e. there are large gaps between + * successive packets), this can result in excessive buffering. + * + * This field specifies the maximum difference between the timestamps of the + * first and the last packet in the muxing queue, above which libavformat + * will output a packet regardless of whether it has queued a packet for all + * the streams. + * + * Muxing only, set by the caller before avformat_write_header(). + */ + int64_t max_interleave_delta; + + /** + * Maximum number of packets to read while waiting for the first timestamp. + * Decoding only. + */ + int max_ts_probe; + + /** + * Max chunk time in microseconds. + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user + * - decoding: unused + */ + int max_chunk_duration; + + /** + * Max chunk size in bytes + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user + * - decoding: unused + */ + int max_chunk_size; + + /** + * Maximum number of packets that can be probed + * - encoding: unused + * - decoding: set by user + */ + int max_probe_packets; + + /** + * Allow non-standard and experimental extension + * @see AVCodecContext.strict_std_compliance + */ + int strict_std_compliance; + + /** + * Flags indicating events happening on the file, a combination of + * AVFMT_EVENT_FLAG_*. + * + * - demuxing: may be set by the demuxer in avformat_open_input(), + * avformat_find_stream_info() and av_read_frame(). Flags must be cleared + * by the user once the event has been handled. + * - muxing: may be set by the user after avformat_write_header() to + * indicate a user-triggered event. The muxer will clear the flags for + * events it has handled in av_[interleaved]_write_frame(). + */ + int event_flags; +/** + * - demuxing: the demuxer read new metadata from the file and updated + * AVFormatContext.metadata accordingly + * - muxing: the user updated AVFormatContext.metadata and wishes the muxer to + * write it into the file + */ +#define AVFMT_EVENT_FLAG_METADATA_UPDATED 0x0001 + + + /** + * Avoid negative timestamps during muxing. + * Any value of the AVFMT_AVOID_NEG_TS_* constants. + * Note, this works better when using av_interleaved_write_frame(). + * - muxing: Set by user + * - demuxing: unused + */ + int avoid_negative_ts; +#define AVFMT_AVOID_NEG_TS_AUTO -1 ///< Enabled when required by target format +#define AVFMT_AVOID_NEG_TS_DISABLED 0 ///< Do not shift timestamps even when they are negative. +#define AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE 1 ///< Shift timestamps so they are non negative +#define AVFMT_AVOID_NEG_TS_MAKE_ZERO 2 ///< Shift timestamps so that they start at 0 + + /** + * Audio preload in microseconds. + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user + * - decoding: unused + */ + int audio_preload; + + /** + * forces the use of wallclock timestamps as pts/dts of packets + * This has undefined results in the presence of B frames. + * - encoding: unused + * - decoding: Set by user + */ + int use_wallclock_as_timestamps; + + /** + * Skip duration calcuation in estimate_timings_from_pts. + * - encoding: unused + * - decoding: set by user + * + * @see duration_probesize + */ + int skip_estimate_duration_from_pts; + + /** + * avio flags, used to force AVIO_FLAG_DIRECT. + * - encoding: unused + * - decoding: Set by user + */ + int avio_flags; + + /** + * The duration field can be estimated through various ways, and this field can be used + * to know how the duration was estimated. + * - encoding: unused + * - decoding: Read by user + */ + enum AVDurationEstimationMethod duration_estimation_method; + + /** + * Skip initial bytes when opening stream + * - encoding: unused + * - decoding: Set by user + */ + int64_t skip_initial_bytes; + + /** + * Correct single timestamp overflows + * - encoding: unused + * - decoding: Set by user + */ + unsigned int correct_ts_overflow; + + /** + * Force seeking to any (also non key) frames. + * - encoding: unused + * - decoding: Set by user + */ + int seek2any; + + /** + * Flush the I/O context after each packet. + * - encoding: Set by user + * - decoding: unused + */ + int flush_packets; + + /** + * format probing score. + * The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes + * the format. + * - encoding: unused + * - decoding: set by avformat, read by user + */ + int probe_score; + + /** + * Maximum number of bytes read from input in order to identify the + * \ref AVInputFormat "input format". Only used when the format is not set + * explicitly by the caller. + * + * Demuxing only, set by the caller before avformat_open_input(). + * + * @see probesize + */ + int format_probesize; + + /** + * ',' separated list of allowed decoders. + * If NULL then all are allowed + * - encoding: unused + * - decoding: set by user + */ + char *codec_whitelist; + + /** + * ',' separated list of allowed demuxers. + * If NULL then all are allowed + * - encoding: unused + * - decoding: set by user + */ + char *format_whitelist; + + /** + * ',' separated list of allowed protocols. + * - encoding: unused + * - decoding: set by user + */ + char *protocol_whitelist; + + /** + * ',' separated list of disallowed protocols. + * - encoding: unused + * - decoding: set by user + */ + char *protocol_blacklist; + + /** + * IO repositioned flag. + * This is set by avformat when the underlaying IO context read pointer + * is repositioned, for example when doing byte based seeking. + * Demuxers can use the flag to detect such changes. + */ + int io_repositioned; + + /** + * Forced video codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + */ + const struct AVCodec *video_codec; + + /** + * Forced audio codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + */ + const struct AVCodec *audio_codec; + + /** + * Forced subtitle codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + */ + const struct AVCodec *subtitle_codec; + + /** + * Forced data codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + */ + const struct AVCodec *data_codec; + + /** + * Number of bytes to be written as padding in a metadata header. + * Demuxing: Unused. + * Muxing: Set by user. + */ + int metadata_header_padding; + + /** + * User data. + * This is a place for some private data of the user. + */ + void *opaque; + + /** + * Callback used by devices to communicate with application. + */ + av_format_control_message control_message_cb; + + /** + * Output timestamp offset, in microseconds. + * Muxing: set by user + */ + int64_t output_ts_offset; + + /** + * dump format separator. + * can be ", " or "\n " or anything else + * - muxing: Set by user. + * - demuxing: Set by user. + */ + uint8_t *dump_separator; + + /** + * A callback for opening new IO streams. + * + * Whenever a muxer or a demuxer needs to open an IO stream (typically from + * avformat_open_input() for demuxers, but for certain formats can happen at + * other times as well), it will call this callback to obtain an IO context. + * + * @param s the format context + * @param pb on success, the newly opened IO context should be returned here + * @param url the url to open + * @param flags a combination of AVIO_FLAG_* + * @param options a dictionary of additional options, with the same + * semantics as in avio_open2() + * @return 0 on success, a negative AVERROR code on failure + * + * @note Certain muxers and demuxers do nesting, i.e. they open one or more + * additional internal format contexts. Thus the AVFormatContext pointer + * passed to this callback may be different from the one facing the caller. + * It will, however, have the same 'opaque' field. + */ + int (*io_open)(struct AVFormatContext *s, AVIOContext **pb, const char *url, + int flags, AVDictionary **options); + + /** + * A callback for closing the streams opened with AVFormatContext.io_open(). + * + * Using this is preferred over io_close, because this can return an error. + * Therefore this callback is used instead of io_close by the generic + * libavformat code if io_close is NULL or the default. + * + * @param s the format context + * @param pb IO context to be closed and freed + * @return 0 on success, a negative AVERROR code on failure + */ + int (*io_close2)(struct AVFormatContext *s, AVIOContext *pb); + + /** + * Maximum number of bytes read from input in order to determine stream durations + * when using estimate_timings_from_pts in avformat_find_stream_info(). + * Demuxing only, set by the caller before avformat_find_stream_info(). + * Can be set to 0 to let avformat choose using a heuristic. + * + * @see skip_estimate_duration_from_pts + */ + int64_t duration_probesize; +} AVFormatContext; + +/** + * This function will cause global side data to be injected in the next packet + * of each stream as well as after any subsequent seek. + * + * @note global side data is always available in every AVStream's + * @ref AVCodecParameters.coded_side_data "codecpar side data" array, and + * in a @ref AVCodecContext.coded_side_data "decoder's side data" array if + * initialized with said stream's codecpar. + * @see av_packet_side_data_get() + */ +void av_format_inject_global_side_data(AVFormatContext *s); + +#if FF_API_GET_DUR_ESTIMATE_METHOD +/** + * Returns the method used to set ctx->duration. + * + * @return AVFMT_DURATION_FROM_PTS, AVFMT_DURATION_FROM_STREAM, or AVFMT_DURATION_FROM_BITRATE. + * @deprecated duration_estimation_method is public and can be read directly. + */ +attribute_deprecated +enum AVDurationEstimationMethod av_fmt_ctx_get_duration_estimation_method(const AVFormatContext* ctx); +#endif + +/** + * @defgroup lavf_core Core functions + * @ingroup libavf + * + * Functions for querying libavformat capabilities, allocating core structures, + * etc. + * @{ + */ + +/** + * Return the LIBAVFORMAT_VERSION_INT constant. + */ +unsigned avformat_version(void); + +/** + * Return the libavformat build-time configuration. + */ +const char *avformat_configuration(void); + +/** + * Return the libavformat license. + */ +const char *avformat_license(void); + +/** + * Do global initialization of network libraries. This is optional, + * and not recommended anymore. + * + * This functions only exists to work around thread-safety issues + * with older GnuTLS or OpenSSL libraries. If libavformat is linked + * to newer versions of those libraries, or if you do not use them, + * calling this function is unnecessary. Otherwise, you need to call + * this function before any other threads using them are started. + * + * This function will be deprecated once support for older GnuTLS and + * OpenSSL libraries is removed, and this function has no purpose + * anymore. + */ +int avformat_network_init(void); + +/** + * Undo the initialization done by avformat_network_init. Call it only + * once for each time you called avformat_network_init. + */ +int avformat_network_deinit(void); + +/** + * Iterate over all registered muxers. + * + * @param opaque a pointer where libavformat will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered muxer or NULL when the iteration is + * finished + */ +const AVOutputFormat *av_muxer_iterate(void **opaque); + +/** + * Iterate over all registered demuxers. + * + * @param opaque a pointer where libavformat will store the iteration state. + * Must point to NULL to start the iteration. + * + * @return the next registered demuxer or NULL when the iteration is + * finished + */ +const AVInputFormat *av_demuxer_iterate(void **opaque); + +/** + * Allocate an AVFormatContext. + * avformat_free_context() can be used to free the context and everything + * allocated by the framework within it. + */ +AVFormatContext *avformat_alloc_context(void); + +/** + * Free an AVFormatContext and all its streams. + * @param s context to free + */ +void avformat_free_context(AVFormatContext *s); + +/** + * Get the AVClass for AVFormatContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *avformat_get_class(void); + +/** + * Get the AVClass for AVStream. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *av_stream_get_class(void); + +/** + * Get the AVClass for AVStreamGroup. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *av_stream_group_get_class(void); + +/** + * @return a string identifying the stream group type, or NULL if unknown + */ +const char *avformat_stream_group_name(enum AVStreamGroupParamsType type); + +/** + * Add a new empty stream group to a media file. + * + * When demuxing, it may be called by the demuxer in read_header(). If the + * flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also + * be called in read_packet(). + * + * When muxing, may be called by the user before avformat_write_header(). + * + * User is required to call avformat_free_context() to clean up the allocation + * by avformat_stream_group_create(). + * + * New streams can be added to the group with avformat_stream_group_add_stream(). + * + * @param s media file handle + * + * @return newly created group or NULL on error. + * @see avformat_new_stream, avformat_stream_group_add_stream. + */ +AVStreamGroup *avformat_stream_group_create(AVFormatContext *s, + enum AVStreamGroupParamsType type, + AVDictionary **options); + +/** + * Add a new stream to a media file. + * + * When demuxing, it is called by the demuxer in read_header(). If the + * flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also + * be called in read_packet(). + * + * When muxing, should be called by the user before avformat_write_header(). + * + * User is required to call avformat_free_context() to clean up the allocation + * by avformat_new_stream(). + * + * @param s media file handle + * @param c unused, does nothing + * + * @return newly created stream or NULL on error. + */ +AVStream *avformat_new_stream(AVFormatContext *s, const struct AVCodec *c); + +/** + * Add an already allocated stream to a stream group. + * + * When demuxing, it may be called by the demuxer in read_header(). If the + * flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also + * be called in read_packet(). + * + * When muxing, may be called by the user before avformat_write_header() after + * having allocated a new group with avformat_stream_group_create() and stream with + * avformat_new_stream(). + * + * User is required to call avformat_free_context() to clean up the allocation + * by avformat_stream_group_add_stream(). + * + * @param stg stream group belonging to a media file. + * @param st stream in the media file to add to the group. + * + * @retval 0 success + * @retval AVERROR(EEXIST) the stream was already in the group + * @retval "another negative error code" legitimate errors + * + * @see avformat_new_stream, avformat_stream_group_create. + */ +int avformat_stream_group_add_stream(AVStreamGroup *stg, AVStream *st); + +#if FF_API_AVSTREAM_SIDE_DATA +/** + * Wrap an existing array as stream side data. + * + * @param st stream + * @param type side information type + * @param data the side data array. It must be allocated with the av_malloc() + * family of functions. The ownership of the data is transferred to + * st. + * @param size side information size + * + * @return zero on success, a negative AVERROR code on failure. On failure, + * the stream is unchanged and the data remains owned by the caller. + * @deprecated use av_packet_side_data_add() with the stream's + * @ref AVCodecParameters.coded_side_data "codecpar side data" + */ +attribute_deprecated +int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type, + uint8_t *data, size_t size); + +/** + * Allocate new information from stream. + * + * @param stream stream + * @param type desired side information type + * @param size side information size + * + * @return pointer to fresh allocated data or NULL otherwise + * @deprecated use av_packet_side_data_new() with the stream's + * @ref AVCodecParameters.coded_side_data "codecpar side data" + */ +attribute_deprecated +uint8_t *av_stream_new_side_data(AVStream *stream, + enum AVPacketSideDataType type, size_t size); +/** + * Get side information from stream. + * + * @param stream stream + * @param type desired side information type + * @param size If supplied, *size will be set to the size of the side data + * or to zero if the desired side data is not present. + * + * @return pointer to data if present or NULL otherwise + * @deprecated use av_packet_side_data_get() with the stream's + * @ref AVCodecParameters.coded_side_data "codecpar side data" + */ +attribute_deprecated +uint8_t *av_stream_get_side_data(const AVStream *stream, + enum AVPacketSideDataType type, size_t *size); +#endif + +AVProgram *av_new_program(AVFormatContext *s, int id); + +/** + * @} + */ + + +/** + * Allocate an AVFormatContext for an output format. + * avformat_free_context() can be used to free the context and + * everything allocated by the framework within it. + * + * @param ctx pointee is set to the created format context, + * or to NULL in case of failure + * @param oformat format to use for allocating the context, if NULL + * format_name and filename are used instead + * @param format_name the name of output format to use for allocating the + * context, if NULL filename is used instead + * @param filename the name of the filename to use for allocating the + * context, may be NULL + * + * @return >= 0 in case of success, a negative AVERROR code in case of + * failure + */ +int avformat_alloc_output_context2(AVFormatContext **ctx, const AVOutputFormat *oformat, + const char *format_name, const char *filename); + +/** + * @addtogroup lavf_decoding + * @{ + */ + +/** + * Find AVInputFormat based on the short name of the input format. + */ +const AVInputFormat *av_find_input_format(const char *short_name); + +/** + * Guess the file format. + * + * @param pd data to be probed + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + */ +const AVInputFormat *av_probe_input_format(const AVProbeData *pd, int is_opened); + +/** + * Guess the file format. + * + * @param pd data to be probed + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + * @param score_max A probe score larger that this is required to accept a + * detection, the variable is set to the actual detection + * score afterwards. + * If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended + * to retry with a larger probe buffer. + */ +const AVInputFormat *av_probe_input_format2(const AVProbeData *pd, + int is_opened, int *score_max); + +/** + * Guess the file format. + * + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + * @param score_ret The score of the best detection. + */ +const AVInputFormat *av_probe_input_format3(const AVProbeData *pd, + int is_opened, int *score_ret); + +/** + * Probe a bytestream to determine the input format. Each time a probe returns + * with a score that is too low, the probe buffer size is increased and another + * attempt is made. When the maximum probe size is reached, the input format + * with the highest score is returned. + * + * @param pb the bytestream to probe + * @param fmt the input format is put here + * @param url the url of the stream + * @param logctx the log context + * @param offset the offset within the bytestream to probe from + * @param max_probe_size the maximum probe buffer size (zero for default) + * + * @return the score in case of success, a negative value corresponding to an + * the maximal score is AVPROBE_SCORE_MAX + * AVERROR code otherwise + */ +int av_probe_input_buffer2(AVIOContext *pb, const AVInputFormat **fmt, + const char *url, void *logctx, + unsigned int offset, unsigned int max_probe_size); + +/** + * Like av_probe_input_buffer2() but returns 0 on success + */ +int av_probe_input_buffer(AVIOContext *pb, const AVInputFormat **fmt, + const char *url, void *logctx, + unsigned int offset, unsigned int max_probe_size); + +/** + * Open an input stream and read the header. The codecs are not opened. + * The stream must be closed with avformat_close_input(). + * + * @param ps Pointer to user-supplied AVFormatContext (allocated by + * avformat_alloc_context). May be a pointer to NULL, in + * which case an AVFormatContext is allocated by this + * function and written into ps. + * Note that a user-supplied AVFormatContext will be freed + * on failure. + * @param url URL of the stream to open. + * @param fmt If non-NULL, this parameter forces a specific input format. + * Otherwise the format is autodetected. + * @param options A dictionary filled with AVFormatContext and demuxer-private + * options. + * On return this parameter will be destroyed and replaced with + * a dict containing options that were not found. May be NULL. + * + * @return 0 on success, a negative AVERROR on failure. + * + * @note If you want to use custom IO, preallocate the format context and set its pb field. + */ +int avformat_open_input(AVFormatContext **ps, const char *url, + const AVInputFormat *fmt, AVDictionary **options); + +/** + * Read packets of a media file to get stream information. This + * is useful for file formats with no headers such as MPEG. This + * function also computes the real framerate in case of MPEG-2 repeat + * frame mode. + * The logical file position is not changed by this function; + * examined packets may be buffered for later processing. + * + * @param ic media file handle + * @param options If non-NULL, an ic.nb_streams long array of pointers to + * dictionaries, where i-th member contains options for + * codec corresponding to i-th stream. + * On return each dictionary will be filled with options that were not found. + * @return >=0 if OK, AVERROR_xxx on error + * + * @note this function isn't guaranteed to open all the codecs, so + * options being non-empty at return is a perfectly normal behavior. + * + * @todo Let the user decide somehow what information is needed so that + * we do not waste time getting stuff the user does not need. + */ +int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options); + +/** + * Find the programs which belong to a given stream. + * + * @param ic media file handle + * @param last the last found program, the search will start after this + * program, or from the beginning if it is NULL + * @param s stream index + * + * @return the next program which belongs to s, NULL if no program is found or + * the last program is not among the programs of ic. + */ +AVProgram *av_find_program_from_stream(AVFormatContext *ic, AVProgram *last, int s); + +void av_program_add_stream_index(AVFormatContext *ac, int progid, unsigned int idx); + +/** + * Find the "best" stream in the file. + * The best stream is determined according to various heuristics as the most + * likely to be what the user expects. + * If the decoder parameter is non-NULL, av_find_best_stream will find the + * default decoder for the stream's codec; streams for which no decoder can + * be found are ignored. + * + * @param ic media file handle + * @param type stream type: video, audio, subtitles, etc. + * @param wanted_stream_nb user-requested stream number, + * or -1 for automatic selection + * @param related_stream try to find a stream related (eg. in the same + * program) to this one, or -1 if none + * @param decoder_ret if non-NULL, returns the decoder for the + * selected stream + * @param flags flags; none are currently defined + * + * @return the non-negative stream number in case of success, + * AVERROR_STREAM_NOT_FOUND if no stream with the requested type + * could be found, + * AVERROR_DECODER_NOT_FOUND if streams were found but no decoder + * + * @note If av_find_best_stream returns successfully and decoder_ret is not + * NULL, then *decoder_ret is guaranteed to be set to a valid AVCodec. + */ +int av_find_best_stream(AVFormatContext *ic, + enum AVMediaType type, + int wanted_stream_nb, + int related_stream, + const struct AVCodec **decoder_ret, + int flags); + +/** + * Return the next frame of a stream. + * This function returns what is stored in the file, and does not validate + * that what is there are valid frames for the decoder. It will split what is + * stored in the file into frames and return one for each call. It will not + * omit invalid data between valid frames so as to give the decoder the maximum + * information possible for decoding. + * + * On success, the returned packet is reference-counted (pkt->buf is set) and + * valid indefinitely. The packet must be freed with av_packet_unref() when + * it is no longer needed. For video, the packet contains exactly one frame. + * For audio, it contains an integer number of frames if each frame has + * a known fixed size (e.g. PCM or ADPCM data). If the audio frames have + * a variable size (e.g. MPEG audio), then it contains one frame. + * + * pkt->pts, pkt->dts and pkt->duration are always set to correct + * values in AVStream.time_base units (and guessed if the format cannot + * provide them). pkt->pts can be AV_NOPTS_VALUE if the video format + * has B-frames, so it is better to rely on pkt->dts if you do not + * decompress the payload. + * + * @return 0 if OK, < 0 on error or end of file. On error, pkt will be blank + * (as if it came from av_packet_alloc()). + * + * @note pkt will be initialized, so it may be uninitialized, but it must not + * contain data that needs to be freed. + */ +int av_read_frame(AVFormatContext *s, AVPacket *pkt); + +/** + * Seek to the keyframe at timestamp. + * 'timestamp' in 'stream_index'. + * + * @param s media file handle + * @param stream_index If stream_index is (-1), a default stream is selected, + * and timestamp is automatically converted from + * AV_TIME_BASE units to the stream specific time_base. + * @param timestamp Timestamp in AVStream.time_base units or, if no stream + * is specified, in AV_TIME_BASE units. + * @param flags flags which select direction and seeking mode + * + * @return >= 0 on success + */ +int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, + int flags); + +/** + * Seek to timestamp ts. + * Seeking will be done so that the point from which all active streams + * can be presented successfully will be closest to ts and within min/max_ts. + * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL. + * + * If flags contain AVSEEK_FLAG_BYTE, then all timestamps are in bytes and + * are the file position (this may not be supported by all demuxers). + * If flags contain AVSEEK_FLAG_FRAME, then all timestamps are in frames + * in the stream with stream_index (this may not be supported by all demuxers). + * Otherwise all timestamps are in units of the stream selected by stream_index + * or if stream_index is -1, in AV_TIME_BASE units. + * If flags contain AVSEEK_FLAG_ANY, then non-keyframes are treated as + * keyframes (this may not be supported by all demuxers). + * If flags contain AVSEEK_FLAG_BACKWARD, it is ignored. + * + * @param s media file handle + * @param stream_index index of the stream which is used as time base reference + * @param min_ts smallest acceptable timestamp + * @param ts target timestamp + * @param max_ts largest acceptable timestamp + * @param flags flags + * @return >=0 on success, error code otherwise + * + * @note This is part of the new seek API which is still under construction. + */ +int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags); + +/** + * Discard all internally buffered data. This can be useful when dealing with + * discontinuities in the byte stream. Generally works only with formats that + * can resync. This includes headerless formats like MPEG-TS/TS but should also + * work with NUT, Ogg and in a limited way AVI for example. + * + * The set of streams, the detected duration, stream parameters and codecs do + * not change when calling this function. If you want a complete reset, it's + * better to open a new AVFormatContext. + * + * This does not flush the AVIOContext (s->pb). If necessary, call + * avio_flush(s->pb) before calling this function. + * + * @param s media file handle + * @return >=0 on success, error code otherwise + */ +int avformat_flush(AVFormatContext *s); + +/** + * Start playing a network-based stream (e.g. RTSP stream) at the + * current position. + */ +int av_read_play(AVFormatContext *s); + +/** + * Pause a network-based stream (e.g. RTSP stream). + * + * Use av_read_play() to resume it. + */ +int av_read_pause(AVFormatContext *s); + +/** + * Close an opened input AVFormatContext. Free it and all its contents + * and set *s to NULL. + */ +void avformat_close_input(AVFormatContext **s); +/** + * @} + */ + +#define AVSEEK_FLAG_BACKWARD 1 ///< seek backward +#define AVSEEK_FLAG_BYTE 2 ///< seeking based on position in bytes +#define AVSEEK_FLAG_ANY 4 ///< seek to any frame, even non-keyframes +#define AVSEEK_FLAG_FRAME 8 ///< seeking based on frame number + +/** + * @addtogroup lavf_encoding + * @{ + */ + +#define AVSTREAM_INIT_IN_WRITE_HEADER 0 ///< stream parameters initialized in avformat_write_header +#define AVSTREAM_INIT_IN_INIT_OUTPUT 1 ///< stream parameters initialized in avformat_init_output + +/** + * Allocate the stream private data and write the stream header to + * an output media file. + * + * @param s Media file handle, must be allocated with + * avformat_alloc_context(). + * Its \ref AVFormatContext.oformat "oformat" field must be set + * to the desired output format; + * Its \ref AVFormatContext.pb "pb" field must be set to an + * already opened ::AVIOContext. + * @param options An ::AVDictionary filled with AVFormatContext and + * muxer-private options. + * On return this parameter will be destroyed and replaced with + * a dict containing options that were not found. May be NULL. + * + * @retval AVSTREAM_INIT_IN_WRITE_HEADER On success, if the codec had not already been + * fully initialized in avformat_init_output(). + * @retval AVSTREAM_INIT_IN_INIT_OUTPUT On success, if the codec had already been fully + * initialized in avformat_init_output(). + * @retval AVERROR A negative AVERROR on failure. + * + * @see av_opt_find, av_dict_set, avio_open, av_oformat_next, avformat_init_output. + */ +av_warn_unused_result +int avformat_write_header(AVFormatContext *s, AVDictionary **options); + +/** + * Allocate the stream private data and initialize the codec, but do not write the header. + * May optionally be used before avformat_write_header() to initialize stream parameters + * before actually writing the header. + * If using this function, do not pass the same options to avformat_write_header(). + * + * @param s Media file handle, must be allocated with + * avformat_alloc_context(). + * Its \ref AVFormatContext.oformat "oformat" field must be set + * to the desired output format; + * Its \ref AVFormatContext.pb "pb" field must be set to an + * already opened ::AVIOContext. + * @param options An ::AVDictionary filled with AVFormatContext and + * muxer-private options. + * On return this parameter will be destroyed and replaced with + * a dict containing options that were not found. May be NULL. + * + * @retval AVSTREAM_INIT_IN_WRITE_HEADER On success, if the codec requires + * avformat_write_header to fully initialize. + * @retval AVSTREAM_INIT_IN_INIT_OUTPUT On success, if the codec has been fully + * initialized. + * @retval AVERROR Anegative AVERROR on failure. + * + * @see av_opt_find, av_dict_set, avio_open, av_oformat_next, avformat_write_header. + */ +av_warn_unused_result +int avformat_init_output(AVFormatContext *s, AVDictionary **options); + +/** + * Write a packet to an output media file. + * + * This function passes the packet directly to the muxer, without any buffering + * or reordering. The caller is responsible for correctly interleaving the + * packets if the format requires it. Callers that want libavformat to handle + * the interleaving should call av_interleaved_write_frame() instead of this + * function. + * + * @param s media file handle + * @param pkt The packet containing the data to be written. Note that unlike + * av_interleaved_write_frame(), this function does not take + * ownership of the packet passed to it (though some muxers may make + * an internal reference to the input packet). + *
+ * This parameter can be NULL (at any time, not just at the end), in + * order to immediately flush data buffered within the muxer, for + * muxers that buffer up data internally before writing it to the + * output. + *
+ * Packet's @ref AVPacket.stream_index "stream_index" field must be + * set to the index of the corresponding stream in @ref + * AVFormatContext.streams "s->streams". + *
+ * The timestamps (@ref AVPacket.pts "pts", @ref AVPacket.dts "dts") + * must be set to correct values in the stream's timebase (unless the + * output format is flagged with the AVFMT_NOTIMESTAMPS flag, then + * they can be set to AV_NOPTS_VALUE). + * The dts for subsequent packets passed to this function must be strictly + * increasing when compared in their respective timebases (unless the + * output format is flagged with the AVFMT_TS_NONSTRICT, then they + * merely have to be nondecreasing). @ref AVPacket.duration + * "duration") should also be set if known. + * @return < 0 on error, = 0 if OK, 1 if flushed and there is no more data to flush + * + * @see av_interleaved_write_frame() + */ +int av_write_frame(AVFormatContext *s, AVPacket *pkt); + +/** + * Write a packet to an output media file ensuring correct interleaving. + * + * This function will buffer the packets internally as needed to make sure the + * packets in the output file are properly interleaved, usually ordered by + * increasing dts. Callers doing their own interleaving should call + * av_write_frame() instead of this function. + * + * Using this function instead of av_write_frame() can give muxers advance + * knowledge of future packets, improving e.g. the behaviour of the mp4 + * muxer for VFR content in fragmenting mode. + * + * @param s media file handle + * @param pkt The packet containing the data to be written. + *
+ * If the packet is reference-counted, this function will take + * ownership of this reference and unreference it later when it sees + * fit. If the packet is not reference-counted, libavformat will + * make a copy. + * The returned packet will be blank (as if returned from + * av_packet_alloc()), even on error. + *
+ * This parameter can be NULL (at any time, not just at the end), to + * flush the interleaving queues. + *
+ * Packet's @ref AVPacket.stream_index "stream_index" field must be + * set to the index of the corresponding stream in @ref + * AVFormatContext.streams "s->streams". + *
+ * The timestamps (@ref AVPacket.pts "pts", @ref AVPacket.dts "dts") + * must be set to correct values in the stream's timebase (unless the + * output format is flagged with the AVFMT_NOTIMESTAMPS flag, then + * they can be set to AV_NOPTS_VALUE). + * The dts for subsequent packets in one stream must be strictly + * increasing (unless the output format is flagged with the + * AVFMT_TS_NONSTRICT, then they merely have to be nondecreasing). + * @ref AVPacket.duration "duration" should also be set if known. + * + * @return 0 on success, a negative AVERROR on error. + * + * @see av_write_frame(), AVFormatContext.max_interleave_delta + */ +int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt); + +/** + * Write an uncoded frame to an output media file. + * + * The frame must be correctly interleaved according to the container + * specification; if not, av_interleaved_write_uncoded_frame() must be used. + * + * See av_interleaved_write_uncoded_frame() for details. + */ +int av_write_uncoded_frame(AVFormatContext *s, int stream_index, + struct AVFrame *frame); + +/** + * Write an uncoded frame to an output media file. + * + * If the muxer supports it, this function makes it possible to write an AVFrame + * structure directly, without encoding it into a packet. + * It is mostly useful for devices and similar special muxers that use raw + * video or PCM data and will not serialize it into a byte stream. + * + * To test whether it is possible to use it with a given muxer and stream, + * use av_write_uncoded_frame_query(). + * + * The caller gives up ownership of the frame and must not access it + * afterwards. + * + * @return >=0 for success, a negative code on error + */ +int av_interleaved_write_uncoded_frame(AVFormatContext *s, int stream_index, + struct AVFrame *frame); + +/** + * Test whether a muxer supports uncoded frame. + * + * @return >=0 if an uncoded frame can be written to that muxer and stream, + * <0 if not + */ +int av_write_uncoded_frame_query(AVFormatContext *s, int stream_index); + +/** + * Write the stream trailer to an output media file and free the + * file private data. + * + * May only be called after a successful call to avformat_write_header. + * + * @param s media file handle + * @return 0 if OK, AVERROR_xxx on error + */ +int av_write_trailer(AVFormatContext *s); + +/** + * Return the output format in the list of registered output formats + * which best matches the provided parameters, or return NULL if + * there is no match. + * + * @param short_name if non-NULL checks if short_name matches with the + * names of the registered formats + * @param filename if non-NULL checks if filename terminates with the + * extensions of the registered formats + * @param mime_type if non-NULL checks if mime_type matches with the + * MIME type of the registered formats + */ +const AVOutputFormat *av_guess_format(const char *short_name, + const char *filename, + const char *mime_type); + +/** + * Guess the codec ID based upon muxer and filename. + */ +enum AVCodecID av_guess_codec(const AVOutputFormat *fmt, const char *short_name, + const char *filename, const char *mime_type, + enum AVMediaType type); + +/** + * Get timing information for the data currently output. + * The exact meaning of "currently output" depends on the format. + * It is mostly relevant for devices that have an internal buffer and/or + * work in real time. + * @param s media file handle + * @param stream stream in the media file + * @param[out] dts DTS of the last packet output for the stream, in stream + * time_base units + * @param[out] wall absolute time when that packet whas output, + * in microsecond + * @retval 0 Success + * @retval AVERROR(ENOSYS) The format does not support it + * + * @note Some formats or devices may not allow to measure dts and wall + * atomically. + */ +int av_get_output_timestamp(struct AVFormatContext *s, int stream, + int64_t *dts, int64_t *wall); + + +/** + * @} + */ + + +/** + * @defgroup lavf_misc Utility functions + * @ingroup libavf + * @{ + * + * Miscellaneous utility functions related to both muxing and demuxing + * (or neither). + */ + +/** + * Send a nice hexadecimal dump of a buffer to the specified file stream. + * + * @param f The file stream pointer where the dump should be sent to. + * @param buf buffer + * @param size buffer size + * + * @see av_hex_dump_log, av_pkt_dump2, av_pkt_dump_log2 + */ +void av_hex_dump(FILE *f, const uint8_t *buf, int size); + +/** + * Send a nice hexadecimal dump of a buffer to the log. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message, lower values signifying + * higher importance. + * @param buf buffer + * @param size buffer size + * + * @see av_hex_dump, av_pkt_dump2, av_pkt_dump_log2 + */ +void av_hex_dump_log(void *avcl, int level, const uint8_t *buf, int size); + +/** + * Send a nice dump of a packet to the specified file stream. + * + * @param f The file stream pointer where the dump should be sent to. + * @param pkt packet to dump + * @param dump_payload True if the payload must be displayed, too. + * @param st AVStream that the packet belongs to + */ +void av_pkt_dump2(FILE *f, const AVPacket *pkt, int dump_payload, const AVStream *st); + + +/** + * Send a nice dump of a packet to the log. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message, lower values signifying + * higher importance. + * @param pkt packet to dump + * @param dump_payload True if the payload must be displayed, too. + * @param st AVStream that the packet belongs to + */ +void av_pkt_dump_log2(void *avcl, int level, const AVPacket *pkt, int dump_payload, + const AVStream *st); + +/** + * Get the AVCodecID for the given codec tag tag. + * If no codec id is found returns AV_CODEC_ID_NONE. + * + * @param tags list of supported codec_id-codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + * @param tag codec tag to match to a codec ID + */ +enum AVCodecID av_codec_get_id(const struct AVCodecTag * const *tags, unsigned int tag); + +/** + * Get the codec tag for the given codec id id. + * If no codec tag is found returns 0. + * + * @param tags list of supported codec_id-codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + * @param id codec ID to match to a codec tag + */ +unsigned int av_codec_get_tag(const struct AVCodecTag * const *tags, enum AVCodecID id); + +/** + * Get the codec tag for the given codec id. + * + * @param tags list of supported codec_id - codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + * @param id codec id that should be searched for in the list + * @param tag A pointer to the found tag + * @return 0 if id was not found in tags, > 0 if it was found + */ +int av_codec_get_tag2(const struct AVCodecTag * const *tags, enum AVCodecID id, + unsigned int *tag); + +int av_find_default_stream_index(AVFormatContext *s); + +/** + * Get the index for a specific timestamp. + * + * @param st stream that the timestamp belongs to + * @param timestamp timestamp to retrieve the index for + * @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond + * to the timestamp which is <= the requested one, if backward + * is 0, then it will be >= + * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise + * @return < 0 if no such timestamp could be found + */ +int av_index_search_timestamp(AVStream *st, int64_t timestamp, int flags); + +/** + * Get the index entry count for the given AVStream. + * + * @param st stream + * @return the number of index entries in the stream + */ +int avformat_index_get_entries_count(const AVStream *st); + +/** + * Get the AVIndexEntry corresponding to the given index. + * + * @param st Stream containing the requested AVIndexEntry. + * @param idx The desired index. + * @return A pointer to the requested AVIndexEntry if it exists, NULL otherwise. + * + * @note The pointer returned by this function is only guaranteed to be valid + * until any function that takes the stream or the parent AVFormatContext + * as input argument is called. + */ +const AVIndexEntry *avformat_index_get_entry(AVStream *st, int idx); + +/** + * Get the AVIndexEntry corresponding to the given timestamp. + * + * @param st Stream containing the requested AVIndexEntry. + * @param wanted_timestamp Timestamp to retrieve the index entry for. + * @param flags If AVSEEK_FLAG_BACKWARD then the returned entry will correspond + * to the timestamp which is <= the requested one, if backward + * is 0, then it will be >= + * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise. + * @return A pointer to the requested AVIndexEntry if it exists, NULL otherwise. + * + * @note The pointer returned by this function is only guaranteed to be valid + * until any function that takes the stream or the parent AVFormatContext + * as input argument is called. + */ +const AVIndexEntry *avformat_index_get_entry_from_timestamp(AVStream *st, + int64_t wanted_timestamp, + int flags); +/** + * Add an index entry into a sorted list. Update the entry if the list + * already contains it. + * + * @param timestamp timestamp in the time base of the given stream + */ +int av_add_index_entry(AVStream *st, int64_t pos, int64_t timestamp, + int size, int distance, int flags); + + +/** + * Split a URL string into components. + * + * The pointers to buffers for storing individual components may be null, + * in order to ignore that component. Buffers for components not found are + * set to empty strings. If the port is not found, it is set to a negative + * value. + * + * @param proto the buffer for the protocol + * @param proto_size the size of the proto buffer + * @param authorization the buffer for the authorization + * @param authorization_size the size of the authorization buffer + * @param hostname the buffer for the host name + * @param hostname_size the size of the hostname buffer + * @param port_ptr a pointer to store the port number in + * @param path the buffer for the path + * @param path_size the size of the path buffer + * @param url the URL to split + */ +void av_url_split(char *proto, int proto_size, + char *authorization, int authorization_size, + char *hostname, int hostname_size, + int *port_ptr, + char *path, int path_size, + const char *url); + + +/** + * Print detailed information about the input or output format, such as + * duration, bitrate, streams, container, programs, metadata, side data, + * codec and time base. + * + * @param ic the context to analyze + * @param index index of the stream to dump information about + * @param url the URL to print, such as source or destination file + * @param is_output Select whether the specified context is an input(0) or output(1) + */ +void av_dump_format(AVFormatContext *ic, + int index, + const char *url, + int is_output); + + +#define AV_FRAME_FILENAME_FLAGS_MULTIPLE 1 ///< Allow multiple %d + +/** + * Return in 'buf' the path with '%d' replaced by a number. + * + * Also handles the '%0nd' format where 'n' is the total number + * of digits and '%%'. + * + * @param buf destination buffer + * @param buf_size destination buffer size + * @param path numbered sequence string + * @param number frame number + * @param flags AV_FRAME_FILENAME_FLAGS_* + * @return 0 if OK, -1 on format error + */ +int av_get_frame_filename2(char *buf, int buf_size, + const char *path, int number, int flags); + +int av_get_frame_filename(char *buf, int buf_size, + const char *path, int number); + +/** + * Check whether filename actually is a numbered sequence generator. + * + * @param filename possible numbered sequence string + * @return 1 if a valid numbered sequence string, 0 otherwise + */ +int av_filename_number_test(const char *filename); + +/** + * Generate an SDP for an RTP session. + * + * Note, this overwrites the id values of AVStreams in the muxer contexts + * for getting unique dynamic payload types. + * + * @param ac array of AVFormatContexts describing the RTP streams. If the + * array is composed by only one context, such context can contain + * multiple AVStreams (one AVStream per RTP stream). Otherwise, + * all the contexts in the array (an AVCodecContext per RTP stream) + * must contain only one AVStream. + * @param n_files number of AVCodecContexts contained in ac + * @param buf buffer where the SDP will be stored (must be allocated by + * the caller) + * @param size the size of the buffer + * @return 0 if OK, AVERROR_xxx on error + */ +int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size); + +/** + * Return a positive value if the given filename has one of the given + * extensions, 0 otherwise. + * + * @param filename file name to check against the given extensions + * @param extensions a comma-separated list of filename extensions + */ +int av_match_ext(const char *filename, const char *extensions); + +/** + * Test if the given container can store a codec. + * + * @param ofmt container to check for compatibility + * @param codec_id codec to potentially store in container + * @param std_compliance standards compliance level, one of FF_COMPLIANCE_* + * + * @return 1 if codec with ID codec_id can be stored in ofmt, 0 if it cannot. + * A negative number if this information is not available. + */ +int avformat_query_codec(const AVOutputFormat *ofmt, enum AVCodecID codec_id, + int std_compliance); + +/** + * @defgroup riff_fourcc RIFF FourCCs + * @{ + * Get the tables mapping RIFF FourCCs to libavcodec AVCodecIDs. The tables are + * meant to be passed to av_codec_get_id()/av_codec_get_tag() as in the + * following code: + * @code + * uint32_t tag = MKTAG('H', '2', '6', '4'); + * const struct AVCodecTag *table[] = { avformat_get_riff_video_tags(), 0 }; + * enum AVCodecID id = av_codec_get_id(table, tag); + * @endcode + */ +/** + * @return the table mapping RIFF FourCCs for video to libavcodec AVCodecID. + */ +const struct AVCodecTag *avformat_get_riff_video_tags(void); +/** + * @return the table mapping RIFF FourCCs for audio to AVCodecID. + */ +const struct AVCodecTag *avformat_get_riff_audio_tags(void); +/** + * @return the table mapping MOV FourCCs for video to libavcodec AVCodecID. + */ +const struct AVCodecTag *avformat_get_mov_video_tags(void); +/** + * @return the table mapping MOV FourCCs for audio to AVCodecID. + */ +const struct AVCodecTag *avformat_get_mov_audio_tags(void); + +/** + * @} + */ + +/** + * Guess the sample aspect ratio of a frame, based on both the stream and the + * frame aspect ratio. + * + * Since the frame aspect ratio is set by the codec but the stream aspect ratio + * is set by the demuxer, these two may not be equal. This function tries to + * return the value that you should use if you would like to display the frame. + * + * Basic logic is to use the stream aspect ratio if it is set to something sane + * otherwise use the frame aspect ratio. This way a container setting, which is + * usually easy to modify can override the coded value in the frames. + * + * @param format the format context which the stream is part of + * @param stream the stream which the frame is part of + * @param frame the frame with the aspect ratio to be determined + * @return the guessed (valid) sample_aspect_ratio, 0/1 if no idea + */ +AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream *stream, + struct AVFrame *frame); + +/** + * Guess the frame rate, based on both the container and codec information. + * + * @param ctx the format context which the stream is part of + * @param stream the stream which the frame is part of + * @param frame the frame for which the frame rate should be determined, may be NULL + * @return the guessed (valid) frame rate, 0/1 if no idea + */ +AVRational av_guess_frame_rate(AVFormatContext *ctx, AVStream *stream, + struct AVFrame *frame); + +/** + * Check if the stream st contained in s is matched by the stream specifier + * spec. + * + * See the "stream specifiers" chapter in the documentation for the syntax + * of spec. + * + * @return >0 if st is matched by spec; + * 0 if st is not matched by spec; + * AVERROR code if spec is invalid + * + * @note A stream specifier can match several streams in the format. + */ +int avformat_match_stream_specifier(AVFormatContext *s, AVStream *st, + const char *spec); + +int avformat_queue_attached_pictures(AVFormatContext *s); + +#if FF_API_INTERNAL_TIMING +enum AVTimebaseSource { + AVFMT_TBCF_AUTO = -1, + AVFMT_TBCF_DECODER, + AVFMT_TBCF_DEMUXER, +#if FF_API_R_FRAME_RATE + AVFMT_TBCF_R_FRAMERATE, +#endif +}; + +/** + * @deprecated do not call this function + */ +attribute_deprecated +int avformat_transfer_internal_stream_timing_info(const AVOutputFormat *ofmt, + AVStream *ost, const AVStream *ist, + enum AVTimebaseSource copy_tb); + +/** + * @deprecated do not call this function + */ +attribute_deprecated +AVRational av_stream_get_codec_timebase(const AVStream *st); +#endif + + +/** + * @} + */ + +#endif /* AVFORMAT_AVFORMAT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavformat/avio.h b/app/src/main/jniLibs/arm64-v8a/include/libavformat/avio.h new file mode 100644 index 00000000..ebf61118 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavformat/avio.h @@ -0,0 +1,831 @@ +/* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef AVFORMAT_AVIO_H +#define AVFORMAT_AVIO_H + +/** + * @file + * @ingroup lavf_io + * Buffered I/O operations + */ + +#include +#include + +#include "libavutil/attributes.h" +#include "libavutil/dict.h" +#include "libavutil/log.h" + +#include "libavformat/version_major.h" + +/** + * Seeking works like for a local file. + */ +#define AVIO_SEEKABLE_NORMAL (1 << 0) + +/** + * Seeking by timestamp with avio_seek_time() is possible. + */ +#define AVIO_SEEKABLE_TIME (1 << 1) + +/** + * Callback for checking whether to abort blocking functions. + * AVERROR_EXIT is returned in this case by the interrupted + * function. During blocking operations, callback is called with + * opaque as parameter. If the callback returns 1, the + * blocking operation will be aborted. + * + * No members can be added to this struct without a major bump, if + * new elements have been added after this struct in AVFormatContext + * or AVIOContext. + */ +typedef struct AVIOInterruptCB { + int (*callback)(void*); + void *opaque; +} AVIOInterruptCB; + +/** + * Directory entry types. + */ +enum AVIODirEntryType { + AVIO_ENTRY_UNKNOWN, + AVIO_ENTRY_BLOCK_DEVICE, + AVIO_ENTRY_CHARACTER_DEVICE, + AVIO_ENTRY_DIRECTORY, + AVIO_ENTRY_NAMED_PIPE, + AVIO_ENTRY_SYMBOLIC_LINK, + AVIO_ENTRY_SOCKET, + AVIO_ENTRY_FILE, + AVIO_ENTRY_SERVER, + AVIO_ENTRY_SHARE, + AVIO_ENTRY_WORKGROUP, +}; + +/** + * Describes single entry of the directory. + * + * Only name and type fields are guaranteed be set. + * Rest of fields are protocol or/and platform dependent and might be unknown. + */ +typedef struct AVIODirEntry { + char *name; /**< Filename */ + int type; /**< Type of the entry */ + int utf8; /**< Set to 1 when name is encoded with UTF-8, 0 otherwise. + Name can be encoded with UTF-8 even though 0 is set. */ + int64_t size; /**< File size in bytes, -1 if unknown. */ + int64_t modification_timestamp; /**< Time of last modification in microseconds since unix + epoch, -1 if unknown. */ + int64_t access_timestamp; /**< Time of last access in microseconds since unix epoch, + -1 if unknown. */ + int64_t status_change_timestamp; /**< Time of last status change in microseconds since unix + epoch, -1 if unknown. */ + int64_t user_id; /**< User ID of owner, -1 if unknown. */ + int64_t group_id; /**< Group ID of owner, -1 if unknown. */ + int64_t filemode; /**< Unix file mode, -1 if unknown. */ +} AVIODirEntry; + +typedef struct AVIODirContext AVIODirContext; + +/** + * Different data types that can be returned via the AVIO + * write_data_type callback. + */ +enum AVIODataMarkerType { + /** + * Header data; this needs to be present for the stream to be decodeable. + */ + AVIO_DATA_MARKER_HEADER, + /** + * A point in the output bytestream where a decoder can start decoding + * (i.e. a keyframe). A demuxer/decoder given the data flagged with + * AVIO_DATA_MARKER_HEADER, followed by any AVIO_DATA_MARKER_SYNC_POINT, + * should give decodeable results. + */ + AVIO_DATA_MARKER_SYNC_POINT, + /** + * A point in the output bytestream where a demuxer can start parsing + * (for non self synchronizing bytestream formats). That is, any + * non-keyframe packet start point. + */ + AVIO_DATA_MARKER_BOUNDARY_POINT, + /** + * This is any, unlabelled data. It can either be a muxer not marking + * any positions at all, it can be an actual boundary/sync point + * that the muxer chooses not to mark, or a later part of a packet/fragment + * that is cut into multiple write callbacks due to limited IO buffer size. + */ + AVIO_DATA_MARKER_UNKNOWN, + /** + * Trailer data, which doesn't contain actual content, but only for + * finalizing the output file. + */ + AVIO_DATA_MARKER_TRAILER, + /** + * A point in the output bytestream where the underlying AVIOContext might + * flush the buffer depending on latency or buffering requirements. Typically + * means the end of a packet. + */ + AVIO_DATA_MARKER_FLUSH_POINT, +}; + +/** + * Bytestream IO Context. + * New public fields can be added with minor version bumps. + * Removal, reordering and changes to existing public fields require + * a major version bump. + * sizeof(AVIOContext) must not be used outside libav*. + * + * @note None of the function pointers in AVIOContext should be called + * directly, they should only be set by the client application + * when implementing custom I/O. Normally these are set to the + * function pointers specified in avio_alloc_context() + */ +typedef struct AVIOContext { + /** + * A class for private options. + * + * If this AVIOContext is created by avio_open2(), av_class is set and + * passes the options down to protocols. + * + * If this AVIOContext is manually allocated, then av_class may be set by + * the caller. + * + * warning -- this field can be NULL, be sure to not pass this AVIOContext + * to any av_opt_* functions in that case. + */ + const AVClass *av_class; + + /* + * The following shows the relationship between buffer, buf_ptr, + * buf_ptr_max, buf_end, buf_size, and pos, when reading and when writing + * (since AVIOContext is used for both): + * + ********************************************************************************** + * READING + ********************************************************************************** + * + * | buffer_size | + * |---------------------------------------| + * | | + * + * buffer buf_ptr buf_end + * +---------------+-----------------------+ + * |/ / / / / / / /|/ / / / / / /| | + * read buffer: |/ / consumed / | to be read /| | + * |/ / / / / / / /|/ / / / / / /| | + * +---------------+-----------------------+ + * + * pos + * +-------------------------------------------+-----------------+ + * input file: | | | + * +-------------------------------------------+-----------------+ + * + * + ********************************************************************************** + * WRITING + ********************************************************************************** + * + * | buffer_size | + * |--------------------------------------| + * | | + * + * buf_ptr_max + * buffer (buf_ptr) buf_end + * +-----------------------+--------------+ + * |/ / / / / / / / / / / /| | + * write buffer: | / / to be flushed / / | | + * |/ / / / / / / / / / / /| | + * +-----------------------+--------------+ + * buf_ptr can be in this + * due to a backward seek + * + * pos + * +-------------+----------------------------------------------+ + * output file: | | | + * +-------------+----------------------------------------------+ + * + */ + unsigned char *buffer; /**< Start of the buffer. */ + int buffer_size; /**< Maximum buffer size */ + unsigned char *buf_ptr; /**< Current position in the buffer */ + unsigned char *buf_end; /**< End of the data, may be less than + buffer+buffer_size if the read function returned + less data than requested, e.g. for streams where + no more data has been received yet. */ + void *opaque; /**< A private pointer, passed to the read/write/seek/... + functions. */ + int (*read_packet)(void *opaque, uint8_t *buf, int buf_size); + int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size); + int64_t (*seek)(void *opaque, int64_t offset, int whence); + int64_t pos; /**< position in the file of the current buffer */ + int eof_reached; /**< true if was unable to read due to error or eof */ + int error; /**< contains the error code or 0 if no error happened */ + int write_flag; /**< true if open for writing */ + int max_packet_size; + int min_packet_size; /**< Try to buffer at least this amount of data + before flushing it. */ + unsigned long checksum; + unsigned char *checksum_ptr; + unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size); + /** + * Pause or resume playback for network streaming protocols - e.g. MMS. + */ + int (*read_pause)(void *opaque, int pause); + /** + * Seek to a given timestamp in stream with the specified stream_index. + * Needed for some network streaming protocols which don't support seeking + * to byte position. + */ + int64_t (*read_seek)(void *opaque, int stream_index, + int64_t timestamp, int flags); + /** + * A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable. + */ + int seekable; + + /** + * avio_read and avio_write should if possible be satisfied directly + * instead of going through a buffer, and avio_seek will always + * call the underlying seek function directly. + */ + int direct; + + /** + * ',' separated list of allowed protocols. + */ + const char *protocol_whitelist; + + /** + * ',' separated list of disallowed protocols. + */ + const char *protocol_blacklist; + + /** + * A callback that is used instead of write_packet. + */ + int (*write_data_type)(void *opaque, const uint8_t *buf, int buf_size, + enum AVIODataMarkerType type, int64_t time); + /** + * If set, don't call write_data_type separately for AVIO_DATA_MARKER_BOUNDARY_POINT, + * but ignore them and treat them as AVIO_DATA_MARKER_UNKNOWN (to avoid needlessly + * small chunks of data returned from the callback). + */ + int ignore_boundary_point; + + /** + * Maximum reached position before a backward seek in the write buffer, + * used keeping track of already written data for a later flush. + */ + unsigned char *buf_ptr_max; + + /** + * Read-only statistic of bytes read for this AVIOContext. + */ + int64_t bytes_read; + + /** + * Read-only statistic of bytes written for this AVIOContext. + */ + int64_t bytes_written; +} AVIOContext; + +/** + * Return the name of the protocol that will handle the passed URL. + * + * NULL is returned if no protocol could be found for the given URL. + * + * @return Name of the protocol or NULL. + */ +const char *avio_find_protocol_name(const char *url); + +/** + * Return AVIO_FLAG_* access flags corresponding to the access permissions + * of the resource in url, or a negative value corresponding to an + * AVERROR code in case of failure. The returned access flags are + * masked by the value in flags. + * + * @note This function is intrinsically unsafe, in the sense that the + * checked resource may change its existence or permission status from + * one call to another. Thus you should not trust the returned value, + * unless you are sure that no other processes are accessing the + * checked resource. + */ +int avio_check(const char *url, int flags); + +/** + * Open directory for reading. + * + * @param s directory read context. Pointer to a NULL pointer must be passed. + * @param url directory to be listed. + * @param options A dictionary filled with protocol-private options. On return + * this parameter will be destroyed and replaced with a dictionary + * containing options that were not found. May be NULL. + * @return >=0 on success or negative on error. + */ +int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options); + +/** + * Get next directory entry. + * + * Returned entry must be freed with avio_free_directory_entry(). In particular + * it may outlive AVIODirContext. + * + * @param s directory read context. + * @param[out] next next entry or NULL when no more entries. + * @return >=0 on success or negative on error. End of list is not considered an + * error. + */ +int avio_read_dir(AVIODirContext *s, AVIODirEntry **next); + +/** + * Close directory. + * + * @note Entries created using avio_read_dir() are not deleted and must be + * freeded with avio_free_directory_entry(). + * + * @param s directory read context. + * @return >=0 on success or negative on error. + */ +int avio_close_dir(AVIODirContext **s); + +/** + * Free entry allocated by avio_read_dir(). + * + * @param entry entry to be freed. + */ +void avio_free_directory_entry(AVIODirEntry **entry); + +/** + * Allocate and initialize an AVIOContext for buffered I/O. It must be later + * freed with avio_context_free(). + * + * @param buffer Memory block for input/output operations via AVIOContext. + * The buffer must be allocated with av_malloc() and friends. + * It may be freed and replaced with a new buffer by libavformat. + * AVIOContext.buffer holds the buffer currently in use, + * which must be later freed with av_free(). + * @param buffer_size The buffer size is very important for performance. + * For protocols with fixed blocksize it should be set to this blocksize. + * For others a typical size is a cache page, e.g. 4kb. + * @param write_flag Set to 1 if the buffer should be writable, 0 otherwise. + * @param opaque An opaque pointer to user-specific data. + * @param read_packet A function for refilling the buffer, may be NULL. + * For stream protocols, must never return 0 but rather + * a proper AVERROR code. + * @param write_packet A function for writing the buffer contents, may be NULL. + * The function may not change the input buffers content. + * @param seek A function for seeking to specified byte position, may be NULL. + * + * @return Allocated AVIOContext or NULL on failure. + */ +AVIOContext *avio_alloc_context( + unsigned char *buffer, + int buffer_size, + int write_flag, + void *opaque, + int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), + int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size), + int64_t (*seek)(void *opaque, int64_t offset, int whence)); + +/** + * Free the supplied IO context and everything associated with it. + * + * @param s Double pointer to the IO context. This function will write NULL + * into s. + */ +void avio_context_free(AVIOContext **s); + +void avio_w8(AVIOContext *s, int b); +void avio_write(AVIOContext *s, const unsigned char *buf, int size); +void avio_wl64(AVIOContext *s, uint64_t val); +void avio_wb64(AVIOContext *s, uint64_t val); +void avio_wl32(AVIOContext *s, unsigned int val); +void avio_wb32(AVIOContext *s, unsigned int val); +void avio_wl24(AVIOContext *s, unsigned int val); +void avio_wb24(AVIOContext *s, unsigned int val); +void avio_wl16(AVIOContext *s, unsigned int val); +void avio_wb16(AVIOContext *s, unsigned int val); + +/** + * Write a NULL-terminated string. + * @return number of bytes written. + */ +int avio_put_str(AVIOContext *s, const char *str); + +/** + * Convert an UTF-8 string to UTF-16LE and write it. + * @param s the AVIOContext + * @param str NULL-terminated UTF-8 string + * + * @return number of bytes written. + */ +int avio_put_str16le(AVIOContext *s, const char *str); + +/** + * Convert an UTF-8 string to UTF-16BE and write it. + * @param s the AVIOContext + * @param str NULL-terminated UTF-8 string + * + * @return number of bytes written. + */ +int avio_put_str16be(AVIOContext *s, const char *str); + +/** + * Mark the written bytestream as a specific type. + * + * Zero-length ranges are omitted from the output. + * + * @param s the AVIOContext + * @param time the stream time the current bytestream pos corresponds to + * (in AV_TIME_BASE units), or AV_NOPTS_VALUE if unknown or not + * applicable + * @param type the kind of data written starting at the current pos + */ +void avio_write_marker(AVIOContext *s, int64_t time, enum AVIODataMarkerType type); + +/** + * ORing this as the "whence" parameter to a seek function causes it to + * return the filesize without seeking anywhere. Supporting this is optional. + * If it is not supported then the seek function will return <0. + */ +#define AVSEEK_SIZE 0x10000 + +/** + * Passing this flag as the "whence" parameter to a seek function causes it to + * seek by any means (like reopening and linear reading) or other normally unreasonable + * means that can be extremely slow. + * This may be ignored by the seek code. + */ +#define AVSEEK_FORCE 0x20000 + +/** + * fseek() equivalent for AVIOContext. + * @return new position or AVERROR. + */ +int64_t avio_seek(AVIOContext *s, int64_t offset, int whence); + +/** + * Skip given number of bytes forward + * @return new position or AVERROR. + */ +int64_t avio_skip(AVIOContext *s, int64_t offset); + +/** + * ftell() equivalent for AVIOContext. + * @return position or AVERROR. + */ +static av_always_inline int64_t avio_tell(AVIOContext *s) +{ + return avio_seek(s, 0, SEEK_CUR); +} + +/** + * Get the filesize. + * @return filesize or AVERROR + */ +int64_t avio_size(AVIOContext *s); + +/** + * Similar to feof() but also returns nonzero on read errors. + * @return non zero if and only if at end of file or a read error happened when reading. + */ +int avio_feof(AVIOContext *s); + +/** + * Writes a formatted string to the context taking a va_list. + * @return number of bytes written, < 0 on error. + */ +int avio_vprintf(AVIOContext *s, const char *fmt, va_list ap); + +/** + * Writes a formatted string to the context. + * @return number of bytes written, < 0 on error. + */ +int avio_printf(AVIOContext *s, const char *fmt, ...) av_printf_format(2, 3); + +/** + * Write a NULL terminated array of strings to the context. + * Usually you don't need to use this function directly but its macro wrapper, + * avio_print. + */ +void avio_print_string_array(AVIOContext *s, const char * const strings[]); + +/** + * Write strings (const char *) to the context. + * This is a convenience macro around avio_print_string_array and it + * automatically creates the string array from the variable argument list. + * For simple string concatenations this function is more performant than using + * avio_printf since it does not need a temporary buffer. + */ +#define avio_print(s, ...) \ + avio_print_string_array(s, (const char*[]){__VA_ARGS__, NULL}) + +/** + * Force flushing of buffered data. + * + * For write streams, force the buffered data to be immediately written to the output, + * without to wait to fill the internal buffer. + * + * For read streams, discard all currently buffered data, and advance the + * reported file position to that of the underlying stream. This does not + * read new data, and does not perform any seeks. + */ +void avio_flush(AVIOContext *s); + +/** + * Read size bytes from AVIOContext into buf. + * @return number of bytes read or AVERROR + */ +int avio_read(AVIOContext *s, unsigned char *buf, int size); + +/** + * Read size bytes from AVIOContext into buf. Unlike avio_read(), this is allowed + * to read fewer bytes than requested. The missing bytes can be read in the next + * call. This always tries to read at least 1 byte. + * Useful to reduce latency in certain cases. + * @return number of bytes read or AVERROR + */ +int avio_read_partial(AVIOContext *s, unsigned char *buf, int size); + +/** + * @name Functions for reading from AVIOContext + * @{ + * + * @note return 0 if EOF, so you cannot use it if EOF handling is + * necessary + */ +int avio_r8 (AVIOContext *s); +unsigned int avio_rl16(AVIOContext *s); +unsigned int avio_rl24(AVIOContext *s); +unsigned int avio_rl32(AVIOContext *s); +uint64_t avio_rl64(AVIOContext *s); +unsigned int avio_rb16(AVIOContext *s); +unsigned int avio_rb24(AVIOContext *s); +unsigned int avio_rb32(AVIOContext *s); +uint64_t avio_rb64(AVIOContext *s); +/** + * @} + */ + +/** + * Read a string from pb into buf. The reading will terminate when either + * a NULL character was encountered, maxlen bytes have been read, or nothing + * more can be read from pb. The result is guaranteed to be NULL-terminated, it + * will be truncated if buf is too small. + * Note that the string is not interpreted or validated in any way, it + * might get truncated in the middle of a sequence for multi-byte encodings. + * + * @return number of bytes read (is always <= maxlen). + * If reading ends on EOF or error, the return value will be one more than + * bytes actually read. + */ +int avio_get_str(AVIOContext *pb, int maxlen, char *buf, int buflen); + +/** + * Read a UTF-16 string from pb and convert it to UTF-8. + * The reading will terminate when either a null or invalid character was + * encountered or maxlen bytes have been read. + * @return number of bytes read (is always <= maxlen) + */ +int avio_get_str16le(AVIOContext *pb, int maxlen, char *buf, int buflen); +int avio_get_str16be(AVIOContext *pb, int maxlen, char *buf, int buflen); + + +/** + * @name URL open modes + * The flags argument to avio_open must be one of the following + * constants, optionally ORed with other flags. + * @{ + */ +#define AVIO_FLAG_READ 1 /**< read-only */ +#define AVIO_FLAG_WRITE 2 /**< write-only */ +#define AVIO_FLAG_READ_WRITE (AVIO_FLAG_READ|AVIO_FLAG_WRITE) /**< read-write pseudo flag */ +/** + * @} + */ + +/** + * Use non-blocking mode. + * If this flag is set, operations on the context will return + * AVERROR(EAGAIN) if they can not be performed immediately. + * If this flag is not set, operations on the context will never return + * AVERROR(EAGAIN). + * Note that this flag does not affect the opening/connecting of the + * context. Connecting a protocol will always block if necessary (e.g. on + * network protocols) but never hang (e.g. on busy devices). + * Warning: non-blocking protocols is work-in-progress; this flag may be + * silently ignored. + */ +#define AVIO_FLAG_NONBLOCK 8 + +/** + * Use direct mode. + * avio_read and avio_write should if possible be satisfied directly + * instead of going through a buffer, and avio_seek will always + * call the underlying seek function directly. + */ +#define AVIO_FLAG_DIRECT 0x8000 + +/** + * Create and initialize a AVIOContext for accessing the + * resource indicated by url. + * @note When the resource indicated by url has been opened in + * read+write mode, the AVIOContext can be used only for writing. + * + * @param s Used to return the pointer to the created AVIOContext. + * In case of failure the pointed to value is set to NULL. + * @param url resource to access + * @param flags flags which control how the resource indicated by url + * is to be opened + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code in case of failure + */ +int avio_open(AVIOContext **s, const char *url, int flags); + +/** + * Create and initialize a AVIOContext for accessing the + * resource indicated by url. + * @note When the resource indicated by url has been opened in + * read+write mode, the AVIOContext can be used only for writing. + * + * @param s Used to return the pointer to the created AVIOContext. + * In case of failure the pointed to value is set to NULL. + * @param url resource to access + * @param flags flags which control how the resource indicated by url + * is to be opened + * @param int_cb an interrupt callback to be used at the protocols level + * @param options A dictionary filled with protocol-private options. On return + * this parameter will be destroyed and replaced with a dict containing options + * that were not found. May be NULL. + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code in case of failure + */ +int avio_open2(AVIOContext **s, const char *url, int flags, + const AVIOInterruptCB *int_cb, AVDictionary **options); + +/** + * Close the resource accessed by the AVIOContext s and free it. + * This function can only be used if s was opened by avio_open(). + * + * The internal buffer is automatically flushed before closing the + * resource. + * + * @return 0 on success, an AVERROR < 0 on error. + * @see avio_closep + */ +int avio_close(AVIOContext *s); + +/** + * Close the resource accessed by the AVIOContext *s, free it + * and set the pointer pointing to it to NULL. + * This function can only be used if s was opened by avio_open(). + * + * The internal buffer is automatically flushed before closing the + * resource. + * + * @return 0 on success, an AVERROR < 0 on error. + * @see avio_close + */ +int avio_closep(AVIOContext **s); + + +/** + * Open a write only memory stream. + * + * @param s new IO context + * @return zero if no error. + */ +int avio_open_dyn_buf(AVIOContext **s); + +/** + * Return the written size and a pointer to the buffer. + * The AVIOContext stream is left intact. + * The buffer must NOT be freed. + * No padding is added to the buffer. + * + * @param s IO context + * @param pbuffer pointer to a byte buffer + * @return the length of the byte buffer + */ +int avio_get_dyn_buf(AVIOContext *s, uint8_t **pbuffer); + +/** + * Return the written size and a pointer to the buffer. The buffer + * must be freed with av_free(). + * Padding of AV_INPUT_BUFFER_PADDING_SIZE is added to the buffer. + * + * @param s IO context + * @param pbuffer pointer to a byte buffer + * @return the length of the byte buffer + */ +int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer); + +/** + * Iterate through names of available protocols. + * + * @param opaque A private pointer representing current protocol. + * It must be a pointer to NULL on first iteration and will + * be updated by successive calls to avio_enum_protocols. + * @param output If set to 1, iterate over output protocols, + * otherwise over input protocols. + * + * @return A static string containing the name of current protocol or NULL + */ +const char *avio_enum_protocols(void **opaque, int output); + +/** + * Get AVClass by names of available protocols. + * + * @return A AVClass of input protocol name or NULL + */ +const AVClass *avio_protocol_get_class(const char *name); + +/** + * Pause and resume playing - only meaningful if using a network streaming + * protocol (e.g. MMS). + * + * @param h IO context from which to call the read_pause function pointer + * @param pause 1 for pause, 0 for resume + */ +int avio_pause(AVIOContext *h, int pause); + +/** + * Seek to a given timestamp relative to some component stream. + * Only meaningful if using a network streaming protocol (e.g. MMS.). + * + * @param h IO context from which to call the seek function pointers + * @param stream_index The stream index that the timestamp is relative to. + * If stream_index is (-1) the timestamp should be in AV_TIME_BASE + * units from the beginning of the presentation. + * If a stream_index >= 0 is used and the protocol does not support + * seeking based on component streams, the call will fail. + * @param timestamp timestamp in AVStream.time_base units + * or if there is no stream specified then in AV_TIME_BASE units. + * @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE + * and AVSEEK_FLAG_ANY. The protocol may silently ignore + * AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will + * fail if used and not supported. + * @return >= 0 on success + * @see AVInputFormat::read_seek + */ +int64_t avio_seek_time(AVIOContext *h, int stream_index, + int64_t timestamp, int flags); + +/* Avoid a warning. The header can not be included because it breaks c++. */ +struct AVBPrint; + +/** + * Read contents of h into print buffer, up to max_size bytes, or up to EOF. + * + * @return 0 for success (max_size bytes read or EOF reached), negative error + * code otherwise + */ +int avio_read_to_bprint(AVIOContext *h, struct AVBPrint *pb, size_t max_size); + +/** + * Accept and allocate a client context on a server context. + * @param s the server context + * @param c the client context, must be unallocated + * @return >= 0 on success or a negative value corresponding + * to an AVERROR on failure + */ +int avio_accept(AVIOContext *s, AVIOContext **c); + +/** + * Perform one step of the protocol handshake to accept a new client. + * This function must be called on a client returned by avio_accept() before + * using it as a read/write context. + * It is separate from avio_accept() because it may block. + * A step of the handshake is defined by places where the application may + * decide to change the proceedings. + * For example, on a protocol with a request header and a reply header, each + * one can constitute a step because the application may use the parameters + * from the request to change parameters in the reply; or each individual + * chunk of the request can constitute a step. + * If the handshake is already finished, avio_handshake() does nothing and + * returns 0 immediately. + * + * @param c the client context to perform the handshake on + * @return 0 on a complete and successful handshake + * > 0 if the handshake progressed, but is not complete + * < 0 for an AVERROR code + */ +int avio_handshake(AVIOContext *c); +#endif /* AVFORMAT_AVIO_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavformat/version.h b/app/src/main/jniLibs/arm64-v8a/include/libavformat/version.h new file mode 100644 index 00000000..70c554c1 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavformat/version.h @@ -0,0 +1,47 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFORMAT_VERSION_H +#define AVFORMAT_VERSION_H + +/** + * @file + * @ingroup libavf + * Libavformat version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBAVFORMAT_VERSION_MINOR 7 +#define LIBAVFORMAT_VERSION_MICRO 100 + +#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ + LIBAVFORMAT_VERSION_MINOR, \ + LIBAVFORMAT_VERSION_MICRO) +#define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \ + LIBAVFORMAT_VERSION_MINOR, \ + LIBAVFORMAT_VERSION_MICRO) +#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT + +#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) + +#endif /* AVFORMAT_VERSION_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavformat/version_major.h b/app/src/main/jniLibs/arm64-v8a/include/libavformat/version_major.h new file mode 100644 index 00000000..7a9b0670 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavformat/version_major.h @@ -0,0 +1,54 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFORMAT_VERSION_MAJOR_H +#define AVFORMAT_VERSION_MAJOR_H + +/** + * @file + * @ingroup libavf + * Libavformat version macros + */ + +// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium) +// Also please add any ticket numbers that you believe might be affected here +#define LIBAVFORMAT_VERSION_MAJOR 61 + +/** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + * + * @note, when bumping the major version it is recommended to manually + * disable each FF_API_* in its own commit instead of disabling them all + * at once through the bump. This improves the git bisect-ability of the change. + * + */ +#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62) +#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 62) +#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 62) +#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62) + +#define FF_API_GET_DUR_ESTIMATE_METHOD (LIBAVFORMAT_VERSION_MAJOR < 62) +#define FF_API_INTERNAL_TIMING (LIBAVFORMAT_VERSION_MAJOR < 62) + +#define FF_API_R_FRAME_RATE 1 + +#endif /* AVFORMAT_VERSION_MAJOR_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/adler32.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/adler32.h new file mode 100644 index 00000000..232d07f5 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/adler32.h @@ -0,0 +1,63 @@ +/* + * copyright (c) 2006 Mans Rullgard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_adler32 + * Public header for Adler-32 hash function implementation. + */ + +#ifndef AVUTIL_ADLER32_H +#define AVUTIL_ADLER32_H + +#include +#include +#include "attributes.h" + +/** + * @defgroup lavu_adler32 Adler-32 + * @ingroup lavu_hash + * Adler-32 hash function implementation. + * + * @{ + */ + +typedef uint32_t AVAdler; + +/** + * Calculate the Adler32 checksum of a buffer. + * + * Passing the return value to a subsequent av_adler32_update() call + * allows the checksum of multiple buffers to be calculated as though + * they were concatenated. + * + * @param adler initial checksum value + * @param buf pointer to input buffer + * @param len size of input buffer + * @return updated checksum + */ +AVAdler av_adler32_update(AVAdler adler, const uint8_t *buf, + size_t len) av_pure; + +/** + * @} + */ + +#endif /* AVUTIL_ADLER32_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/aes.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/aes.h new file mode 100644 index 00000000..4e734736 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/aes.h @@ -0,0 +1,69 @@ +/* + * copyright (c) 2007 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AES_H +#define AVUTIL_AES_H + +#include + +#include "attributes.h" + +/** + * @defgroup lavu_aes AES + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_aes_size; + +struct AVAES; + +/** + * Allocate an AVAES context. + */ +struct AVAES *av_aes_alloc(void); + +/** + * Initialize an AVAES context. + * + * @param a The AVAES context + * @param key Pointer to the key + * @param key_bits 128, 192 or 256 + * @param decrypt 0 for encryption, 1 for decryption + */ +int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt); + +/** + * Encrypt or decrypt a buffer using a previously initialized context. + * + * @param a The AVAES context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 16 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_AES_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/aes_ctr.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/aes_ctr.h new file mode 100644 index 00000000..d98c0712 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/aes_ctr.h @@ -0,0 +1,99 @@ +/* + * AES-CTR cipher + * Copyright (c) 2015 Eran Kornblau + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AES_CTR_H +#define AVUTIL_AES_CTR_H + +/** + * @defgroup lavu_aes_ctr AES-CTR + * @ingroup lavu_crypto + * @{ + */ + +#include + +#include "attributes.h" + +#define AES_CTR_KEY_SIZE (16) +#define AES_CTR_IV_SIZE (8) + +struct AVAESCTR; + +/** + * Allocate an AVAESCTR context. + */ +struct AVAESCTR *av_aes_ctr_alloc(void); + +/** + * Initialize an AVAESCTR context. + * + * @param a The AVAESCTR context to initialize + * @param key encryption key, must have a length of AES_CTR_KEY_SIZE + */ +int av_aes_ctr_init(struct AVAESCTR *a, const uint8_t *key); + +/** + * Release an AVAESCTR context. + * + * @param a The AVAESCTR context + */ +void av_aes_ctr_free(struct AVAESCTR *a); + +/** + * Process a buffer using a previously initialized context. + * + * @param a The AVAESCTR context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param size the size of src and dst + */ +void av_aes_ctr_crypt(struct AVAESCTR *a, uint8_t *dst, const uint8_t *src, int size); + +/** + * Get the current iv + */ +const uint8_t* av_aes_ctr_get_iv(struct AVAESCTR *a); + +/** + * Generate a random iv + */ +void av_aes_ctr_set_random_iv(struct AVAESCTR *a); + +/** + * Forcefully change the 8-byte iv + */ +void av_aes_ctr_set_iv(struct AVAESCTR *a, const uint8_t* iv); + +/** + * Forcefully change the "full" 16-byte iv, including the counter + */ +void av_aes_ctr_set_full_iv(struct AVAESCTR *a, const uint8_t* iv); + +/** + * Increment the top 64 bit of the iv (performed after each frame) + */ +void av_aes_ctr_increment_iv(struct AVAESCTR *a); + +/** + * @} + */ + +#endif /* AVUTIL_AES_CTR_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/ambient_viewing_environment.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/ambient_viewing_environment.h new file mode 100644 index 00000000..e5e4ac21 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/ambient_viewing_environment.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2023 Jan Ekström + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AMBIENT_VIEWING_ENVIRONMENT_H +#define AVUTIL_AMBIENT_VIEWING_ENVIRONMENT_H + +#include +#include "frame.h" +#include "rational.h" + +/** + * Ambient viewing environment metadata as defined by H.274. The values are + * saved in AVRationals so that they keep their exactness, while allowing for + * easy access to a double value with f.ex. av_q2d. + * + * @note sizeof(AVAmbientViewingEnvironment) is not part of the public ABI, and + * it must be allocated using av_ambient_viewing_environment_alloc. + */ +typedef struct AVAmbientViewingEnvironment { + /** + * Environmental illuminance of the ambient viewing environment in lux. + */ + AVRational ambient_illuminance; + + /** + * Normalized x chromaticity coordinate of the environmental ambient light + * in the nominal viewing environment according to the CIE 1931 definition + * of x and y as specified in ISO/CIE 11664-1. + */ + AVRational ambient_light_x; + + /** + * Normalized y chromaticity coordinate of the environmental ambient light + * in the nominal viewing environment according to the CIE 1931 definition + * of x and y as specified in ISO/CIE 11664-1. + */ + AVRational ambient_light_y; +} AVAmbientViewingEnvironment; + +/** + * Allocate an AVAmbientViewingEnvironment structure. + * + * @return the newly allocated struct or NULL on failure + */ +AVAmbientViewingEnvironment *av_ambient_viewing_environment_alloc(size_t *size); + +/** + * Allocate and add an AVAmbientViewingEnvironment structure to an existing + * AVFrame as side data. + * + * @return the newly allocated struct, or NULL on failure + */ +AVAmbientViewingEnvironment *av_ambient_viewing_environment_create_side_data(AVFrame *frame); + +#endif /* AVUTIL_AMBIENT_VIEWING_ENVIRONMENT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/attributes.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/attributes.h new file mode 100644 index 00000000..04c615c9 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/attributes.h @@ -0,0 +1,173 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Macro definitions for various function/variable attributes + */ + +#ifndef AVUTIL_ATTRIBUTES_H +#define AVUTIL_ATTRIBUTES_H + +#ifdef __GNUC__ +# define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y)) +# define AV_GCC_VERSION_AT_MOST(x,y) (__GNUC__ < (x) || __GNUC__ == (x) && __GNUC_MINOR__ <= (y)) +#else +# define AV_GCC_VERSION_AT_LEAST(x,y) 0 +# define AV_GCC_VERSION_AT_MOST(x,y) 0 +#endif + +#ifdef __has_builtin +# define AV_HAS_BUILTIN(x) __has_builtin(x) +#else +# define AV_HAS_BUILTIN(x) 0 +#endif + +#ifndef av_always_inline +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define av_always_inline __attribute__((always_inline)) inline +#elif defined(_MSC_VER) +# define av_always_inline __forceinline +#else +# define av_always_inline inline +#endif +#endif + +#ifndef av_extern_inline +#if defined(__ICL) && __ICL >= 1210 || defined(__GNUC_STDC_INLINE__) +# define av_extern_inline extern inline +#else +# define av_extern_inline inline +#endif +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,4) +# define av_warn_unused_result __attribute__((warn_unused_result)) +#else +# define av_warn_unused_result +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define av_noinline __attribute__((noinline)) +#elif defined(_MSC_VER) +# define av_noinline __declspec(noinline) +#else +# define av_noinline +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__) +# define av_pure __attribute__((pure)) +#else +# define av_pure +#endif + +#if AV_GCC_VERSION_AT_LEAST(2,6) || defined(__clang__) +# define av_const __attribute__((const)) +#else +# define av_const +#endif + +#if AV_GCC_VERSION_AT_LEAST(4,3) || defined(__clang__) +# define av_cold __attribute__((cold)) +#else +# define av_cold +#endif + +#if AV_GCC_VERSION_AT_LEAST(4,1) && !defined(__llvm__) +# define av_flatten __attribute__((flatten)) +#else +# define av_flatten +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define attribute_deprecated __attribute__((deprecated)) +#elif defined(_MSC_VER) +# define attribute_deprecated __declspec(deprecated) +#else +# define attribute_deprecated +#endif + +/** + * Disable warnings about deprecated features + * This is useful for sections of code kept for backward compatibility and + * scheduled for removal. + */ +#ifndef AV_NOWARN_DEPRECATED +#if AV_GCC_VERSION_AT_LEAST(4,6) || defined(__clang__) +# define AV_NOWARN_DEPRECATED(code) \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \ + code \ + _Pragma("GCC diagnostic pop") +#elif defined(_MSC_VER) +# define AV_NOWARN_DEPRECATED(code) \ + __pragma(warning(push)) \ + __pragma(warning(disable : 4996)) \ + code; \ + __pragma(warning(pop)) +#else +# define AV_NOWARN_DEPRECATED(code) code +#endif +#endif + +#if defined(__GNUC__) || defined(__clang__) +# define av_unused __attribute__((unused)) +#else +# define av_unused +#endif + +/** + * Mark a variable as used and prevent the compiler from optimizing it + * away. This is useful for variables accessed only from inline + * assembler without the compiler being aware. + */ +#if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__) +# define av_used __attribute__((used)) +#else +# define av_used +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,3) || defined(__clang__) +# define av_alias __attribute__((may_alias)) +#else +# define av_alias +#endif + +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__INTEL_COMPILER) +# define av_uninit(x) x=x +#else +# define av_uninit(x) x +#endif + +#if defined(__GNUC__) || defined(__clang__) +# define av_builtin_constant_p __builtin_constant_p +# define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos))) +#else +# define av_builtin_constant_p(x) 0 +# define av_printf_format(fmtpos, attrpos) +#endif + +#if AV_GCC_VERSION_AT_LEAST(2,5) || defined(__clang__) +# define av_noreturn __attribute__((noreturn)) +#else +# define av_noreturn +#endif + +#endif /* AVUTIL_ATTRIBUTES_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/audio_fifo.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/audio_fifo.h new file mode 100644 index 00000000..fa5f59a2 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/audio_fifo.h @@ -0,0 +1,187 @@ +/* + * Audio FIFO + * Copyright (c) 2012 Justin Ruggles + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Audio FIFO Buffer + */ + +#ifndef AVUTIL_AUDIO_FIFO_H +#define AVUTIL_AUDIO_FIFO_H + +#include "attributes.h" +#include "samplefmt.h" + +/** + * @addtogroup lavu_audio + * @{ + * + * @defgroup lavu_audiofifo Audio FIFO Buffer + * @{ + */ + +/** + * Context for an Audio FIFO Buffer. + * + * - Operates at the sample level rather than the byte level. + * - Supports multiple channels with either planar or packed sample format. + * - Automatic reallocation when writing to a full buffer. + */ +typedef struct AVAudioFifo AVAudioFifo; + +/** + * Free an AVAudioFifo. + * + * @param af AVAudioFifo to free + */ +void av_audio_fifo_free(AVAudioFifo *af); + +/** + * Allocate an AVAudioFifo. + * + * @param sample_fmt sample format + * @param channels number of channels + * @param nb_samples initial allocation size, in samples + * @return newly allocated AVAudioFifo, or NULL on error + */ +AVAudioFifo *av_audio_fifo_alloc(enum AVSampleFormat sample_fmt, int channels, + int nb_samples); + +/** + * Reallocate an AVAudioFifo. + * + * @param af AVAudioFifo to reallocate + * @param nb_samples new allocation size, in samples + * @return 0 if OK, or negative AVERROR code on failure + */ +av_warn_unused_result +int av_audio_fifo_realloc(AVAudioFifo *af, int nb_samples); + +/** + * Write data to an AVAudioFifo. + * + * The AVAudioFifo will be reallocated automatically if the available space + * is less than nb_samples. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param af AVAudioFifo to write to + * @param data audio data plane pointers + * @param nb_samples number of samples to write + * @return number of samples actually written, or negative AVERROR + * code on failure. If successful, the number of samples + * actually written will always be nb_samples. + */ +int av_audio_fifo_write(AVAudioFifo *af, void * const *data, int nb_samples); + +/** + * Peek data from an AVAudioFifo. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param af AVAudioFifo to read from + * @param data audio data plane pointers + * @param nb_samples number of samples to peek + * @return number of samples actually peek, or negative AVERROR code + * on failure. The number of samples actually peek will not + * be greater than nb_samples, and will only be less than + * nb_samples if av_audio_fifo_size is less than nb_samples. + */ +int av_audio_fifo_peek(const AVAudioFifo *af, void * const *data, int nb_samples); + +/** + * Peek data from an AVAudioFifo. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param af AVAudioFifo to read from + * @param data audio data plane pointers + * @param nb_samples number of samples to peek + * @param offset offset from current read position + * @return number of samples actually peek, or negative AVERROR code + * on failure. The number of samples actually peek will not + * be greater than nb_samples, and will only be less than + * nb_samples if av_audio_fifo_size is less than nb_samples. + */ +int av_audio_fifo_peek_at(const AVAudioFifo *af, void * const *data, + int nb_samples, int offset); + +/** + * Read data from an AVAudioFifo. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param af AVAudioFifo to read from + * @param data audio data plane pointers + * @param nb_samples number of samples to read + * @return number of samples actually read, or negative AVERROR code + * on failure. The number of samples actually read will not + * be greater than nb_samples, and will only be less than + * nb_samples if av_audio_fifo_size is less than nb_samples. + */ +int av_audio_fifo_read(AVAudioFifo *af, void * const *data, int nb_samples); + +/** + * Drain data from an AVAudioFifo. + * + * Removes the data without reading it. + * + * @param af AVAudioFifo to drain + * @param nb_samples number of samples to drain + * @return 0 if OK, or negative AVERROR code on failure + */ +int av_audio_fifo_drain(AVAudioFifo *af, int nb_samples); + +/** + * Reset the AVAudioFifo buffer. + * + * This empties all data in the buffer. + * + * @param af AVAudioFifo to reset + */ +void av_audio_fifo_reset(AVAudioFifo *af); + +/** + * Get the current number of samples in the AVAudioFifo available for reading. + * + * @param af the AVAudioFifo to query + * @return number of samples available for reading + */ +int av_audio_fifo_size(AVAudioFifo *af); + +/** + * Get the current number of samples in the AVAudioFifo available for writing. + * + * @param af the AVAudioFifo to query + * @return number of samples available for writing + */ +int av_audio_fifo_space(AVAudioFifo *af); + +/** + * @} + * @} + */ + +#endif /* AVUTIL_AUDIO_FIFO_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/avassert.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/avassert.h new file mode 100644 index 00000000..1895fb75 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/avassert.h @@ -0,0 +1,78 @@ +/* + * copyright (c) 2010 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * simple assert() macros that are a bit more flexible than ISO C assert(). + * @author Michael Niedermayer + */ + +#ifndef AVUTIL_AVASSERT_H +#define AVUTIL_AVASSERT_H + +#include +#ifdef HAVE_AV_CONFIG_H +# include "config.h" +#endif +#include "log.h" +#include "macros.h" + +/** + * assert() equivalent, that is always enabled. + */ +#define av_assert0(cond) do { \ + if (!(cond)) { \ + av_log(NULL, AV_LOG_PANIC, "Assertion %s failed at %s:%d\n", \ + AV_STRINGIFY(cond), __FILE__, __LINE__); \ + abort(); \ + } \ +} while (0) + + +/** + * assert() equivalent, that does not lie in speed critical code. + * These asserts() thus can be enabled without fearing speed loss. + */ +#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0 +#define av_assert1(cond) av_assert0(cond) +#else +#define av_assert1(cond) ((void)0) +#endif + + +/** + * assert() equivalent, that does lie in speed critical code. + */ +#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1 +#define av_assert2(cond) av_assert0(cond) +#define av_assert2_fpu() av_assert0_fpu() +#else +#define av_assert2(cond) ((void)0) +#define av_assert2_fpu() ((void)0) +#endif + +/** + * Assert that floating point operations can be executed. + * + * This will av_assert0() that the cpu is not in MMX state on X86 + */ +void av_assert0_fpu(void); + +#endif /* AVUTIL_AVASSERT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/avconfig.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/avconfig.h new file mode 100644 index 00000000..c289fbb5 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/avconfig.h @@ -0,0 +1,6 @@ +/* Generated by ffmpeg configure */ +#ifndef AVUTIL_AVCONFIG_H +#define AVUTIL_AVCONFIG_H +#define AV_HAVE_BIGENDIAN 0 +#define AV_HAVE_FAST_UNALIGNED 1 +#endif /* AVUTIL_AVCONFIG_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/avstring.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/avstring.h new file mode 100644 index 00000000..fc095349 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/avstring.h @@ -0,0 +1,428 @@ +/* + * Copyright (c) 2007 Mans Rullgard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AVSTRING_H +#define AVUTIL_AVSTRING_H + +#include +#include +#include "attributes.h" + +/** + * @addtogroup lavu_string + * @{ + */ + +/** + * Return non-zero if pfx is a prefix of str. If it is, *ptr is set to + * the address of the first character in str after the prefix. + * + * @param str input string + * @param pfx prefix to test + * @param ptr updated if the prefix is matched inside str + * @return non-zero if the prefix matches, zero otherwise + */ +int av_strstart(const char *str, const char *pfx, const char **ptr); + +/** + * Return non-zero if pfx is a prefix of str independent of case. If + * it is, *ptr is set to the address of the first character in str + * after the prefix. + * + * @param str input string + * @param pfx prefix to test + * @param ptr updated if the prefix is matched inside str + * @return non-zero if the prefix matches, zero otherwise + */ +int av_stristart(const char *str, const char *pfx, const char **ptr); + +/** + * Locate the first case-independent occurrence in the string haystack + * of the string needle. A zero-length string needle is considered to + * match at the start of haystack. + * + * This function is a case-insensitive version of the standard strstr(). + * + * @param haystack string to search in + * @param needle string to search for + * @return pointer to the located match within haystack + * or a null pointer if no match + */ +char *av_stristr(const char *haystack, const char *needle); + +/** + * Locate the first occurrence of the string needle in the string haystack + * where not more than hay_length characters are searched. A zero-length + * string needle is considered to match at the start of haystack. + * + * This function is a length-limited version of the standard strstr(). + * + * @param haystack string to search in + * @param needle string to search for + * @param hay_length length of string to search in + * @return pointer to the located match within haystack + * or a null pointer if no match + */ +char *av_strnstr(const char *haystack, const char *needle, size_t hay_length); + +/** + * Copy the string src to dst, but no more than size - 1 bytes, and + * null-terminate dst. + * + * This function is the same as BSD strlcpy(). + * + * @param dst destination buffer + * @param src source string + * @param size size of destination buffer + * @return the length of src + * + * @warning since the return value is the length of src, src absolutely + * _must_ be a properly 0-terminated string, otherwise this will read beyond + * the end of the buffer and possibly crash. + */ +size_t av_strlcpy(char *dst, const char *src, size_t size); + +/** + * Append the string src to the string dst, but to a total length of + * no more than size - 1 bytes, and null-terminate dst. + * + * This function is similar to BSD strlcat(), but differs when + * size <= strlen(dst). + * + * @param dst destination buffer + * @param src source string + * @param size size of destination buffer + * @return the total length of src and dst + * + * @warning since the return value use the length of src and dst, these + * absolutely _must_ be a properly 0-terminated strings, otherwise this + * will read beyond the end of the buffer and possibly crash. + */ +size_t av_strlcat(char *dst, const char *src, size_t size); + +/** + * Append output to a string, according to a format. Never write out of + * the destination buffer, and always put a terminating 0 within + * the buffer. + * @param dst destination buffer (string to which the output is + * appended) + * @param size total size of the destination buffer + * @param fmt printf-compatible format string, specifying how the + * following parameters are used + * @return the length of the string that would have been generated + * if enough space had been available + */ +size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...) av_printf_format(3, 4); + +/** + * Get the count of continuous non zero chars starting from the beginning. + * + * @param s the string whose length to count + * @param len maximum number of characters to check in the string, that + * is the maximum value which is returned by the function + */ +static inline size_t av_strnlen(const char *s, size_t len) +{ + size_t i; + for (i = 0; i < len && s[i]; i++) + ; + return i; +} + +/** + * Print arguments following specified format into a large enough auto + * allocated buffer. It is similar to GNU asprintf(). + * @param fmt printf-compatible format string, specifying how the + * following parameters are used. + * @return the allocated string + * @note You have to free the string yourself with av_free(). + */ +char *av_asprintf(const char *fmt, ...) av_printf_format(1, 2); + +/** + * Unescape the given string until a non escaped terminating char, + * and return the token corresponding to the unescaped string. + * + * The normal \ and ' escaping is supported. Leading and trailing + * whitespaces are removed, unless they are escaped with '\' or are + * enclosed between ''. + * + * @param buf the buffer to parse, buf will be updated to point to the + * terminating char + * @param term a 0-terminated list of terminating chars + * @return the malloced unescaped string, which must be av_freed by + * the user, NULL in case of allocation failure + */ +char *av_get_token(const char **buf, const char *term); + +/** + * Split the string into several tokens which can be accessed by + * successive calls to av_strtok(). + * + * A token is defined as a sequence of characters not belonging to the + * set specified in delim. + * + * On the first call to av_strtok(), s should point to the string to + * parse, and the value of saveptr is ignored. In subsequent calls, s + * should be NULL, and saveptr should be unchanged since the previous + * call. + * + * This function is similar to strtok_r() defined in POSIX.1. + * + * @param s the string to parse, may be NULL + * @param delim 0-terminated list of token delimiters, must be non-NULL + * @param saveptr user-provided pointer which points to stored + * information necessary for av_strtok() to continue scanning the same + * string. saveptr is updated to point to the next character after the + * first delimiter found, or to NULL if the string was terminated + * @return the found token, or NULL when no token is found + */ +char *av_strtok(char *s, const char *delim, char **saveptr); + +/** + * Locale-independent conversion of ASCII isdigit. + */ +static inline av_const int av_isdigit(int c) +{ + return c >= '0' && c <= '9'; +} + +/** + * Locale-independent conversion of ASCII isgraph. + */ +static inline av_const int av_isgraph(int c) +{ + return c > 32 && c < 127; +} + +/** + * Locale-independent conversion of ASCII isspace. + */ +static inline av_const int av_isspace(int c) +{ + return c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || + c == '\v'; +} + +/** + * Locale-independent conversion of ASCII characters to uppercase. + */ +static inline av_const int av_toupper(int c) +{ + if (c >= 'a' && c <= 'z') + c ^= 0x20; + return c; +} + +/** + * Locale-independent conversion of ASCII characters to lowercase. + */ +static inline av_const int av_tolower(int c) +{ + if (c >= 'A' && c <= 'Z') + c ^= 0x20; + return c; +} + +/** + * Locale-independent conversion of ASCII isxdigit. + */ +static inline av_const int av_isxdigit(int c) +{ + c = av_tolower(c); + return av_isdigit(c) || (c >= 'a' && c <= 'f'); +} + +/** + * Locale-independent case-insensitive compare. + * @note This means only ASCII-range characters are case-insensitive + */ +int av_strcasecmp(const char *a, const char *b); + +/** + * Locale-independent case-insensitive compare. + * @note This means only ASCII-range characters are case-insensitive + */ +int av_strncasecmp(const char *a, const char *b, size_t n); + +/** + * Locale-independent strings replace. + * @note This means only ASCII-range characters are replaced. + */ +char *av_strireplace(const char *str, const char *from, const char *to); + +/** + * Thread safe basename. + * @param path the string to parse, on DOS both \ and / are considered separators. + * @return pointer to the basename substring. + * If path does not contain a slash, the function returns a copy of path. + * If path is a NULL pointer or points to an empty string, a pointer + * to a string "." is returned. + */ +const char *av_basename(const char *path); + +/** + * Thread safe dirname. + * @param path the string to parse, on DOS both \ and / are considered separators. + * @return A pointer to a string that's the parent directory of path. + * If path is a NULL pointer or points to an empty string, a pointer + * to a string "." is returned. + * @note the function may modify the contents of the path, so copies should be passed. + */ +const char *av_dirname(char *path); + +/** + * Match instances of a name in a comma-separated list of names. + * List entries are checked from the start to the end of the names list, + * the first match ends further processing. If an entry prefixed with '-' + * matches, then 0 is returned. The "ALL" list entry is considered to + * match all names. + * + * @param name Name to look for. + * @param names List of names. + * @return 1 on match, 0 otherwise. + */ +int av_match_name(const char *name, const char *names); + +/** + * Append path component to the existing path. + * Path separator '/' is placed between when needed. + * Resulting string have to be freed with av_free(). + * @param path base path + * @param component component to be appended + * @return new path or NULL on error. + */ +char *av_append_path_component(const char *path, const char *component); + +enum AVEscapeMode { + AV_ESCAPE_MODE_AUTO, ///< Use auto-selected escaping mode. + AV_ESCAPE_MODE_BACKSLASH, ///< Use backslash escaping. + AV_ESCAPE_MODE_QUOTE, ///< Use single-quote escaping. + AV_ESCAPE_MODE_XML, ///< Use XML non-markup character data escaping. +}; + +/** + * Consider spaces special and escape them even in the middle of the + * string. + * + * This is equivalent to adding the whitespace characters to the special + * characters lists, except it is guaranteed to use the exact same list + * of whitespace characters as the rest of libavutil. + */ +#define AV_ESCAPE_FLAG_WHITESPACE (1 << 0) + +/** + * Escape only specified special characters. + * Without this flag, escape also any characters that may be considered + * special by av_get_token(), such as the single quote. + */ +#define AV_ESCAPE_FLAG_STRICT (1 << 1) + +/** + * Within AV_ESCAPE_MODE_XML, additionally escape single quotes for single + * quoted attributes. + */ +#define AV_ESCAPE_FLAG_XML_SINGLE_QUOTES (1 << 2) + +/** + * Within AV_ESCAPE_MODE_XML, additionally escape double quotes for double + * quoted attributes. + */ +#define AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES (1 << 3) + + +/** + * Escape string in src, and put the escaped string in an allocated + * string in *dst, which must be freed with av_free(). + * + * @param dst pointer where an allocated string is put + * @param src string to escape, must be non-NULL + * @param special_chars string containing the special characters which + * need to be escaped, can be NULL + * @param mode escape mode to employ, see AV_ESCAPE_MODE_* macros. + * Any unknown value for mode will be considered equivalent to + * AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without + * notice. + * @param flags flags which control how to escape, see AV_ESCAPE_FLAG_ macros + * @return the length of the allocated string, or a negative error code in case of error + * @see av_bprint_escape() + */ +av_warn_unused_result +int av_escape(char **dst, const char *src, const char *special_chars, + enum AVEscapeMode mode, int flags); + +#define AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES 1 ///< accept codepoints over 0x10FFFF +#define AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS 2 ///< accept non-characters - 0xFFFE and 0xFFFF +#define AV_UTF8_FLAG_ACCEPT_SURROGATES 4 ///< accept UTF-16 surrogates codes +#define AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES 8 ///< exclude control codes not accepted by XML + +#define AV_UTF8_FLAG_ACCEPT_ALL \ + AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES|AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS|AV_UTF8_FLAG_ACCEPT_SURROGATES + +/** + * Read and decode a single UTF-8 code point (character) from the + * buffer in *buf, and update *buf to point to the next byte to + * decode. + * + * In case of an invalid byte sequence, the pointer will be updated to + * the next byte after the invalid sequence and the function will + * return an error code. + * + * Depending on the specified flags, the function will also fail in + * case the decoded code point does not belong to a valid range. + * + * @note For speed-relevant code a carefully implemented use of + * GET_UTF8() may be preferred. + * + * @param codep pointer used to return the parsed code in case of success. + * The value in *codep is set even in case the range check fails. + * @param bufp pointer to the address the first byte of the sequence + * to decode, updated by the function to point to the + * byte next after the decoded sequence + * @param buf_end pointer to the end of the buffer, points to the next + * byte past the last in the buffer. This is used to + * avoid buffer overreads (in case of an unfinished + * UTF-8 sequence towards the end of the buffer). + * @param flags a collection of AV_UTF8_FLAG_* flags + * @return >= 0 in case a sequence was successfully read, a negative + * value in case of invalid sequence + */ +av_warn_unused_result +int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, + unsigned int flags); + +/** + * Check if a name is in a list. + * @returns 0 if not found, or the 1 based index where it has been found in the + * list. + */ +int av_match_list(const char *name, const char *list, char separator); + +/** + * See libc sscanf manual for more information. + * Locale-independent sscanf implementation. + */ +int av_sscanf(const char *string, const char *format, ...); + +/** + * @} + */ + +#endif /* AVUTIL_AVSTRING_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/avutil.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/avutil.h new file mode 100644 index 00000000..d2900dcb --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/avutil.h @@ -0,0 +1,362 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AVUTIL_H +#define AVUTIL_AVUTIL_H + +/** + * @file + * @ingroup lavu + * Convenience header that includes @ref lavu "libavutil"'s core. + */ + +/** + * @mainpage + * + * @section ffmpeg_intro Introduction + * + * This document describes the usage of the different libraries + * provided by FFmpeg. + * + * @li @ref libavc "libavcodec" encoding/decoding library + * @li @ref lavfi "libavfilter" graph-based frame editing library + * @li @ref libavf "libavformat" I/O and muxing/demuxing library + * @li @ref lavd "libavdevice" special devices muxing/demuxing library + * @li @ref lavu "libavutil" common utility library + * @li @ref lswr "libswresample" audio resampling, format conversion and mixing + * @li @ref lpp "libpostproc" post processing library + * @li @ref libsws "libswscale" color conversion and scaling library + * + * @section ffmpeg_versioning Versioning and compatibility + * + * Each of the FFmpeg libraries contains a version.h header, which defines a + * major, minor and micro version number with the + * LIBRARYNAME_VERSION_{MAJOR,MINOR,MICRO} macros. The major version + * number is incremented with backward incompatible changes - e.g. removing + * parts of the public API, reordering public struct members, etc. The minor + * version number is incremented for backward compatible API changes or major + * new features - e.g. adding a new public function or a new decoder. The micro + * version number is incremented for smaller changes that a calling program + * might still want to check for - e.g. changing behavior in a previously + * unspecified situation. + * + * FFmpeg guarantees backward API and ABI compatibility for each library as long + * as its major version number is unchanged. This means that no public symbols + * will be removed or renamed. Types and names of the public struct members and + * values of public macros and enums will remain the same (unless they were + * explicitly declared as not part of the public API). Documented behavior will + * not change. + * + * In other words, any correct program that works with a given FFmpeg snapshot + * should work just as well without any changes with any later snapshot with the + * same major versions. This applies to both rebuilding the program against new + * FFmpeg versions or to replacing the dynamic FFmpeg libraries that a program + * links against. + * + * However, new public symbols may be added and new members may be appended to + * public structs whose size is not part of public ABI (most public structs in + * FFmpeg). New macros and enum values may be added. Behavior in undocumented + * situations may change slightly (and be documented). All those are accompanied + * by an entry in doc/APIchanges and incrementing either the minor or micro + * version number. + */ + +/** + * @defgroup lavu libavutil + * Common code shared across all FFmpeg libraries. + * + * @note + * libavutil is designed to be modular. In most cases, in order to use the + * functions provided by one component of libavutil you must explicitly include + * the specific header containing that feature. If you are only using + * media-related components, you could simply include libavutil/avutil.h, which + * brings in most of the "core" components. + * + * @{ + * + * @defgroup lavu_crypto Crypto and Hashing + * + * @{ + * @} + * + * @defgroup lavu_math Mathematics + * @{ + * + * @} + * + * @defgroup lavu_string String Manipulation + * + * @{ + * + * @} + * + * @defgroup lavu_mem Memory Management + * + * @{ + * + * @} + * + * @defgroup lavu_data Data Structures + * @{ + * + * @} + * + * @defgroup lavu_video Video related + * + * @{ + * + * @} + * + * @defgroup lavu_audio Audio related + * + * @{ + * + * @} + * + * @defgroup lavu_error Error Codes + * + * @{ + * + * @} + * + * @defgroup lavu_log Logging Facility + * + * @{ + * + * @} + * + * @defgroup lavu_misc Other + * + * @{ + * + * @defgroup preproc_misc Preprocessor String Macros + * + * @{ + * + * @} + * + * @defgroup version_utils Library Version Macros + * + * @{ + * + * @} + */ + + +/** + * @addtogroup lavu_ver + * @{ + */ + +/** + * Return the LIBAVUTIL_VERSION_INT constant. + */ +unsigned avutil_version(void); + +/** + * Return an informative version string. This usually is the actual release + * version number or a git commit description. This string has no fixed format + * and can change any time. It should never be parsed by code. + */ +const char *av_version_info(void); + +/** + * Return the libavutil build-time configuration. + */ +const char *avutil_configuration(void); + +/** + * Return the libavutil license. + */ +const char *avutil_license(void); + +/** + * @} + */ + +/** + * @addtogroup lavu_media Media Type + * @brief Media Type + */ + +enum AVMediaType { + AVMEDIA_TYPE_UNKNOWN = -1, ///< Usually treated as AVMEDIA_TYPE_DATA + AVMEDIA_TYPE_VIDEO, + AVMEDIA_TYPE_AUDIO, + AVMEDIA_TYPE_DATA, ///< Opaque data information usually continuous + AVMEDIA_TYPE_SUBTITLE, + AVMEDIA_TYPE_ATTACHMENT, ///< Opaque data information usually sparse + AVMEDIA_TYPE_NB +}; + +/** + * Return a string describing the media_type enum, NULL if media_type + * is unknown. + */ +const char *av_get_media_type_string(enum AVMediaType media_type); + +/** + * @defgroup lavu_const Constants + * @{ + * + * @defgroup lavu_enc Encoding specific + * + * @note those definition should move to avcodec + * @{ + */ + +#define FF_LAMBDA_SHIFT 7 +#define FF_LAMBDA_SCALE (1< + +/** + * @defgroup lavu_base64 Base64 + * @ingroup lavu_crypto + * @{ + */ + +/** + * Decode a base64-encoded string. + * + * @param out buffer for decoded data + * @param in null-terminated input string + * @param out_size size in bytes of the out buffer, must be at + * least 3/4 of the length of in, that is AV_BASE64_DECODE_SIZE(strlen(in)) + * @return number of bytes written, or a negative value in case of + * invalid input + */ +int av_base64_decode(uint8_t *out, const char *in, int out_size); + +/** + * Calculate the output size in bytes needed to decode a base64 string + * with length x to a data buffer. + */ +#define AV_BASE64_DECODE_SIZE(x) ((x) * 3LL / 4) + +/** + * Encode data to base64 and null-terminate. + * + * @param out buffer for encoded data + * @param out_size size in bytes of the out buffer (including the + * null terminator), must be at least AV_BASE64_SIZE(in_size) + * @param in input buffer containing the data to encode + * @param in_size size in bytes of the in buffer + * @return out or NULL in case of error + */ +char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); + +/** + * Calculate the output size needed to base64-encode x bytes to a + * null-terminated string. + */ +#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) + + /** + * @} + */ + +#endif /* AVUTIL_BASE64_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/blowfish.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/blowfish.h new file mode 100644 index 00000000..9e289a40 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/blowfish.h @@ -0,0 +1,82 @@ +/* + * Blowfish algorithm + * Copyright (c) 2012 Samuel Pitoiset + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_BLOWFISH_H +#define AVUTIL_BLOWFISH_H + +#include + +/** + * @defgroup lavu_blowfish Blowfish + * @ingroup lavu_crypto + * @{ + */ + +#define AV_BF_ROUNDS 16 + +typedef struct AVBlowfish { + uint32_t p[AV_BF_ROUNDS + 2]; + uint32_t s[4][256]; +} AVBlowfish; + +/** + * Allocate an AVBlowfish context. + */ +AVBlowfish *av_blowfish_alloc(void); + +/** + * Initialize an AVBlowfish context. + * + * @param ctx an AVBlowfish context + * @param key a key + * @param key_len length of the key + */ +void av_blowfish_init(struct AVBlowfish *ctx, const uint8_t *key, int key_len); + +/** + * Encrypt or decrypt a buffer using a previously initialized context. + * + * @param ctx an AVBlowfish context + * @param xl left four bytes halves of input to be encrypted + * @param xr right four bytes halves of input to be encrypted + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_blowfish_crypt_ecb(struct AVBlowfish *ctx, uint32_t *xl, uint32_t *xr, + int decrypt); + +/** + * Encrypt or decrypt a buffer using a previously initialized context. + * + * @param ctx an AVBlowfish context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_blowfish_crypt(struct AVBlowfish *ctx, uint8_t *dst, const uint8_t *src, + int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_BLOWFISH_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/bprint.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/bprint.h new file mode 100644 index 00000000..4ac85705 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/bprint.h @@ -0,0 +1,254 @@ +/* + * Copyright (c) 2012 Nicolas George + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_avbprint + * AVBPrint public header + */ + +#ifndef AVUTIL_BPRINT_H +#define AVUTIL_BPRINT_H + +#include + +#include "attributes.h" +#include "avstring.h" + +/** + * @defgroup lavu_avbprint AVBPrint + * @ingroup lavu_data + * + * A buffer to print data progressively + * @{ + */ + +/** + * Define a structure with extra padding to a fixed size + * This helps ensuring binary compatibility with future versions. + */ + +#define FF_PAD_STRUCTURE(name, size, ...) \ +struct ff_pad_helper_##name { __VA_ARGS__ }; \ +typedef struct name { \ + __VA_ARGS__ \ + char reserved_padding[size - sizeof(struct ff_pad_helper_##name)]; \ +} name; + +/** + * Buffer to print data progressively + * + * The string buffer grows as necessary and is always 0-terminated. + * The content of the string is never accessed, and thus is + * encoding-agnostic and can even hold binary data. + * + * Small buffers are kept in the structure itself, and thus require no + * memory allocation at all (unless the contents of the buffer is needed + * after the structure goes out of scope). This is almost as lightweight as + * declaring a local `char buf[512]`. + * + * The length of the string can go beyond the allocated size: the buffer is + * then truncated, but the functions still keep account of the actual total + * length. + * + * In other words, AVBPrint.len can be greater than AVBPrint.size and records + * the total length of what would have been to the buffer if there had been + * enough memory. + * + * Append operations do not need to be tested for failure: if a memory + * allocation fails, data stop being appended to the buffer, but the length + * is still updated. This situation can be tested with + * av_bprint_is_complete(). + * + * The AVBPrint.size_max field determines several possible behaviours: + * - `size_max = -1` (= `UINT_MAX`) or any large value will let the buffer be + * reallocated as necessary, with an amortized linear cost. + * - `size_max = 0` prevents writing anything to the buffer: only the total + * length is computed. The write operations can then possibly be repeated in + * a buffer with exactly the necessary size + * (using `size_init = size_max = len + 1`). + * - `size_max = 1` is automatically replaced by the exact size available in the + * structure itself, thus ensuring no dynamic memory allocation. The + * internal buffer is large enough to hold a reasonable paragraph of text, + * such as the current paragraph. + */ + +FF_PAD_STRUCTURE(AVBPrint, 1024, + char *str; /**< string so far */ + unsigned len; /**< length so far */ + unsigned size; /**< allocated memory */ + unsigned size_max; /**< maximum allocated memory */ + char reserved_internal_buffer[1]; +) + +/** + * @name Max size special values + * Convenience macros for special values for av_bprint_init() size_max + * parameter. + * @{ + */ + +/** + * Buffer will be reallocated as necessary, with an amortized linear cost. + */ +#define AV_BPRINT_SIZE_UNLIMITED ((unsigned)-1) +/** + * Use the exact size available in the AVBPrint structure itself. + * + * Thus ensuring no dynamic memory allocation. The internal buffer is large + * enough to hold a reasonable paragraph of text, such as the current paragraph. + */ +#define AV_BPRINT_SIZE_AUTOMATIC 1 +/** + * Do not write anything to the buffer, only calculate the total length. + * + * The write operations can then possibly be repeated in a buffer with + * exactly the necessary size (using `size_init = size_max = AVBPrint.len + 1`). + */ +#define AV_BPRINT_SIZE_COUNT_ONLY 0 +/** @} */ + +/** + * Init a print buffer. + * + * @param buf buffer to init + * @param size_init initial size (including the final 0) + * @param size_max maximum size; + * - `0` means do not write anything, just count the length + * - `1` is replaced by the maximum value for automatic storage + * any large value means that the internal buffer will be + * reallocated as needed up to that limit + * - `-1` is converted to `UINT_MAX`, the largest limit possible. + * Check also `AV_BPRINT_SIZE_*` macros. + */ +void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max); + +/** + * Init a print buffer using a pre-existing buffer. + * + * The buffer will not be reallocated. + * In case size equals zero, the AVBPrint will be initialized to use + * the internal buffer as if using AV_BPRINT_SIZE_COUNT_ONLY with + * av_bprint_init(). + * + * @param buf buffer structure to init + * @param buffer byte buffer to use for the string data + * @param size size of buffer + */ +void av_bprint_init_for_buffer(AVBPrint *buf, char *buffer, unsigned size); + +/** + * Append a formatted string to a print buffer. + */ +void av_bprintf(AVBPrint *buf, const char *fmt, ...) av_printf_format(2, 3); + +/** + * Append a formatted string to a print buffer. + */ +void av_vbprintf(AVBPrint *buf, const char *fmt, va_list vl_arg); + +/** + * Append char c n times to a print buffer. + */ +void av_bprint_chars(AVBPrint *buf, char c, unsigned n); + +/** + * Append data to a print buffer. + * + * @param buf bprint buffer to use + * @param data pointer to data + * @param size size of data + */ +void av_bprint_append_data(AVBPrint *buf, const char *data, unsigned size); + +struct tm; +/** + * Append a formatted date and time to a print buffer. + * + * @param buf bprint buffer to use + * @param fmt date and time format string, see strftime() + * @param tm broken-down time structure to translate + * + * @note due to poor design of the standard strftime function, it may + * produce poor results if the format string expands to a very long text and + * the bprint buffer is near the limit stated by the size_max option. + */ +void av_bprint_strftime(AVBPrint *buf, const char *fmt, const struct tm *tm); + +/** + * Allocate bytes in the buffer for external use. + * + * @param[in] buf buffer structure + * @param[in] size required size + * @param[out] mem pointer to the memory area + * @param[out] actual_size size of the memory area after allocation; + * can be larger or smaller than size + */ +void av_bprint_get_buffer(AVBPrint *buf, unsigned size, + unsigned char **mem, unsigned *actual_size); + +/** + * Reset the string to "" but keep internal allocated data. + */ +void av_bprint_clear(AVBPrint *buf); + +/** + * Test if the print buffer is complete (not truncated). + * + * It may have been truncated due to a memory allocation failure + * or the size_max limit (compare size and size_max if necessary). + */ +static inline int av_bprint_is_complete(const AVBPrint *buf) +{ + return buf->len < buf->size; +} + +/** + * Finalize a print buffer. + * + * The print buffer can no longer be used afterwards, + * but the len and size fields are still valid. + * + * @arg[out] ret_str if not NULL, used to return a permanent copy of the + * buffer contents, or NULL if memory allocation fails; + * if NULL, the buffer is discarded and freed + * @return 0 for success or error code (probably AVERROR(ENOMEM)) + */ +int av_bprint_finalize(AVBPrint *buf, char **ret_str); + +/** + * Escape the content in src and append it to dstbuf. + * + * @param dstbuf already inited destination bprint buffer + * @param src string containing the text to escape + * @param special_chars string containing the special characters which + * need to be escaped, can be NULL + * @param mode escape mode to employ, see AV_ESCAPE_MODE_* macros. + * Any unknown value for mode will be considered equivalent to + * AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without + * notice. + * @param flags flags which control how to escape, see AV_ESCAPE_FLAG_* macros + */ +void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_chars, + enum AVEscapeMode mode, int flags); + +/** @} */ + +#endif /* AVUTIL_BPRINT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/bswap.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/bswap.h new file mode 100644 index 00000000..f53e5768 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/bswap.h @@ -0,0 +1,105 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * byte swapping routines + */ + +#ifndef AVUTIL_BSWAP_H +#define AVUTIL_BSWAP_H + +#include +#include "libavutil/avconfig.h" +#include "attributes.h" + +#ifdef HAVE_AV_CONFIG_H + +#include "config.h" + +#if ARCH_ARM +# include "arm/bswap.h" +#elif ARCH_RISCV +# include "riscv/bswap.h" +#elif ARCH_X86 +# include "x86/bswap.h" +#endif + +#endif /* HAVE_AV_CONFIG_H */ + +#define AV_BSWAP16C(x) (((x) << 8 & 0xff00) | ((x) >> 8 & 0x00ff)) +#define AV_BSWAP32C(x) (AV_BSWAP16C(x) << 16 | AV_BSWAP16C((x) >> 16)) +#define AV_BSWAP64C(x) (AV_BSWAP32C(x) << 32 | AV_BSWAP32C((x) >> 32)) + +#define AV_BSWAPC(s, x) AV_BSWAP##s##C(x) + +#ifndef av_bswap16 +static av_always_inline av_const uint16_t av_bswap16(uint16_t x) +{ + x= (x>>8) | (x<<8); + return x; +} +#endif + +#ifndef av_bswap32 +static av_always_inline av_const uint32_t av_bswap32(uint32_t x) +{ + return AV_BSWAP32C(x); +} +#endif + +#ifndef av_bswap64 +static inline uint64_t av_const av_bswap64(uint64_t x) +{ + return (uint64_t)av_bswap32(x) << 32 | av_bswap32(x >> 32); +} +#endif + +// be2ne ... big-endian to native-endian +// le2ne ... little-endian to native-endian + +#if AV_HAVE_BIGENDIAN +#define av_be2ne16(x) (x) +#define av_be2ne32(x) (x) +#define av_be2ne64(x) (x) +#define av_le2ne16(x) av_bswap16(x) +#define av_le2ne32(x) av_bswap32(x) +#define av_le2ne64(x) av_bswap64(x) +#define AV_BE2NEC(s, x) (x) +#define AV_LE2NEC(s, x) AV_BSWAPC(s, x) +#else +#define av_be2ne16(x) av_bswap16(x) +#define av_be2ne32(x) av_bswap32(x) +#define av_be2ne64(x) av_bswap64(x) +#define av_le2ne16(x) (x) +#define av_le2ne32(x) (x) +#define av_le2ne64(x) (x) +#define AV_BE2NEC(s, x) AV_BSWAPC(s, x) +#define AV_LE2NEC(s, x) (x) +#endif + +#define AV_BE2NE16C(x) AV_BE2NEC(16, x) +#define AV_BE2NE32C(x) AV_BE2NEC(32, x) +#define AV_BE2NE64C(x) AV_BE2NEC(64, x) +#define AV_LE2NE16C(x) AV_LE2NEC(16, x) +#define AV_LE2NE32C(x) AV_LE2NEC(32, x) +#define AV_LE2NE64C(x) AV_LE2NEC(64, x) + +#endif /* AVUTIL_BSWAP_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/buffer.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/buffer.h new file mode 100644 index 00000000..e1ef5b7f --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/buffer.h @@ -0,0 +1,322 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_buffer + * refcounted data buffer API + */ + +#ifndef AVUTIL_BUFFER_H +#define AVUTIL_BUFFER_H + +#include +#include + +/** + * @defgroup lavu_buffer AVBuffer + * @ingroup lavu_data + * + * @{ + * AVBuffer is an API for reference-counted data buffers. + * + * There are two core objects in this API -- AVBuffer and AVBufferRef. AVBuffer + * represents the data buffer itself; it is opaque and not meant to be accessed + * by the caller directly, but only through AVBufferRef. However, the caller may + * e.g. compare two AVBuffer pointers to check whether two different references + * are describing the same data buffer. AVBufferRef represents a single + * reference to an AVBuffer and it is the object that may be manipulated by the + * caller directly. + * + * There are two functions provided for creating a new AVBuffer with a single + * reference -- av_buffer_alloc() to just allocate a new buffer, and + * av_buffer_create() to wrap an existing array in an AVBuffer. From an existing + * reference, additional references may be created with av_buffer_ref(). + * Use av_buffer_unref() to free a reference (this will automatically free the + * data once all the references are freed). + * + * The convention throughout this API and the rest of FFmpeg is such that the + * buffer is considered writable if there exists only one reference to it (and + * it has not been marked as read-only). The av_buffer_is_writable() function is + * provided to check whether this is true and av_buffer_make_writable() will + * automatically create a new writable buffer when necessary. + * Of course nothing prevents the calling code from violating this convention, + * however that is safe only when all the existing references are under its + * control. + * + * @note Referencing and unreferencing the buffers is thread-safe and thus + * may be done from multiple threads simultaneously without any need for + * additional locking. + * + * @note Two different references to the same buffer can point to different + * parts of the buffer (i.e. their AVBufferRef.data will not be equal). + */ + +/** + * A reference counted buffer type. It is opaque and is meant to be used through + * references (AVBufferRef). + */ +typedef struct AVBuffer AVBuffer; + +/** + * A reference to a data buffer. + * + * The size of this struct is not a part of the public ABI and it is not meant + * to be allocated directly. + */ +typedef struct AVBufferRef { + AVBuffer *buffer; + + /** + * The data buffer. It is considered writable if and only if + * this is the only reference to the buffer, in which case + * av_buffer_is_writable() returns 1. + */ + uint8_t *data; + /** + * Size of data in bytes. + */ + size_t size; +} AVBufferRef; + +/** + * Allocate an AVBuffer of the given size using av_malloc(). + * + * @return an AVBufferRef of given size or NULL when out of memory + */ +AVBufferRef *av_buffer_alloc(size_t size); + +/** + * Same as av_buffer_alloc(), except the returned buffer will be initialized + * to zero. + */ +AVBufferRef *av_buffer_allocz(size_t size); + +/** + * Always treat the buffer as read-only, even when it has only one + * reference. + */ +#define AV_BUFFER_FLAG_READONLY (1 << 0) + +/** + * Create an AVBuffer from an existing array. + * + * If this function is successful, data is owned by the AVBuffer. The caller may + * only access data through the returned AVBufferRef and references derived from + * it. + * If this function fails, data is left untouched. + * @param data data array + * @param size size of data in bytes + * @param free a callback for freeing this buffer's data + * @param opaque parameter to be got for processing or passed to free + * @param flags a combination of AV_BUFFER_FLAG_* + * + * @return an AVBufferRef referring to data on success, NULL on failure. + */ +AVBufferRef *av_buffer_create(uint8_t *data, size_t size, + void (*free)(void *opaque, uint8_t *data), + void *opaque, int flags); + +/** + * Default free callback, which calls av_free() on the buffer data. + * This function is meant to be passed to av_buffer_create(), not called + * directly. + */ +void av_buffer_default_free(void *opaque, uint8_t *data); + +/** + * Create a new reference to an AVBuffer. + * + * @return a new AVBufferRef referring to the same AVBuffer as buf or NULL on + * failure. + */ +AVBufferRef *av_buffer_ref(const AVBufferRef *buf); + +/** + * Free a given reference and automatically free the buffer if there are no more + * references to it. + * + * @param buf the reference to be freed. The pointer is set to NULL on return. + */ +void av_buffer_unref(AVBufferRef **buf); + +/** + * @return 1 if the caller may write to the data referred to by buf (which is + * true if and only if buf is the only reference to the underlying AVBuffer). + * Return 0 otherwise. + * A positive answer is valid until av_buffer_ref() is called on buf. + */ +int av_buffer_is_writable(const AVBufferRef *buf); + +/** + * @return the opaque parameter set by av_buffer_create. + */ +void *av_buffer_get_opaque(const AVBufferRef *buf); + +int av_buffer_get_ref_count(const AVBufferRef *buf); + +/** + * Create a writable reference from a given buffer reference, avoiding data copy + * if possible. + * + * @param buf buffer reference to make writable. On success, buf is either left + * untouched, or it is unreferenced and a new writable AVBufferRef is + * written in its place. On failure, buf is left untouched. + * @return 0 on success, a negative AVERROR on failure. + */ +int av_buffer_make_writable(AVBufferRef **buf); + +/** + * Reallocate a given buffer. + * + * @param buf a buffer reference to reallocate. On success, buf will be + * unreferenced and a new reference with the required size will be + * written in its place. On failure buf will be left untouched. *buf + * may be NULL, then a new buffer is allocated. + * @param size required new buffer size. + * @return 0 on success, a negative AVERROR on failure. + * + * @note the buffer is actually reallocated with av_realloc() only if it was + * initially allocated through av_buffer_realloc(NULL) and there is only one + * reference to it (i.e. the one passed to this function). In all other cases + * a new buffer is allocated and the data is copied. + */ +int av_buffer_realloc(AVBufferRef **buf, size_t size); + +/** + * Ensure dst refers to the same data as src. + * + * When *dst is already equivalent to src, do nothing. Otherwise unreference dst + * and replace it with a new reference to src. + * + * @param dst Pointer to either a valid buffer reference or NULL. On success, + * this will point to a buffer reference equivalent to src. On + * failure, dst will be left untouched. + * @param src A buffer reference to replace dst with. May be NULL, then this + * function is equivalent to av_buffer_unref(dst). + * @return 0 on success + * AVERROR(ENOMEM) on memory allocation failure. + */ +int av_buffer_replace(AVBufferRef **dst, const AVBufferRef *src); + +/** + * @} + */ + +/** + * @defgroup lavu_bufferpool AVBufferPool + * @ingroup lavu_data + * + * @{ + * AVBufferPool is an API for a lock-free thread-safe pool of AVBuffers. + * + * Frequently allocating and freeing large buffers may be slow. AVBufferPool is + * meant to solve this in cases when the caller needs a set of buffers of the + * same size (the most obvious use case being buffers for raw video or audio + * frames). + * + * At the beginning, the user must call av_buffer_pool_init() to create the + * buffer pool. Then whenever a buffer is needed, call av_buffer_pool_get() to + * get a reference to a new buffer, similar to av_buffer_alloc(). This new + * reference works in all aspects the same way as the one created by + * av_buffer_alloc(). However, when the last reference to this buffer is + * unreferenced, it is returned to the pool instead of being freed and will be + * reused for subsequent av_buffer_pool_get() calls. + * + * When the caller is done with the pool and no longer needs to allocate any new + * buffers, av_buffer_pool_uninit() must be called to mark the pool as freeable. + * Once all the buffers are released, it will automatically be freed. + * + * Allocating and releasing buffers with this API is thread-safe as long as + * either the default alloc callback is used, or the user-supplied one is + * thread-safe. + */ + +/** + * The buffer pool. This structure is opaque and not meant to be accessed + * directly. It is allocated with av_buffer_pool_init() and freed with + * av_buffer_pool_uninit(). + */ +typedef struct AVBufferPool AVBufferPool; + +/** + * Allocate and initialize a buffer pool. + * + * @param size size of each buffer in this pool + * @param alloc a function that will be used to allocate new buffers when the + * pool is empty. May be NULL, then the default allocator will be used + * (av_buffer_alloc()). + * @return newly created buffer pool on success, NULL on error. + */ +AVBufferPool *av_buffer_pool_init(size_t size, AVBufferRef* (*alloc)(size_t size)); + +/** + * Allocate and initialize a buffer pool with a more complex allocator. + * + * @param size size of each buffer in this pool + * @param opaque arbitrary user data used by the allocator + * @param alloc a function that will be used to allocate new buffers when the + * pool is empty. May be NULL, then the default allocator will be + * used (av_buffer_alloc()). + * @param pool_free a function that will be called immediately before the pool + * is freed. I.e. after av_buffer_pool_uninit() is called + * by the caller and all the frames are returned to the pool + * and freed. It is intended to uninitialize the user opaque + * data. May be NULL. + * @return newly created buffer pool on success, NULL on error. + */ +AVBufferPool *av_buffer_pool_init2(size_t size, void *opaque, + AVBufferRef* (*alloc)(void *opaque, size_t size), + void (*pool_free)(void *opaque)); + +/** + * Mark the pool as being available for freeing. It will actually be freed only + * once all the allocated buffers associated with the pool are released. Thus it + * is safe to call this function while some of the allocated buffers are still + * in use. + * + * @param pool pointer to the pool to be freed. It will be set to NULL. + */ +void av_buffer_pool_uninit(AVBufferPool **pool); + +/** + * Allocate a new AVBuffer, reusing an old buffer from the pool when available. + * This function may be called simultaneously from multiple threads. + * + * @return a reference to the new buffer on success, NULL on error. + */ +AVBufferRef *av_buffer_pool_get(AVBufferPool *pool); + +/** + * Query the original opaque parameter of an allocated buffer in the pool. + * + * @param ref a buffer reference to a buffer returned by av_buffer_pool_get. + * @return the opaque parameter set by the buffer allocator function of the + * buffer pool. + * + * @note the opaque parameter of ref is used by the buffer pool implementation, + * therefore you have to use this function to access the original opaque + * parameter of an allocated buffer. + */ +void *av_buffer_pool_buffer_get_opaque(const AVBufferRef *ref); + +/** + * @} + */ + +#endif /* AVUTIL_BUFFER_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/camellia.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/camellia.h new file mode 100644 index 00000000..96787102 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/camellia.h @@ -0,0 +1,70 @@ +/* + * An implementation of the CAMELLIA algorithm as mentioned in RFC3713 + * Copyright (c) 2014 Supraja Meedinti + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CAMELLIA_H +#define AVUTIL_CAMELLIA_H + +#include + + +/** + * @file + * @brief Public header for libavutil CAMELLIA algorithm + * @defgroup lavu_camellia CAMELLIA + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_camellia_size; + +struct AVCAMELLIA; + +/** + * Allocate an AVCAMELLIA context + * To free the struct: av_free(ptr) + */ +struct AVCAMELLIA *av_camellia_alloc(void); + +/** + * Initialize an AVCAMELLIA context. + * + * @param ctx an AVCAMELLIA context + * @param key a key of 16, 24, 32 bytes used for encryption/decryption + * @param key_bits number of keybits: possible are 128, 192, 256 + */ +int av_camellia_init(struct AVCAMELLIA *ctx, const uint8_t *key, int key_bits); + +/** + * Encrypt or decrypt a buffer using a previously initialized context + * + * @param ctx an AVCAMELLIA context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 16 byte blocks + * @param iv initialization vector for CBC mode, NULL for ECB mode + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_camellia_crypt(struct AVCAMELLIA *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t* iv, int decrypt); + +/** + * @} + */ +#endif /* AVUTIL_CAMELLIA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/cast5.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/cast5.h new file mode 100644 index 00000000..ad5b347e --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/cast5.h @@ -0,0 +1,80 @@ +/* + * An implementation of the CAST128 algorithm as mentioned in RFC2144 + * Copyright (c) 2014 Supraja Meedinti + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CAST5_H +#define AVUTIL_CAST5_H + +#include + + +/** + * @file + * @brief Public header for libavutil CAST5 algorithm + * @defgroup lavu_cast5 CAST5 + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_cast5_size; + +struct AVCAST5; + +/** + * Allocate an AVCAST5 context + * To free the struct: av_free(ptr) + */ +struct AVCAST5 *av_cast5_alloc(void); +/** + * Initialize an AVCAST5 context. + * + * @param ctx an AVCAST5 context + * @param key a key of 5,6,...16 bytes used for encryption/decryption + * @param key_bits number of keybits: possible are 40,48,...,128 + * @return 0 on success, less than 0 on failure + */ +int av_cast5_init(struct AVCAST5 *ctx, const uint8_t *key, int key_bits); + +/** + * Encrypt or decrypt a buffer using a previously initialized context, ECB mode only + * + * @param ctx an AVCAST5 context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_cast5_crypt(struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count, int decrypt); + +/** + * Encrypt or decrypt a buffer using a previously initialized context + * + * @param ctx an AVCAST5 context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, NULL for ECB mode + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_cast5_crypt2(struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); +/** + * @} + */ +#endif /* AVUTIL_CAST5_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/channel_layout.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/channel_layout.h new file mode 100644 index 00000000..3a96c2d9 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/channel_layout.h @@ -0,0 +1,751 @@ +/* + * Copyright (c) 2006 Michael Niedermayer + * Copyright (c) 2008 Peter Ross + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CHANNEL_LAYOUT_H +#define AVUTIL_CHANNEL_LAYOUT_H + +#include +#include + +#include "version.h" +#include "attributes.h" + +/** + * @file + * @ingroup lavu_audio_channels + * Public libavutil channel layout APIs header. + */ + + +/** + * @defgroup lavu_audio_channels Audio channels + * @ingroup lavu_audio + * + * Audio channel layout utility functions + * + * @{ + */ + +enum AVChannel { + ///< Invalid channel index + AV_CHAN_NONE = -1, + AV_CHAN_FRONT_LEFT, + AV_CHAN_FRONT_RIGHT, + AV_CHAN_FRONT_CENTER, + AV_CHAN_LOW_FREQUENCY, + AV_CHAN_BACK_LEFT, + AV_CHAN_BACK_RIGHT, + AV_CHAN_FRONT_LEFT_OF_CENTER, + AV_CHAN_FRONT_RIGHT_OF_CENTER, + AV_CHAN_BACK_CENTER, + AV_CHAN_SIDE_LEFT, + AV_CHAN_SIDE_RIGHT, + AV_CHAN_TOP_CENTER, + AV_CHAN_TOP_FRONT_LEFT, + AV_CHAN_TOP_FRONT_CENTER, + AV_CHAN_TOP_FRONT_RIGHT, + AV_CHAN_TOP_BACK_LEFT, + AV_CHAN_TOP_BACK_CENTER, + AV_CHAN_TOP_BACK_RIGHT, + /** Stereo downmix. */ + AV_CHAN_STEREO_LEFT = 29, + /** See above. */ + AV_CHAN_STEREO_RIGHT, + AV_CHAN_WIDE_LEFT, + AV_CHAN_WIDE_RIGHT, + AV_CHAN_SURROUND_DIRECT_LEFT, + AV_CHAN_SURROUND_DIRECT_RIGHT, + AV_CHAN_LOW_FREQUENCY_2, + AV_CHAN_TOP_SIDE_LEFT, + AV_CHAN_TOP_SIDE_RIGHT, + AV_CHAN_BOTTOM_FRONT_CENTER, + AV_CHAN_BOTTOM_FRONT_LEFT, + AV_CHAN_BOTTOM_FRONT_RIGHT, + AV_CHAN_SIDE_SURROUND_LEFT, ///< +90 degrees, Lss, SiL + AV_CHAN_SIDE_SURROUND_RIGHT, ///< -90 degrees, Rss, SiR + AV_CHAN_TOP_SURROUND_LEFT, ///< +110 degrees, Lvs, TpLS + AV_CHAN_TOP_SURROUND_RIGHT, ///< -110 degrees, Rvs, TpRS + + /** Channel is empty can be safely skipped. */ + AV_CHAN_UNUSED = 0x200, + + /** Channel contains data, but its position is unknown. */ + AV_CHAN_UNKNOWN = 0x300, + + /** + * Range of channels between AV_CHAN_AMBISONIC_BASE and + * AV_CHAN_AMBISONIC_END represent Ambisonic components using the ACN system. + * + * Given a channel id `` between AV_CHAN_AMBISONIC_BASE and + * AV_CHAN_AMBISONIC_END (inclusive), the ACN index of the channel `` is + * ` = - AV_CHAN_AMBISONIC_BASE`. + * + * @note these values are only used for AV_CHANNEL_ORDER_CUSTOM channel + * orderings, the AV_CHANNEL_ORDER_AMBISONIC ordering orders the channels + * implicitly by their position in the stream. + */ + AV_CHAN_AMBISONIC_BASE = 0x400, + // leave space for 1024 ids, which correspond to maximum order-32 harmonics, + // which should be enough for the foreseeable use cases + AV_CHAN_AMBISONIC_END = 0x7ff, +}; + +enum AVChannelOrder { + /** + * Only the channel count is specified, without any further information + * about the channel order. + */ + AV_CHANNEL_ORDER_UNSPEC, + /** + * The native channel order, i.e. the channels are in the same order in + * which they are defined in the AVChannel enum. This supports up to 63 + * different channels. + */ + AV_CHANNEL_ORDER_NATIVE, + /** + * The channel order does not correspond to any other predefined order and + * is stored as an explicit map. For example, this could be used to support + * layouts with 64 or more channels, or with empty/skipped (AV_CHAN_UNUSED) + * channels at arbitrary positions. + */ + AV_CHANNEL_ORDER_CUSTOM, + /** + * The audio is represented as the decomposition of the sound field into + * spherical harmonics. Each channel corresponds to a single expansion + * component. Channels are ordered according to ACN (Ambisonic Channel + * Number). + * + * The channel with the index n in the stream contains the spherical + * harmonic of degree l and order m given by + * @code{.unparsed} + * l = floor(sqrt(n)), + * m = n - l * (l + 1). + * @endcode + * + * Conversely given a spherical harmonic of degree l and order m, the + * corresponding channel index n is given by + * @code{.unparsed} + * n = l * (l + 1) + m. + * @endcode + * + * Normalization is assumed to be SN3D (Schmidt Semi-Normalization) + * as defined in AmbiX format $ 2.1. + */ + AV_CHANNEL_ORDER_AMBISONIC, + /** + * Number of channel orders, not part of ABI/API + */ + FF_CHANNEL_ORDER_NB +}; + + +/** + * @defgroup channel_masks Audio channel masks + * + * A channel layout is a 64-bits integer with a bit set for every channel. + * The number of bits set must be equal to the number of channels. + * The value 0 means that the channel layout is not known. + * @note this data structure is not powerful enough to handle channels + * combinations that have the same channel multiple times, such as + * dual-mono. + * + * @{ + */ +#define AV_CH_FRONT_LEFT (1ULL << AV_CHAN_FRONT_LEFT ) +#define AV_CH_FRONT_RIGHT (1ULL << AV_CHAN_FRONT_RIGHT ) +#define AV_CH_FRONT_CENTER (1ULL << AV_CHAN_FRONT_CENTER ) +#define AV_CH_LOW_FREQUENCY (1ULL << AV_CHAN_LOW_FREQUENCY ) +#define AV_CH_BACK_LEFT (1ULL << AV_CHAN_BACK_LEFT ) +#define AV_CH_BACK_RIGHT (1ULL << AV_CHAN_BACK_RIGHT ) +#define AV_CH_FRONT_LEFT_OF_CENTER (1ULL << AV_CHAN_FRONT_LEFT_OF_CENTER ) +#define AV_CH_FRONT_RIGHT_OF_CENTER (1ULL << AV_CHAN_FRONT_RIGHT_OF_CENTER) +#define AV_CH_BACK_CENTER (1ULL << AV_CHAN_BACK_CENTER ) +#define AV_CH_SIDE_LEFT (1ULL << AV_CHAN_SIDE_LEFT ) +#define AV_CH_SIDE_RIGHT (1ULL << AV_CHAN_SIDE_RIGHT ) +#define AV_CH_TOP_CENTER (1ULL << AV_CHAN_TOP_CENTER ) +#define AV_CH_TOP_FRONT_LEFT (1ULL << AV_CHAN_TOP_FRONT_LEFT ) +#define AV_CH_TOP_FRONT_CENTER (1ULL << AV_CHAN_TOP_FRONT_CENTER ) +#define AV_CH_TOP_FRONT_RIGHT (1ULL << AV_CHAN_TOP_FRONT_RIGHT ) +#define AV_CH_TOP_BACK_LEFT (1ULL << AV_CHAN_TOP_BACK_LEFT ) +#define AV_CH_TOP_BACK_CENTER (1ULL << AV_CHAN_TOP_BACK_CENTER ) +#define AV_CH_TOP_BACK_RIGHT (1ULL << AV_CHAN_TOP_BACK_RIGHT ) +#define AV_CH_STEREO_LEFT (1ULL << AV_CHAN_STEREO_LEFT ) +#define AV_CH_STEREO_RIGHT (1ULL << AV_CHAN_STEREO_RIGHT ) +#define AV_CH_WIDE_LEFT (1ULL << AV_CHAN_WIDE_LEFT ) +#define AV_CH_WIDE_RIGHT (1ULL << AV_CHAN_WIDE_RIGHT ) +#define AV_CH_SURROUND_DIRECT_LEFT (1ULL << AV_CHAN_SURROUND_DIRECT_LEFT ) +#define AV_CH_SURROUND_DIRECT_RIGHT (1ULL << AV_CHAN_SURROUND_DIRECT_RIGHT) +#define AV_CH_LOW_FREQUENCY_2 (1ULL << AV_CHAN_LOW_FREQUENCY_2 ) +#define AV_CH_TOP_SIDE_LEFT (1ULL << AV_CHAN_TOP_SIDE_LEFT ) +#define AV_CH_TOP_SIDE_RIGHT (1ULL << AV_CHAN_TOP_SIDE_RIGHT ) +#define AV_CH_BOTTOM_FRONT_CENTER (1ULL << AV_CHAN_BOTTOM_FRONT_CENTER ) +#define AV_CH_BOTTOM_FRONT_LEFT (1ULL << AV_CHAN_BOTTOM_FRONT_LEFT ) +#define AV_CH_BOTTOM_FRONT_RIGHT (1ULL << AV_CHAN_BOTTOM_FRONT_RIGHT ) +#define AV_CH_SIDE_SURROUND_LEFT (1ULL << AV_CHAN_SIDE_SURROUND_LEFT ) +#define AV_CH_SIDE_SURROUND_RIGHT (1ULL << AV_CHAN_SIDE_SURROUND_RIGHT ) +#define AV_CH_TOP_SURROUND_LEFT (1ULL << AV_CHAN_TOP_SURROUND_LEFT ) +#define AV_CH_TOP_SURROUND_RIGHT (1ULL << AV_CHAN_TOP_SURROUND_RIGHT ) + +/** + * @} + * @defgroup channel_mask_c Audio channel layouts + * @{ + * */ +#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER) +#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) +#define AV_CH_LAYOUT_2POINT1 (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) +#define AV_CH_LAYOUT_3POINT1 (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_4POINT1 (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_2_2 (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) +#define AV_CH_LAYOUT_QUAD (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) +#define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_5POINT0_BACK (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT1_BACK (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_6POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT0_FRONT (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_HEXAGONAL (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_3POINT1POINT2 (AV_CH_LAYOUT_3POINT1|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) +#define AV_CH_LAYOUT_6POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1_FRONT (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_7POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT0_FRONT (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_7POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_7POINT1_WIDE_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_5POINT1POINT2_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) +#define AV_CH_LAYOUT_OCTAGONAL (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_CUBE (AV_CH_LAYOUT_QUAD|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT1POINT4_BACK (AV_CH_LAYOUT_5POINT1POINT2_BACK|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT1POINT2 (AV_CH_LAYOUT_7POINT1|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) +#define AV_CH_LAYOUT_7POINT1POINT4_BACK (AV_CH_LAYOUT_7POINT1POINT2|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT2POINT3 (AV_CH_LAYOUT_7POINT1POINT2|AV_CH_TOP_BACK_CENTER|AV_CH_LOW_FREQUENCY_2) +#define AV_CH_LAYOUT_9POINT1POINT4_BACK (AV_CH_LAYOUT_7POINT1POINT4_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_HEXADECAGONAL (AV_CH_LAYOUT_OCTAGONAL|AV_CH_WIDE_LEFT|AV_CH_WIDE_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) +#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT) +#define AV_CH_LAYOUT_22POINT2 (AV_CH_LAYOUT_7POINT1POINT4_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER|AV_CH_BACK_CENTER|AV_CH_LOW_FREQUENCY_2|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_CENTER|AV_CH_TOP_SIDE_LEFT|AV_CH_TOP_SIDE_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_BOTTOM_FRONT_CENTER|AV_CH_BOTTOM_FRONT_LEFT|AV_CH_BOTTOM_FRONT_RIGHT) + +#define AV_CH_LAYOUT_7POINT1_TOP_BACK AV_CH_LAYOUT_5POINT1POINT2_BACK + +enum AVMatrixEncoding { + AV_MATRIX_ENCODING_NONE, + AV_MATRIX_ENCODING_DOLBY, + AV_MATRIX_ENCODING_DPLII, + AV_MATRIX_ENCODING_DPLIIX, + AV_MATRIX_ENCODING_DPLIIZ, + AV_MATRIX_ENCODING_DOLBYEX, + AV_MATRIX_ENCODING_DOLBYHEADPHONE, + AV_MATRIX_ENCODING_NB +}; + +/** + * @} + */ + +/** + * An AVChannelCustom defines a single channel within a custom order layout + * + * Unlike most structures in FFmpeg, sizeof(AVChannelCustom) is a part of the + * public ABI. + * + * No new fields may be added to it without a major version bump. + */ +typedef struct AVChannelCustom { + enum AVChannel id; + char name[16]; + void *opaque; +} AVChannelCustom; + +/** + * An AVChannelLayout holds information about the channel layout of audio data. + * + * A channel layout here is defined as a set of channels ordered in a specific + * way (unless the channel order is AV_CHANNEL_ORDER_UNSPEC, in which case an + * AVChannelLayout carries only the channel count). + * All orders may be treated as if they were AV_CHANNEL_ORDER_UNSPEC by + * ignoring everything but the channel count, as long as av_channel_layout_check() + * considers they are valid. + * + * Unlike most structures in FFmpeg, sizeof(AVChannelLayout) is a part of the + * public ABI and may be used by the caller. E.g. it may be allocated on stack + * or embedded in caller-defined structs. + * + * AVChannelLayout can be initialized as follows: + * - default initialization with {0}, followed by setting all used fields + * correctly; + * - by assigning one of the predefined AV_CHANNEL_LAYOUT_* initializers; + * - with a constructor function, such as av_channel_layout_default(), + * av_channel_layout_from_mask() or av_channel_layout_from_string(). + * + * The channel layout must be unitialized with av_channel_layout_uninit() + * + * Copying an AVChannelLayout via assigning is forbidden, + * av_channel_layout_copy() must be used instead (and its return value should + * be checked) + * + * No new fields may be added to it without a major version bump, except for + * new elements of the union fitting in sizeof(uint64_t). + */ +typedef struct AVChannelLayout { + /** + * Channel order used in this layout. + * This is a mandatory field. + */ + enum AVChannelOrder order; + + /** + * Number of channels in this layout. Mandatory field. + */ + int nb_channels; + + /** + * Details about which channels are present in this layout. + * For AV_CHANNEL_ORDER_UNSPEC, this field is undefined and must not be + * used. + */ + union { + /** + * This member must be used for AV_CHANNEL_ORDER_NATIVE, and may be used + * for AV_CHANNEL_ORDER_AMBISONIC to signal non-diegetic channels. + * It is a bitmask, where the position of each set bit means that the + * AVChannel with the corresponding value is present. + * + * I.e. when (mask & (1 << AV_CHAN_FOO)) is non-zero, then AV_CHAN_FOO + * is present in the layout. Otherwise it is not present. + * + * @note when a channel layout using a bitmask is constructed or + * modified manually (i.e. not using any of the av_channel_layout_* + * functions), the code doing it must ensure that the number of set bits + * is equal to nb_channels. + */ + uint64_t mask; + /** + * This member must be used when the channel order is + * AV_CHANNEL_ORDER_CUSTOM. It is a nb_channels-sized array, with each + * element signalling the presence of the AVChannel with the + * corresponding value in map[i].id. + * + * I.e. when map[i].id is equal to AV_CHAN_FOO, then AV_CH_FOO is the + * i-th channel in the audio data. + * + * When map[i].id is in the range between AV_CHAN_AMBISONIC_BASE and + * AV_CHAN_AMBISONIC_END (inclusive), the channel contains an ambisonic + * component with ACN index (as defined above) + * n = map[i].id - AV_CHAN_AMBISONIC_BASE. + * + * map[i].name may be filled with a 0-terminated string, in which case + * it will be used for the purpose of identifying the channel with the + * convenience functions below. Otherise it must be zeroed. + */ + AVChannelCustom *map; + } u; + + /** + * For some private data of the user. + */ + void *opaque; +} AVChannelLayout; + +/** + * Macro to define native channel layouts + * + * @note This doesn't use designated initializers for compatibility with C++ 17 and older. + */ +#define AV_CHANNEL_LAYOUT_MASK(nb, m) \ + { /* .order */ AV_CHANNEL_ORDER_NATIVE, \ + /* .nb_channels */ (nb), \ + /* .u.mask */ { m }, \ + /* .opaque */ NULL } + +/** + * @name Common pre-defined channel layouts + * @{ + */ +#define AV_CHANNEL_LAYOUT_MONO AV_CHANNEL_LAYOUT_MASK(1, AV_CH_LAYOUT_MONO) +#define AV_CHANNEL_LAYOUT_STEREO AV_CHANNEL_LAYOUT_MASK(2, AV_CH_LAYOUT_STEREO) +#define AV_CHANNEL_LAYOUT_2POINT1 AV_CHANNEL_LAYOUT_MASK(3, AV_CH_LAYOUT_2POINT1) +#define AV_CHANNEL_LAYOUT_2_1 AV_CHANNEL_LAYOUT_MASK(3, AV_CH_LAYOUT_2_1) +#define AV_CHANNEL_LAYOUT_SURROUND AV_CHANNEL_LAYOUT_MASK(3, AV_CH_LAYOUT_SURROUND) +#define AV_CHANNEL_LAYOUT_3POINT1 AV_CHANNEL_LAYOUT_MASK(4, AV_CH_LAYOUT_3POINT1) +#define AV_CHANNEL_LAYOUT_4POINT0 AV_CHANNEL_LAYOUT_MASK(4, AV_CH_LAYOUT_4POINT0) +#define AV_CHANNEL_LAYOUT_4POINT1 AV_CHANNEL_LAYOUT_MASK(5, AV_CH_LAYOUT_4POINT1) +#define AV_CHANNEL_LAYOUT_2_2 AV_CHANNEL_LAYOUT_MASK(4, AV_CH_LAYOUT_2_2) +#define AV_CHANNEL_LAYOUT_QUAD AV_CHANNEL_LAYOUT_MASK(4, AV_CH_LAYOUT_QUAD) +#define AV_CHANNEL_LAYOUT_5POINT0 AV_CHANNEL_LAYOUT_MASK(5, AV_CH_LAYOUT_5POINT0) +#define AV_CHANNEL_LAYOUT_5POINT1 AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_5POINT1) +#define AV_CHANNEL_LAYOUT_5POINT0_BACK AV_CHANNEL_LAYOUT_MASK(5, AV_CH_LAYOUT_5POINT0_BACK) +#define AV_CHANNEL_LAYOUT_5POINT1_BACK AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_5POINT1_BACK) +#define AV_CHANNEL_LAYOUT_6POINT0 AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_6POINT0) +#define AV_CHANNEL_LAYOUT_6POINT0_FRONT AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_6POINT0_FRONT) +#define AV_CHANNEL_LAYOUT_3POINT1POINT2 AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_3POINT1POINT2) +#define AV_CHANNEL_LAYOUT_HEXAGONAL AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_HEXAGONAL) +#define AV_CHANNEL_LAYOUT_6POINT1 AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_6POINT1) +#define AV_CHANNEL_LAYOUT_6POINT1_BACK AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_6POINT1_BACK) +#define AV_CHANNEL_LAYOUT_6POINT1_FRONT AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_6POINT1_FRONT) +#define AV_CHANNEL_LAYOUT_7POINT0 AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_7POINT0) +#define AV_CHANNEL_LAYOUT_7POINT0_FRONT AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_7POINT0_FRONT) +#define AV_CHANNEL_LAYOUT_7POINT1 AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_7POINT1) +#define AV_CHANNEL_LAYOUT_7POINT1_WIDE AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_7POINT1_WIDE) +#define AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_7POINT1_WIDE_BACK) +#define AV_CHANNEL_LAYOUT_5POINT1POINT2_BACK AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_5POINT1POINT2_BACK) +#define AV_CHANNEL_LAYOUT_OCTAGONAL AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_OCTAGONAL) +#define AV_CHANNEL_LAYOUT_CUBE AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_CUBE) +#define AV_CHANNEL_LAYOUT_5POINT1POINT4_BACK AV_CHANNEL_LAYOUT_MASK(10, AV_CH_LAYOUT_5POINT1POINT4_BACK) +#define AV_CHANNEL_LAYOUT_7POINT1POINT2 AV_CHANNEL_LAYOUT_MASK(10, AV_CH_LAYOUT_7POINT1POINT2) +#define AV_CHANNEL_LAYOUT_7POINT1POINT4_BACK AV_CHANNEL_LAYOUT_MASK(12, AV_CH_LAYOUT_7POINT1POINT4_BACK) +#define AV_CHANNEL_LAYOUT_7POINT2POINT3 AV_CHANNEL_LAYOUT_MASK(12, AV_CH_LAYOUT_7POINT2POINT3) +#define AV_CHANNEL_LAYOUT_9POINT1POINT4_BACK AV_CHANNEL_LAYOUT_MASK(14, AV_CH_LAYOUT_9POINT1POINT4_BACK) +#define AV_CHANNEL_LAYOUT_HEXADECAGONAL AV_CHANNEL_LAYOUT_MASK(16, AV_CH_LAYOUT_HEXADECAGONAL) +#define AV_CHANNEL_LAYOUT_STEREO_DOWNMIX AV_CHANNEL_LAYOUT_MASK(2, AV_CH_LAYOUT_STEREO_DOWNMIX) +#define AV_CHANNEL_LAYOUT_22POINT2 AV_CHANNEL_LAYOUT_MASK(24, AV_CH_LAYOUT_22POINT2) + +#define AV_CHANNEL_LAYOUT_7POINT1_TOP_BACK AV_CHANNEL_LAYOUT_5POINT1POINT2_BACK + +#define AV_CHANNEL_LAYOUT_AMBISONIC_FIRST_ORDER \ + { /* .order */ AV_CHANNEL_ORDER_AMBISONIC, \ + /* .nb_channels */ 4, \ + /* .u.mask */ { 0 }, \ + /* .opaque */ NULL } +/** @} */ + +struct AVBPrint; + +/** + * Get a human readable string in an abbreviated form describing a given channel. + * This is the inverse function of @ref av_channel_from_string(). + * + * @param buf pre-allocated buffer where to put the generated string + * @param buf_size size in bytes of the buffer. + * @param channel the AVChannel whose name to get + * @return amount of bytes needed to hold the output string, or a negative AVERROR + * on failure. If the returned value is bigger than buf_size, then the + * string was truncated. + */ +int av_channel_name(char *buf, size_t buf_size, enum AVChannel channel); + +/** + * bprint variant of av_channel_name(). + * + * @note the string will be appended to the bprint buffer. + */ +void av_channel_name_bprint(struct AVBPrint *bp, enum AVChannel channel_id); + +/** + * Get a human readable string describing a given channel. + * + * @param buf pre-allocated buffer where to put the generated string + * @param buf_size size in bytes of the buffer. + * @param channel the AVChannel whose description to get + * @return amount of bytes needed to hold the output string, or a negative AVERROR + * on failure. If the returned value is bigger than buf_size, then the + * string was truncated. + */ +int av_channel_description(char *buf, size_t buf_size, enum AVChannel channel); + +/** + * bprint variant of av_channel_description(). + * + * @note the string will be appended to the bprint buffer. + */ +void av_channel_description_bprint(struct AVBPrint *bp, enum AVChannel channel_id); + +/** + * This is the inverse function of @ref av_channel_name(). + * + * @return the channel with the given name + * AV_CHAN_NONE when name does not identify a known channel + */ +enum AVChannel av_channel_from_string(const char *name); + +/** + * Initialize a custom channel layout with the specified number of channels. + * The channel map will be allocated and the designation of all channels will + * be set to AV_CHAN_UNKNOWN. + * + * This is only a convenience helper function, a custom channel layout can also + * be constructed without using this. + * + * @param channel_layout the layout structure to be initialized + * @param nb_channels the number of channels + * + * @return 0 on success + * AVERROR(EINVAL) if the number of channels <= 0 + * AVERROR(ENOMEM) if the channel map could not be allocated + */ +int av_channel_layout_custom_init(AVChannelLayout *channel_layout, int nb_channels); + +/** + * Initialize a native channel layout from a bitmask indicating which channels + * are present. + * + * @param channel_layout the layout structure to be initialized + * @param mask bitmask describing the channel layout + * + * @return 0 on success + * AVERROR(EINVAL) for invalid mask values + */ +int av_channel_layout_from_mask(AVChannelLayout *channel_layout, uint64_t mask); + +/** + * Initialize a channel layout from a given string description. + * The input string can be represented by: + * - the formal channel layout name (returned by av_channel_layout_describe()) + * - single or multiple channel names (returned by av_channel_name(), eg. "FL", + * or concatenated with "+", each optionally containing a custom name after + * a "@", eg. "FL@Left+FR@Right+LFE") + * - a decimal or hexadecimal value of a native channel layout (eg. "4" or "0x4") + * - the number of channels with default layout (eg. "4c") + * - the number of unordered channels (eg. "4C" or "4 channels") + * - the ambisonic order followed by optional non-diegetic channels (eg. + * "ambisonic 2+stereo") + * On error, the channel layout will remain uninitialized, but not necessarily + * untouched. + * + * @param channel_layout uninitialized channel layout for the result + * @param str string describing the channel layout + * @return 0 on success parsing the channel layout + * AVERROR(EINVAL) if an invalid channel layout string was provided + * AVERROR(ENOMEM) if there was not enough memory + */ +int av_channel_layout_from_string(AVChannelLayout *channel_layout, + const char *str); + +/** + * Get the default channel layout for a given number of channels. + * + * @param ch_layout the layout structure to be initialized + * @param nb_channels number of channels + */ +void av_channel_layout_default(AVChannelLayout *ch_layout, int nb_channels); + +/** + * Iterate over all standard channel layouts. + * + * @param opaque a pointer where libavutil will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the standard channel layout or NULL when the iteration is + * finished + */ +const AVChannelLayout *av_channel_layout_standard(void **opaque); + +/** + * Free any allocated data in the channel layout and reset the channel + * count to 0. + * + * @param channel_layout the layout structure to be uninitialized + */ +void av_channel_layout_uninit(AVChannelLayout *channel_layout); + +/** + * Make a copy of a channel layout. This differs from just assigning src to dst + * in that it allocates and copies the map for AV_CHANNEL_ORDER_CUSTOM. + * + * @note the destination channel_layout will be always uninitialized before copy. + * + * @param dst destination channel layout + * @param src source channel layout + * @return 0 on success, a negative AVERROR on error. + */ +int av_channel_layout_copy(AVChannelLayout *dst, const AVChannelLayout *src); + +/** + * Get a human-readable string describing the channel layout properties. + * The string will be in the same format that is accepted by + * @ref av_channel_layout_from_string(), allowing to rebuild the same + * channel layout, except for opaque pointers. + * + * @param channel_layout channel layout to be described + * @param buf pre-allocated buffer where to put the generated string + * @param buf_size size in bytes of the buffer. + * @return amount of bytes needed to hold the output string, or a negative AVERROR + * on failure. If the returned value is bigger than buf_size, then the + * string was truncated. + */ +int av_channel_layout_describe(const AVChannelLayout *channel_layout, + char *buf, size_t buf_size); + +/** + * bprint variant of av_channel_layout_describe(). + * + * @note the string will be appended to the bprint buffer. + * @return 0 on success, or a negative AVERROR value on failure. + */ +int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout, + struct AVBPrint *bp); + +/** + * Get the channel with the given index in a channel layout. + * + * @param channel_layout input channel layout + * @param idx index of the channel + * @return channel with the index idx in channel_layout on success or + * AV_CHAN_NONE on failure (if idx is not valid or the channel order is + * unspecified) + */ +enum AVChannel +av_channel_layout_channel_from_index(const AVChannelLayout *channel_layout, unsigned int idx); + +/** + * Get the index of a given channel in a channel layout. In case multiple + * channels are found, only the first match will be returned. + * + * @param channel_layout input channel layout + * @param channel the channel whose index to obtain + * @return index of channel in channel_layout on success or a negative number if + * channel is not present in channel_layout. + */ +int av_channel_layout_index_from_channel(const AVChannelLayout *channel_layout, + enum AVChannel channel); + +/** + * Get the index in a channel layout of a channel described by the given string. + * In case multiple channels are found, only the first match will be returned. + * + * This function accepts channel names in the same format as + * @ref av_channel_from_string(). + * + * @param channel_layout input channel layout + * @param name string describing the channel whose index to obtain + * @return a channel index described by the given string, or a negative AVERROR + * value. + */ +int av_channel_layout_index_from_string(const AVChannelLayout *channel_layout, + const char *name); + +/** + * Get a channel described by the given string. + * + * This function accepts channel names in the same format as + * @ref av_channel_from_string(). + * + * @param channel_layout input channel layout + * @param name string describing the channel to obtain + * @return a channel described by the given string in channel_layout on success + * or AV_CHAN_NONE on failure (if the string is not valid or the channel + * order is unspecified) + */ +enum AVChannel +av_channel_layout_channel_from_string(const AVChannelLayout *channel_layout, + const char *name); + +/** + * Find out what channels from a given set are present in a channel layout, + * without regard for their positions. + * + * @param channel_layout input channel layout + * @param mask a combination of AV_CH_* representing a set of channels + * @return a bitfield representing all the channels from mask that are present + * in channel_layout + */ +uint64_t av_channel_layout_subset(const AVChannelLayout *channel_layout, + uint64_t mask); + +/** + * Check whether a channel layout is valid, i.e. can possibly describe audio + * data. + * + * @param channel_layout input channel layout + * @return 1 if channel_layout is valid, 0 otherwise. + */ +int av_channel_layout_check(const AVChannelLayout *channel_layout); + +/** + * Check whether two channel layouts are semantically the same, i.e. the same + * channels are present on the same positions in both. + * + * If one of the channel layouts is AV_CHANNEL_ORDER_UNSPEC, while the other is + * not, they are considered to be unequal. If both are AV_CHANNEL_ORDER_UNSPEC, + * they are considered equal iff the channel counts are the same in both. + * + * @param chl input channel layout + * @param chl1 input channel layout + * @return 0 if chl and chl1 are equal, 1 if they are not equal. A negative + * AVERROR code if one or both are invalid. + */ +int av_channel_layout_compare(const AVChannelLayout *chl, const AVChannelLayout *chl1); + +/** + * Return the order if the layout is n-th order standard-order ambisonic. + * The presence of optional extra non-diegetic channels at the end is not taken + * into account. + * + * @param channel_layout input channel layout + * @return the order of the layout, a negative error code otherwise. + */ +int av_channel_layout_ambisonic_order(const AVChannelLayout *channel_layout); + +/** + * The conversion must be lossless. + */ +#define AV_CHANNEL_LAYOUT_RETYPE_FLAG_LOSSLESS (1 << 0) + +/** + * The specified retype target order is ignored and the simplest possible + * (canonical) order is used for which the input layout can be losslessy + * represented. + */ +#define AV_CHANNEL_LAYOUT_RETYPE_FLAG_CANONICAL (1 << 1) + +/** + * Change the AVChannelOrder of a channel layout. + * + * Change of AVChannelOrder can be either lossless or lossy. In case of a + * lossless conversion all the channel designations and the associated channel + * names (if any) are kept. On a lossy conversion the channel names and channel + * designations might be lost depending on the capabilities of the desired + * AVChannelOrder. Note that some conversions are simply not possible in which + * case this function returns AVERROR(ENOSYS). + * + * The following conversions are supported: + * + * Any -> Custom : Always possible, always lossless. + * Any -> Unspecified: Always possible, lossless if channel designations + * are all unknown and channel names are not used, lossy otherwise. + * Custom -> Ambisonic : Possible if it contains ambisonic channels with + * optional non-diegetic channels in the end. Lossy if the channels have + * custom names, lossless otherwise. + * Custom -> Native : Possible if it contains native channels in native + * order. Lossy if the channels have custom names, lossless otherwise. + * + * On error this function keeps the original channel layout untouched. + * + * @param channel_layout channel layout which will be changed + * @param order the desired channel layout order + * @param flags a combination of AV_CHANNEL_LAYOUT_RETYPE_FLAG_* constants + * @return 0 if the conversion was successful and lossless or if the channel + * layout was already in the desired order + * >0 if the conversion was successful but lossy + * AVERROR(ENOSYS) if the conversion was not possible (or would be + * lossy and AV_CHANNEL_LAYOUT_RETYPE_FLAG_LOSSLESS was specified) + * AVERROR(EINVAL), AVERROR(ENOMEM) on error + */ +int av_channel_layout_retype(AVChannelLayout *channel_layout, enum AVChannelOrder order, int flags); + +/** + * @} + */ + +#endif /* AVUTIL_CHANNEL_LAYOUT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/common.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/common.h new file mode 100644 index 00000000..3b830daf --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/common.h @@ -0,0 +1,589 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * common internal and external API header + */ + +#ifndef AVUTIL_COMMON_H +#define AVUTIL_COMMON_H + +#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) && !defined(UINT64_C) +#error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "attributes.h" +#include "error.h" +#include "macros.h" +#include "version.h" + +#ifdef HAVE_AV_CONFIG_H +# include "config.h" +# include "intmath.h" +# include "internal.h" +#else +# include "mem.h" +#endif /* HAVE_AV_CONFIG_H */ + +//rounded division & shift +#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b)) +/* assume b>0 */ +#define ROUNDED_DIV(a,b) (((a)>=0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b)) +/* Fast a/(1<=0 and b>=0 */ +#define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b)) \ + : ((a) + (1<<(b)) - 1) >> (b)) +/* Backwards compat. */ +#define FF_CEIL_RSHIFT AV_CEIL_RSHIFT + +#define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b)) +#define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b)) + +/** + * Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they + * are not representable as absolute values of their type. This is the same + * as with *abs() + * @see FFNABS() + */ +#define FFABS(a) ((a) >= 0 ? (a) : (-(a))) +#define FFSIGN(a) ((a) > 0 ? 1 : -1) + +/** + * Negative Absolute value. + * this works for all integers of all types. + * As with many macros, this evaluates its argument twice, it thus must not have + * a sideeffect, that is FFNABS(x++) has undefined behavior. + */ +#define FFNABS(a) ((a) <= 0 ? (a) : (-(a))) + +/** + * Unsigned Absolute value. + * This takes the absolute value of a signed int and returns it as a unsigned. + * This also works with INT_MIN which would otherwise not be representable + * As with many macros, this evaluates its argument twice. + */ +#define FFABSU(a) ((a) <= 0 ? -(unsigned)(a) : (unsigned)(a)) +#define FFABS64U(a) ((a) <= 0 ? -(uint64_t)(a) : (uint64_t)(a)) + +/* misc math functions */ + +#ifndef av_ceil_log2 +# define av_ceil_log2 av_ceil_log2_c +#endif +#ifndef av_clip +# define av_clip av_clip_c +#endif +#ifndef av_clip64 +# define av_clip64 av_clip64_c +#endif +#ifndef av_clip_uint8 +# define av_clip_uint8 av_clip_uint8_c +#endif +#ifndef av_clip_int8 +# define av_clip_int8 av_clip_int8_c +#endif +#ifndef av_clip_uint16 +# define av_clip_uint16 av_clip_uint16_c +#endif +#ifndef av_clip_int16 +# define av_clip_int16 av_clip_int16_c +#endif +#ifndef av_clipl_int32 +# define av_clipl_int32 av_clipl_int32_c +#endif +#ifndef av_clip_intp2 +# define av_clip_intp2 av_clip_intp2_c +#endif +#ifndef av_clip_uintp2 +# define av_clip_uintp2 av_clip_uintp2_c +#endif +#ifndef av_sat_add32 +# define av_sat_add32 av_sat_add32_c +#endif +#ifndef av_sat_dadd32 +# define av_sat_dadd32 av_sat_dadd32_c +#endif +#ifndef av_sat_sub32 +# define av_sat_sub32 av_sat_sub32_c +#endif +#ifndef av_sat_dsub32 +# define av_sat_dsub32 av_sat_dsub32_c +#endif +#ifndef av_sat_add64 +# define av_sat_add64 av_sat_add64_c +#endif +#ifndef av_sat_sub64 +# define av_sat_sub64 av_sat_sub64_c +#endif +#ifndef av_clipf +# define av_clipf av_clipf_c +#endif +#ifndef av_clipd +# define av_clipd av_clipd_c +#endif +#ifndef av_zero_extend +# define av_zero_extend av_zero_extend_c +#endif +#ifndef av_popcount +# define av_popcount av_popcount_c +#endif +#ifndef av_popcount64 +# define av_popcount64 av_popcount64_c +#endif +#ifndef av_parity +# define av_parity av_parity_c +#endif + +#ifndef av_log2 +av_const int av_log2(unsigned v); +#endif + +#ifndef av_log2_16bit +av_const int av_log2_16bit(unsigned v); +#endif + +/** + * Clip a signed integer value into the amin-amax range. + * @param a value to clip + * @param amin minimum value of the clip range + * @param amax maximum value of the clip range + * @return clipped value + */ +static av_always_inline av_const int av_clip_c(int a, int amin, int amax) +{ +#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2 + if (amin > amax) abort(); +#endif + if (a < amin) return amin; + else if (a > amax) return amax; + else return a; +} + +/** + * Clip a signed 64bit integer value into the amin-amax range. + * @param a value to clip + * @param amin minimum value of the clip range + * @param amax maximum value of the clip range + * @return clipped value + */ +static av_always_inline av_const int64_t av_clip64_c(int64_t a, int64_t amin, int64_t amax) +{ +#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2 + if (amin > amax) abort(); +#endif + if (a < amin) return amin; + else if (a > amax) return amax; + else return a; +} + +/** + * Clip a signed integer value into the 0-255 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const uint8_t av_clip_uint8_c(int a) +{ + if (a&(~0xFF)) return (~a)>>31; + else return a; +} + +/** + * Clip a signed integer value into the -128,127 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const int8_t av_clip_int8_c(int a) +{ + if ((a+0x80U) & ~0xFF) return (a>>31) ^ 0x7F; + else return a; +} + +/** + * Clip a signed integer value into the 0-65535 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const uint16_t av_clip_uint16_c(int a) +{ + if (a&(~0xFFFF)) return (~a)>>31; + else return a; +} + +/** + * Clip a signed integer value into the -32768,32767 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const int16_t av_clip_int16_c(int a) +{ + if ((a+0x8000U) & ~0xFFFF) return (a>>31) ^ 0x7FFF; + else return a; +} + +/** + * Clip a signed 64-bit integer value into the -2147483648,2147483647 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a) +{ + if ((a+UINT64_C(0x80000000)) & ~UINT64_C(0xFFFFFFFF)) return (int32_t)((a>>63) ^ 0x7FFFFFFF); + else return (int32_t)a; +} + +/** + * Clip a signed integer into the -(2^p),(2^p-1) range. + * @param a value to clip + * @param p bit position to clip at + * @return clipped value + */ +static av_always_inline av_const int av_clip_intp2_c(int a, int p) +{ + if (((unsigned)a + (1U << p)) & ~((2U << p) - 1)) + return (a >> 31) ^ ((1 << p) - 1); + else + return a; +} + +/** + * Clip a signed integer to an unsigned power of two range. + * @param a value to clip + * @param p bit position to clip at + * @return clipped value + */ +static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p) +{ + if (a & ~((1U<> 31 & ((1U<= 2 + if (p > 31) abort(); +#endif + return a & ((1U << p) - 1); +} + +#if FF_API_MOD_UINTP2 +#ifndef av_mod_uintp2 +# define av_mod_uintp2 av_mod_uintp2_c +#endif +attribute_deprecated +static av_always_inline av_const unsigned av_mod_uintp2_c(unsigned a, unsigned p) +{ + return av_zero_extend_c(a, p); +} +#endif + +/** + * Add two signed 32-bit values with saturation. + * + * @param a one value + * @param b another value + * @return sum with signed saturation + */ +static av_always_inline int av_sat_add32_c(int a, int b) +{ + return av_clipl_int32((int64_t)a + b); +} + +/** + * Add a doubled value to another value with saturation at both stages. + * + * @param a first value + * @param b value doubled and added to a + * @return sum sat(a + sat(2*b)) with signed saturation + */ +static av_always_inline int av_sat_dadd32_c(int a, int b) +{ + return av_sat_add32(a, av_sat_add32(b, b)); +} + +/** + * Subtract two signed 32-bit values with saturation. + * + * @param a one value + * @param b another value + * @return difference with signed saturation + */ +static av_always_inline int av_sat_sub32_c(int a, int b) +{ + return av_clipl_int32((int64_t)a - b); +} + +/** + * Subtract a doubled value from another value with saturation at both stages. + * + * @param a first value + * @param b value doubled and subtracted from a + * @return difference sat(a - sat(2*b)) with signed saturation + */ +static av_always_inline int av_sat_dsub32_c(int a, int b) +{ + return av_sat_sub32(a, av_sat_add32(b, b)); +} + +/** + * Add two signed 64-bit values with saturation. + * + * @param a one value + * @param b another value + * @return sum with signed saturation + */ +static av_always_inline int64_t av_sat_add64_c(int64_t a, int64_t b) { +#if (!defined(__INTEL_COMPILER) && AV_GCC_VERSION_AT_LEAST(5,1)) || AV_HAS_BUILTIN(__builtin_add_overflow) + int64_t tmp; + return !__builtin_add_overflow(a, b, &tmp) ? tmp : (tmp < 0 ? INT64_MAX : INT64_MIN); +#else + int64_t s = a+(uint64_t)b; + if ((int64_t)(a^b | ~s^b) >= 0) + return INT64_MAX ^ (b >> 63); + return s; +#endif +} + +/** + * Subtract two signed 64-bit values with saturation. + * + * @param a one value + * @param b another value + * @return difference with signed saturation + */ +static av_always_inline int64_t av_sat_sub64_c(int64_t a, int64_t b) { +#if (!defined(__INTEL_COMPILER) && AV_GCC_VERSION_AT_LEAST(5,1)) || AV_HAS_BUILTIN(__builtin_sub_overflow) + int64_t tmp; + return !__builtin_sub_overflow(a, b, &tmp) ? tmp : (tmp < 0 ? INT64_MAX : INT64_MIN); +#else + if (b <= 0 && a >= INT64_MAX + b) + return INT64_MAX; + if (b >= 0 && a <= INT64_MIN + b) + return INT64_MIN; + return a - b; +#endif +} + +/** + * Clip a float value into the amin-amax range. + * If a is nan or -inf amin will be returned. + * If a is +inf amax will be returned. + * @param a value to clip + * @param amin minimum value of the clip range + * @param amax maximum value of the clip range + * @return clipped value + */ +static av_always_inline av_const float av_clipf_c(float a, float amin, float amax) +{ +#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2 + if (amin > amax) abort(); +#endif + return FFMIN(FFMAX(a, amin), amax); +} + +/** + * Clip a double value into the amin-amax range. + * If a is nan or -inf amin will be returned. + * If a is +inf amax will be returned. + * @param a value to clip + * @param amin minimum value of the clip range + * @param amax maximum value of the clip range + * @return clipped value + */ +static av_always_inline av_const double av_clipd_c(double a, double amin, double amax) +{ +#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2 + if (amin > amax) abort(); +#endif + return FFMIN(FFMAX(a, amin), amax); +} + +/** Compute ceil(log2(x)). + * @param x value used to compute ceil(log2(x)) + * @return computed ceiling of log2(x) + */ +static av_always_inline av_const int av_ceil_log2_c(int x) +{ + return av_log2((x - 1U) << 1); +} + +/** + * Count number of bits set to one in x + * @param x value to count bits of + * @return the number of bits set to one in x + */ +static av_always_inline av_const int av_popcount_c(uint32_t x) +{ + x -= (x >> 1) & 0x55555555; + x = (x & 0x33333333) + ((x >> 2) & 0x33333333); + x = (x + (x >> 4)) & 0x0F0F0F0F; + x += x >> 8; + return (x + (x >> 16)) & 0x3F; +} + +/** + * Count number of bits set to one in x + * @param x value to count bits of + * @return the number of bits set to one in x + */ +static av_always_inline av_const int av_popcount64_c(uint64_t x) +{ + return av_popcount((uint32_t)x) + av_popcount((uint32_t)(x >> 32)); +} + +static av_always_inline av_const int av_parity_c(uint32_t v) +{ + return av_popcount(v) & 1; +} + +/** + * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. + * + * @param val Output value, must be an lvalue of type uint32_t. + * @param GET_BYTE Expression reading one byte from the input. + * Evaluated up to 7 times (4 for the currently + * assigned Unicode range). With a memory buffer + * input, this could be *ptr++, or if you want to make sure + * that *ptr stops at the end of a NULL terminated string then + * *ptr ? *ptr++ : 0 + * @param ERROR Expression to be evaluated on invalid input, + * typically a goto statement. + * + * @warning ERROR should not contain a loop control statement which + * could interact with the internal while loop, and should force an + * exit from the macro code (e.g. through a goto or a return) in order + * to prevent undefined results. + */ +#define GET_UTF8(val, GET_BYTE, ERROR)\ + val= (GET_BYTE);\ + {\ + uint32_t top = (val & 128) >> 1;\ + if ((val & 0xc0) == 0x80 || val >= 0xFE)\ + {ERROR}\ + while (val & top) {\ + unsigned int tmp = (GET_BYTE) - 128;\ + if(tmp>>6)\ + {ERROR}\ + val= (val<<6) + tmp;\ + top <<= 5;\ + }\ + val &= (top << 1) - 1;\ + } + +/** + * Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form. + * + * @param val Output value, must be an lvalue of type uint32_t. + * @param GET_16BIT Expression returning two bytes of UTF-16 data converted + * to native byte order. Evaluated one or two times. + * @param ERROR Expression to be evaluated on invalid input, + * typically a goto statement. + */ +#define GET_UTF16(val, GET_16BIT, ERROR)\ + val = (GET_16BIT);\ + {\ + unsigned int hi = val - 0xD800;\ + if (hi < 0x800) {\ + val = (GET_16BIT) - 0xDC00;\ + if (val > 0x3FFU || hi > 0x3FFU)\ + {ERROR}\ + val += (hi<<10) + 0x10000;\ + }\ + }\ + +/** + * @def PUT_UTF8(val, tmp, PUT_BYTE) + * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long). + * @param val is an input-only argument and should be of type uint32_t. It holds + * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If + * val is given as a function it is executed only once. + * @param tmp is a temporary variable and should be of type uint8_t. It + * represents an intermediate value during conversion that is to be + * output by PUT_BYTE. + * @param PUT_BYTE writes the converted UTF-8 bytes to any proper destination. + * It could be a function or a statement, and uses tmp as the input byte. + * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be + * executed up to 4 times for values in the valid UTF-8 range and up to + * 7 times in the general case, depending on the length of the converted + * Unicode character. + */ +#define PUT_UTF8(val, tmp, PUT_BYTE)\ + {\ + int bytes, shift;\ + uint32_t in = val;\ + if (in < 0x80) {\ + tmp = in;\ + PUT_BYTE\ + } else {\ + bytes = (av_log2(in) + 4) / 5;\ + shift = (bytes - 1) * 6;\ + tmp = (256 - (256 >> bytes)) | (in >> shift);\ + PUT_BYTE\ + while (shift >= 6) {\ + shift -= 6;\ + tmp = 0x80 | ((in >> shift) & 0x3f);\ + PUT_BYTE\ + }\ + }\ + } + +/** + * @def PUT_UTF16(val, tmp, PUT_16BIT) + * Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes). + * @param val is an input-only argument and should be of type uint32_t. It holds + * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If + * val is given as a function it is executed only once. + * @param tmp is a temporary variable and should be of type uint16_t. It + * represents an intermediate value during conversion that is to be + * output by PUT_16BIT. + * @param PUT_16BIT writes the converted UTF-16 data to any proper destination + * in desired endianness. It could be a function or a statement, and uses tmp + * as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" + * PUT_BYTE will be executed 1 or 2 times depending on input character. + */ +#define PUT_UTF16(val, tmp, PUT_16BIT)\ + {\ + uint32_t in = val;\ + if (in < 0x10000) {\ + tmp = in;\ + PUT_16BIT\ + } else {\ + tmp = 0xD800 | ((in - 0x10000) >> 10);\ + PUT_16BIT\ + tmp = 0xDC00 | ((in - 0x10000) & 0x3FF);\ + PUT_16BIT\ + }\ + }\ + +#endif /* AVUTIL_COMMON_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/cpu.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/cpu.h new file mode 100644 index 00000000..ba6c234e --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/cpu.h @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2000, 2001, 2002 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CPU_H +#define AVUTIL_CPU_H + +#include +#include "version.h" + +#define AV_CPU_FLAG_FORCE 0x80000000 /* force usage of selected flags (OR) */ + + /* lower 16 bits - CPU features */ +#define AV_CPU_FLAG_MMX 0x0001 ///< standard MMX +#define AV_CPU_FLAG_MMXEXT 0x0002 ///< SSE integer functions or AMD MMX ext +#define AV_CPU_FLAG_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext +#define AV_CPU_FLAG_3DNOW 0x0004 ///< AMD 3DNOW +#define AV_CPU_FLAG_SSE 0x0008 ///< SSE functions +#define AV_CPU_FLAG_SSE2 0x0010 ///< PIV SSE2 functions +#define AV_CPU_FLAG_SSE2SLOW 0x40000000 ///< SSE2 supported, but usually not faster + ///< than regular MMX/SSE (e.g. Core1) +#define AV_CPU_FLAG_3DNOWEXT 0x0020 ///< AMD 3DNowExt +#define AV_CPU_FLAG_SSE3 0x0040 ///< Prescott SSE3 functions +#define AV_CPU_FLAG_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster + ///< than regular MMX/SSE (e.g. Core1) +#define AV_CPU_FLAG_SSSE3 0x0080 ///< Conroe SSSE3 functions +#define AV_CPU_FLAG_SSSE3SLOW 0x4000000 ///< SSSE3 supported, but usually not faster +#define AV_CPU_FLAG_ATOM 0x10000000 ///< Atom processor, some SSSE3 instructions are slower +#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions +#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions +#define AV_CPU_FLAG_AESNI 0x80000 ///< Advanced Encryption Standard functions +#define AV_CPU_FLAG_AVX 0x4000 ///< AVX functions: requires OS support even if YMM registers aren't used +#define AV_CPU_FLAG_AVXSLOW 0x8000000 ///< AVX supported, but slow when using YMM registers (e.g. Bulldozer) +#define AV_CPU_FLAG_XOP 0x0400 ///< Bulldozer XOP functions +#define AV_CPU_FLAG_FMA4 0x0800 ///< Bulldozer FMA4 functions +#define AV_CPU_FLAG_CMOV 0x1000 ///< supports cmov instruction +#define AV_CPU_FLAG_AVX2 0x8000 ///< AVX2 functions: requires OS support even if YMM registers aren't used +#define AV_CPU_FLAG_FMA3 0x10000 ///< Haswell FMA3 functions +#define AV_CPU_FLAG_BMI1 0x20000 ///< Bit Manipulation Instruction Set 1 +#define AV_CPU_FLAG_BMI2 0x40000 ///< Bit Manipulation Instruction Set 2 +#define AV_CPU_FLAG_AVX512 0x100000 ///< AVX-512 functions: requires OS support even if YMM/ZMM registers aren't used +#define AV_CPU_FLAG_AVX512ICL 0x200000 ///< F/CD/BW/DQ/VL/VNNI/IFMA/VBMI/VBMI2/VPOPCNTDQ/BITALG/GFNI/VAES/VPCLMULQDQ +#define AV_CPU_FLAG_SLOW_GATHER 0x2000000 ///< CPU has slow gathers. + +#define AV_CPU_FLAG_ALTIVEC 0x0001 ///< standard +#define AV_CPU_FLAG_VSX 0x0002 ///< ISA 2.06 +#define AV_CPU_FLAG_POWER8 0x0004 ///< ISA 2.07 + +#define AV_CPU_FLAG_ARMV5TE (1 << 0) +#define AV_CPU_FLAG_ARMV6 (1 << 1) +#define AV_CPU_FLAG_ARMV6T2 (1 << 2) +#define AV_CPU_FLAG_VFP (1 << 3) +#define AV_CPU_FLAG_VFPV3 (1 << 4) +#define AV_CPU_FLAG_NEON (1 << 5) +#define AV_CPU_FLAG_ARMV8 (1 << 6) +#define AV_CPU_FLAG_VFP_VM (1 << 7) ///< VFPv2 vector mode, deprecated in ARMv7-A and unavailable in various CPUs implementations +#define AV_CPU_FLAG_DOTPROD (1 << 8) +#define AV_CPU_FLAG_I8MM (1 << 9) +#define AV_CPU_FLAG_SETEND (1 <<16) + +#define AV_CPU_FLAG_MMI (1 << 0) +#define AV_CPU_FLAG_MSA (1 << 1) + +//Loongarch SIMD extension. +#define AV_CPU_FLAG_LSX (1 << 0) +#define AV_CPU_FLAG_LASX (1 << 1) + +// RISC-V extensions +#define AV_CPU_FLAG_RVI (1 << 0) ///< I (full GPR bank) +#if FF_API_RISCV_FD_ZBA +#define AV_CPU_FLAG_RVF (1 << 1) ///< F (single precision FP) +#define AV_CPU_FLAG_RVD (1 << 2) ///< D (double precision FP) +#endif +#define AV_CPU_FLAG_RVV_I32 (1 << 3) ///< Vectors of 8/16/32-bit int's */ +#define AV_CPU_FLAG_RVV_F32 (1 << 4) ///< Vectors of float's */ +#define AV_CPU_FLAG_RVV_I64 (1 << 5) ///< Vectors of 64-bit int's */ +#define AV_CPU_FLAG_RVV_F64 (1 << 6) ///< Vectors of double's +#define AV_CPU_FLAG_RVB_BASIC (1 << 7) ///< Basic bit-manipulations +#if FF_API_RISCV_FD_ZBA +#define AV_CPU_FLAG_RVB_ADDR (1 << 8) ///< Address bit-manipulations +#endif +#define AV_CPU_FLAG_RV_ZVBB (1 << 9) ///< Vector basic bit-manipulations +#define AV_CPU_FLAG_RV_MISALIGNED (1 <<10) ///< Fast misaligned accesses +#define AV_CPU_FLAG_RVB (1 <<11) ///< B (bit manipulations) + +/** + * Return the flags which specify extensions supported by the CPU. + * The returned value is affected by av_force_cpu_flags() if that was used + * before. So av_get_cpu_flags() can easily be used in an application to + * detect the enabled cpu flags. + */ +int av_get_cpu_flags(void); + +/** + * Disables cpu detection and forces the specified flags. + * -1 is a special case that disables forcing of specific flags. + */ +void av_force_cpu_flags(int flags); + +/** + * Parse CPU caps from a string and update the given AV_CPU_* flags based on that. + * + * @return negative on error. + */ +int av_parse_cpu_caps(unsigned *flags, const char *s); + +/** + * @return the number of logical CPU cores present. + */ +int av_cpu_count(void); + +/** + * Overrides cpu count detection and forces the specified count. + * Count < 1 disables forcing of specific count. + */ +void av_cpu_force_count(int count); + +/** + * Get the maximum data alignment that may be required by FFmpeg. + * + * Note that this is affected by the build configuration and the CPU flags mask, + * so e.g. if the CPU supports AVX, but libavutil has been built with + * --disable-avx or the AV_CPU_FLAG_AVX flag has been disabled through + * av_set_cpu_flags_mask(), then this function will behave as if AVX is not + * present. + */ +size_t av_cpu_max_align(void); + +#endif /* AVUTIL_CPU_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/crc.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/crc.h new file mode 100644 index 00000000..7f59812a --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/crc.h @@ -0,0 +1,102 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_crc32 + * Public header for CRC hash function implementation. + */ + +#ifndef AVUTIL_CRC_H +#define AVUTIL_CRC_H + +#include +#include +#include "attributes.h" + +/** + * @defgroup lavu_crc32 CRC + * @ingroup lavu_hash + * CRC (Cyclic Redundancy Check) hash function implementation. + * + * This module supports numerous CRC polynomials, in addition to the most + * widely used CRC-32-IEEE. See @ref AVCRCId for a list of available + * polynomials. + * + * @{ + */ + +typedef uint32_t AVCRC; + +typedef enum { + AV_CRC_8_ATM, + AV_CRC_16_ANSI, + AV_CRC_16_CCITT, + AV_CRC_32_IEEE, + AV_CRC_32_IEEE_LE, /*< reversed bitorder version of AV_CRC_32_IEEE */ + AV_CRC_16_ANSI_LE, /*< reversed bitorder version of AV_CRC_16_ANSI */ + AV_CRC_24_IEEE, + AV_CRC_8_EBU, + AV_CRC_MAX, /*< Not part of public API! Do not use outside libavutil. */ +}AVCRCId; + +/** + * Initialize a CRC table. + * @param ctx must be an array of size sizeof(AVCRC)*257 or sizeof(AVCRC)*1024 + * @param le If 1, the lowest bit represents the coefficient for the highest + * exponent of the corresponding polynomial (both for poly and + * actual CRC). + * If 0, you must swap the CRC parameter and the result of av_crc + * if you need the standard representation (can be simplified in + * most cases to e.g. bswap16): + * av_bswap32(crc << (32-bits)) + * @param bits number of bits for the CRC + * @param poly generator polynomial without the x**bits coefficient, in the + * representation as specified by le + * @param ctx_size size of ctx in bytes + * @return <0 on failure + */ +int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size); + +/** + * Get an initialized standard CRC table. + * @param crc_id ID of a standard CRC + * @return a pointer to the CRC table or NULL on failure + */ +const AVCRC *av_crc_get_table(AVCRCId crc_id); + +/** + * Calculate the CRC of a block. + * @param ctx initialized AVCRC array (see av_crc_init()) + * @param crc CRC of previous blocks if any or initial value for CRC + * @param buffer buffer whose CRC to calculate + * @param length length of the buffer + * @return CRC updated with the data from the given block + * + * @see av_crc_init() "le" parameter + */ +uint32_t av_crc(const AVCRC *ctx, uint32_t crc, + const uint8_t *buffer, size_t length) av_pure; + +/** + * @} + */ + +#endif /* AVUTIL_CRC_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/csp.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/csp.h new file mode 100644 index 00000000..73bce52b --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/csp.h @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2015 Kevin Wheatley + * Copyright (c) 2016 Ronald S. Bultje + * Copyright (c) 2023 Leo Izen + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CSP_H +#define AVUTIL_CSP_H + +#include "pixfmt.h" +#include "rational.h" + +/** + * @file + * Colorspace value utility functions for libavutil. + * @ingroup lavu_math_csp + * @author Ronald S. Bultje + * @author Leo Izen + * @author Kevin Wheatley + */ + +/** + * @defgroup lavu_math_csp Colorspace Utility + * @ingroup lavu_math + * @{ + */ + +/** + * Struct containing luma coefficients to be used for RGB to YUV/YCoCg, or similar + * calculations. + */ +typedef struct AVLumaCoefficients { + AVRational cr, cg, cb; +} AVLumaCoefficients; + +/** + * Struct containing chromaticity x and y values for the standard CIE 1931 + * chromaticity definition. + */ +typedef struct AVCIExy { + AVRational x, y; +} AVCIExy; + +/** + * Struct defining the red, green, and blue primary locations in terms of CIE + * 1931 chromaticity x and y. + */ +typedef struct AVPrimaryCoefficients { + AVCIExy r, g, b; +} AVPrimaryCoefficients; + +/** + * Struct defining white point location in terms of CIE 1931 chromaticity x + * and y. + */ +typedef AVCIExy AVWhitepointCoefficients; + +/** + * Struct that contains both white point location and primaries location, providing + * the complete description of a color gamut. + */ +typedef struct AVColorPrimariesDesc { + AVWhitepointCoefficients wp; + AVPrimaryCoefficients prim; +} AVColorPrimariesDesc; + +/** + * Function pointer representing a double -> double transfer function that performs + * an EOTF transfer inversion. This function outputs linear light. + */ +typedef double (*av_csp_trc_function)(double); + +/** + * Retrieves the Luma coefficients necessary to construct a conversion matrix + * from an enum constant describing the colorspace. + * @param csp An enum constant indicating YUV or similar colorspace. + * @return The Luma coefficients associated with that colorspace, or NULL + * if the constant is unknown to libavutil. + */ +const AVLumaCoefficients *av_csp_luma_coeffs_from_avcsp(enum AVColorSpace csp); + +/** + * Retrieves a complete gamut description from an enum constant describing the + * color primaries. + * @param prm An enum constant indicating primaries + * @return A description of the colorspace gamut associated with that enum + * constant, or NULL if the constant is unknown to libavutil. + */ +const AVColorPrimariesDesc *av_csp_primaries_desc_from_id(enum AVColorPrimaries prm); + +/** + * Detects which enum AVColorPrimaries constant corresponds to the given complete + * gamut description. + * @see enum AVColorPrimaries + * @param prm A description of the colorspace gamut + * @return The enum constant associated with this gamut, or + * AVCOL_PRI_UNSPECIFIED if no clear match can be idenitified. + */ +enum AVColorPrimaries av_csp_primaries_id_from_desc(const AVColorPrimariesDesc *prm); + +/** + * Determine a suitable 'gamma' value to match the supplied + * AVColorTransferCharacteristic. + * + * See Apple Technical Note TN2257 (https://developer.apple.com/library/mac/technotes/tn2257/_index.html) + * + * This function returns the gamma exponent for the OETF. For example, sRGB is approximated + * by gamma 2.2, not by gamma 0.45455. + * + * @return Will return an approximation to the simple gamma function matching + * the supplied Transfer Characteristic, Will return 0.0 for any + * we cannot reasonably match against. + */ +double av_csp_approximate_trc_gamma(enum AVColorTransferCharacteristic trc); + +/** + * Determine the function needed to apply the given + * AVColorTransferCharacteristic to linear input. + * + * The function returned should expect a nominal domain and range of [0.0-1.0] + * values outside of this range maybe valid depending on the chosen + * characteristic function. + * + * @return Will return pointer to the function matching the + * supplied Transfer Characteristic. If unspecified will + * return NULL: + */ +av_csp_trc_function av_csp_trc_func_from_id(enum AVColorTransferCharacteristic trc); + +/** + * @} + */ + +#endif /* AVUTIL_CSP_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/des.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/des.h new file mode 100644 index 00000000..3a3e6fa4 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/des.h @@ -0,0 +1,81 @@ +/* + * DES encryption/decryption + * Copyright (c) 2007 Reimar Doeffinger + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_DES_H +#define AVUTIL_DES_H + +#include + +/** + * @defgroup lavu_des DES + * @ingroup lavu_crypto + * @{ + */ + +typedef struct AVDES { + uint64_t round_keys[3][16]; + int triple_des; +} AVDES; + +/** + * Allocate an AVDES context. + */ +AVDES *av_des_alloc(void); + +/** + * @brief Initializes an AVDES context. + * + * @param d pointer to a AVDES structure to initialize + * @param key pointer to the key to use + * @param key_bits must be 64 or 192 + * @param decrypt 0 for encryption/CBC-MAC, 1 for decryption + * @return zero on success, negative value otherwise + */ +int av_des_init(struct AVDES *d, const uint8_t *key, int key_bits, int decrypt); + +/** + * @brief Encrypts / decrypts using the DES algorithm. + * + * @param d pointer to the AVDES structure + * @param dst destination array, can be equal to src, must be 8-byte aligned + * @param src source array, can be equal to dst, must be 8-byte aligned, may be NULL + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used, + * must be 8-byte aligned + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_des_crypt(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); + +/** + * @brief Calculates CBC-MAC using the DES algorithm. + * + * @param d pointer to the AVDES structure + * @param dst destination array, can be equal to src, must be 8-byte aligned + * @param src source array, can be equal to dst, must be 8-byte aligned, may be NULL + * @param count number of 8 byte blocks + */ +void av_des_mac(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count); + +/** + * @} + */ + +#endif /* AVUTIL_DES_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/detection_bbox.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/detection_bbox.h new file mode 100644 index 00000000..01198805 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/detection_bbox.h @@ -0,0 +1,108 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_DETECTION_BBOX_H +#define AVUTIL_DETECTION_BBOX_H + +#include "rational.h" +#include "avassert.h" +#include "frame.h" + +typedef struct AVDetectionBBox { + /** + * Distance in pixels from the left/top edge of the frame, + * together with width and height, defining the bounding box. + */ + int x; + int y; + int w; + int h; + +#define AV_DETECTION_BBOX_LABEL_NAME_MAX_SIZE 64 + + /** + * Detect result with confidence + */ + char detect_label[AV_DETECTION_BBOX_LABEL_NAME_MAX_SIZE]; + AVRational detect_confidence; + + /** + * At most 4 classifications based on the detected bounding box. + * For example, we can get max 4 different attributes with 4 different + * DNN models on one bounding box. + * classify_count is zero if no classification. + */ +#define AV_NUM_DETECTION_BBOX_CLASSIFY 4 + uint32_t classify_count; + char classify_labels[AV_NUM_DETECTION_BBOX_CLASSIFY][AV_DETECTION_BBOX_LABEL_NAME_MAX_SIZE]; + AVRational classify_confidences[AV_NUM_DETECTION_BBOX_CLASSIFY]; +} AVDetectionBBox; + +typedef struct AVDetectionBBoxHeader { + /** + * Information about how the bounding box is generated. + * for example, the DNN model name. + */ + char source[256]; + + /** + * Number of bounding boxes in the array. + */ + uint32_t nb_bboxes; + + /** + * Offset in bytes from the beginning of this structure at which + * the array of bounding boxes starts. + */ + size_t bboxes_offset; + + /** + * Size of each bounding box in bytes. + */ + size_t bbox_size; +} AVDetectionBBoxHeader; + +/* + * Get the bounding box at the specified {@code idx}. Must be between 0 and nb_bboxes. + */ +static av_always_inline AVDetectionBBox * +av_get_detection_bbox(const AVDetectionBBoxHeader *header, unsigned int idx) +{ + av_assert0(idx < header->nb_bboxes); + return (AVDetectionBBox *)((uint8_t *)header + header->bboxes_offset + + idx * header->bbox_size); +} + +/** + * Allocates memory for AVDetectionBBoxHeader, plus an array of {@code nb_bboxes} + * AVDetectionBBox, and initializes the variables. + * Can be freed with a normal av_free() call. + * + * @param nb_bboxes number of AVDetectionBBox structures to allocate + * @param out_size if non-NULL, the size in bytes of the resulting data array is + * written here. + */ +AVDetectionBBoxHeader *av_detection_bbox_alloc(uint32_t nb_bboxes, size_t *out_size); + +/** + * Allocates memory for AVDetectionBBoxHeader, plus an array of {@code nb_bboxes} + * AVDetectionBBox, in the given AVFrame {@code frame} as AVFrameSideData of type + * AV_FRAME_DATA_DETECTION_BBOXES and initializes the variables. + */ +AVDetectionBBoxHeader *av_detection_bbox_create_side_data(AVFrame *frame, uint32_t nb_bboxes); +#endif diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/dict.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/dict.h new file mode 100644 index 00000000..713c9e36 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/dict.h @@ -0,0 +1,241 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Public dictionary API. + * @deprecated + * AVDictionary is provided for compatibility with libav. It is both in + * implementation as well as API inefficient. It does not scale and is + * extremely slow with large dictionaries. + * It is recommended that new code uses our tree container from tree.c/h + * where applicable, which uses AVL trees to achieve O(log n) performance. + */ + +#ifndef AVUTIL_DICT_H +#define AVUTIL_DICT_H + +#include + +/** + * @addtogroup lavu_dict AVDictionary + * @ingroup lavu_data + * + * @brief Simple key:value store + * + * @{ + * Dictionaries are used for storing key-value pairs. + * + * - To **create an AVDictionary**, simply pass an address of a NULL + * pointer to av_dict_set(). NULL can be used as an empty dictionary + * wherever a pointer to an AVDictionary is required. + * - To **insert an entry**, use av_dict_set(). + * - Use av_dict_get() to **retrieve an entry**. + * - To **iterate over all entries**, use av_dict_iterate(). + * - In order to **free the dictionary and all its contents**, use av_dict_free(). + * + @code + AVDictionary *d = NULL; // "create" an empty dictionary + AVDictionaryEntry *t = NULL; + + av_dict_set(&d, "foo", "bar", 0); // add an entry + + char *k = av_strdup("key"); // if your strings are already allocated, + char *v = av_strdup("value"); // you can avoid copying them like this + av_dict_set(&d, k, v, AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL); + + while ((t = av_dict_iterate(d, t))) { + <....> // iterate over all entries in d + } + av_dict_free(&d); + @endcode + */ + +/** + * @name AVDictionary Flags + * Flags that influence behavior of the matching of keys or insertion to the dictionary. + * @{ + */ +#define AV_DICT_MATCH_CASE 1 /**< Only get an entry with exact-case key match. Only relevant in av_dict_get(). */ +#define AV_DICT_IGNORE_SUFFIX 2 /**< Return first entry in a dictionary whose first part corresponds to the search key, + ignoring the suffix of the found key string. Only relevant in av_dict_get(). */ +#define AV_DICT_DONT_STRDUP_KEY 4 /**< Take ownership of a key that's been + allocated with av_malloc() or another memory allocation function. */ +#define AV_DICT_DONT_STRDUP_VAL 8 /**< Take ownership of a value that's been + allocated with av_malloc() or another memory allocation function. */ +#define AV_DICT_DONT_OVERWRITE 16 /**< Don't overwrite existing entries. */ +#define AV_DICT_APPEND 32 /**< If the entry already exists, append to it. Note that no + delimiter is added, the strings are simply concatenated. */ +#define AV_DICT_MULTIKEY 64 /**< Allow to store several equal keys in the dictionary */ +/** + * @} + */ + +typedef struct AVDictionaryEntry { + char *key; + char *value; +} AVDictionaryEntry; + +typedef struct AVDictionary AVDictionary; + +/** + * Get a dictionary entry with matching key. + * + * The returned entry key or value must not be changed, or it will + * cause undefined behavior. + * + * @param prev Set to the previous matching element to find the next. + * If set to NULL the first matching element is returned. + * @param key Matching key + * @param flags A collection of AV_DICT_* flags controlling how the + * entry is retrieved + * + * @return Found entry or NULL in case no matching entry was found in the dictionary + */ +AVDictionaryEntry *av_dict_get(const AVDictionary *m, const char *key, + const AVDictionaryEntry *prev, int flags); + +/** + * Iterate over a dictionary + * + * Iterates through all entries in the dictionary. + * + * @warning The returned AVDictionaryEntry key/value must not be changed. + * + * @warning As av_dict_set() invalidates all previous entries returned + * by this function, it must not be called while iterating over the dict. + * + * Typical usage: + * @code + * const AVDictionaryEntry *e = NULL; + * while ((e = av_dict_iterate(m, e))) { + * // ... + * } + * @endcode + * + * @param m The dictionary to iterate over + * @param prev Pointer to the previous AVDictionaryEntry, NULL initially + * + * @retval AVDictionaryEntry* The next element in the dictionary + * @retval NULL No more elements in the dictionary + */ +const AVDictionaryEntry *av_dict_iterate(const AVDictionary *m, + const AVDictionaryEntry *prev); + +/** + * Get number of entries in dictionary. + * + * @param m dictionary + * @return number of entries in dictionary + */ +int av_dict_count(const AVDictionary *m); + +/** + * Set the given entry in *pm, overwriting an existing entry. + * + * Note: If AV_DICT_DONT_STRDUP_KEY or AV_DICT_DONT_STRDUP_VAL is set, + * these arguments will be freed on error. + * + * @warning Adding a new entry to a dictionary invalidates all existing entries + * previously returned with av_dict_get() or av_dict_iterate(). + * + * @param pm Pointer to a pointer to a dictionary struct. If *pm is NULL + * a dictionary struct is allocated and put in *pm. + * @param key Entry key to add to *pm (will either be av_strduped or added as a new key depending on flags) + * @param value Entry value to add to *pm (will be av_strduped or added as a new key depending on flags). + * Passing a NULL value will cause an existing entry to be deleted. + * + * @return >= 0 on success otherwise an error code <0 + */ +int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags); + +/** + * Convenience wrapper for av_dict_set() that converts the value to a string + * and stores it. + * + * Note: If ::AV_DICT_DONT_STRDUP_KEY is set, key will be freed on error. + */ +int av_dict_set_int(AVDictionary **pm, const char *key, int64_t value, int flags); + +/** + * Parse the key/value pairs list and add the parsed entries to a dictionary. + * + * In case of failure, all the successfully set entries are stored in + * *pm. You may need to manually free the created dictionary. + * + * @param key_val_sep A 0-terminated list of characters used to separate + * key from value + * @param pairs_sep A 0-terminated list of characters used to separate + * two pairs from each other + * @param flags Flags to use when adding to the dictionary. + * ::AV_DICT_DONT_STRDUP_KEY and ::AV_DICT_DONT_STRDUP_VAL + * are ignored since the key/value tokens will always + * be duplicated. + * + * @return 0 on success, negative AVERROR code on failure + */ +int av_dict_parse_string(AVDictionary **pm, const char *str, + const char *key_val_sep, const char *pairs_sep, + int flags); + +/** + * Copy entries from one AVDictionary struct into another. + * + * @note Metadata is read using the ::AV_DICT_IGNORE_SUFFIX flag + * + * @param dst Pointer to a pointer to a AVDictionary struct to copy into. If *dst is NULL, + * this function will allocate a struct for you and put it in *dst + * @param src Pointer to the source AVDictionary struct to copy items from. + * @param flags Flags to use when setting entries in *dst + * + * @return 0 on success, negative AVERROR code on failure. If dst was allocated + * by this function, callers should free the associated memory. + */ +int av_dict_copy(AVDictionary **dst, const AVDictionary *src, int flags); + +/** + * Free all the memory allocated for an AVDictionary struct + * and all keys and values. + */ +void av_dict_free(AVDictionary **m); + +/** + * Get dictionary entries as a string. + * + * Create a string containing dictionary's entries. + * Such string may be passed back to av_dict_parse_string(). + * @note String is escaped with backslashes ('\'). + * + * @warning Separators cannot be neither '\\' nor '\0'. They also cannot be the same. + * + * @param[in] m The dictionary + * @param[out] buffer Pointer to buffer that will be allocated with string containg entries. + * Buffer must be freed by the caller when is no longer needed. + * @param[in] key_val_sep Character used to separate key from value + * @param[in] pairs_sep Character used to separate two pairs from each other + * + * @return >= 0 on success, negative on error + */ +int av_dict_get_string(const AVDictionary *m, char **buffer, + const char key_val_sep, const char pairs_sep); + +/** + * @} + */ + +#endif /* AVUTIL_DICT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/display.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/display.h new file mode 100644 index 00000000..50f2b44c --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/display.h @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2014 Vittorio Giovara + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_video_display + * Display matrix + */ + +#ifndef AVUTIL_DISPLAY_H +#define AVUTIL_DISPLAY_H + +#include + +/** + * @defgroup lavu_video_display Display transformation matrix functions + * @ingroup lavu_video + * + * The display transformation matrix specifies an affine transformation that + * should be applied to video frames for correct presentation. It is compatible + * with the matrices stored in the ISO/IEC 14496-12 container format. + * + * The data is a 3x3 matrix represented as a 9-element array: + * + * @code{.unparsed} + * | a b u | + * (a, b, u, c, d, v, x, y, w) -> | c d v | + * | x y w | + * @endcode + * + * All numbers are stored in native endianness, as 16.16 fixed-point values, + * except for u, v and w, which are stored as 2.30 fixed-point values. + * + * The transformation maps a point (p, q) in the source (pre-transformation) + * frame to the point (p', q') in the destination (post-transformation) frame as + * follows: + * + * @code{.unparsed} + * | a b u | + * (p, q, 1) . | c d v | = z * (p', q', 1) + * | x y w | + * @endcode + * + * The transformation can also be more explicitly written in components as + * follows: + * + * @code{.unparsed} + * p' = (a * p + c * q + x) / z; + * q' = (b * p + d * q + y) / z; + * z = u * p + v * q + w + * @endcode + * + * @{ + */ + +/** + * Extract the rotation component of the transformation matrix. + * + * @param matrix the transformation matrix + * @return the angle (in degrees) by which the transformation rotates the frame + * counterclockwise. The angle will be in range [-180.0, 180.0], + * or NaN if the matrix is singular. + * + * @note floating point numbers are inherently inexact, so callers are + * recommended to round the return value to nearest integer before use. + */ +double av_display_rotation_get(const int32_t matrix[9]); + +/** + * Initialize a transformation matrix describing a pure clockwise + * rotation by the specified angle (in degrees). + * + * @param[out] matrix a transformation matrix (will be fully overwritten + * by this function) + * @param angle rotation angle in degrees. + */ +void av_display_rotation_set(int32_t matrix[9], double angle); + +/** + * Flip the input matrix horizontally and/or vertically. + * + * @param[in,out] matrix a transformation matrix + * @param hflip whether the matrix should be flipped horizontally + * @param vflip whether the matrix should be flipped vertically + */ +void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip); + +/** + * @} + */ + +#endif /* AVUTIL_DISPLAY_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/dovi_meta.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/dovi_meta.h new file mode 100644 index 00000000..5e8a1e43 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/dovi_meta.h @@ -0,0 +1,396 @@ +/* + * Copyright (c) 2020 Vacing Fang + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * DOVI configuration + */ + + +#ifndef AVUTIL_DOVI_META_H +#define AVUTIL_DOVI_META_H + +#include +#include + +#include "rational.h" +#include "csp.h" + +/* + * DOVI configuration + * ref: dolby-vision-bitstreams-within-the-iso-base-media-file-format-v2.1.2 + dolby-vision-bitstreams-in-mpeg-2-transport-stream-multiplex-v1.2 + * @code + * uint8_t dv_version_major, the major version number that the stream complies with + * uint8_t dv_version_minor, the minor version number that the stream complies with + * uint8_t dv_profile, the Dolby Vision profile + * uint8_t dv_level, the Dolby Vision level + * uint8_t rpu_present_flag + * uint8_t el_present_flag + * uint8_t bl_present_flag + * uint8_t dv_bl_signal_compatibility_id + * uint8_t dv_md_compression, the compression method in use + * @endcode + * + * @note The struct must be allocated with av_dovi_alloc() and + * its size is not a part of the public ABI. + */ +typedef struct AVDOVIDecoderConfigurationRecord { + uint8_t dv_version_major; + uint8_t dv_version_minor; + uint8_t dv_profile; + uint8_t dv_level; + uint8_t rpu_present_flag; + uint8_t el_present_flag; + uint8_t bl_present_flag; + uint8_t dv_bl_signal_compatibility_id; + uint8_t dv_md_compression; +} AVDOVIDecoderConfigurationRecord; + +enum AVDOVICompression { + AV_DOVI_COMPRESSION_NONE = 0, + AV_DOVI_COMPRESSION_LIMITED = 1, + AV_DOVI_COMPRESSION_RESERVED = 2, + AV_DOVI_COMPRESSION_EXTENDED = 3, +}; + +/** + * Allocate a AVDOVIDecoderConfigurationRecord structure and initialize its + * fields to default values. + * + * @return the newly allocated struct or NULL on failure + */ +AVDOVIDecoderConfigurationRecord *av_dovi_alloc(size_t *size); + +/** + * Dolby Vision RPU data header. + * + * @note sizeof(AVDOVIRpuDataHeader) is not part of the public ABI. + */ +typedef struct AVDOVIRpuDataHeader { + uint8_t rpu_type; + uint16_t rpu_format; + uint8_t vdr_rpu_profile; + uint8_t vdr_rpu_level; + uint8_t chroma_resampling_explicit_filter_flag; + uint8_t coef_data_type; /* informative, lavc always converts to fixed */ + uint8_t coef_log2_denom; + uint8_t vdr_rpu_normalized_idc; + uint8_t bl_video_full_range_flag; + uint8_t bl_bit_depth; /* [8, 16] */ + uint8_t el_bit_depth; /* [8, 16] */ + uint8_t vdr_bit_depth; /* [8, 16] */ + uint8_t spatial_resampling_filter_flag; + uint8_t el_spatial_resampling_filter_flag; + uint8_t disable_residual_flag; + uint8_t ext_mapping_idc_0_4; /* extended base layer inverse mapping indicator */ + uint8_t ext_mapping_idc_5_7; /* reserved */ +} AVDOVIRpuDataHeader; + +enum AVDOVIMappingMethod { + AV_DOVI_MAPPING_POLYNOMIAL = 0, + AV_DOVI_MAPPING_MMR = 1, +}; + +/** + * Coefficients of a piece-wise function. The pieces of the function span the + * value ranges between two adjacent pivot values. + */ +#define AV_DOVI_MAX_PIECES 8 +typedef struct AVDOVIReshapingCurve { + uint8_t num_pivots; /* [2, 9] */ + uint16_t pivots[AV_DOVI_MAX_PIECES + 1]; /* sorted ascending */ + enum AVDOVIMappingMethod mapping_idc[AV_DOVI_MAX_PIECES]; + /* AV_DOVI_MAPPING_POLYNOMIAL */ + uint8_t poly_order[AV_DOVI_MAX_PIECES]; /* [1, 2] */ + int64_t poly_coef[AV_DOVI_MAX_PIECES][3]; /* x^0, x^1, x^2 */ + /* AV_DOVI_MAPPING_MMR */ + uint8_t mmr_order[AV_DOVI_MAX_PIECES]; /* [1, 3] */ + int64_t mmr_constant[AV_DOVI_MAX_PIECES]; + int64_t mmr_coef[AV_DOVI_MAX_PIECES][3/* order - 1 */][7]; +} AVDOVIReshapingCurve; + +enum AVDOVINLQMethod { + AV_DOVI_NLQ_NONE = -1, + AV_DOVI_NLQ_LINEAR_DZ = 0, +}; + +/** + * Coefficients of the non-linear inverse quantization. For the interpretation + * of these, see ETSI GS CCM 001. + */ +typedef struct AVDOVINLQParams { + uint16_t nlq_offset; + uint64_t vdr_in_max; + /* AV_DOVI_NLQ_LINEAR_DZ */ + uint64_t linear_deadzone_slope; + uint64_t linear_deadzone_threshold; +} AVDOVINLQParams; + +/** + * Dolby Vision RPU data mapping parameters. + * + * @note sizeof(AVDOVIDataMapping) is not part of the public ABI. + */ +typedef struct AVDOVIDataMapping { + uint8_t vdr_rpu_id; + uint8_t mapping_color_space; + uint8_t mapping_chroma_format_idc; + AVDOVIReshapingCurve curves[3]; /* per component */ + + /* Non-linear inverse quantization */ + enum AVDOVINLQMethod nlq_method_idc; + uint32_t num_x_partitions; + uint32_t num_y_partitions; + AVDOVINLQParams nlq[3]; /* per component */ + uint16_t nlq_pivots[2]; +} AVDOVIDataMapping; + +/** + * Dolby Vision RPU colorspace metadata parameters. + * + * @note sizeof(AVDOVIColorMetadata) is not part of the public ABI. + */ +typedef struct AVDOVIColorMetadata { + uint8_t dm_metadata_id; + uint8_t scene_refresh_flag; + + /** + * Coefficients of the custom Dolby Vision IPT-PQ matrices. These are to be + * used instead of the matrices indicated by the frame's colorspace tags. + * The output of rgb_to_lms_matrix is to be fed into a BT.2020 LMS->RGB + * matrix based on a Hunt-Pointer-Estevez transform, but without any + * crosstalk. (See the definition of the ICtCp colorspace for more + * information.) + */ + AVRational ycc_to_rgb_matrix[9]; /* before PQ linearization */ + AVRational ycc_to_rgb_offset[3]; /* input offset of neutral value */ + AVRational rgb_to_lms_matrix[9]; /* after PQ linearization */ + + /** + * Extra signal metadata (see Dolby patents for more info). + */ + uint16_t signal_eotf; + uint16_t signal_eotf_param0; + uint16_t signal_eotf_param1; + uint32_t signal_eotf_param2; + uint8_t signal_bit_depth; + uint8_t signal_color_space; + uint8_t signal_chroma_format; + uint8_t signal_full_range_flag; /* [0, 3] */ + uint16_t source_min_pq; + uint16_t source_max_pq; + uint16_t source_diagonal; +} AVDOVIColorMetadata; + +typedef struct AVDOVIDmLevel1 { + /* Per-frame brightness metadata */ + uint16_t min_pq; + uint16_t max_pq; + uint16_t avg_pq; +} AVDOVIDmLevel1; + +typedef struct AVDOVIDmLevel2 { + /* Usually derived from level 8 (at different levels) */ + uint16_t target_max_pq; + uint16_t trim_slope; + uint16_t trim_offset; + uint16_t trim_power; + uint16_t trim_chroma_weight; + uint16_t trim_saturation_gain; + int16_t ms_weight; +} AVDOVIDmLevel2; + +typedef struct AVDOVIDmLevel3 { + uint16_t min_pq_offset; + uint16_t max_pq_offset; + uint16_t avg_pq_offset; +} AVDOVIDmLevel3; + +typedef struct AVDOVIDmLevel4 { + uint16_t anchor_pq; + uint16_t anchor_power; +} AVDOVIDmLevel4; + +typedef struct AVDOVIDmLevel5 { + /* Active area definition */ + uint16_t left_offset; + uint16_t right_offset; + uint16_t top_offset; + uint16_t bottom_offset; +} AVDOVIDmLevel5; + +typedef struct AVDOVIDmLevel6 { + /* Static HDR10 metadata */ + uint16_t max_luminance; + uint16_t min_luminance; + uint16_t max_cll; + uint16_t max_fall; +} AVDOVIDmLevel6; + +typedef struct AVDOVIDmLevel8 { + /* Extended version of level 2 */ + uint8_t target_display_index; + uint16_t trim_slope; + uint16_t trim_offset; + uint16_t trim_power; + uint16_t trim_chroma_weight; + uint16_t trim_saturation_gain; + uint16_t ms_weight; + uint16_t target_mid_contrast; + uint16_t clip_trim; + uint8_t saturation_vector_field[6]; + uint8_t hue_vector_field[6]; +} AVDOVIDmLevel8; + +typedef struct AVDOVIDmLevel9 { + /* Source display characteristics */ + uint8_t source_primary_index; + AVColorPrimariesDesc source_display_primaries; +} AVDOVIDmLevel9; + +typedef struct AVDOVIDmLevel10 { + /* Target display characteristics */ + uint8_t target_display_index; + uint16_t target_max_pq; + uint16_t target_min_pq; + uint8_t target_primary_index; + AVColorPrimariesDesc target_display_primaries; +} AVDOVIDmLevel10; + +typedef struct AVDOVIDmLevel11 { + uint8_t content_type; + uint8_t whitepoint; + uint8_t reference_mode_flag; + uint8_t sharpness; + uint8_t noise_reduction; + uint8_t mpeg_noise_reduction; + uint8_t frame_rate_conversion; + uint8_t brightness; + uint8_t color; +} AVDOVIDmLevel11; + +typedef struct AVDOVIDmLevel254 { + /* DMv2 info block, always present in samples with DMv2 metadata */ + uint8_t dm_mode; + uint8_t dm_version_index; +} AVDOVIDmLevel254; + +typedef struct AVDOVIDmLevel255 { + /* Debug block, not really used in samples */ + uint8_t dm_run_mode; + uint8_t dm_run_version; + uint8_t dm_debug[4]; +} AVDOVIDmLevel255; + +/** + * Dolby Vision metadata extension block. Dynamic extension blocks may change + * from frame to frame, while static blocks are constant throughout the entire + * sequence. + * + * @note sizeof(AVDOVIDmData) is not part of the public API. + */ +typedef struct AVDOVIDmData { + uint8_t level; /* [1, 255] */ + union { + AVDOVIDmLevel1 l1; /* dynamic */ + AVDOVIDmLevel2 l2; /* dynamic, may appear multiple times */ + AVDOVIDmLevel3 l3; /* dynamic */ + AVDOVIDmLevel4 l4; /* dynamic */ + AVDOVIDmLevel5 l5; /* dynamic */ + AVDOVIDmLevel6 l6; /* static */ + /* level 7 is currently unused */ + AVDOVIDmLevel8 l8; /* dynamic, may appear multiple times */ + AVDOVIDmLevel9 l9; /* dynamic */ + AVDOVIDmLevel10 l10; /* static, may appear multiple times */ + AVDOVIDmLevel11 l11; /* dynamic */ + AVDOVIDmLevel254 l254; /* static */ + AVDOVIDmLevel255 l255; /* static */ + }; +} AVDOVIDmData; + +/** + * Combined struct representing a combination of header, mapping and color + * metadata, for attaching to frames as side data. + * + * @note The struct must be allocated with av_dovi_metadata_alloc() and + * its size is not a part of the public ABI. + */ + +typedef struct AVDOVIMetadata { + /** + * Offset in bytes from the beginning of this structure at which the + * respective structs start. + */ + size_t header_offset; /* AVDOVIRpuDataHeader */ + size_t mapping_offset; /* AVDOVIDataMapping */ + size_t color_offset; /* AVDOVIColorMetadata */ + + size_t ext_block_offset; /* offset to start of ext blocks array */ + size_t ext_block_size; /* size per element */ + int num_ext_blocks; /* number of extension blocks */ + + /* static limit on num_ext_blocks, derived from bitstream limitations */ +#define AV_DOVI_MAX_EXT_BLOCKS 32 +} AVDOVIMetadata; + +static av_always_inline AVDOVIRpuDataHeader * +av_dovi_get_header(const AVDOVIMetadata *data) +{ + return (AVDOVIRpuDataHeader *)((uint8_t *) data + data->header_offset); +} + +static av_always_inline AVDOVIDataMapping * +av_dovi_get_mapping(const AVDOVIMetadata *data) +{ + return (AVDOVIDataMapping *)((uint8_t *) data + data->mapping_offset); +} + +static av_always_inline AVDOVIColorMetadata * +av_dovi_get_color(const AVDOVIMetadata *data) +{ + return (AVDOVIColorMetadata *)((uint8_t *) data + data->color_offset); +} + +static av_always_inline AVDOVIDmData * +av_dovi_get_ext(const AVDOVIMetadata *data, int index) +{ + return (AVDOVIDmData *)((uint8_t *) data + data->ext_block_offset + + data->ext_block_size * index); +} + +/** + * Find an extension block with a given level, or NULL. In the case of + * multiple extension blocks, only the first is returned. + */ +AVDOVIDmData *av_dovi_find_level(const AVDOVIMetadata *data, uint8_t level); + +/** + * Allocate an AVDOVIMetadata structure and initialize its + * fields to default values. + * + * @param size If this parameter is non-NULL, the size in bytes of the + * allocated struct will be written here on success + * + * @return the newly allocated struct or NULL on failure + */ +AVDOVIMetadata *av_dovi_metadata_alloc(size_t *size); + +#endif /* AVUTIL_DOVI_META_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/downmix_info.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/downmix_info.h new file mode 100644 index 00000000..221cf5bf --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/downmix_info.h @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2014 Tim Walker + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_DOWNMIX_INFO_H +#define AVUTIL_DOWNMIX_INFO_H + +#include "frame.h" + +/** + * @file + * audio downmix medatata + */ + +/** + * @addtogroup lavu_audio + * @{ + */ + +/** + * @defgroup downmix_info Audio downmix metadata + * @{ + */ + +/** + * Possible downmix types. + */ +enum AVDownmixType { + AV_DOWNMIX_TYPE_UNKNOWN, /**< Not indicated. */ + AV_DOWNMIX_TYPE_LORO, /**< Lo/Ro 2-channel downmix (Stereo). */ + AV_DOWNMIX_TYPE_LTRT, /**< Lt/Rt 2-channel downmix, Dolby Surround compatible. */ + AV_DOWNMIX_TYPE_DPLII, /**< Lt/Rt 2-channel downmix, Dolby Pro Logic II compatible. */ + AV_DOWNMIX_TYPE_NB /**< Number of downmix types. Not part of ABI. */ +}; + +/** + * This structure describes optional metadata relevant to a downmix procedure. + * + * All fields are set by the decoder to the value indicated in the audio + * bitstream (if present), or to a "sane" default otherwise. + */ +typedef struct AVDownmixInfo { + /** + * Type of downmix preferred by the mastering engineer. + */ + enum AVDownmixType preferred_downmix_type; + + /** + * Absolute scale factor representing the nominal level of the center + * channel during a regular downmix. + */ + double center_mix_level; + + /** + * Absolute scale factor representing the nominal level of the center + * channel during an Lt/Rt compatible downmix. + */ + double center_mix_level_ltrt; + + /** + * Absolute scale factor representing the nominal level of the surround + * channels during a regular downmix. + */ + double surround_mix_level; + + /** + * Absolute scale factor representing the nominal level of the surround + * channels during an Lt/Rt compatible downmix. + */ + double surround_mix_level_ltrt; + + /** + * Absolute scale factor representing the level at which the LFE data is + * mixed into L/R channels during downmixing. + */ + double lfe_mix_level; +} AVDownmixInfo; + +/** + * Get a frame's AV_FRAME_DATA_DOWNMIX_INFO side data for editing. + * + * If the side data is absent, it is created and added to the frame. + * + * @param frame the frame for which the side data is to be obtained or created + * + * @return the AVDownmixInfo structure to be edited by the caller, or NULL if + * the structure cannot be allocated. + */ +AVDownmixInfo *av_downmix_info_update_side_data(AVFrame *frame); + +/** + * @} + */ + +/** + * @} + */ + +#endif /* AVUTIL_DOWNMIX_INFO_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/encryption_info.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/encryption_info.h new file mode 100644 index 00000000..8fe7ebfe --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/encryption_info.h @@ -0,0 +1,205 @@ +/** + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_ENCRYPTION_INFO_H +#define AVUTIL_ENCRYPTION_INFO_H + +#include +#include + +typedef struct AVSubsampleEncryptionInfo { + /** The number of bytes that are clear. */ + unsigned int bytes_of_clear_data; + + /** + * The number of bytes that are protected. If using pattern encryption, + * the pattern applies to only the protected bytes; if not using pattern + * encryption, all these bytes are encrypted. + */ + unsigned int bytes_of_protected_data; +} AVSubsampleEncryptionInfo; + +/** + * This describes encryption info for a packet. This contains frame-specific + * info for how to decrypt the packet before passing it to the decoder. + * + * The size of this struct is not part of the public ABI. + */ +typedef struct AVEncryptionInfo { + /** The fourcc encryption scheme, in big-endian byte order. */ + uint32_t scheme; + + /** + * Only used for pattern encryption. This is the number of 16-byte blocks + * that are encrypted. + */ + uint32_t crypt_byte_block; + + /** + * Only used for pattern encryption. This is the number of 16-byte blocks + * that are clear. + */ + uint32_t skip_byte_block; + + /** + * The ID of the key used to encrypt the packet. This should always be + * 16 bytes long, but may be changed in the future. + */ + uint8_t *key_id; + uint32_t key_id_size; + + /** + * The initialization vector. This may have been zero-filled to be the + * correct block size. This should always be 16 bytes long, but may be + * changed in the future. + */ + uint8_t *iv; + uint32_t iv_size; + + /** + * An array of subsample encryption info specifying how parts of the sample + * are encrypted. If there are no subsamples, then the whole sample is + * encrypted. + */ + AVSubsampleEncryptionInfo *subsamples; + uint32_t subsample_count; +} AVEncryptionInfo; + +/** + * This describes info used to initialize an encryption key system. + * + * The size of this struct is not part of the public ABI. + */ +typedef struct AVEncryptionInitInfo { + /** + * A unique identifier for the key system this is for, can be NULL if it + * is not known. This should always be 16 bytes, but may change in the + * future. + */ + uint8_t* system_id; + uint32_t system_id_size; + + /** + * An array of key IDs this initialization data is for. All IDs are the + * same length. Can be NULL if there are no known key IDs. + */ + uint8_t** key_ids; + /** The number of key IDs. */ + uint32_t num_key_ids; + /** + * The number of bytes in each key ID. This should always be 16, but may + * change in the future. + */ + uint32_t key_id_size; + + /** + * Key-system specific initialization data. This data is copied directly + * from the file and the format depends on the specific key system. This + * can be NULL if there is no initialization data; in that case, there + * will be at least one key ID. + */ + uint8_t* data; + uint32_t data_size; + + /** + * An optional pointer to the next initialization info in the list. + */ + struct AVEncryptionInitInfo *next; +} AVEncryptionInitInfo; + +/** + * Allocates an AVEncryptionInfo structure and sub-pointers to hold the given + * number of subsamples. This will allocate pointers for the key ID, IV, + * and subsample entries, set the size members, and zero-initialize the rest. + * + * @param subsample_count The number of subsamples. + * @param key_id_size The number of bytes in the key ID, should be 16. + * @param iv_size The number of bytes in the IV, should be 16. + * + * @return The new AVEncryptionInfo structure, or NULL on error. + */ +AVEncryptionInfo *av_encryption_info_alloc(uint32_t subsample_count, uint32_t key_id_size, uint32_t iv_size); + +/** + * Allocates an AVEncryptionInfo structure with a copy of the given data. + * @return The new AVEncryptionInfo structure, or NULL on error. + */ +AVEncryptionInfo *av_encryption_info_clone(const AVEncryptionInfo *info); + +/** + * Frees the given encryption info object. This MUST NOT be used to free the + * side-data data pointer, that should use normal side-data methods. + */ +void av_encryption_info_free(AVEncryptionInfo *info); + +/** + * Creates a copy of the AVEncryptionInfo that is contained in the given side + * data. The resulting object should be passed to av_encryption_info_free() + * when done. + * + * @return The new AVEncryptionInfo structure, or NULL on error. + */ +AVEncryptionInfo *av_encryption_info_get_side_data(const uint8_t *side_data, size_t side_data_size); + +/** + * Allocates and initializes side data that holds a copy of the given encryption + * info. The resulting pointer should be either freed using av_free or given + * to av_packet_add_side_data(). + * + * @return The new side-data pointer, or NULL. + */ +uint8_t *av_encryption_info_add_side_data( + const AVEncryptionInfo *info, size_t *side_data_size); + + +/** + * Allocates an AVEncryptionInitInfo structure and sub-pointers to hold the + * given sizes. This will allocate pointers and set all the fields. + * + * @return The new AVEncryptionInitInfo structure, or NULL on error. + */ +AVEncryptionInitInfo *av_encryption_init_info_alloc( + uint32_t system_id_size, uint32_t num_key_ids, uint32_t key_id_size, uint32_t data_size); + +/** + * Frees the given encryption init info object. This MUST NOT be used to free + * the side-data data pointer, that should use normal side-data methods. + */ +void av_encryption_init_info_free(AVEncryptionInitInfo* info); + +/** + * Creates a copy of the AVEncryptionInitInfo that is contained in the given + * side data. The resulting object should be passed to + * av_encryption_init_info_free() when done. + * + * @return The new AVEncryptionInitInfo structure, or NULL on error. + */ +AVEncryptionInitInfo *av_encryption_init_info_get_side_data( + const uint8_t* side_data, size_t side_data_size); + +/** + * Allocates and initializes side data that holds a copy of the given encryption + * init info. The resulting pointer should be either freed using av_free or + * given to av_packet_add_side_data(). + * + * @return The new side-data pointer, or NULL. + */ +uint8_t *av_encryption_init_info_add_side_data( + const AVEncryptionInitInfo *info, size_t *side_data_size); + +#endif /* AVUTIL_ENCRYPTION_INFO_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/error.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/error.h new file mode 100644 index 00000000..1efa86c4 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/error.h @@ -0,0 +1,129 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * error code definitions + */ + +#ifndef AVUTIL_ERROR_H +#define AVUTIL_ERROR_H + +#include +#include + +#include "macros.h" + +/** + * @addtogroup lavu_error + * + * @{ + */ + + +/* error handling */ +#if EDOM > 0 +#define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions. +#define AVUNERROR(e) (-(e)) ///< Returns a POSIX error code from a library function error return value. +#else +/* Some platforms have E* and errno already negated. */ +#define AVERROR(e) (e) +#define AVUNERROR(e) (e) +#endif + +#define FFERRTAG(a, b, c, d) (-(int)MKTAG(a, b, c, d)) + +#define AVERROR_BSF_NOT_FOUND FFERRTAG(0xF8,'B','S','F') ///< Bitstream filter not found +#define AVERROR_BUG FFERRTAG( 'B','U','G','!') ///< Internal bug, also see AVERROR_BUG2 +#define AVERROR_BUFFER_TOO_SMALL FFERRTAG( 'B','U','F','S') ///< Buffer too small +#define AVERROR_DECODER_NOT_FOUND FFERRTAG(0xF8,'D','E','C') ///< Decoder not found +#define AVERROR_DEMUXER_NOT_FOUND FFERRTAG(0xF8,'D','E','M') ///< Demuxer not found +#define AVERROR_ENCODER_NOT_FOUND FFERRTAG(0xF8,'E','N','C') ///< Encoder not found +#define AVERROR_EOF FFERRTAG( 'E','O','F',' ') ///< End of file +#define AVERROR_EXIT FFERRTAG( 'E','X','I','T') ///< Immediate exit was requested; the called function should not be restarted +#define AVERROR_EXTERNAL FFERRTAG( 'E','X','T',' ') ///< Generic error in an external library +#define AVERROR_FILTER_NOT_FOUND FFERRTAG(0xF8,'F','I','L') ///< Filter not found +#define AVERROR_INVALIDDATA FFERRTAG( 'I','N','D','A') ///< Invalid data found when processing input +#define AVERROR_MUXER_NOT_FOUND FFERRTAG(0xF8,'M','U','X') ///< Muxer not found +#define AVERROR_OPTION_NOT_FOUND FFERRTAG(0xF8,'O','P','T') ///< Option not found +#define AVERROR_PATCHWELCOME FFERRTAG( 'P','A','W','E') ///< Not yet implemented in FFmpeg, patches welcome +#define AVERROR_PROTOCOL_NOT_FOUND FFERRTAG(0xF8,'P','R','O') ///< Protocol not found + +#define AVERROR_STREAM_NOT_FOUND FFERRTAG(0xF8,'S','T','R') ///< Stream not found +/** + * This is semantically identical to AVERROR_BUG + * it has been introduced in Libav after our AVERROR_BUG and with a modified value. + */ +#define AVERROR_BUG2 FFERRTAG( 'B','U','G',' ') +#define AVERROR_UNKNOWN FFERRTAG( 'U','N','K','N') ///< Unknown error, typically from an external library +#define AVERROR_EXPERIMENTAL (-0x2bb2afa8) ///< Requested feature is flagged experimental. Set strict_std_compliance if you really want to use it. +#define AVERROR_INPUT_CHANGED (-0x636e6701) ///< Input changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_OUTPUT_CHANGED) +#define AVERROR_OUTPUT_CHANGED (-0x636e6702) ///< Output changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_INPUT_CHANGED) +/* HTTP & RTSP errors */ +#define AVERROR_HTTP_BAD_REQUEST FFERRTAG(0xF8,'4','0','0') +#define AVERROR_HTTP_UNAUTHORIZED FFERRTAG(0xF8,'4','0','1') +#define AVERROR_HTTP_FORBIDDEN FFERRTAG(0xF8,'4','0','3') +#define AVERROR_HTTP_NOT_FOUND FFERRTAG(0xF8,'4','0','4') +#define AVERROR_HTTP_TOO_MANY_REQUESTS FFERRTAG(0xF8,'4','2','9') +#define AVERROR_HTTP_OTHER_4XX FFERRTAG(0xF8,'4','X','X') +#define AVERROR_HTTP_SERVER_ERROR FFERRTAG(0xF8,'5','X','X') + +#define AV_ERROR_MAX_STRING_SIZE 64 + +/** + * Put a description of the AVERROR code errnum in errbuf. + * In case of failure the global variable errno is set to indicate the + * error. Even in case of failure av_strerror() will print a generic + * error message indicating the errnum provided to errbuf. + * + * @param errnum error code to describe + * @param errbuf buffer to which description is written + * @param errbuf_size the size in bytes of errbuf + * @return 0 on success, a negative value if a description for errnum + * cannot be found + */ +int av_strerror(int errnum, char *errbuf, size_t errbuf_size); + +/** + * Fill the provided buffer with a string containing an error string + * corresponding to the AVERROR code errnum. + * + * @param errbuf a buffer + * @param errbuf_size size in bytes of errbuf + * @param errnum error code to describe + * @return the buffer in input, filled with the error description + * @see av_strerror() + */ +static inline char *av_make_error_string(char *errbuf, size_t errbuf_size, int errnum) +{ + av_strerror(errnum, errbuf, errbuf_size); + return errbuf; +} + +/** + * Convenience macro, the return value should be used only directly in + * function arguments but never stand-alone. + */ +#define av_err2str(errnum) \ + av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, AV_ERROR_MAX_STRING_SIZE, errnum) + +/** + * @} + */ + +#endif /* AVUTIL_ERROR_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/eval.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/eval.h new file mode 100644 index 00000000..0d3eaeb3 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/eval.h @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2002 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * simple arithmetic expression evaluator + */ + +#ifndef AVUTIL_EVAL_H +#define AVUTIL_EVAL_H + +typedef struct AVExpr AVExpr; + +/** + * Parse and evaluate an expression. + * Note, this is significantly slower than av_expr_eval(). + * + * @param res a pointer to a double where is put the result value of + * the expression, or NAN in case of error + * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" + * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} + * @param const_values a zero terminated array of values for the identifiers from const_names + * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers + * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument + * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers + * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments + * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2 + * @param log_offset log level offset, can be used to silence error messages + * @param log_ctx parent logging context + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_expr_parse_and_eval(double *res, const char *s, + const char * const *const_names, const double *const_values, + const char * const *func1_names, double (* const *funcs1)(void *, double), + const char * const *func2_names, double (* const *funcs2)(void *, double, double), + void *opaque, int log_offset, void *log_ctx); + +/** + * Parse an expression. + * + * @param expr a pointer where is put an AVExpr containing the parsed + * value in case of successful parsing, or NULL otherwise. + * The pointed to AVExpr must be freed with av_expr_free() by the user + * when it is not needed anymore. + * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" + * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} + * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers + * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument + * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers + * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments + * @param log_offset log level offset, can be used to silence error messages + * @param log_ctx parent logging context + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_expr_parse(AVExpr **expr, const char *s, + const char * const *const_names, + const char * const *func1_names, double (* const *funcs1)(void *, double), + const char * const *func2_names, double (* const *funcs2)(void *, double, double), + int log_offset, void *log_ctx); + +/** + * Evaluate a previously parsed expression. + * + * @param e the AVExpr to evaluate + * @param const_values a zero terminated array of values for the identifiers from av_expr_parse() const_names + * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2 + * @return the value of the expression + */ +double av_expr_eval(AVExpr *e, const double *const_values, void *opaque); + +/** + * Track the presence of variables and their number of occurrences in a parsed expression + * + * @param e the AVExpr to track variables in + * @param counter a zero-initialized array where the count of each variable will be stored + * @param size size of array + * @return 0 on success, a negative value indicates that no expression or array was passed + * or size was zero + */ +int av_expr_count_vars(AVExpr *e, unsigned *counter, int size); + +/** + * Track the presence of user provided functions and their number of occurrences + * in a parsed expression. + * + * @param e the AVExpr to track user provided functions in + * @param counter a zero-initialized array where the count of each function will be stored + * if you passed 5 functions with 2 arguments to av_expr_parse() + * then for arg=2 this will use up to 5 entries. + * @param size size of array + * @param arg number of arguments the counted functions have + * @return 0 on success, a negative value indicates that no expression or array was passed + * or size was zero + */ +int av_expr_count_func(AVExpr *e, unsigned *counter, int size, int arg); + +/** + * Free a parsed expression previously created with av_expr_parse(). + */ +void av_expr_free(AVExpr *e); + +/** + * Parse the string in numstr and return its value as a double. If + * the string is empty, contains only whitespaces, or does not contain + * an initial substring that has the expected syntax for a + * floating-point number, no conversion is performed. In this case, + * returns a value of zero and the value returned in tail is the value + * of numstr. + * + * @param numstr a string representing a number, may contain one of + * the International System number postfixes, for example 'K', 'M', + * 'G'. If 'i' is appended after the postfix, powers of 2 are used + * instead of powers of 10. The 'B' postfix multiplies the value by + * 8, and can be appended after another postfix or used alone. This + * allows using for example 'KB', 'MiB', 'G' and 'B' as postfix. + * @param tail if non-NULL puts here the pointer to the char next + * after the last parsed character + */ +double av_strtod(const char *numstr, char **tail); + +#endif /* AVUTIL_EVAL_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/executor.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/executor.h new file mode 100644 index 00000000..0eb21c10 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/executor.h @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2023 Nuo Mi + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_EXECUTOR_H +#define AVUTIL_EXECUTOR_H + +typedef struct AVExecutor AVExecutor; +typedef struct AVTask AVTask; + +struct AVTask { + AVTask *next; +}; + +typedef struct AVTaskCallbacks { + void *user_data; + + int local_context_size; + + // return 1 if a's priority > b's priority + int (*priority_higher)(const AVTask *a, const AVTask *b); + + // task is ready for run + int (*ready)(const AVTask *t, void *user_data); + + // run the task + int (*run)(AVTask *t, void *local_context, void *user_data); +} AVTaskCallbacks; + +/** + * Alloc executor + * @param callbacks callback structure for executor + * @param thread_count worker thread number, 0 for run on caller's thread directly + * @return return the executor + */ +AVExecutor* av_executor_alloc(const AVTaskCallbacks *callbacks, int thread_count); + +/** + * Free executor + * @param e pointer to executor + */ +void av_executor_free(AVExecutor **e); + +/** + * Add task to executor + * @param e pointer to executor + * @param t pointer to task. If NULL, it will wakeup one work thread + */ +void av_executor_execute(AVExecutor *e, AVTask *t); + +#endif //AVUTIL_EXECUTOR_H diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/ffversion.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/ffversion.h new file mode 100644 index 00000000..48f04a6a --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/ffversion.h @@ -0,0 +1,5 @@ +/* Automatically generated by version.sh, do not manually edit! */ +#ifndef AVUTIL_FFVERSION_H +#define AVUTIL_FFVERSION_H +#define FFMPEG_VERSION "7.1.1" +#endif /* AVUTIL_FFVERSION_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/fifo.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/fifo.h new file mode 100644 index 00000000..f2206c35 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/fifo.h @@ -0,0 +1,242 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_fifo + * A generic FIFO API + */ + +#ifndef AVUTIL_FIFO_H +#define AVUTIL_FIFO_H + +#include + +/** + * @defgroup lavu_fifo AVFifo + * @ingroup lavu_data + * + * @{ + * A generic FIFO API + */ + +typedef struct AVFifo AVFifo; + +/** + * Callback for writing or reading from a FIFO, passed to (and invoked from) the + * av_fifo_*_cb() functions. It may be invoked multiple times from a single + * av_fifo_*_cb() call and may process less data than the maximum size indicated + * by nb_elems. + * + * @param opaque the opaque pointer provided to the av_fifo_*_cb() function + * @param buf the buffer for reading or writing the data, depending on which + * av_fifo_*_cb function is called + * @param nb_elems On entry contains the maximum number of elements that can be + * read from / written into buf. On success, the callback should + * update it to contain the number of elements actually written. + * + * @return 0 on success, a negative error code on failure (will be returned from + * the invoking av_fifo_*_cb() function) + */ +typedef int AVFifoCB(void *opaque, void *buf, size_t *nb_elems); + +/** + * Automatically resize the FIFO on writes, so that the data fits. This + * automatic resizing happens up to a limit that can be modified with + * av_fifo_auto_grow_limit(). + */ +#define AV_FIFO_FLAG_AUTO_GROW (1 << 0) + +/** + * Allocate and initialize an AVFifo with a given element size. + * + * @param elems initial number of elements that can be stored in the FIFO + * @param elem_size Size in bytes of a single element. Further operations on + * the returned FIFO will implicitly use this element size. + * @param flags a combination of AV_FIFO_FLAG_* + * + * @return newly-allocated AVFifo on success, a negative error code on failure + */ +AVFifo *av_fifo_alloc2(size_t elems, size_t elem_size, + unsigned int flags); + +/** + * @return Element size for FIFO operations. This element size is set at + * FIFO allocation and remains constant during its lifetime + */ +size_t av_fifo_elem_size(const AVFifo *f); + +/** + * Set the maximum size (in elements) to which the FIFO can be resized + * automatically. Has no effect unless AV_FIFO_FLAG_AUTO_GROW is used. + */ +void av_fifo_auto_grow_limit(AVFifo *f, size_t max_elems); + +/** + * @return number of elements available for reading from the given FIFO. + */ +size_t av_fifo_can_read(const AVFifo *f); + +/** + * @return Number of elements that can be written into the given FIFO without + * growing it. + * + * In other words, this number of elements or less is guaranteed to fit + * into the FIFO. More data may be written when the + * AV_FIFO_FLAG_AUTO_GROW flag was specified at FIFO creation, but this + * may involve memory allocation, which can fail. + */ +size_t av_fifo_can_write(const AVFifo *f); + +/** + * Enlarge an AVFifo. + * + * On success, the FIFO will be large enough to hold exactly + * inc + av_fifo_can_read() + av_fifo_can_write() + * elements. In case of failure, the old FIFO is kept unchanged. + * + * @param f AVFifo to resize + * @param inc number of elements to allocate for, in addition to the current + * allocated size + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_grow2(AVFifo *f, size_t inc); + +/** + * Write data into a FIFO. + * + * In case nb_elems > av_fifo_can_write(f) and the AV_FIFO_FLAG_AUTO_GROW flag + * was not specified at FIFO creation, nothing is written and an error + * is returned. + * + * Calling function is guaranteed to succeed if nb_elems <= av_fifo_can_write(f). + * + * @param f the FIFO buffer + * @param buf Data to be written. nb_elems * av_fifo_elem_size(f) bytes will be + * read from buf on success. + * @param nb_elems number of elements to write into FIFO + * + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_write(AVFifo *f, const void *buf, size_t nb_elems); + +/** + * Write data from a user-provided callback into a FIFO. + * + * @param f the FIFO buffer + * @param read_cb Callback supplying the data to the FIFO. May be called + * multiple times. + * @param opaque opaque user data to be provided to read_cb + * @param nb_elems Should point to the maximum number of elements that can be + * written. Will be updated to contain the number of elements + * actually written. + * + * @return non-negative number on success, a negative error code on failure + */ +int av_fifo_write_from_cb(AVFifo *f, AVFifoCB read_cb, + void *opaque, size_t *nb_elems); + +/** + * Read data from a FIFO. + * + * In case nb_elems > av_fifo_can_read(f), nothing is read and an error + * is returned. + * + * @param f the FIFO buffer + * @param buf Buffer to store the data. nb_elems * av_fifo_elem_size(f) bytes + * will be written into buf on success. + * @param nb_elems number of elements to read from FIFO + * + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_read(AVFifo *f, void *buf, size_t nb_elems); + +/** + * Feed data from a FIFO into a user-provided callback. + * + * @param f the FIFO buffer + * @param write_cb Callback the data will be supplied to. May be called + * multiple times. + * @param opaque opaque user data to be provided to write_cb + * @param nb_elems Should point to the maximum number of elements that can be + * read. Will be updated to contain the total number of elements + * actually sent to the callback. + * + * @return non-negative number on success, a negative error code on failure + */ +int av_fifo_read_to_cb(AVFifo *f, AVFifoCB write_cb, + void *opaque, size_t *nb_elems); + +/** + * Read data from a FIFO without modifying FIFO state. + * + * Returns an error if an attempt is made to peek to nonexistent elements + * (i.e. if offset + nb_elems is larger than av_fifo_can_read(f)). + * + * @param f the FIFO buffer + * @param buf Buffer to store the data. nb_elems * av_fifo_elem_size(f) bytes + * will be written into buf. + * @param nb_elems number of elements to read from FIFO + * @param offset number of initial elements to skip. + * + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_peek(const AVFifo *f, void *buf, size_t nb_elems, size_t offset); + +/** + * Feed data from a FIFO into a user-provided callback. + * + * @param f the FIFO buffer + * @param write_cb Callback the data will be supplied to. May be called + * multiple times. + * @param opaque opaque user data to be provided to write_cb + * @param nb_elems Should point to the maximum number of elements that can be + * read. Will be updated to contain the total number of elements + * actually sent to the callback. + * @param offset number of initial elements to skip; offset + *nb_elems must not + * be larger than av_fifo_can_read(f). + * + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_peek_to_cb(const AVFifo *f, AVFifoCB write_cb, void *opaque, + size_t *nb_elems, size_t offset); + +/** + * Discard the specified amount of data from an AVFifo. + * @param size number of elements to discard, MUST NOT be larger than + * av_fifo_can_read(f) + */ +void av_fifo_drain2(AVFifo *f, size_t size); + +/* + * Empty the AVFifo. + * @param f AVFifo to reset + */ +void av_fifo_reset2(AVFifo *f); + +/** + * Free an AVFifo and reset pointer to NULL. + * @param f Pointer to an AVFifo to free. *f == NULL is allowed. + */ +void av_fifo_freep2(AVFifo **f); + +/** + * @} + */ + +#endif /* AVUTIL_FIFO_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/file.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/file.h new file mode 100644 index 00000000..fced1701 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/file.h @@ -0,0 +1,62 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_FILE_H +#define AVUTIL_FILE_H + +#include +#include + +#include "attributes.h" + +/** + * @file + * Misc file utilities. + */ + +/** + * Read the file with name filename, and put its content in a newly + * allocated buffer or map it with mmap() when available. + * In case of success set *bufptr to the read or mmapped buffer, and + * *size to the size in bytes of the buffer in *bufptr. + * Unlike mmap this function succeeds with zero sized files, in this + * case *bufptr will be set to NULL and *size will be set to 0. + * The returned buffer must be released with av_file_unmap(). + * + * @param filename path to the file + * @param[out] bufptr pointee is set to the mapped or allocated buffer + * @param[out] size pointee is set to the size in bytes of the buffer + * @param log_offset loglevel offset used for logging + * @param log_ctx context used for logging + * @return a non negative number in case of success, a negative value + * corresponding to an AVERROR error code in case of failure + */ +av_warn_unused_result +int av_file_map(const char *filename, uint8_t **bufptr, size_t *size, + int log_offset, void *log_ctx); + +/** + * Unmap or free the buffer bufptr created by av_file_map(). + * + * @param bufptr the buffer previously created with av_file_map() + * @param size size in bytes of bufptr, must be the same as returned + * by av_file_map() + */ +void av_file_unmap(uint8_t *bufptr, size_t size); + +#endif /* AVUTIL_FILE_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/film_grain_params.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/film_grain_params.h new file mode 100644 index 00000000..ccacab88 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/film_grain_params.h @@ -0,0 +1,322 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_FILM_GRAIN_PARAMS_H +#define AVUTIL_FILM_GRAIN_PARAMS_H + +#include "frame.h" + +enum AVFilmGrainParamsType { + AV_FILM_GRAIN_PARAMS_NONE = 0, + + /** + * The union is valid when interpreted as AVFilmGrainAOMParams (codec.aom) + */ + AV_FILM_GRAIN_PARAMS_AV1, + + /** + * The union is valid when interpreted as AVFilmGrainH274Params (codec.h274) + */ + AV_FILM_GRAIN_PARAMS_H274, +}; + +/** + * This structure describes how to handle film grain synthesis for AOM codecs. + * + * @note The struct must be allocated as part of AVFilmGrainParams using + * av_film_grain_params_alloc(). Its size is not a part of the public ABI. + */ +typedef struct AVFilmGrainAOMParams { + /** + * Number of points, and the scale and value for each point of the + * piecewise linear scaling function for the uma plane. + */ + int num_y_points; + uint8_t y_points[14][2 /* value, scaling */]; + + /** + * Signals whether to derive the chroma scaling function from the luma. + * Not equivalent to copying the luma values and scales. + */ + int chroma_scaling_from_luma; + + /** + * If chroma_scaling_from_luma is set to 0, signals the chroma scaling + * function parameters. + */ + int num_uv_points[2 /* cb, cr */]; + uint8_t uv_points[2 /* cb, cr */][10][2 /* value, scaling */]; + + /** + * Specifies the shift applied to the chroma components. For AV1, its within + * [8; 11] and determines the range and quantization of the film grain. + */ + int scaling_shift; + + /** + * Specifies the auto-regression lag. + */ + int ar_coeff_lag; + + /** + * Luma auto-regression coefficients. The number of coefficients is given by + * 2 * ar_coeff_lag * (ar_coeff_lag + 1). + */ + int8_t ar_coeffs_y[24]; + + /** + * Chroma auto-regression coefficients. The number of coefficients is given by + * 2 * ar_coeff_lag * (ar_coeff_lag + 1) + !!num_y_points. + */ + int8_t ar_coeffs_uv[2 /* cb, cr */][25]; + + /** + * Specifies the range of the auto-regressive coefficients. Values of 6, + * 7, 8 and so on represent a range of [-2, 2), [-1, 1), [-0.5, 0.5) and + * so on. For AV1 must be between 6 and 9. + */ + int ar_coeff_shift; + + /** + * Signals the down shift applied to the generated gaussian numbers during + * synthesis. + */ + int grain_scale_shift; + + /** + * Specifies the luma/chroma multipliers for the index to the component + * scaling function. + */ + int uv_mult[2 /* cb, cr */]; + int uv_mult_luma[2 /* cb, cr */]; + + /** + * Offset used for component scaling function. For AV1 its a 9-bit value + * with a range [-256, 255] + */ + int uv_offset[2 /* cb, cr */]; + + /** + * Signals whether to overlap film grain blocks. + */ + int overlap_flag; + + /** + * Signals to clip to limited color levels after film grain application. + */ + int limit_output_range; +} AVFilmGrainAOMParams; + +/** + * This structure describes how to handle film grain synthesis for codecs using + * the ITU-T H.274 Versatile suplemental enhancement information message. + * + * @note The struct must be allocated as part of AVFilmGrainParams using + * av_film_grain_params_alloc(). Its size is not a part of the public ABI. + */ +typedef struct AVFilmGrainH274Params { + /** + * Specifies the film grain simulation mode. + * 0 = Frequency filtering, 1 = Auto-regression + */ + int model_id; + +#if FF_API_H274_FILM_GRAIN_VCS + /** + * TODO: On this ABI bump, please also re-order the fields in + * AVFilmGrainParams (see below) + */ + + /** + * Specifies the bit depth used for the luma component. + * + * @deprecated use AVFilmGrainParams.bit_depth_luma. + */ + attribute_deprecated + int bit_depth_luma; + + /** + * Specifies the bit depth used for the chroma components. + * + * @deprecated use AVFilmGrainParams.bit_depth_chroma. + */ + attribute_deprecated + int bit_depth_chroma; + + /** + * Specifies the video signal characteristics. + * + * @deprecated use AVFilmGrainParams.color_{range,primaries,trc,space}. + */ + attribute_deprecated + enum AVColorRange color_range; + attribute_deprecated + enum AVColorPrimaries color_primaries; + attribute_deprecated + enum AVColorTransferCharacteristic color_trc; + attribute_deprecated + enum AVColorSpace color_space; +#endif + + /** + * Specifies the blending mode used to blend the simulated film grain + * with the decoded images. + * + * 0 = Additive, 1 = Multiplicative + */ + int blending_mode_id; + + /** + * Specifies a scale factor used in the film grain characterization equations. + */ + int log2_scale_factor; + + /** + * Indicates if the modelling of film grain for a given component is present. + */ + int component_model_present[3 /* y, cb, cr */]; + + /** + * Specifies the number of intensity intervals for which a specific set of + * model values has been estimated, with a range of [1, 256]. + */ + uint16_t num_intensity_intervals[3 /* y, cb, cr */]; + + /** + * Specifies the number of model values present for each intensity interval + * in which the film grain has been modelled, with a range of [1, 6]. + */ + uint8_t num_model_values[3 /* y, cb, cr */]; + + /** + * Specifies the lower ounds of each intensity interval for whichthe set of + * model values applies for the component. + */ + uint8_t intensity_interval_lower_bound[3 /* y, cb, cr */][256 /* intensity interval */]; + + /** + * Specifies the upper bound of each intensity interval for which the set of + * model values applies for the component. + */ + uint8_t intensity_interval_upper_bound[3 /* y, cb, cr */][256 /* intensity interval */]; + + /** + * Specifies the model values for the component for each intensity interval. + * - When model_id == 0, the following applies: + * For comp_model_value[y], the range of values is [0, 2^bit_depth_luma - 1] + * For comp_model_value[cb..cr], the range of values is [0, 2^bit_depth_chroma - 1] + * - Otherwise, the following applies: + * For comp_model_value[y], the range of values is [-2^(bit_depth_luma - 1), 2^(bit_depth_luma - 1) - 1] + * For comp_model_value[cb..cr], the range of values is [-2^(bit_depth_chroma - 1), 2^(bit_depth_chroma - 1) - 1] + */ + int16_t comp_model_value[3 /* y, cb, cr */][256 /* intensity interval */][6 /* model value */]; +} AVFilmGrainH274Params; + +/** + * This structure describes how to handle film grain synthesis in video + * for specific codecs. Must be present on every frame where film grain is + * meant to be synthesised for correct presentation. + * + * @note The struct must be allocated with av_film_grain_params_alloc() and + * its size is not a part of the public ABI. + */ +typedef struct AVFilmGrainParams { + /** + * Specifies the codec for which this structure is valid. + */ + enum AVFilmGrainParamsType type; + + /** + * Seed to use for the synthesis process, if the codec allows for it. + * + * @note For H.264, this refers to `pic_offset` as defined in + * SMPTE RDD 5-2006. + */ + uint64_t seed; + + /** + * Additional fields may be added both here and in any structure included. + * If a codec's film grain structure differs slightly over another + * codec's, fields within may change meaning depending on the type. + * + * TODO: Move this to the end of the structure, at the next ABI bump. + */ + union { + AVFilmGrainAOMParams aom; + AVFilmGrainH274Params h274; + } codec; + + /** + * Intended display resolution. May be 0 if the codec does not specify + * any restrictions. + */ + + int width, height; + + /** + * Intended subsampling ratio, or 0 for luma-only streams. + */ + int subsampling_x, subsampling_y; + + /** + * Intended video signal characteristics. + */ + enum AVColorRange color_range; + enum AVColorPrimaries color_primaries; + enum AVColorTransferCharacteristic color_trc; + enum AVColorSpace color_space; + + /** + * Intended bit depth, or 0 for unknown/unspecified. + */ + int bit_depth_luma; + int bit_depth_chroma; + +} AVFilmGrainParams; + +/** + * Allocate an AVFilmGrainParams structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * If size is not NULL it will be set to the number of bytes allocated. + * + * @return An AVFilmGrainParams filled with default values or NULL + * on failure. + */ +AVFilmGrainParams *av_film_grain_params_alloc(size_t *size); + +/** + * Allocate a complete AVFilmGrainParams and add it to the frame. + * + * @param frame The frame which side data is added to. + * + * @return The AVFilmGrainParams structure to be filled by caller. + */ +AVFilmGrainParams *av_film_grain_params_create_side_data(AVFrame *frame); + +/** + * Select the most appropriate film grain parameters set for the frame, + * taking into account the frame's format, resolution and video signal + * characteristics. + * + * @note, for H.274, this may select a film grain parameter set with + * greater chroma resolution than the frame. Users should take care to + * correctly adjust the chroma grain frequency to the frame. + */ +const AVFilmGrainParams *av_film_grain_params_select(const AVFrame *frame); + +#endif /* AVUTIL_FILM_GRAIN_PARAMS_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/frame.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/frame.h new file mode 100644 index 00000000..f7806566 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/frame.h @@ -0,0 +1,1175 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_frame + * reference-counted frame API + */ + +#ifndef AVUTIL_FRAME_H +#define AVUTIL_FRAME_H + +#include +#include + +#include "avutil.h" +#include "buffer.h" +#include "channel_layout.h" +#include "dict.h" +#include "rational.h" +#include "samplefmt.h" +#include "pixfmt.h" +#include "version.h" + + +/** + * @defgroup lavu_frame AVFrame + * @ingroup lavu_data + * + * @{ + * AVFrame is an abstraction for reference-counted raw multimedia data. + */ + +enum AVFrameSideDataType { + /** + * The data is the AVPanScan struct defined in libavcodec. + */ + AV_FRAME_DATA_PANSCAN, + /** + * ATSC A53 Part 4 Closed Captions. + * A53 CC bitstream is stored as uint8_t in AVFrameSideData.data. + * The number of bytes of CC data is AVFrameSideData.size. + */ + AV_FRAME_DATA_A53_CC, + /** + * Stereoscopic 3d metadata. + * The data is the AVStereo3D struct defined in libavutil/stereo3d.h. + */ + AV_FRAME_DATA_STEREO3D, + /** + * The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h. + */ + AV_FRAME_DATA_MATRIXENCODING, + /** + * Metadata relevant to a downmix procedure. + * The data is the AVDownmixInfo struct defined in libavutil/downmix_info.h. + */ + AV_FRAME_DATA_DOWNMIX_INFO, + /** + * ReplayGain information in the form of the AVReplayGain struct. + */ + AV_FRAME_DATA_REPLAYGAIN, + /** + * This side data contains a 3x3 transformation matrix describing an affine + * transformation that needs to be applied to the frame for correct + * presentation. + * + * See libavutil/display.h for a detailed description of the data. + */ + AV_FRAME_DATA_DISPLAYMATRIX, + /** + * Active Format Description data consisting of a single byte as specified + * in ETSI TS 101 154 using AVActiveFormatDescription enum. + */ + AV_FRAME_DATA_AFD, + /** + * Motion vectors exported by some codecs (on demand through the export_mvs + * flag set in the libavcodec AVCodecContext flags2 option). + * The data is the AVMotionVector struct defined in + * libavutil/motion_vector.h. + */ + AV_FRAME_DATA_MOTION_VECTORS, + /** + * Recommmends skipping the specified number of samples. This is exported + * only if the "skip_manual" AVOption is set in libavcodec. + * This has the same format as AV_PKT_DATA_SKIP_SAMPLES. + * @code + * u32le number of samples to skip from start of this packet + * u32le number of samples to skip from end of this packet + * u8 reason for start skip + * u8 reason for end skip (0=padding silence, 1=convergence) + * @endcode + */ + AV_FRAME_DATA_SKIP_SAMPLES, + /** + * This side data must be associated with an audio frame and corresponds to + * enum AVAudioServiceType defined in avcodec.h. + */ + AV_FRAME_DATA_AUDIO_SERVICE_TYPE, + /** + * Mastering display metadata associated with a video frame. The payload is + * an AVMasteringDisplayMetadata type and contains information about the + * mastering display color volume. + */ + AV_FRAME_DATA_MASTERING_DISPLAY_METADATA, + /** + * The GOP timecode in 25 bit timecode format. Data format is 64-bit integer. + * This is set on the first frame of a GOP that has a temporal reference of 0. + */ + AV_FRAME_DATA_GOP_TIMECODE, + + /** + * The data represents the AVSphericalMapping structure defined in + * libavutil/spherical.h. + */ + AV_FRAME_DATA_SPHERICAL, + + /** + * Content light level (based on CTA-861.3). This payload contains data in + * the form of the AVContentLightMetadata struct. + */ + AV_FRAME_DATA_CONTENT_LIGHT_LEVEL, + + /** + * The data contains an ICC profile as an opaque octet buffer following the + * format described by ISO 15076-1 with an optional name defined in the + * metadata key entry "name". + */ + AV_FRAME_DATA_ICC_PROFILE, + + /** + * Timecode which conforms to SMPTE ST 12-1. The data is an array of 4 uint32_t + * where the first uint32_t describes how many (1-3) of the other timecodes are used. + * The timecode format is described in the documentation of av_timecode_get_smpte_from_framenum() + * function in libavutil/timecode.h. + */ + AV_FRAME_DATA_S12M_TIMECODE, + + /** + * HDR dynamic metadata associated with a video frame. The payload is + * an AVDynamicHDRPlus type and contains information for color + * volume transform - application 4 of SMPTE 2094-40:2016 standard. + */ + AV_FRAME_DATA_DYNAMIC_HDR_PLUS, + + /** + * Regions Of Interest, the data is an array of AVRegionOfInterest type, the number of + * array element is implied by AVFrameSideData.size / AVRegionOfInterest.self_size. + */ + AV_FRAME_DATA_REGIONS_OF_INTEREST, + + /** + * Encoding parameters for a video frame, as described by AVVideoEncParams. + */ + AV_FRAME_DATA_VIDEO_ENC_PARAMS, + + /** + * User data unregistered metadata associated with a video frame. + * This is the H.26[45] UDU SEI message, and shouldn't be used for any other purpose + * The data is stored as uint8_t in AVFrameSideData.data which is 16 bytes of + * uuid_iso_iec_11578 followed by AVFrameSideData.size - 16 bytes of user_data_payload_byte. + */ + AV_FRAME_DATA_SEI_UNREGISTERED, + + /** + * Film grain parameters for a frame, described by AVFilmGrainParams. + * Must be present for every frame which should have film grain applied. + * + * May be present multiple times, for example when there are multiple + * alternative parameter sets for different video signal characteristics. + * The user should select the most appropriate set for the application. + */ + AV_FRAME_DATA_FILM_GRAIN_PARAMS, + + /** + * Bounding boxes for object detection and classification, + * as described by AVDetectionBBoxHeader. + */ + AV_FRAME_DATA_DETECTION_BBOXES, + + /** + * Dolby Vision RPU raw data, suitable for passing to x265 + * or other libraries. Array of uint8_t, with NAL emulation + * bytes intact. + */ + AV_FRAME_DATA_DOVI_RPU_BUFFER, + + /** + * Parsed Dolby Vision metadata, suitable for passing to a software + * implementation. The payload is the AVDOVIMetadata struct defined in + * libavutil/dovi_meta.h. + */ + AV_FRAME_DATA_DOVI_METADATA, + + /** + * HDR Vivid dynamic metadata associated with a video frame. The payload is + * an AVDynamicHDRVivid type and contains information for color + * volume transform - CUVA 005.1-2021. + */ + AV_FRAME_DATA_DYNAMIC_HDR_VIVID, + + /** + * Ambient viewing environment metadata, as defined by H.274. + */ + AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT, + + /** + * Provide encoder-specific hinting information about changed/unchanged + * portions of a frame. It can be used to pass information about which + * macroblocks can be skipped because they didn't change from the + * corresponding ones in the previous frame. This could be useful for + * applications which know this information in advance to speed up + * encoding. + */ + AV_FRAME_DATA_VIDEO_HINT, + + /** + * Raw LCEVC payload data, as a uint8_t array, with NAL emulation + * bytes intact. + */ + AV_FRAME_DATA_LCEVC, + + /** + * This side data must be associated with a video frame. + * The presence of this side data indicates that the video stream is + * composed of multiple views (e.g. stereoscopic 3D content, + * cf. H.264 Annex H or H.265 Annex G). + * The data is an int storing the view ID. + */ + AV_FRAME_DATA_VIEW_ID, +}; + +enum AVActiveFormatDescription { + AV_AFD_SAME = 8, + AV_AFD_4_3 = 9, + AV_AFD_16_9 = 10, + AV_AFD_14_9 = 11, + AV_AFD_4_3_SP_14_9 = 13, + AV_AFD_16_9_SP_14_9 = 14, + AV_AFD_SP_4_3 = 15, +}; + + +/** + * Structure to hold side data for an AVFrame. + * + * sizeof(AVFrameSideData) is not a part of the public ABI, so new fields may be added + * to the end with a minor bump. + */ +typedef struct AVFrameSideData { + enum AVFrameSideDataType type; + uint8_t *data; + size_t size; + AVDictionary *metadata; + AVBufferRef *buf; +} AVFrameSideData; + +enum AVSideDataProps { + /** + * The side data type can be used in stream-global structures. + * Side data types without this property are only meaningful on per-frame + * basis. + */ + AV_SIDE_DATA_PROP_GLOBAL = (1 << 0), + + /** + * Multiple instances of this side data type can be meaningfully present in + * a single side data array. + */ + AV_SIDE_DATA_PROP_MULTI = (1 << 1), +}; + +/** + * This struct describes the properties of a side data type. Its instance + * corresponding to a given type can be obtained from av_frame_side_data_desc(). + */ +typedef struct AVSideDataDescriptor { + /** + * Human-readable side data description. + */ + const char *name; + + /** + * Side data property flags, a combination of AVSideDataProps values. + */ + unsigned props; +} AVSideDataDescriptor; + +/** + * Structure describing a single Region Of Interest. + * + * When multiple regions are defined in a single side-data block, they + * should be ordered from most to least important - some encoders are only + * capable of supporting a limited number of distinct regions, so will have + * to truncate the list. + * + * When overlapping regions are defined, the first region containing a given + * area of the frame applies. + */ +typedef struct AVRegionOfInterest { + /** + * Must be set to the size of this data structure (that is, + * sizeof(AVRegionOfInterest)). + */ + uint32_t self_size; + /** + * Distance in pixels from the top edge of the frame to the top and + * bottom edges and from the left edge of the frame to the left and + * right edges of the rectangle defining this region of interest. + * + * The constraints on a region are encoder dependent, so the region + * actually affected may be slightly larger for alignment or other + * reasons. + */ + int top; + int bottom; + int left; + int right; + /** + * Quantisation offset. + * + * Must be in the range -1 to +1. A value of zero indicates no quality + * change. A negative value asks for better quality (less quantisation), + * while a positive value asks for worse quality (greater quantisation). + * + * The range is calibrated so that the extreme values indicate the + * largest possible offset - if the rest of the frame is encoded with the + * worst possible quality, an offset of -1 indicates that this region + * should be encoded with the best possible quality anyway. Intermediate + * values are then interpolated in some codec-dependent way. + * + * For example, in 10-bit H.264 the quantisation parameter varies between + * -12 and 51. A typical qoffset value of -1/10 therefore indicates that + * this region should be encoded with a QP around one-tenth of the full + * range better than the rest of the frame. So, if most of the frame + * were to be encoded with a QP of around 30, this region would get a QP + * of around 24 (an offset of approximately -1/10 * (51 - -12) = -6.3). + * An extreme value of -1 would indicate that this region should be + * encoded with the best possible quality regardless of the treatment of + * the rest of the frame - that is, should be encoded at a QP of -12. + */ + AVRational qoffset; +} AVRegionOfInterest; + +/** + * This structure describes decoded (raw) audio or video data. + * + * AVFrame must be allocated using av_frame_alloc(). Note that this only + * allocates the AVFrame itself, the buffers for the data must be managed + * through other means (see below). + * AVFrame must be freed with av_frame_free(). + * + * AVFrame is typically allocated once and then reused multiple times to hold + * different data (e.g. a single AVFrame to hold frames received from a + * decoder). In such a case, av_frame_unref() will free any references held by + * the frame and reset it to its original clean state before it + * is reused again. + * + * The data described by an AVFrame is usually reference counted through the + * AVBuffer API. The underlying buffer references are stored in AVFrame.buf / + * AVFrame.extended_buf. An AVFrame is considered to be reference counted if at + * least one reference is set, i.e. if AVFrame.buf[0] != NULL. In such a case, + * every single data plane must be contained in one of the buffers in + * AVFrame.buf or AVFrame.extended_buf. + * There may be a single buffer for all the data, or one separate buffer for + * each plane, or anything in between. + * + * sizeof(AVFrame) is not a part of the public ABI, so new fields may be added + * to the end with a minor bump. + * + * Fields can be accessed through AVOptions, the name string used, matches the + * C structure field name for fields accessible through AVOptions. + */ +typedef struct AVFrame { +#define AV_NUM_DATA_POINTERS 8 + /** + * pointer to the picture/channel planes. + * This might be different from the first allocated byte. For video, + * it could even point to the end of the image data. + * + * All pointers in data and extended_data must point into one of the + * AVBufferRef in buf or extended_buf. + * + * Some decoders access areas outside 0,0 - width,height, please + * see avcodec_align_dimensions2(). Some filters and swscale can read + * up to 16 bytes beyond the planes, if these filters are to be used, + * then 16 extra bytes must be allocated. + * + * NOTE: Pointers not needed by the format MUST be set to NULL. + * + * @attention In case of video, the data[] pointers can point to the + * end of image data in order to reverse line order, when used in + * combination with negative values in the linesize[] array. + */ + uint8_t *data[AV_NUM_DATA_POINTERS]; + + /** + * For video, a positive or negative value, which is typically indicating + * the size in bytes of each picture line, but it can also be: + * - the negative byte size of lines for vertical flipping + * (with data[n] pointing to the end of the data + * - a positive or negative multiple of the byte size as for accessing + * even and odd fields of a frame (possibly flipped) + * + * For audio, only linesize[0] may be set. For planar audio, each channel + * plane must be the same size. + * + * For video the linesizes should be multiples of the CPUs alignment + * preference, this is 16 or 32 for modern desktop CPUs. + * Some code requires such alignment other code can be slower without + * correct alignment, for yet other it makes no difference. + * + * @note The linesize may be larger than the size of usable data -- there + * may be extra padding present for performance reasons. + * + * @attention In case of video, line size values can be negative to achieve + * a vertically inverted iteration over image lines. + */ + int linesize[AV_NUM_DATA_POINTERS]; + + /** + * pointers to the data planes/channels. + * + * For video, this should simply point to data[]. + * + * For planar audio, each channel has a separate data pointer, and + * linesize[0] contains the size of each channel buffer. + * For packed audio, there is just one data pointer, and linesize[0] + * contains the total size of the buffer for all channels. + * + * Note: Both data and extended_data should always be set in a valid frame, + * but for planar audio with more channels that can fit in data, + * extended_data must be used in order to access all channels. + */ + uint8_t **extended_data; + + /** + * @name Video dimensions + * Video frames only. The coded dimensions (in pixels) of the video frame, + * i.e. the size of the rectangle that contains some well-defined values. + * + * @note The part of the frame intended for display/presentation is further + * restricted by the @ref cropping "Cropping rectangle". + * @{ + */ + int width, height; + /** + * @} + */ + + /** + * number of audio samples (per channel) described by this frame + */ + int nb_samples; + + /** + * format of the frame, -1 if unknown or unset + * Values correspond to enum AVPixelFormat for video frames, + * enum AVSampleFormat for audio) + */ + int format; + +#if FF_API_FRAME_KEY + /** + * 1 -> keyframe, 0-> not + * + * @deprecated Use AV_FRAME_FLAG_KEY instead + */ + attribute_deprecated + int key_frame; +#endif + + /** + * Picture type of the frame. + */ + enum AVPictureType pict_type; + + /** + * Sample aspect ratio for the video frame, 0/1 if unknown/unspecified. + */ + AVRational sample_aspect_ratio; + + /** + * Presentation timestamp in time_base units (time when frame should be shown to user). + */ + int64_t pts; + + /** + * DTS copied from the AVPacket that triggered returning this frame. (if frame threading isn't used) + * This is also the Presentation time of this AVFrame calculated from + * only AVPacket.dts values without pts values. + */ + int64_t pkt_dts; + + /** + * Time base for the timestamps in this frame. + * In the future, this field may be set on frames output by decoders or + * filters, but its value will be by default ignored on input to encoders + * or filters. + */ + AVRational time_base; + + /** + * quality (between 1 (good) and FF_LAMBDA_MAX (bad)) + */ + int quality; + + /** + * Frame owner's private data. + * + * This field may be set by the code that allocates/owns the frame data. + * It is then not touched by any library functions, except: + * - it is copied to other references by av_frame_copy_props() (and hence by + * av_frame_ref()); + * - it is set to NULL when the frame is cleared by av_frame_unref() + * - on the caller's explicit request. E.g. libavcodec encoders/decoders + * will copy this field to/from @ref AVPacket "AVPackets" if the caller sets + * @ref AV_CODEC_FLAG_COPY_OPAQUE. + * + * @see opaque_ref the reference-counted analogue + */ + void *opaque; + + /** + * Number of fields in this frame which should be repeated, i.e. the total + * duration of this frame should be repeat_pict + 2 normal field durations. + * + * For interlaced frames this field may be set to 1, which signals that this + * frame should be presented as 3 fields: beginning with the first field (as + * determined by AV_FRAME_FLAG_TOP_FIELD_FIRST being set or not), followed + * by the second field, and then the first field again. + * + * For progressive frames this field may be set to a multiple of 2, which + * signals that this frame's duration should be (repeat_pict + 2) / 2 + * normal frame durations. + * + * @note This field is computed from MPEG2 repeat_first_field flag and its + * associated flags, H.264 pic_struct from picture timing SEI, and + * their analogues in other codecs. Typically it should only be used when + * higher-layer timing information is not available. + */ + int repeat_pict; + +#if FF_API_INTERLACED_FRAME + /** + * The content of the picture is interlaced. + * + * @deprecated Use AV_FRAME_FLAG_INTERLACED instead + */ + attribute_deprecated + int interlaced_frame; + + /** + * If the content is interlaced, is top field displayed first. + * + * @deprecated Use AV_FRAME_FLAG_TOP_FIELD_FIRST instead + */ + attribute_deprecated + int top_field_first; +#endif + +#if FF_API_PALETTE_HAS_CHANGED + /** + * Tell user application that palette has changed from previous frame. + */ + attribute_deprecated + int palette_has_changed; +#endif + + /** + * Sample rate of the audio data. + */ + int sample_rate; + + /** + * AVBuffer references backing the data for this frame. All the pointers in + * data and extended_data must point inside one of the buffers in buf or + * extended_buf. This array must be filled contiguously -- if buf[i] is + * non-NULL then buf[j] must also be non-NULL for all j < i. + * + * There may be at most one AVBuffer per data plane, so for video this array + * always contains all the references. For planar audio with more than + * AV_NUM_DATA_POINTERS channels, there may be more buffers than can fit in + * this array. Then the extra AVBufferRef pointers are stored in the + * extended_buf array. + */ + AVBufferRef *buf[AV_NUM_DATA_POINTERS]; + + /** + * For planar audio which requires more than AV_NUM_DATA_POINTERS + * AVBufferRef pointers, this array will hold all the references which + * cannot fit into AVFrame.buf. + * + * Note that this is different from AVFrame.extended_data, which always + * contains all the pointers. This array only contains the extra pointers, + * which cannot fit into AVFrame.buf. + * + * This array is always allocated using av_malloc() by whoever constructs + * the frame. It is freed in av_frame_unref(). + */ + AVBufferRef **extended_buf; + /** + * Number of elements in extended_buf. + */ + int nb_extended_buf; + + AVFrameSideData **side_data; + int nb_side_data; + +/** + * @defgroup lavu_frame_flags AV_FRAME_FLAGS + * @ingroup lavu_frame + * Flags describing additional frame properties. + * + * @{ + */ + +/** + * The frame data may be corrupted, e.g. due to decoding errors. + */ +#define AV_FRAME_FLAG_CORRUPT (1 << 0) +/** + * A flag to mark frames that are keyframes. + */ +#define AV_FRAME_FLAG_KEY (1 << 1) +/** + * A flag to mark the frames which need to be decoded, but shouldn't be output. + */ +#define AV_FRAME_FLAG_DISCARD (1 << 2) +/** + * A flag to mark frames whose content is interlaced. + */ +#define AV_FRAME_FLAG_INTERLACED (1 << 3) +/** + * A flag to mark frames where the top field is displayed first if the content + * is interlaced. + */ +#define AV_FRAME_FLAG_TOP_FIELD_FIRST (1 << 4) +/** + * @} + */ + + /** + * Frame flags, a combination of @ref lavu_frame_flags + */ + int flags; + + /** + * MPEG vs JPEG YUV range. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorRange color_range; + + enum AVColorPrimaries color_primaries; + + enum AVColorTransferCharacteristic color_trc; + + /** + * YUV colorspace type. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorSpace colorspace; + + enum AVChromaLocation chroma_location; + + /** + * frame timestamp estimated using various heuristics, in stream time base + * - encoding: unused + * - decoding: set by libavcodec, read by user. + */ + int64_t best_effort_timestamp; + +#if FF_API_FRAME_PKT + /** + * reordered pos from the last AVPacket that has been input into the decoder + * - encoding: unused + * - decoding: Read by user. + * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user + * data from packets to frames + */ + attribute_deprecated + int64_t pkt_pos; +#endif + + /** + * metadata. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + AVDictionary *metadata; + + /** + * decode error flags of the frame, set to a combination of + * FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there + * were errors during the decoding. + * - encoding: unused + * - decoding: set by libavcodec, read by user. + */ + int decode_error_flags; +#define FF_DECODE_ERROR_INVALID_BITSTREAM 1 +#define FF_DECODE_ERROR_MISSING_REFERENCE 2 +#define FF_DECODE_ERROR_CONCEALMENT_ACTIVE 4 +#define FF_DECODE_ERROR_DECODE_SLICES 8 + +#if FF_API_FRAME_PKT + /** + * size of the corresponding packet containing the compressed + * frame. + * It is set to a negative value if unknown. + * - encoding: unused + * - decoding: set by libavcodec, read by user. + * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user + * data from packets to frames + */ + attribute_deprecated + int pkt_size; +#endif + + /** + * For hwaccel-format frames, this should be a reference to the + * AVHWFramesContext describing the frame. + */ + AVBufferRef *hw_frames_ctx; + + /** + * Frame owner's private data. + * + * This field may be set by the code that allocates/owns the frame data. + * It is then not touched by any library functions, except: + * - a new reference to the underlying buffer is propagated by + * av_frame_copy_props() (and hence by av_frame_ref()); + * - it is unreferenced in av_frame_unref(); + * - on the caller's explicit request. E.g. libavcodec encoders/decoders + * will propagate a new reference to/from @ref AVPacket "AVPackets" if the + * caller sets @ref AV_CODEC_FLAG_COPY_OPAQUE. + * + * @see opaque the plain pointer analogue + */ + AVBufferRef *opaque_ref; + + /** + * @anchor cropping + * @name Cropping + * Video frames only. The number of pixels to discard from the the + * top/bottom/left/right border of the frame to obtain the sub-rectangle of + * the frame intended for presentation. + * @{ + */ + size_t crop_top; + size_t crop_bottom; + size_t crop_left; + size_t crop_right; + /** + * @} + */ + + /** + * AVBufferRef for internal use by a single libav* library. + * Must not be used to transfer data between libraries. + * Has to be NULL when ownership of the frame leaves the respective library. + * + * Code outside the FFmpeg libs should never check or change the contents of the buffer ref. + * + * FFmpeg calls av_buffer_unref() on it when the frame is unreferenced. + * av_frame_copy_props() calls create a new reference with av_buffer_ref() + * for the target frame's private_ref field. + */ + AVBufferRef *private_ref; + + /** + * Channel layout of the audio data. + */ + AVChannelLayout ch_layout; + + /** + * Duration of the frame, in the same units as pts. 0 if unknown. + */ + int64_t duration; +} AVFrame; + + +/** + * Allocate an AVFrame and set its fields to default values. The resulting + * struct must be freed using av_frame_free(). + * + * @return An AVFrame filled with default values or NULL on failure. + * + * @note this only allocates the AVFrame itself, not the data buffers. Those + * must be allocated through other means, e.g. with av_frame_get_buffer() or + * manually. + */ +AVFrame *av_frame_alloc(void); + +/** + * Free the frame and any dynamically allocated objects in it, + * e.g. extended_data. If the frame is reference counted, it will be + * unreferenced first. + * + * @param frame frame to be freed. The pointer will be set to NULL. + */ +void av_frame_free(AVFrame **frame); + +/** + * Set up a new reference to the data described by the source frame. + * + * Copy frame properties from src to dst and create a new reference for each + * AVBufferRef from src. + * + * If src is not reference counted, new buffers are allocated and the data is + * copied. + * + * @warning: dst MUST have been either unreferenced with av_frame_unref(dst), + * or newly allocated with av_frame_alloc() before calling this + * function, or undefined behavior will occur. + * + * @return 0 on success, a negative AVERROR on error + */ +int av_frame_ref(AVFrame *dst, const AVFrame *src); + +/** + * Ensure the destination frame refers to the same data described by the source + * frame, either by creating a new reference for each AVBufferRef from src if + * they differ from those in dst, by allocating new buffers and copying data if + * src is not reference counted, or by unrefencing it if src is empty. + * + * Frame properties on dst will be replaced by those from src. + * + * @return 0 on success, a negative AVERROR on error. On error, dst is + * unreferenced. + */ +int av_frame_replace(AVFrame *dst, const AVFrame *src); + +/** + * Create a new frame that references the same data as src. + * + * This is a shortcut for av_frame_alloc()+av_frame_ref(). + * + * @return newly created AVFrame on success, NULL on error. + */ +AVFrame *av_frame_clone(const AVFrame *src); + +/** + * Unreference all the buffers referenced by frame and reset the frame fields. + */ +void av_frame_unref(AVFrame *frame); + +/** + * Move everything contained in src to dst and reset src. + * + * @warning: dst is not unreferenced, but directly overwritten without reading + * or deallocating its contents. Call av_frame_unref(dst) manually + * before calling this function to ensure that no memory is leaked. + */ +void av_frame_move_ref(AVFrame *dst, AVFrame *src); + +/** + * Allocate new buffer(s) for audio or video data. + * + * The following fields must be set on frame before calling this function: + * - format (pixel format for video, sample format for audio) + * - width and height for video + * - nb_samples and ch_layout for audio + * + * This function will fill AVFrame.data and AVFrame.buf arrays and, if + * necessary, allocate and fill AVFrame.extended_data and AVFrame.extended_buf. + * For planar formats, one buffer will be allocated for each plane. + * + * @warning: if frame already has been allocated, calling this function will + * leak memory. In addition, undefined behavior can occur in certain + * cases. + * + * @param frame frame in which to store the new buffers. + * @param align Required buffer size alignment. If equal to 0, alignment will be + * chosen automatically for the current CPU. It is highly + * recommended to pass 0 here unless you know what you are doing. + * + * @return 0 on success, a negative AVERROR on error. + */ +int av_frame_get_buffer(AVFrame *frame, int align); + +/** + * Check if the frame data is writable. + * + * @return A positive value if the frame data is writable (which is true if and + * only if each of the underlying buffers has only one reference, namely the one + * stored in this frame). Return 0 otherwise. + * + * If 1 is returned the answer is valid until av_buffer_ref() is called on any + * of the underlying AVBufferRefs (e.g. through av_frame_ref() or directly). + * + * @see av_frame_make_writable(), av_buffer_is_writable() + */ +int av_frame_is_writable(AVFrame *frame); + +/** + * Ensure that the frame data is writable, avoiding data copy if possible. + * + * Do nothing if the frame is writable, allocate new buffers and copy the data + * if it is not. Non-refcounted frames behave as non-writable, i.e. a copy + * is always made. + * + * @return 0 on success, a negative AVERROR on error. + * + * @see av_frame_is_writable(), av_buffer_is_writable(), + * av_buffer_make_writable() + */ +int av_frame_make_writable(AVFrame *frame); + +/** + * Copy the frame data from src to dst. + * + * This function does not allocate anything, dst must be already initialized and + * allocated with the same parameters as src. + * + * This function only copies the frame data (i.e. the contents of the data / + * extended data arrays), not any other properties. + * + * @return >= 0 on success, a negative AVERROR on error. + */ +int av_frame_copy(AVFrame *dst, const AVFrame *src); + +/** + * Copy only "metadata" fields from src to dst. + * + * Metadata for the purpose of this function are those fields that do not affect + * the data layout in the buffers. E.g. pts, sample rate (for audio) or sample + * aspect ratio (for video), but not width/height or channel layout. + * Side data is also copied. + */ +int av_frame_copy_props(AVFrame *dst, const AVFrame *src); + +/** + * Get the buffer reference a given data plane is stored in. + * + * @param frame the frame to get the plane's buffer from + * @param plane index of the data plane of interest in frame->extended_data. + * + * @return the buffer reference that contains the plane or NULL if the input + * frame is not valid. + */ +AVBufferRef *av_frame_get_plane_buffer(const AVFrame *frame, int plane); + +/** + * Add a new side data to a frame. + * + * @param frame a frame to which the side data should be added + * @param type type of the added side data + * @param size size of the side data + * + * @return newly added side data on success, NULL on error + */ +AVFrameSideData *av_frame_new_side_data(AVFrame *frame, + enum AVFrameSideDataType type, + size_t size); + +/** + * Add a new side data to a frame from an existing AVBufferRef + * + * @param frame a frame to which the side data should be added + * @param type the type of the added side data + * @param buf an AVBufferRef to add as side data. The ownership of + * the reference is transferred to the frame. + * + * @return newly added side data on success, NULL on error. On failure + * the frame is unchanged and the AVBufferRef remains owned by + * the caller. + */ +AVFrameSideData *av_frame_new_side_data_from_buf(AVFrame *frame, + enum AVFrameSideDataType type, + AVBufferRef *buf); + +/** + * @return a pointer to the side data of a given type on success, NULL if there + * is no side data with such type in this frame. + */ +AVFrameSideData *av_frame_get_side_data(const AVFrame *frame, + enum AVFrameSideDataType type); + +/** + * Remove and free all side data instances of the given type. + */ +void av_frame_remove_side_data(AVFrame *frame, enum AVFrameSideDataType type); + + +/** + * Flags for frame cropping. + */ +enum { + /** + * Apply the maximum possible cropping, even if it requires setting the + * AVFrame.data[] entries to unaligned pointers. Passing unaligned data + * to FFmpeg API is generally not allowed, and causes undefined behavior + * (such as crashes). You can pass unaligned data only to FFmpeg APIs that + * are explicitly documented to accept it. Use this flag only if you + * absolutely know what you are doing. + */ + AV_FRAME_CROP_UNALIGNED = 1 << 0, +}; + +/** + * Crop the given video AVFrame according to its crop_left/crop_top/crop_right/ + * crop_bottom fields. If cropping is successful, the function will adjust the + * data pointers and the width/height fields, and set the crop fields to 0. + * + * In all cases, the cropping boundaries will be rounded to the inherent + * alignment of the pixel format. In some cases, such as for opaque hwaccel + * formats, the left/top cropping is ignored. The crop fields are set to 0 even + * if the cropping was rounded or ignored. + * + * @param frame the frame which should be cropped + * @param flags Some combination of AV_FRAME_CROP_* flags, or 0. + * + * @return >= 0 on success, a negative AVERROR on error. If the cropping fields + * were invalid, AVERROR(ERANGE) is returned, and nothing is changed. + */ +int av_frame_apply_cropping(AVFrame *frame, int flags); + +/** + * @return a string identifying the side data type + */ +const char *av_frame_side_data_name(enum AVFrameSideDataType type); + +/** + * @return side data descriptor corresponding to a given side data type, NULL + * when not available. + */ +const AVSideDataDescriptor *av_frame_side_data_desc(enum AVFrameSideDataType type); + +/** + * Free all side data entries and their contents, then zeroes out the + * values which the pointers are pointing to. + * + * @param sd pointer to array of side data to free. Will be set to NULL + * upon return. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. Will be set to 0 upon return. + */ +void av_frame_side_data_free(AVFrameSideData ***sd, int *nb_sd); + +/** + * Remove existing entries before adding new ones. + */ +#define AV_FRAME_SIDE_DATA_FLAG_UNIQUE (1 << 0) +/** + * Don't add a new entry if another of the same type exists. + * Applies only for side data types without the AV_SIDE_DATA_PROP_MULTI prop. + */ +#define AV_FRAME_SIDE_DATA_FLAG_REPLACE (1 << 1) + +/** + * Add new side data entry to an array. + * + * @param sd pointer to array of side data to which to add another entry, + * or to NULL in order to start a new array. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. + * @param type type of the added side data + * @param size size of the side data + * @param flags Some combination of AV_FRAME_SIDE_DATA_FLAG_* flags, or 0. + * + * @return newly added side data on success, NULL on error. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_UNIQUE being set, entries of + * matching AVFrameSideDataType will be removed before the addition + * is attempted. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_REPLACE being set, if an + * entry of the same type already exists, it will be replaced instead. + */ +AVFrameSideData *av_frame_side_data_new(AVFrameSideData ***sd, int *nb_sd, + enum AVFrameSideDataType type, + size_t size, unsigned int flags); + +/** + * Add a new side data entry to an array from an existing AVBufferRef. + * + * @param sd pointer to array of side data to which to add another entry, + * or to NULL in order to start a new array. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. + * @param type type of the added side data + * @param buf Pointer to AVBufferRef to add to the array. On success, + * the function takes ownership of the AVBufferRef and *buf is + * set to NULL, unless AV_FRAME_SIDE_DATA_FLAG_NEW_REF is set + * in which case the ownership will remain with the caller. + * @param flags Some combination of AV_FRAME_SIDE_DATA_FLAG_* flags, or 0. + * + * @return newly added side data on success, NULL on error. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_UNIQUE being set, entries of + * matching AVFrameSideDataType will be removed before the addition + * is attempted. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_REPLACE being set, if an + * entry of the same type already exists, it will be replaced instead. + * + */ +AVFrameSideData *av_frame_side_data_add(AVFrameSideData ***sd, int *nb_sd, + enum AVFrameSideDataType type, + AVBufferRef **buf, unsigned int flags); + +/** + * Add a new side data entry to an array based on existing side data, taking + * a reference towards the contained AVBufferRef. + * + * @param sd pointer to array of side data to which to add another entry, + * or to NULL in order to start a new array. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. + * @param src side data to be cloned, with a new reference utilized + * for the buffer. + * @param flags Some combination of AV_FRAME_SIDE_DATA_FLAG_* flags, or 0. + * + * @return negative error code on failure, >=0 on success. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_UNIQUE being set, entries of + * matching AVFrameSideDataType will be removed before the addition + * is attempted. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_REPLACE being set, if an + * entry of the same type already exists, it will be replaced instead. + */ +int av_frame_side_data_clone(AVFrameSideData ***sd, int *nb_sd, + const AVFrameSideData *src, unsigned int flags); + +/** + * Get a side data entry of a specific type from an array. + * + * @param sd array of side data. + * @param nb_sd integer containing the number of entries in the array. + * @param type type of side data to be queried + * + * @return a pointer to the side data of a given type on success, NULL if there + * is no side data with such type in this set. + */ +const AVFrameSideData *av_frame_side_data_get_c(const AVFrameSideData * const *sd, + const int nb_sd, + enum AVFrameSideDataType type); + +/** + * Wrapper around av_frame_side_data_get_c() to workaround the limitation + * that for any type T the conversion from T * const * to const T * const * + * is not performed automatically in C. + * @see av_frame_side_data_get_c() + */ +static inline +const AVFrameSideData *av_frame_side_data_get(AVFrameSideData * const *sd, + const int nb_sd, + enum AVFrameSideDataType type) +{ + return av_frame_side_data_get_c((const AVFrameSideData * const *)sd, + nb_sd, type); +} + +/** + * Remove and free all side data instances of the given type from an array. + */ +void av_frame_side_data_remove(AVFrameSideData ***sd, int *nb_sd, + enum AVFrameSideDataType type); +/** + * @} + */ + +#endif /* AVUTIL_FRAME_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hash.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hash.h new file mode 100644 index 00000000..94151ded --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hash.h @@ -0,0 +1,264 @@ +/* + * Copyright (C) 2013 Reimar Döffinger + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_hash_generic + * Generic hashing API + */ + +#ifndef AVUTIL_HASH_H +#define AVUTIL_HASH_H + +#include +#include + +/** + * @defgroup lavu_hash Hash Functions + * @ingroup lavu_crypto + * Hash functions useful in multimedia. + * + * Hash functions are widely used in multimedia, from error checking and + * concealment to internal regression testing. libavutil has efficient + * implementations of a variety of hash functions that may be useful for + * FFmpeg and other multimedia applications. + * + * @{ + * + * @defgroup lavu_hash_generic Generic Hashing API + * An abstraction layer for all hash functions supported by libavutil. + * + * If your application needs to support a wide range of different hash + * functions, then the Generic Hashing API is for you. It provides a generic, + * reusable API for @ref lavu_hash "all hash functions" implemented in libavutil. + * If you just need to use one particular hash function, use the @ref lavu_hash + * "individual hash" directly. + * + * @section Sample Code + * + * A basic template for using the Generic Hashing API follows: + * + * @code + * struct AVHashContext *ctx = NULL; + * const char *hash_name = NULL; + * uint8_t *output_buf = NULL; + * + * // Select from a string returned by av_hash_names() + * hash_name = ...; + * + * // Allocate a hash context + * ret = av_hash_alloc(&ctx, hash_name); + * if (ret < 0) + * return ret; + * + * // Initialize the hash context + * av_hash_init(ctx); + * + * // Update the hash context with data + * while (data_left) { + * av_hash_update(ctx, data, size); + * } + * + * // Now we have no more data, so it is time to finalize the hash and get the + * // output. But we need to first allocate an output buffer. Note that you can + * // use any memory allocation function, including malloc(), not just + * // av_malloc(). + * output_buf = av_malloc(av_hash_get_size(ctx)); + * if (!output_buf) + * return AVERROR(ENOMEM); + * + * // Finalize the hash context. + * // You can use any of the av_hash_final*() functions provided, for other + * // output formats. If you do so, be sure to adjust the memory allocation + * // above. See the function documentation below for the exact amount of extra + * // memory needed. + * av_hash_final(ctx, output_buffer); + * + * // Free the context + * av_hash_freep(&ctx); + * @endcode + * + * @section Hash Function-Specific Information + * If the CRC32 hash is selected, the #AV_CRC_32_IEEE polynomial will be + * used. + * + * If the Murmur3 hash is selected, the default seed will be used. See @ref + * lavu_murmur3_seedinfo "Murmur3" for more information. + * + * @{ + */ + +/** + * @example ffhash.c + * This example is a simple command line application that takes one or more + * arguments. It demonstrates a typical use of the hashing API with allocation, + * initialization, updating, and finalizing. + */ + +struct AVHashContext; + +/** + * Allocate a hash context for the algorithm specified by name. + * + * @return >= 0 for success, a negative error code for failure + * + * @note The context is not initialized after a call to this function; you must + * call av_hash_init() to do so. + */ +int av_hash_alloc(struct AVHashContext **ctx, const char *name); + +/** + * Get the names of available hash algorithms. + * + * This function can be used to enumerate the algorithms. + * + * @param[in] i Index of the hash algorithm, starting from 0 + * @return Pointer to a static string or `NULL` if `i` is out of range + */ +const char *av_hash_names(int i); + +/** + * Get the name of the algorithm corresponding to the given hash context. + */ +const char *av_hash_get_name(const struct AVHashContext *ctx); + +/** + * Maximum value that av_hash_get_size() will currently return. + * + * You can use this if you absolutely want or need to use static allocation for + * the output buffer and are fine with not supporting hashes newly added to + * libavutil without recompilation. + * + * @warning + * Adding new hashes with larger sizes, and increasing the macro while doing + * so, will not be considered an ABI change. To prevent your code from + * overflowing a buffer, either dynamically allocate the output buffer with + * av_hash_get_size(), or limit your use of the Hashing API to hashes that are + * already in FFmpeg during the time of compilation. + */ +#define AV_HASH_MAX_SIZE 64 + +/** + * Get the size of the resulting hash value in bytes. + * + * The maximum value this function will currently return is available as macro + * #AV_HASH_MAX_SIZE. + * + * @param[in] ctx Hash context + * @return Size of the hash value in bytes + */ +int av_hash_get_size(const struct AVHashContext *ctx); + +/** + * Initialize or reset a hash context. + * + * @param[in,out] ctx Hash context + */ +void av_hash_init(struct AVHashContext *ctx); + +/** + * Update a hash context with additional data. + * + * @param[in,out] ctx Hash context + * @param[in] src Data to be added to the hash context + * @param[in] len Size of the additional data + */ +void av_hash_update(struct AVHashContext *ctx, const uint8_t *src, size_t len); + +/** + * Finalize a hash context and compute the actual hash value. + * + * The minimum size of `dst` buffer is given by av_hash_get_size() or + * #AV_HASH_MAX_SIZE. The use of the latter macro is discouraged. + * + * It is not safe to update or finalize a hash context again, if it has already + * been finalized. + * + * @param[in,out] ctx Hash context + * @param[out] dst Where the final hash value will be stored + * + * @see av_hash_final_bin() provides an alternative API + */ +void av_hash_final(struct AVHashContext *ctx, uint8_t *dst); + +/** + * Finalize a hash context and store the actual hash value in a buffer. + * + * It is not safe to update or finalize a hash context again, if it has already + * been finalized. + * + * If `size` is smaller than the hash size (given by av_hash_get_size()), the + * hash is truncated; if size is larger, the buffer is padded with 0. + * + * @param[in,out] ctx Hash context + * @param[out] dst Where the final hash value will be stored + * @param[in] size Number of bytes to write to `dst` + */ +void av_hash_final_bin(struct AVHashContext *ctx, uint8_t *dst, int size); + +/** + * Finalize a hash context and store the hexadecimal representation of the + * actual hash value as a string. + * + * It is not safe to update or finalize a hash context again, if it has already + * been finalized. + * + * The string is always 0-terminated. + * + * If `size` is smaller than `2 * hash_size + 1`, where `hash_size` is the + * value returned by av_hash_get_size(), the string will be truncated. + * + * @param[in,out] ctx Hash context + * @param[out] dst Where the string will be stored + * @param[in] size Maximum number of bytes to write to `dst` + */ +void av_hash_final_hex(struct AVHashContext *ctx, uint8_t *dst, int size); + +/** + * Finalize a hash context and store the Base64 representation of the + * actual hash value as a string. + * + * It is not safe to update or finalize a hash context again, if it has already + * been finalized. + * + * The string is always 0-terminated. + * + * If `size` is smaller than AV_BASE64_SIZE(hash_size), where `hash_size` is + * the value returned by av_hash_get_size(), the string will be truncated. + * + * @param[in,out] ctx Hash context + * @param[out] dst Where the final hash value will be stored + * @param[in] size Maximum number of bytes to write to `dst` + */ +void av_hash_final_b64(struct AVHashContext *ctx, uint8_t *dst, int size); + +/** + * Free hash context and set hash context pointer to `NULL`. + * + * @param[in,out] ctx Pointer to hash context + */ +void av_hash_freep(struct AVHashContext **ctx); + +/** + * @} + * @} + */ + +#endif /* AVUTIL_HASH_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hdr_dynamic_metadata.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hdr_dynamic_metadata.h new file mode 100644 index 00000000..5100ed6f --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hdr_dynamic_metadata.h @@ -0,0 +1,376 @@ +/* + * Copyright (c) 2018 Mohammad Izadi + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HDR_DYNAMIC_METADATA_H +#define AVUTIL_HDR_DYNAMIC_METADATA_H + +#include "frame.h" +#include "rational.h" + +/** + * Option for overlapping elliptical pixel selectors in an image. + */ +enum AVHDRPlusOverlapProcessOption { + AV_HDR_PLUS_OVERLAP_PROCESS_WEIGHTED_AVERAGING = 0, + AV_HDR_PLUS_OVERLAP_PROCESS_LAYERING = 1, +}; + +/** + * Represents the percentile at a specific percentage in + * a distribution. + */ +typedef struct AVHDRPlusPercentile { + /** + * The percentage value corresponding to a specific percentile linearized + * RGB value in the processing window in the scene. The value shall be in + * the range of 0 to100, inclusive. + */ + uint8_t percentage; + + /** + * The linearized maxRGB value at a specific percentile in the processing + * window in the scene. The value shall be in the range of 0 to 1, inclusive + * and in multiples of 0.00001. + */ + AVRational percentile; +} AVHDRPlusPercentile; + +/** + * Color transform parameters at a processing window in a dynamic metadata for + * SMPTE 2094-40. + */ +typedef struct AVHDRPlusColorTransformParams { + /** + * The relative x coordinate of the top left pixel of the processing + * window. The value shall be in the range of 0 and 1, inclusive and + * in multiples of 1/(width of Picture - 1). The value 1 corresponds + * to the absolute coordinate of width of Picture - 1. The value for + * first processing window shall be 0. + */ + AVRational window_upper_left_corner_x; + + /** + * The relative y coordinate of the top left pixel of the processing + * window. The value shall be in the range of 0 and 1, inclusive and + * in multiples of 1/(height of Picture - 1). The value 1 corresponds + * to the absolute coordinate of height of Picture - 1. The value for + * first processing window shall be 0. + */ + AVRational window_upper_left_corner_y; + + /** + * The relative x coordinate of the bottom right pixel of the processing + * window. The value shall be in the range of 0 and 1, inclusive and + * in multiples of 1/(width of Picture - 1). The value 1 corresponds + * to the absolute coordinate of width of Picture - 1. The value for + * first processing window shall be 1. + */ + AVRational window_lower_right_corner_x; + + /** + * The relative y coordinate of the bottom right pixel of the processing + * window. The value shall be in the range of 0 and 1, inclusive and + * in multiples of 1/(height of Picture - 1). The value 1 corresponds + * to the absolute coordinate of height of Picture - 1. The value for + * first processing window shall be 1. + */ + AVRational window_lower_right_corner_y; + + /** + * The x coordinate of the center position of the concentric internal and + * external ellipses of the elliptical pixel selector in the processing + * window. The value shall be in the range of 0 to (width of Picture - 1), + * inclusive and in multiples of 1 pixel. + */ + uint16_t center_of_ellipse_x; + + /** + * The y coordinate of the center position of the concentric internal and + * external ellipses of the elliptical pixel selector in the processing + * window. The value shall be in the range of 0 to (height of Picture - 1), + * inclusive and in multiples of 1 pixel. + */ + uint16_t center_of_ellipse_y; + + /** + * The clockwise rotation angle in degree of arc with respect to the + * positive direction of the x-axis of the concentric internal and external + * ellipses of the elliptical pixel selector in the processing window. The + * value shall be in the range of 0 to 180, inclusive and in multiples of 1. + */ + uint8_t rotation_angle; + + /** + * The semi-major axis value of the internal ellipse of the elliptical pixel + * selector in amount of pixels in the processing window. The value shall be + * in the range of 1 to 65535, inclusive and in multiples of 1 pixel. + */ + uint16_t semimajor_axis_internal_ellipse; + + /** + * The semi-major axis value of the external ellipse of the elliptical pixel + * selector in amount of pixels in the processing window. The value + * shall not be less than semimajor_axis_internal_ellipse of the current + * processing window. The value shall be in the range of 1 to 65535, + * inclusive and in multiples of 1 pixel. + */ + uint16_t semimajor_axis_external_ellipse; + + /** + * The semi-minor axis value of the external ellipse of the elliptical pixel + * selector in amount of pixels in the processing window. The value shall be + * in the range of 1 to 65535, inclusive and in multiples of 1 pixel. + */ + uint16_t semiminor_axis_external_ellipse; + + /** + * Overlap process option indicates one of the two methods of combining + * rendered pixels in the processing window in an image with at least one + * elliptical pixel selector. For overlapping elliptical pixel selectors + * in an image, overlap_process_option shall have the same value. + */ + enum AVHDRPlusOverlapProcessOption overlap_process_option; + + /** + * The maximum of the color components of linearized RGB values in the + * processing window in the scene. The values should be in the range of 0 to + * 1, inclusive and in multiples of 0.00001. maxscl[ 0 ], maxscl[ 1 ], and + * maxscl[ 2 ] are corresponding to R, G, B color components respectively. + */ + AVRational maxscl[3]; + + /** + * The average of linearized maxRGB values in the processing window in the + * scene. The value should be in the range of 0 to 1, inclusive and in + * multiples of 0.00001. + */ + AVRational average_maxrgb; + + /** + * The number of linearized maxRGB values at given percentiles in the + * processing window in the scene. The maximum value shall be 15. + */ + uint8_t num_distribution_maxrgb_percentiles; + + /** + * The linearized maxRGB values at given percentiles in the + * processing window in the scene. + */ + AVHDRPlusPercentile distribution_maxrgb[15]; + + /** + * The fraction of selected pixels in the image that contains the brightest + * pixel in the scene. The value shall be in the range of 0 to 1, inclusive + * and in multiples of 0.001. + */ + AVRational fraction_bright_pixels; + + /** + * This flag indicates that the metadata for the tone mapping function in + * the processing window is present (for value of 1). + */ + uint8_t tone_mapping_flag; + + /** + * The x coordinate of the separation point between the linear part and the + * curved part of the tone mapping function. The value shall be in the range + * of 0 to 1, excluding 0 and in multiples of 1/4095. + */ + AVRational knee_point_x; + + /** + * The y coordinate of the separation point between the linear part and the + * curved part of the tone mapping function. The value shall be in the range + * of 0 to 1, excluding 0 and in multiples of 1/4095. + */ + AVRational knee_point_y; + + /** + * The number of the intermediate anchor parameters of the tone mapping + * function in the processing window. The maximum value shall be 15. + */ + uint8_t num_bezier_curve_anchors; + + /** + * The intermediate anchor parameters of the tone mapping function in the + * processing window in the scene. The values should be in the range of 0 + * to 1, inclusive and in multiples of 1/1023. + */ + AVRational bezier_curve_anchors[15]; + + /** + * This flag shall be equal to 0 in bitstreams conforming to this version of + * this Specification. Other values are reserved for future use. + */ + uint8_t color_saturation_mapping_flag; + + /** + * The color saturation gain in the processing window in the scene. The + * value shall be in the range of 0 to 63/8, inclusive and in multiples of + * 1/8. The default value shall be 1. + */ + AVRational color_saturation_weight; +} AVHDRPlusColorTransformParams; + +/** + * This struct represents dynamic metadata for color volume transform - + * application 4 of SMPTE 2094-40:2016 standard. + * + * To be used as payload of a AVFrameSideData or AVPacketSideData with the + * appropriate type. + * + * @note The struct should be allocated with + * av_dynamic_hdr_plus_alloc() and its size is not a part of + * the public ABI. + */ +typedef struct AVDynamicHDRPlus { + /** + * Country code by Rec. ITU-T T.35 Annex A. The value shall be 0xB5. + */ + uint8_t itu_t_t35_country_code; + + /** + * Application version in the application defining document in ST-2094 + * suite. The value shall be set to 0. + */ + uint8_t application_version; + + /** + * The number of processing windows. The value shall be in the range + * of 1 to 3, inclusive. + */ + uint8_t num_windows; + + /** + * The color transform parameters for every processing window. + */ + AVHDRPlusColorTransformParams params[3]; + + /** + * The nominal maximum display luminance of the targeted system display, + * in units of 0.0001 candelas per square metre. The value shall be in + * the range of 0 to 10000, inclusive. + */ + AVRational targeted_system_display_maximum_luminance; + + /** + * This flag shall be equal to 0 in bit streams conforming to this version + * of this Specification. The value 1 is reserved for future use. + */ + uint8_t targeted_system_display_actual_peak_luminance_flag; + + /** + * The number of rows in the targeted system_display_actual_peak_luminance + * array. The value shall be in the range of 2 to 25, inclusive. + */ + uint8_t num_rows_targeted_system_display_actual_peak_luminance; + + /** + * The number of columns in the + * targeted_system_display_actual_peak_luminance array. The value shall be + * in the range of 2 to 25, inclusive. + */ + uint8_t num_cols_targeted_system_display_actual_peak_luminance; + + /** + * The normalized actual peak luminance of the targeted system display. The + * values should be in the range of 0 to 1, inclusive and in multiples of + * 1/15. + */ + AVRational targeted_system_display_actual_peak_luminance[25][25]; + + /** + * This flag shall be equal to 0 in bitstreams conforming to this version of + * this Specification. The value 1 is reserved for future use. + */ + uint8_t mastering_display_actual_peak_luminance_flag; + + /** + * The number of rows in the mastering_display_actual_peak_luminance array. + * The value shall be in the range of 2 to 25, inclusive. + */ + uint8_t num_rows_mastering_display_actual_peak_luminance; + + /** + * The number of columns in the mastering_display_actual_peak_luminance + * array. The value shall be in the range of 2 to 25, inclusive. + */ + uint8_t num_cols_mastering_display_actual_peak_luminance; + + /** + * The normalized actual peak luminance of the mastering display used for + * mastering the image essence. The values should be in the range of 0 to 1, + * inclusive and in multiples of 1/15. + */ + AVRational mastering_display_actual_peak_luminance[25][25]; +} AVDynamicHDRPlus; + +/** + * Allocate an AVDynamicHDRPlus structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVDynamicHDRPlus filled with default values or NULL + * on failure. + */ +AVDynamicHDRPlus *av_dynamic_hdr_plus_alloc(size_t *size); + +/** + * Allocate a complete AVDynamicHDRPlus and add it to the frame. + * @param frame The frame which side data is added to. + * + * @return The AVDynamicHDRPlus structure to be filled by caller or NULL + * on failure. + */ +AVDynamicHDRPlus *av_dynamic_hdr_plus_create_side_data(AVFrame *frame); + +/** + * Parse the user data registered ITU-T T.35 to AVbuffer (AVDynamicHDRPlus). + * The T.35 buffer must begin with the application mode, skipping the + * country code, terminal provider codes, and application identifier. + * @param s A pointer containing the decoded AVDynamicHDRPlus structure. + * @param data The byte array containing the raw ITU-T T.35 data. + * @param size Size of the data array in bytes. + * + * @return >= 0 on success. Otherwise, returns the appropriate AVERROR. + */ +int av_dynamic_hdr_plus_from_t35(AVDynamicHDRPlus *s, const uint8_t *data, + size_t size); + +#define AV_HDR_PLUS_MAX_PAYLOAD_SIZE 907 + +/** + * Serialize dynamic HDR10+ metadata to a user data registered ITU-T T.35 buffer, + * excluding the first 48 bytes of the header, and beginning with the application mode. + * @param s A pointer containing the decoded AVDynamicHDRPlus structure. + * @param[in,out] data A pointer to pointer to a byte buffer to be filled with the + * serialized metadata. + * If *data is NULL, a buffer be will be allocated and a pointer to + * it stored in its place. The caller assumes ownership of the buffer. + * May be NULL, in which case the function will only store the + * required buffer size in *size. + * @param[in,out] size A pointer to a size to be set to the returned buffer's size. + * If *data is not NULL, *size must contain the size of the input + * buffer. May be NULL only if *data is NULL. + * + * @return >= 0 on success. Otherwise, returns the appropriate AVERROR. + */ +int av_dynamic_hdr_plus_to_t35(const AVDynamicHDRPlus *s, uint8_t **data, size_t *size); + +#endif /* AVUTIL_HDR_DYNAMIC_METADATA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hdr_dynamic_vivid_metadata.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hdr_dynamic_vivid_metadata.h new file mode 100644 index 00000000..4524a815 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hdr_dynamic_vivid_metadata.h @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2021 Limin Wang + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HDR_DYNAMIC_VIVID_METADATA_H +#define AVUTIL_HDR_DYNAMIC_VIVID_METADATA_H + +#include "frame.h" +#include "rational.h" + +/** + * HDR Vivid three spline params. + */ +typedef struct AVHDRVivid3SplineParams { + /** + * The mode of three Spline. the value shall be in the range + * of 0 to 3, inclusive. + */ + int th_mode; + + /** + * three_Spline_TH_enable_MB is in the range of 0.0 to 1.0, inclusive + * and in multiples of 1.0/255. + * + */ + AVRational th_enable_mb; + + /** + * 3Spline_TH_enable of three Spline. + * The value shall be in the range of 0.0 to 1.0, inclusive. + * and in multiples of 1.0/4095. + */ + AVRational th_enable; + + /** + * 3Spline_TH_Delta1 of three Spline. + * The value shall be in the range of 0.0 to 0.25, inclusive, + * and in multiples of 0.25/1023. + */ + AVRational th_delta1; + + /** + * 3Spline_TH_Delta2 of three Spline. + * The value shall be in the range of 0.0 to 0.25, inclusive, + * and in multiples of 0.25/1023. + */ + AVRational th_delta2; + + /** + * 3Spline_enable_Strength of three Spline. + * The value shall be in the range of 0.0 to 1.0, inclusive, + * and in multiples of 1.0/255. + */ + AVRational enable_strength; +} AVHDRVivid3SplineParams; + +/** + * Color tone mapping parameters at a processing window in a dynamic metadata for + * CUVA 005.1:2021. + */ +typedef struct AVHDRVividColorToneMappingParams { + /** + * The nominal maximum display luminance of the targeted system display, + * in multiples of 1.0/4095 candelas per square metre. The value shall be in + * the range of 0.0 to 1.0, inclusive. + */ + AVRational targeted_system_display_maximum_luminance; + + /** + * This flag indicates that transfer the base paramter(for value of 1) + */ + int base_enable_flag; + + /** + * base_param_m_p in the base parameter, + * in multiples of 1.0/16383. The value shall be in + * the range of 0.0 to 1.0, inclusive. + */ + AVRational base_param_m_p; + + /** + * base_param_m_m in the base parameter, + * in multiples of 1.0/10. The value shall be in + * the range of 0.0 to 6.3, inclusive. + */ + AVRational base_param_m_m; + + /** + * base_param_m_a in the base parameter, + * in multiples of 1.0/1023. The value shall be in + * the range of 0.0 to 1.0 inclusive. + */ + AVRational base_param_m_a; + + /** + * base_param_m_b in the base parameter, + * in multiples of 1/1023. The value shall be in + * the range of 0.0 to 1.0, inclusive. + */ + AVRational base_param_m_b; + + /** + * base_param_m_n in the base parameter, + * in multiples of 1.0/10. The value shall be in + * the range of 0.0 to 6.3, inclusive. + */ + AVRational base_param_m_n; + + /** + * indicates k1_0 in the base parameter, + * base_param_k1 <= 1: k1_0 = base_param_k1 + * base_param_k1 > 1: reserved + */ + int base_param_k1; + + /** + * indicates k2_0 in the base parameter, + * base_param_k2 <= 1: k2_0 = base_param_k2 + * base_param_k2 > 1: reserved + */ + int base_param_k2; + + /** + * indicates k3_0 in the base parameter, + * base_param_k3 == 1: k3_0 = base_param_k3 + * base_param_k3 == 2: k3_0 = maximum_maxrgb + * base_param_k3 > 2: reserved + */ + int base_param_k3; + + /** + * This flag indicates that delta mode of base paramter(for value of 1) + */ + int base_param_Delta_enable_mode; + + /** + * base_param_Delta in the base parameter, + * in multiples of 1.0/127. The value shall be in + * the range of 0.0 to 1.0, inclusive. + */ + AVRational base_param_Delta; + + /** + * indicates 3Spline_enable_flag in the base parameter, + * This flag indicates that transfer three Spline of base paramter(for value of 1) + */ + int three_Spline_enable_flag; + + /** + * The number of three Spline. The value shall be in the range + * of 1 to 2, inclusive. + */ + int three_Spline_num; + +#if FF_API_HDR_VIVID_THREE_SPLINE + /** + * The mode of three Spline. the value shall be in the range + * of 0 to 3, inclusive. + * @deprecated Use three_spline instead + */ + attribute_deprecated + int three_Spline_TH_mode; + + /** + * three_Spline_TH_enable_MB is in the range of 0.0 to 1.0, inclusive + * and in multiples of 1.0/255. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_TH_enable_MB; + + /** + * 3Spline_TH_enable of three Spline. + * The value shall be in the range of 0.0 to 1.0, inclusive. + * and in multiples of 1.0/4095. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_TH_enable; + + /** + * 3Spline_TH_Delta1 of three Spline. + * The value shall be in the range of 0.0 to 0.25, inclusive, + * and in multiples of 0.25/1023. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_TH_Delta1; + + /** + * 3Spline_TH_Delta2 of three Spline. + * The value shall be in the range of 0.0 to 0.25, inclusive, + * and in multiples of 0.25/1023. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_TH_Delta2; + + /** + * 3Spline_enable_Strength of three Spline. + * The value shall be in the range of 0.0 to 1.0, inclusive, + * and in multiples of 1.0/255. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_enable_Strength; +#endif + + AVHDRVivid3SplineParams three_spline[2]; +} AVHDRVividColorToneMappingParams; + + +/** + * Color transform parameters at a processing window in a dynamic metadata for + * CUVA 005.1:2021. + */ +typedef struct AVHDRVividColorTransformParams { + /** + * Indicates the minimum brightness of the displayed content. + * The values should be in the range of 0.0 to 1.0, + * inclusive and in multiples of 1/4095. + */ + AVRational minimum_maxrgb; + + /** + * Indicates the average brightness of the displayed content. + * The values should be in the range of 0.0 to 1.0, + * inclusive and in multiples of 1/4095. + */ + AVRational average_maxrgb; + + /** + * Indicates the variance brightness of the displayed content. + * The values should be in the range of 0.0 to 1.0, + * inclusive and in multiples of 1/4095. + */ + AVRational variance_maxrgb; + + /** + * Indicates the maximum brightness of the displayed content. + * The values should be in the range of 0.0 to 1.0, inclusive + * and in multiples of 1/4095. + */ + AVRational maximum_maxrgb; + + /** + * This flag indicates that the metadata for the tone mapping function in + * the processing window is present (for value of 1). + */ + int tone_mapping_mode_flag; + + /** + * The number of tone mapping param. The value shall be in the range + * of 1 to 2, inclusive. + */ + int tone_mapping_param_num; + + /** + * The color tone mapping parameters. + */ + AVHDRVividColorToneMappingParams tm_params[2]; + + /** + * This flag indicates that the metadata for the color saturation mapping in + * the processing window is present (for value of 1). + */ + int color_saturation_mapping_flag; + + /** + * The number of color saturation param. The value shall be in the range + * of 0 to 7, inclusive. + */ + int color_saturation_num; + + /** + * Indicates the color correction strength parameter. + * The values should be in the range of 0.0 to 2.0, inclusive + * and in multiples of 1/128. + */ + AVRational color_saturation_gain[8]; +} AVHDRVividColorTransformParams; + +/** + * This struct represents dynamic metadata for color volume transform - + * CUVA 005.1:2021 standard + * + * To be used as payload of a AVFrameSideData or AVPacketSideData with the + * appropriate type. + * + * @note The struct should be allocated with + * av_dynamic_hdr_vivid_alloc() and its size is not a part of + * the public ABI. + */ +typedef struct AVDynamicHDRVivid { + /** + * The system start code. The value shall be set to 0x01. + */ + uint8_t system_start_code; + + /** + * The number of processing windows. The value shall be set to 0x01 + * if the system_start_code is 0x01. + */ + uint8_t num_windows; + + /** + * The color transform parameters for every processing window. + */ + AVHDRVividColorTransformParams params[3]; +} AVDynamicHDRVivid; + +/** + * Allocate an AVDynamicHDRVivid structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVDynamicHDRVivid filled with default values or NULL + * on failure. + */ +AVDynamicHDRVivid *av_dynamic_hdr_vivid_alloc(size_t *size); + +/** + * Allocate a complete AVDynamicHDRVivid and add it to the frame. + * @param frame The frame which side data is added to. + * + * @return The AVDynamicHDRVivid structure to be filled by caller or NULL + * on failure. + */ +AVDynamicHDRVivid *av_dynamic_hdr_vivid_create_side_data(AVFrame *frame); + +#endif /* AVUTIL_HDR_DYNAMIC_VIVID_METADATA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hmac.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hmac.h new file mode 100644 index 00000000..ca4da6a6 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hmac.h @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2012 Martin Storsjo + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HMAC_H +#define AVUTIL_HMAC_H + +#include + +/** + * @defgroup lavu_hmac HMAC + * @ingroup lavu_crypto + * @{ + */ + +enum AVHMACType { + AV_HMAC_MD5, + AV_HMAC_SHA1, + AV_HMAC_SHA224, + AV_HMAC_SHA256, + AV_HMAC_SHA384, + AV_HMAC_SHA512, +}; + +typedef struct AVHMAC AVHMAC; + +/** + * Allocate an AVHMAC context. + * @param type The hash function used for the HMAC. + */ +AVHMAC *av_hmac_alloc(enum AVHMACType type); + +/** + * Free an AVHMAC context. + * @param ctx The context to free, may be NULL + */ +void av_hmac_free(AVHMAC *ctx); + +/** + * Initialize an AVHMAC context with an authentication key. + * @param ctx The HMAC context + * @param key The authentication key + * @param keylen The length of the key, in bytes + */ +void av_hmac_init(AVHMAC *ctx, const uint8_t *key, unsigned int keylen); + +/** + * Hash data with the HMAC. + * @param ctx The HMAC context + * @param data The data to hash + * @param len The length of the data, in bytes + */ +void av_hmac_update(AVHMAC *ctx, const uint8_t *data, unsigned int len); + +/** + * Finish hashing and output the HMAC digest. + * @param ctx The HMAC context + * @param out The output buffer to write the digest into + * @param outlen The length of the out buffer, in bytes + * @return The number of bytes written to out, or a negative error code. + */ +int av_hmac_final(AVHMAC *ctx, uint8_t *out, unsigned int outlen); + +/** + * Hash an array of data with a key. + * @param ctx The HMAC context + * @param data The data to hash + * @param len The length of the data, in bytes + * @param key The authentication key + * @param keylen The length of the key, in bytes + * @param out The output buffer to write the digest into + * @param outlen The length of the out buffer, in bytes + * @return The number of bytes written to out, or a negative error code. + */ +int av_hmac_calc(AVHMAC *ctx, const uint8_t *data, unsigned int len, + const uint8_t *key, unsigned int keylen, + uint8_t *out, unsigned int outlen); + +/** + * @} + */ + +#endif /* AVUTIL_HMAC_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext.h new file mode 100644 index 00000000..bac30deb --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext.h @@ -0,0 +1,598 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_H +#define AVUTIL_HWCONTEXT_H + +#include "buffer.h" +#include "frame.h" +#include "log.h" +#include "pixfmt.h" + +enum AVHWDeviceType { + AV_HWDEVICE_TYPE_NONE, + AV_HWDEVICE_TYPE_VDPAU, + AV_HWDEVICE_TYPE_CUDA, + AV_HWDEVICE_TYPE_VAAPI, + AV_HWDEVICE_TYPE_DXVA2, + AV_HWDEVICE_TYPE_QSV, + AV_HWDEVICE_TYPE_VIDEOTOOLBOX, + AV_HWDEVICE_TYPE_D3D11VA, + AV_HWDEVICE_TYPE_DRM, + AV_HWDEVICE_TYPE_OPENCL, + AV_HWDEVICE_TYPE_MEDIACODEC, + AV_HWDEVICE_TYPE_VULKAN, + AV_HWDEVICE_TYPE_D3D12VA, +}; + +/** + * This struct aggregates all the (hardware/vendor-specific) "high-level" state, + * i.e. state that is not tied to a concrete processing configuration. + * E.g., in an API that supports hardware-accelerated encoding and decoding, + * this struct will (if possible) wrap the state that is common to both encoding + * and decoding and from which specific instances of encoders or decoders can be + * derived. + * + * This struct is reference-counted with the AVBuffer mechanism. The + * av_hwdevice_ctx_alloc() constructor yields a reference, whose data field + * points to the actual AVHWDeviceContext. Further objects derived from + * AVHWDeviceContext (such as AVHWFramesContext, describing a frame pool with + * specific properties) will hold an internal reference to it. After all the + * references are released, the AVHWDeviceContext itself will be freed, + * optionally invoking a user-specified callback for uninitializing the hardware + * state. + */ +typedef struct AVHWDeviceContext { + /** + * A class for logging. Set by av_hwdevice_ctx_alloc(). + */ + const AVClass *av_class; + + /** + * This field identifies the underlying API used for hardware access. + * + * This field is set when this struct is allocated and never changed + * afterwards. + */ + enum AVHWDeviceType type; + + /** + * The format-specific data, allocated and freed by libavutil along with + * this context. + * + * Should be cast by the user to the format-specific context defined in the + * corresponding header (hwcontext_*.h) and filled as described in the + * documentation before calling av_hwdevice_ctx_init(). + * + * After calling av_hwdevice_ctx_init() this struct should not be modified + * by the caller. + */ + void *hwctx; + + /** + * This field may be set by the caller before calling av_hwdevice_ctx_init(). + * + * If non-NULL, this callback will be called when the last reference to + * this context is unreferenced, immediately before it is freed. + * + * @note when other objects (e.g an AVHWFramesContext) are derived from this + * struct, this callback will be invoked after all such child objects + * are fully uninitialized and their respective destructors invoked. + */ + void (*free)(struct AVHWDeviceContext *ctx); + + /** + * Arbitrary user data, to be used e.g. by the free() callback. + */ + void *user_opaque; +} AVHWDeviceContext; + +/** + * This struct describes a set or pool of "hardware" frames (i.e. those with + * data not located in normal system memory). All the frames in the pool are + * assumed to be allocated in the same way and interchangeable. + * + * This struct is reference-counted with the AVBuffer mechanism and tied to a + * given AVHWDeviceContext instance. The av_hwframe_ctx_alloc() constructor + * yields a reference, whose data field points to the actual AVHWFramesContext + * struct. + */ +typedef struct AVHWFramesContext { + /** + * A class for logging. + */ + const AVClass *av_class; + + /** + * A reference to the parent AVHWDeviceContext. This reference is owned and + * managed by the enclosing AVHWFramesContext, but the caller may derive + * additional references from it. + */ + AVBufferRef *device_ref; + + /** + * The parent AVHWDeviceContext. This is simply a pointer to + * device_ref->data provided for convenience. + * + * Set by libavutil in av_hwframe_ctx_init(). + */ + AVHWDeviceContext *device_ctx; + + /** + * The format-specific data, allocated and freed automatically along with + * this context. + * + * The user shall ignore this field if the corresponding format-specific + * header (hwcontext_*.h) does not define a context to be used as + * AVHWFramesContext.hwctx. + * + * Otherwise, it should be cast by the user to said context and filled + * as described in the documentation before calling av_hwframe_ctx_init(). + * + * After any frames using this context are created, the contents of this + * struct should not be modified by the caller. + */ + void *hwctx; + + /** + * This field may be set by the caller before calling av_hwframe_ctx_init(). + * + * If non-NULL, this callback will be called when the last reference to + * this context is unreferenced, immediately before it is freed. + */ + void (*free)(struct AVHWFramesContext *ctx); + + /** + * Arbitrary user data, to be used e.g. by the free() callback. + */ + void *user_opaque; + + /** + * A pool from which the frames are allocated by av_hwframe_get_buffer(). + * This field may be set by the caller before calling av_hwframe_ctx_init(). + * The buffers returned by calling av_buffer_pool_get() on this pool must + * have the properties described in the documentation in the corresponding hw + * type's header (hwcontext_*.h). The pool will be freed strictly before + * this struct's free() callback is invoked. + * + * This field may be NULL, then libavutil will attempt to allocate a pool + * internally. Note that certain device types enforce pools allocated at + * fixed size (frame count), which cannot be extended dynamically. In such a + * case, initial_pool_size must be set appropriately. + */ + AVBufferPool *pool; + + /** + * Initial size of the frame pool. If a device type does not support + * dynamically resizing the pool, then this is also the maximum pool size. + * + * May be set by the caller before calling av_hwframe_ctx_init(). Must be + * set if pool is NULL and the device type does not support dynamic pools. + */ + int initial_pool_size; + + /** + * The pixel format identifying the underlying HW surface type. + * + * Must be a hwaccel format, i.e. the corresponding descriptor must have the + * AV_PIX_FMT_FLAG_HWACCEL flag set. + * + * Must be set by the user before calling av_hwframe_ctx_init(). + */ + enum AVPixelFormat format; + + /** + * The pixel format identifying the actual data layout of the hardware + * frames. + * + * Must be set by the caller before calling av_hwframe_ctx_init(). + * + * @note when the underlying API does not provide the exact data layout, but + * only the colorspace/bit depth, this field should be set to the fully + * planar version of that format (e.g. for 8-bit 420 YUV it should be + * AV_PIX_FMT_YUV420P, not AV_PIX_FMT_NV12 or anything else). + */ + enum AVPixelFormat sw_format; + + /** + * The allocated dimensions of the frames in this pool. + * + * Must be set by the user before calling av_hwframe_ctx_init(). + */ + int width, height; +} AVHWFramesContext; + +/** + * Look up an AVHWDeviceType by name. + * + * @param name String name of the device type (case-insensitive). + * @return The type from enum AVHWDeviceType, or AV_HWDEVICE_TYPE_NONE if + * not found. + */ +enum AVHWDeviceType av_hwdevice_find_type_by_name(const char *name); + +/** Get the string name of an AVHWDeviceType. + * + * @param type Type from enum AVHWDeviceType. + * @return Pointer to a static string containing the name, or NULL if the type + * is not valid. + */ +const char *av_hwdevice_get_type_name(enum AVHWDeviceType type); + +/** + * Iterate over supported device types. + * + * @param prev AV_HWDEVICE_TYPE_NONE initially, then the previous type + * returned by this function in subsequent iterations. + * @return The next usable device type from enum AVHWDeviceType, or + * AV_HWDEVICE_TYPE_NONE if there are no more. + */ +enum AVHWDeviceType av_hwdevice_iterate_types(enum AVHWDeviceType prev); + +/** + * Allocate an AVHWDeviceContext for a given hardware type. + * + * @param type the type of the hardware device to allocate. + * @return a reference to the newly created AVHWDeviceContext on success or NULL + * on failure. + */ +AVBufferRef *av_hwdevice_ctx_alloc(enum AVHWDeviceType type); + +/** + * Finalize the device context before use. This function must be called after + * the context is filled with all the required information and before it is + * used in any way. + * + * @param ref a reference to the AVHWDeviceContext + * @return 0 on success, a negative AVERROR code on failure + */ +int av_hwdevice_ctx_init(AVBufferRef *ref); + +/** + * Open a device of the specified type and create an AVHWDeviceContext for it. + * + * This is a convenience function intended to cover the simple cases. Callers + * who need to fine-tune device creation/management should open the device + * manually and then wrap it in an AVHWDeviceContext using + * av_hwdevice_ctx_alloc()/av_hwdevice_ctx_init(). + * + * The returned context is already initialized and ready for use, the caller + * should not call av_hwdevice_ctx_init() on it. The user_opaque/free fields of + * the created AVHWDeviceContext are set by this function and should not be + * touched by the caller. + * + * @param device_ctx On success, a reference to the newly-created device context + * will be written here. The reference is owned by the caller + * and must be released with av_buffer_unref() when no longer + * needed. On failure, NULL will be written to this pointer. + * @param type The type of the device to create. + * @param device A type-specific string identifying the device to open. + * @param opts A dictionary of additional (type-specific) options to use in + * opening the device. The dictionary remains owned by the caller. + * @param flags currently unused + * + * @return 0 on success, a negative AVERROR code on failure. + */ +int av_hwdevice_ctx_create(AVBufferRef **device_ctx, enum AVHWDeviceType type, + const char *device, AVDictionary *opts, int flags); + +/** + * Create a new device of the specified type from an existing device. + * + * If the source device is a device of the target type or was originally + * derived from such a device (possibly through one or more intermediate + * devices of other types), then this will return a reference to the + * existing device of the same type as is requested. + * + * Otherwise, it will attempt to derive a new device from the given source + * device. If direct derivation to the new type is not implemented, it will + * attempt the same derivation from each ancestor of the source device in + * turn looking for an implemented derivation method. + * + * @param dst_ctx On success, a reference to the newly-created + * AVHWDeviceContext. + * @param type The type of the new device to create. + * @param src_ctx A reference to an existing AVHWDeviceContext which will be + * used to create the new device. + * @param flags Currently unused; should be set to zero. + * @return Zero on success, a negative AVERROR code on failure. + */ +int av_hwdevice_ctx_create_derived(AVBufferRef **dst_ctx, + enum AVHWDeviceType type, + AVBufferRef *src_ctx, int flags); + +/** + * Create a new device of the specified type from an existing device. + * + * This function performs the same action as av_hwdevice_ctx_create_derived, + * however, it is able to set options for the new device to be derived. + * + * @param dst_ctx On success, a reference to the newly-created + * AVHWDeviceContext. + * @param type The type of the new device to create. + * @param src_ctx A reference to an existing AVHWDeviceContext which will be + * used to create the new device. + * @param options Options for the new device to create, same format as in + * av_hwdevice_ctx_create. + * @param flags Currently unused; should be set to zero. + * @return Zero on success, a negative AVERROR code on failure. + */ +int av_hwdevice_ctx_create_derived_opts(AVBufferRef **dst_ctx, + enum AVHWDeviceType type, + AVBufferRef *src_ctx, + AVDictionary *options, int flags); + +/** + * Allocate an AVHWFramesContext tied to a given device context. + * + * @param device_ctx a reference to a AVHWDeviceContext. This function will make + * a new reference for internal use, the one passed to the + * function remains owned by the caller. + * @return a reference to the newly created AVHWFramesContext on success or NULL + * on failure. + */ +AVBufferRef *av_hwframe_ctx_alloc(AVBufferRef *device_ctx); + +/** + * Finalize the context before use. This function must be called after the + * context is filled with all the required information and before it is attached + * to any frames. + * + * @param ref a reference to the AVHWFramesContext + * @return 0 on success, a negative AVERROR code on failure + */ +int av_hwframe_ctx_init(AVBufferRef *ref); + +/** + * Allocate a new frame attached to the given AVHWFramesContext. + * + * @param hwframe_ctx a reference to an AVHWFramesContext + * @param frame an empty (freshly allocated or unreffed) frame to be filled with + * newly allocated buffers. + * @param flags currently unused, should be set to zero + * @return 0 on success, a negative AVERROR code on failure + */ +int av_hwframe_get_buffer(AVBufferRef *hwframe_ctx, AVFrame *frame, int flags); + +/** + * Copy data to or from a hw surface. At least one of dst/src must have an + * AVHWFramesContext attached. + * + * If src has an AVHWFramesContext attached, then the format of dst (if set) + * must use one of the formats returned by av_hwframe_transfer_get_formats(src, + * AV_HWFRAME_TRANSFER_DIRECTION_FROM). + * If dst has an AVHWFramesContext attached, then the format of src must use one + * of the formats returned by av_hwframe_transfer_get_formats(dst, + * AV_HWFRAME_TRANSFER_DIRECTION_TO) + * + * dst may be "clean" (i.e. with data/buf pointers unset), in which case the + * data buffers will be allocated by this function using av_frame_get_buffer(). + * If dst->format is set, then this format will be used, otherwise (when + * dst->format is AV_PIX_FMT_NONE) the first acceptable format will be chosen. + * + * The two frames must have matching allocated dimensions (i.e. equal to + * AVHWFramesContext.width/height), since not all device types support + * transferring a sub-rectangle of the whole surface. The display dimensions + * (i.e. AVFrame.width/height) may be smaller than the allocated dimensions, but + * also have to be equal for both frames. When the display dimensions are + * smaller than the allocated dimensions, the content of the padding in the + * destination frame is unspecified. + * + * @param dst the destination frame. dst is not touched on failure. + * @param src the source frame. + * @param flags currently unused, should be set to zero + * @return 0 on success, a negative AVERROR error code on failure. + */ +int av_hwframe_transfer_data(AVFrame *dst, const AVFrame *src, int flags); + +enum AVHWFrameTransferDirection { + /** + * Transfer the data from the queried hw frame. + */ + AV_HWFRAME_TRANSFER_DIRECTION_FROM, + + /** + * Transfer the data to the queried hw frame. + */ + AV_HWFRAME_TRANSFER_DIRECTION_TO, +}; + +/** + * Get a list of possible source or target formats usable in + * av_hwframe_transfer_data(). + * + * @param hwframe_ctx the frame context to obtain the information for + * @param dir the direction of the transfer + * @param formats the pointer to the output format list will be written here. + * The list is terminated with AV_PIX_FMT_NONE and must be freed + * by the caller when no longer needed using av_free(). + * If this function returns successfully, the format list will + * have at least one item (not counting the terminator). + * On failure, the contents of this pointer are unspecified. + * @param flags currently unused, should be set to zero + * @return 0 on success, a negative AVERROR code on failure. + */ +int av_hwframe_transfer_get_formats(AVBufferRef *hwframe_ctx, + enum AVHWFrameTransferDirection dir, + enum AVPixelFormat **formats, int flags); + + +/** + * This struct describes the constraints on hardware frames attached to + * a given device with a hardware-specific configuration. This is returned + * by av_hwdevice_get_hwframe_constraints() and must be freed by + * av_hwframe_constraints_free() after use. + */ +typedef struct AVHWFramesConstraints { + /** + * A list of possible values for format in the hw_frames_ctx, + * terminated by AV_PIX_FMT_NONE. This member will always be filled. + */ + enum AVPixelFormat *valid_hw_formats; + + /** + * A list of possible values for sw_format in the hw_frames_ctx, + * terminated by AV_PIX_FMT_NONE. Can be NULL if this information is + * not known. + */ + enum AVPixelFormat *valid_sw_formats; + + /** + * The minimum size of frames in this hw_frames_ctx. + * (Zero if not known.) + */ + int min_width; + int min_height; + + /** + * The maximum size of frames in this hw_frames_ctx. + * (INT_MAX if not known / no limit.) + */ + int max_width; + int max_height; +} AVHWFramesConstraints; + +/** + * Allocate a HW-specific configuration structure for a given HW device. + * After use, the user must free all members as required by the specific + * hardware structure being used, then free the structure itself with + * av_free(). + * + * @param device_ctx a reference to the associated AVHWDeviceContext. + * @return The newly created HW-specific configuration structure on + * success or NULL on failure. + */ +void *av_hwdevice_hwconfig_alloc(AVBufferRef *device_ctx); + +/** + * Get the constraints on HW frames given a device and the HW-specific + * configuration to be used with that device. If no HW-specific + * configuration is provided, returns the maximum possible capabilities + * of the device. + * + * @param ref a reference to the associated AVHWDeviceContext. + * @param hwconfig a filled HW-specific configuration structure, or NULL + * to return the maximum possible capabilities of the device. + * @return AVHWFramesConstraints structure describing the constraints + * on the device, or NULL if not available. + */ +AVHWFramesConstraints *av_hwdevice_get_hwframe_constraints(AVBufferRef *ref, + const void *hwconfig); + +/** + * Free an AVHWFrameConstraints structure. + * + * @param constraints The (filled or unfilled) AVHWFrameConstraints structure. + */ +void av_hwframe_constraints_free(AVHWFramesConstraints **constraints); + + +/** + * Flags to apply to frame mappings. + */ +enum { + /** + * The mapping must be readable. + */ + AV_HWFRAME_MAP_READ = 1 << 0, + /** + * The mapping must be writeable. + */ + AV_HWFRAME_MAP_WRITE = 1 << 1, + /** + * The mapped frame will be overwritten completely in subsequent + * operations, so the current frame data need not be loaded. Any values + * which are not overwritten are unspecified. + */ + AV_HWFRAME_MAP_OVERWRITE = 1 << 2, + /** + * The mapping must be direct. That is, there must not be any copying in + * the map or unmap steps. Note that performance of direct mappings may + * be much lower than normal memory. + */ + AV_HWFRAME_MAP_DIRECT = 1 << 3, +}; + +/** + * Map a hardware frame. + * + * This has a number of different possible effects, depending on the format + * and origin of the src and dst frames. On input, src should be a usable + * frame with valid buffers and dst should be blank (typically as just created + * by av_frame_alloc()). src should have an associated hwframe context, and + * dst may optionally have a format and associated hwframe context. + * + * If src was created by mapping a frame from the hwframe context of dst, + * then this function undoes the mapping - dst is replaced by a reference to + * the frame that src was originally mapped from. + * + * If both src and dst have an associated hwframe context, then this function + * attempts to map the src frame from its hardware context to that of dst and + * then fill dst with appropriate data to be usable there. This will only be + * possible if the hwframe contexts and associated devices are compatible - + * given compatible devices, av_hwframe_ctx_create_derived() can be used to + * create a hwframe context for dst in which mapping should be possible. + * + * If src has a hwframe context but dst does not, then the src frame is + * mapped to normal memory and should thereafter be usable as a normal frame. + * If the format is set on dst, then the mapping will attempt to create dst + * with that format and fail if it is not possible. If format is unset (is + * AV_PIX_FMT_NONE) then dst will be mapped with whatever the most appropriate + * format to use is (probably the sw_format of the src hwframe context). + * + * A return value of AVERROR(ENOSYS) indicates that the mapping is not + * possible with the given arguments and hwframe setup, while other return + * values indicate that it failed somehow. + * + * On failure, the destination frame will be left blank, except for the + * hw_frames_ctx/format fields thay may have been set by the caller - those will + * be preserved as they were. + * + * @param dst Destination frame, to contain the mapping. + * @param src Source frame, to be mapped. + * @param flags Some combination of AV_HWFRAME_MAP_* flags. + * @return Zero on success, negative AVERROR code on failure. + */ +int av_hwframe_map(AVFrame *dst, const AVFrame *src, int flags); + + +/** + * Create and initialise an AVHWFramesContext as a mapping of another existing + * AVHWFramesContext on a different device. + * + * av_hwframe_ctx_init() should not be called after this. + * + * @param derived_frame_ctx On success, a reference to the newly created + * AVHWFramesContext. + * @param format The AVPixelFormat for the derived context. + * @param derived_device_ctx A reference to the device to create the new + * AVHWFramesContext on. + * @param source_frame_ctx A reference to an existing AVHWFramesContext + * which will be mapped to the derived context. + * @param flags Some combination of AV_HWFRAME_MAP_* flags, defining the + * mapping parameters to apply to frames which are allocated + * in the derived device. + * @return Zero on success, negative AVERROR code on failure. + */ +int av_hwframe_ctx_create_derived(AVBufferRef **derived_frame_ctx, + enum AVPixelFormat format, + AVBufferRef *derived_device_ctx, + AVBufferRef *source_frame_ctx, + int flags); + +#endif /* AVUTIL_HWCONTEXT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_cuda.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_cuda.h new file mode 100644 index 00000000..cbad434f --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_cuda.h @@ -0,0 +1,74 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#ifndef AVUTIL_HWCONTEXT_CUDA_H +#define AVUTIL_HWCONTEXT_CUDA_H + +#ifndef CUDA_VERSION +#include +#endif + +#include "pixfmt.h" + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_CUDA. + * + * This API supports dynamic frame pools. AVHWFramesContext.pool must return + * AVBufferRefs whose data pointer is a CUdeviceptr. + */ + +typedef struct AVCUDADeviceContextInternal AVCUDADeviceContextInternal; + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVCUDADeviceContext { + CUcontext cuda_ctx; + CUstream stream; + AVCUDADeviceContextInternal *internal; +} AVCUDADeviceContext; + +/** + * AVHWFramesContext.hwctx is currently not used + */ + +/** + * @defgroup hwcontext_cuda Device context creation flags + * + * Flags for av_hwdevice_ctx_create. + * + * @{ + */ + +/** + * Use primary device context instead of creating a new one. + */ +#define AV_CUDA_USE_PRIMARY_CONTEXT (1 << 0) + +/** + * Use current device context instead of creating a new one. + */ +#define AV_CUDA_USE_CURRENT_CONTEXT (1 << 1) + +/** + * @} + */ + +#endif /* AVUTIL_HWCONTEXT_CUDA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_d3d11va.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_d3d11va.h new file mode 100644 index 00000000..77d2d72f --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_d3d11va.h @@ -0,0 +1,178 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_D3D11VA_H +#define AVUTIL_HWCONTEXT_D3D11VA_H + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_D3D11VA. + * + * The default pool implementation will be fixed-size if initial_pool_size is + * set (and allocate elements from an array texture). Otherwise it will allocate + * individual textures. Be aware that decoding requires a single array texture. + * + * Using sw_format==AV_PIX_FMT_YUV420P has special semantics, and maps to + * DXGI_FORMAT_420_OPAQUE. av_hwframe_transfer_data() is not supported for + * this format. Refer to MSDN for details. + * + * av_hwdevice_ctx_create() for this device type supports a key named "debug" + * for the AVDictionary entry. If this is set to any value, the device creation + * code will try to load various supported D3D debugging layers. + */ + +#include +#include + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVD3D11VADeviceContext { + /** + * Device used for texture creation and access. This can also be used to + * set the libavcodec decoding device. + * + * Must be set by the user. This is the only mandatory field - the other + * device context fields are set from this and are available for convenience. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D11Device *device; + + /** + * If unset, this will be set from the device field on init. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D11DeviceContext *device_context; + + /** + * If unset, this will be set from the device field on init. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D11VideoDevice *video_device; + + /** + * If unset, this will be set from the device_context field on init. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D11VideoContext *video_context; + + /** + * Callbacks for locking. They protect accesses to device_context and + * video_context calls. They also protect access to the internal staging + * texture (for av_hwframe_transfer_data() calls). They do NOT protect + * access to hwcontext or decoder state in general. + * + * If unset on init, the hwcontext implementation will set them to use an + * internal mutex. + * + * The underlying lock must be recursive. lock_ctx is for free use by the + * locking implementation. + */ + void (*lock)(void *lock_ctx); + void (*unlock)(void *lock_ctx); + void *lock_ctx; +} AVD3D11VADeviceContext; + +/** + * D3D11 frame descriptor for pool allocation. + * + * In user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer pointing at an object of this type describing the + * planes of the frame. + * + * This has no use outside of custom allocation, and AVFrame AVBufferRef do not + * necessarily point to an instance of this struct. + */ +typedef struct AVD3D11FrameDescriptor { + /** + * The texture in which the frame is located. The reference count is + * managed by the AVBufferRef, and destroying the reference will release + * the interface. + * + * Normally stored in AVFrame.data[0]. + */ + ID3D11Texture2D *texture; + + /** + * The index into the array texture element representing the frame, or 0 + * if the texture is not an array texture. + * + * Normally stored in AVFrame.data[1] (cast from intptr_t). + */ + intptr_t index; +} AVD3D11FrameDescriptor; + +/** + * This struct is allocated as AVHWFramesContext.hwctx + */ +typedef struct AVD3D11VAFramesContext { + /** + * The canonical texture used for pool allocation. If this is set to NULL + * on init, the hwframes implementation will allocate and set an array + * texture if initial_pool_size > 0. + * + * The only situation when the API user should set this is: + * - the user wants to do manual pool allocation (setting + * AVHWFramesContext.pool), instead of letting AVHWFramesContext + * allocate the pool + * - of an array texture + * - and wants it to use it for decoding + * - this has to be done before calling av_hwframe_ctx_init() + * + * Deallocating the AVHWFramesContext will always release this interface, + * and it does not matter whether it was user-allocated. + * + * This is in particular used by the libavcodec D3D11VA hwaccel, which + * requires a single array texture. It will create ID3D11VideoDecoderOutputView + * objects for each array texture element on decoder initialization. + */ + ID3D11Texture2D *texture; + + /** + * D3D11_TEXTURE2D_DESC.BindFlags used for texture creation. The user must + * at least set D3D11_BIND_DECODER if the frames context is to be used for + * video decoding. + * This field is ignored/invalid if a user-allocated texture is provided. + */ + UINT BindFlags; + + /** + * D3D11_TEXTURE2D_DESC.MiscFlags used for texture creation. + * This field is ignored/invalid if a user-allocated texture is provided. + */ + UINT MiscFlags; + + /** + * In case if texture structure member above is not NULL contains the same texture + * pointer for all elements and different indexes into the array texture. + * In case if texture structure member above is NULL, all elements contains + * pointers to separate non-array textures and 0 indexes. + * This field is ignored/invalid if a user-allocated texture is provided. + */ + AVD3D11FrameDescriptor *texture_infos; +} AVD3D11VAFramesContext; + +#endif /* AVUTIL_HWCONTEXT_D3D11VA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_d3d12va.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_d3d12va.h new file mode 100644 index 00000000..212a6a61 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_d3d12va.h @@ -0,0 +1,142 @@ +/* + * Direct3D 12 HW acceleration. + * + * copyright (c) 2022-2023 Wu Jianhua + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_D3D12VA_H +#define AVUTIL_HWCONTEXT_D3D12VA_H + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_D3D12VA. + * + * AVHWFramesContext.pool must contain AVBufferRefs whose + * data pointer points to an AVD3D12VAFrame struct. + */ +#include +#include +#include +#include +#include + +/** + * @brief This struct is allocated as AVHWDeviceContext.hwctx + * + */ +typedef struct AVD3D12VADeviceContext { + /** + * Device used for objects creation and access. This can also be + * used to set the libavcodec decoding device. + * + * Can be set by the user. This is the only mandatory field - the other + * device context fields are set from this and are available for convenience. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D12Device *device; + + /** + * If unset, this will be set from the device field on init. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D12VideoDevice *video_device; + + /** + * Callbacks for locking. They protect access to the internal staging + * texture (for av_hwframe_transfer_data() calls). They do NOT protect + * access to hwcontext or decoder state in general. + * + * If unset on init, the hwcontext implementation will set them to use an + * internal mutex. + * + * The underlying lock must be recursive. lock_ctx is for free use by the + * locking implementation. + */ + void (*lock)(void *lock_ctx); + void (*unlock)(void *lock_ctx); + void *lock_ctx; +} AVD3D12VADeviceContext; + +/** + * @brief This struct is used to sync d3d12 execution + * + */ +typedef struct AVD3D12VASyncContext { + /** + * D3D12 fence object + */ + ID3D12Fence *fence; + + /** + * A handle to the event object that's raised when the fence + * reaches a certain value. + */ + HANDLE event; + + /** + * The fence value used for sync + */ + uint64_t fence_value; +} AVD3D12VASyncContext; + +/** + * @brief D3D12VA frame descriptor for pool allocation. + * + */ +typedef struct AVD3D12VAFrame { + /** + * The texture in which the frame is located. The reference count is + * managed by the AVBufferRef, and destroying the reference will release + * the interface. + */ + ID3D12Resource *texture; + + /** + * The sync context for the texture + * + * @see: https://learn.microsoft.com/en-us/windows/win32/medfound/direct3d-12-video-overview#directx-12-fences + */ + AVD3D12VASyncContext sync_ctx; +} AVD3D12VAFrame; + +/** + * @brief This struct is allocated as AVHWFramesContext.hwctx + * + */ +typedef struct AVD3D12VAFramesContext { + /** + * DXGI_FORMAT format. MUST be compatible with the pixel format. + * If unset, will be automatically set. + */ + DXGI_FORMAT format; + + /** + * Options for working with resources. + * If unset, this will be D3D12_RESOURCE_FLAG_NONE. + * + * @see https://learn.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_resource_flags + */ + D3D12_RESOURCE_FLAGS flags; +} AVD3D12VAFramesContext; + +#endif /* AVUTIL_HWCONTEXT_D3D12VA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_drm.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_drm.h new file mode 100644 index 00000000..42709f21 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_drm.h @@ -0,0 +1,169 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_DRM_H +#define AVUTIL_HWCONTEXT_DRM_H + +#include +#include + +/** + * @file + * API-specific header for AV_HWDEVICE_TYPE_DRM. + * + * Internal frame allocation is not currently supported - all frames + * must be allocated by the user. Thus AVHWFramesContext is always + * NULL, though this may change if support for frame allocation is + * added in future. + */ + +enum { + /** + * The maximum number of layers/planes in a DRM frame. + */ + AV_DRM_MAX_PLANES = 4 +}; + +/** + * DRM object descriptor. + * + * Describes a single DRM object, addressing it as a PRIME file + * descriptor. + */ +typedef struct AVDRMObjectDescriptor { + /** + * DRM PRIME fd for the object. + */ + int fd; + /** + * Total size of the object. + * + * (This includes any parts not which do not contain image data.) + */ + size_t size; + /** + * Format modifier applied to the object (DRM_FORMAT_MOD_*). + * + * If the format modifier is unknown then this should be set to + * DRM_FORMAT_MOD_INVALID. + */ + uint64_t format_modifier; +} AVDRMObjectDescriptor; + +/** + * DRM plane descriptor. + * + * Describes a single plane of a layer, which is contained within + * a single object. + */ +typedef struct AVDRMPlaneDescriptor { + /** + * Index of the object containing this plane in the objects + * array of the enclosing frame descriptor. + */ + int object_index; + /** + * Offset within that object of this plane. + */ + ptrdiff_t offset; + /** + * Pitch (linesize) of this plane. + */ + ptrdiff_t pitch; +} AVDRMPlaneDescriptor; + +/** + * DRM layer descriptor. + * + * Describes a single layer within a frame. This has the structure + * defined by its format, and will contain one or more planes. + */ +typedef struct AVDRMLayerDescriptor { + /** + * Format of the layer (DRM_FORMAT_*). + */ + uint32_t format; + /** + * Number of planes in the layer. + * + * This must match the number of planes required by format. + */ + int nb_planes; + /** + * Array of planes in this layer. + */ + AVDRMPlaneDescriptor planes[AV_DRM_MAX_PLANES]; +} AVDRMLayerDescriptor; + +/** + * DRM frame descriptor. + * + * This is used as the data pointer for AV_PIX_FMT_DRM_PRIME frames. + * It is also used by user-allocated frame pools - allocating in + * AVHWFramesContext.pool must return AVBufferRefs which contain + * an object of this type. + * + * The fields of this structure should be set such it can be + * imported directly by EGL using the EGL_EXT_image_dma_buf_import + * and EGL_EXT_image_dma_buf_import_modifiers extensions. + * (Note that the exact layout of a particular format may vary between + * platforms - we only specify that the same platform should be able + * to import it.) + * + * The total number of planes must not exceed AV_DRM_MAX_PLANES, and + * the order of the planes by increasing layer index followed by + * increasing plane index must be the same as the order which would + * be used for the data pointers in the equivalent software format. + */ +typedef struct AVDRMFrameDescriptor { + /** + * Number of DRM objects making up this frame. + */ + int nb_objects; + /** + * Array of objects making up the frame. + */ + AVDRMObjectDescriptor objects[AV_DRM_MAX_PLANES]; + /** + * Number of layers in the frame. + */ + int nb_layers; + /** + * Array of layers in the frame. + */ + AVDRMLayerDescriptor layers[AV_DRM_MAX_PLANES]; +} AVDRMFrameDescriptor; + +/** + * DRM device. + * + * Allocated as AVHWDeviceContext.hwctx. + */ +typedef struct AVDRMDeviceContext { + /** + * File descriptor of DRM device. + * + * This is used as the device to create frames on, and may also be + * used in some derivation and mapping operations. + * + * If no device is required, set to -1. + */ + int fd; +} AVDRMDeviceContext; + +#endif /* AVUTIL_HWCONTEXT_DRM_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_dxva2.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_dxva2.h new file mode 100644 index 00000000..e1b79bc0 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_dxva2.h @@ -0,0 +1,75 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#ifndef AVUTIL_HWCONTEXT_DXVA2_H +#define AVUTIL_HWCONTEXT_DXVA2_H + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_DXVA2. + * + * Only fixed-size pools are supported. + * + * For user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer set to a pointer to IDirect3DSurface9. + */ + +#include +#include + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVDXVA2DeviceContext { + IDirect3DDeviceManager9 *devmgr; +} AVDXVA2DeviceContext; + +/** + * This struct is allocated as AVHWFramesContext.hwctx + */ +typedef struct AVDXVA2FramesContext { + /** + * The surface type (e.g. DXVA2_VideoProcessorRenderTarget or + * DXVA2_VideoDecoderRenderTarget). Must be set by the caller. + */ + DWORD surface_type; + + /** + * The surface pool. When an external pool is not provided by the caller, + * this will be managed (allocated and filled on init, freed on uninit) by + * libavutil. + */ + IDirect3DSurface9 **surfaces; + int nb_surfaces; + + /** + * Certain drivers require the decoder to be destroyed before the surfaces. + * To allow internally managed pools to work properly in such cases, this + * field is provided. + * + * If it is non-NULL, libavutil will call IDirectXVideoDecoder_Release() on + * it just before the internal surface pool is freed. + * + * This is for convenience only. Some code uses other methods to manage the + * decoder reference. + */ + IDirectXVideoDecoder *decoder_to_release; +} AVDXVA2FramesContext; + +#endif /* AVUTIL_HWCONTEXT_DXVA2_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_mediacodec.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_mediacodec.h new file mode 100644 index 00000000..fc0263ca --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_mediacodec.h @@ -0,0 +1,61 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_MEDIACODEC_H +#define AVUTIL_HWCONTEXT_MEDIACODEC_H + +/** + * MediaCodec details. + * + * Allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVMediaCodecDeviceContext { + /** + * android/view/Surface handle, to be filled by the user. + * + * This is the default surface used by decoders on this device. + */ + void *surface; + + /** + * Pointer to ANativeWindow. + * + * It both surface and native_window is NULL, try to create it + * automatically if create_window is true and OS support + * createPersistentInputSurface. + * + * It can be used as output surface for decoder and input surface for + * encoder. + */ + void *native_window; + + /** + * Enable createPersistentInputSurface automatically. + * + * Disabled by default. + * + * It can be enabled by setting this flag directly, or by setting + * AVDictionary of av_hwdevice_ctx_create(), with "create_window" as key. + * The second method is useful for ffmpeg cmdline, e.g., we can enable it + * via: + * -init_hw_device mediacodec=mediacodec,create_window=1 + */ + int create_window; +} AVMediaCodecDeviceContext; + +#endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_opencl.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_opencl.h new file mode 100644 index 00000000..ef54486c --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_opencl.h @@ -0,0 +1,100 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_OPENCL_H +#define AVUTIL_HWCONTEXT_OPENCL_H + +#ifdef __APPLE__ +#include +#else +#include +#endif + +#include "frame.h" + +/** + * @file + * API-specific header for AV_HWDEVICE_TYPE_OPENCL. + * + * Pools allocated internally are always dynamic, and are primarily intended + * to be used in OpenCL-only cases. If interoperation is required, it is + * typically required to allocate frames in the other API and then map the + * frames context to OpenCL with av_hwframe_ctx_create_derived(). + */ + +/** + * OpenCL frame descriptor for pool allocation. + * + * In user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer pointing at an object of this type describing the + * planes of the frame. + */ +typedef struct AVOpenCLFrameDescriptor { + /** + * Number of planes in the frame. + */ + int nb_planes; + /** + * OpenCL image2d objects for each plane of the frame. + */ + cl_mem planes[AV_NUM_DATA_POINTERS]; +} AVOpenCLFrameDescriptor; + +/** + * OpenCL device details. + * + * Allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVOpenCLDeviceContext { + /** + * The primary device ID of the device. If multiple OpenCL devices + * are associated with the context then this is the one which will + * be used for all operations internal to FFmpeg. + */ + cl_device_id device_id; + /** + * The OpenCL context which will contain all operations and frames on + * this device. + */ + cl_context context; + /** + * The default command queue for this device, which will be used by all + * frames contexts which do not have their own command queue. If not + * intialised by the user, a default queue will be created on the + * primary device. + */ + cl_command_queue command_queue; +} AVOpenCLDeviceContext; + +/** + * OpenCL-specific data associated with a frame pool. + * + * Allocated as AVHWFramesContext.hwctx. + */ +typedef struct AVOpenCLFramesContext { + /** + * The command queue used for internal asynchronous operations on this + * device (av_hwframe_transfer_data(), av_hwframe_map()). + * + * If this is not set, the command queue from the associated device is + * used instead. + */ + cl_command_queue command_queue; +} AVOpenCLFramesContext; + +#endif /* AVUTIL_HWCONTEXT_OPENCL_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_qsv.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_qsv.h new file mode 100644 index 00000000..35530e4e --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_qsv.h @@ -0,0 +1,87 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_QSV_H +#define AVUTIL_HWCONTEXT_QSV_H + +#include + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_QSV. + * + * AVHWFramesContext.pool must contain AVBufferRefs whose data pointer points + * to a mfxFrameSurface1 struct. + */ + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVQSVDeviceContext { + mfxSession session; + /** + * The mfxLoader handle used for mfxSession creation + * + * This field is only available for oneVPL user. For non-oneVPL user, this + * field must be set to NULL. + * + * Filled by the user before calling av_hwdevice_ctx_init() and should be + * cast to mfxLoader handle. Deallocating the AVHWDeviceContext will always + * release this interface. + */ + void *loader; +} AVQSVDeviceContext; + +/** + * This struct is allocated as AVHWFramesContext.hwctx + */ +typedef struct AVQSVFramesContext { + /** + * A pointer to a mfxFrameSurface1 struct + * + * It is available when nb_surfaces is non-zero. + */ + mfxFrameSurface1 *surfaces; + + /** + * Number of frames in the pool + * + * It is 0 for dynamic frame pools or AVHWFramesContext.initial_pool_size + * for fixed frame pools. + * + * Note only oneVPL GPU runtime 2.9+ can support dynamic frame pools + * on d3d11va or vaapi + */ + int nb_surfaces; + + /** + * A combination of MFX_MEMTYPE_* describing the frame pool. + */ + int frame_type; + + /** + * A pointer to a mfxFrameInfo struct + * + * It is available when nb_surfaces is 0, all buffers allocated from the + * pool have the same mfxFrameInfo. + */ + mfxFrameInfo *info; +} AVQSVFramesContext; + +#endif /* AVUTIL_HWCONTEXT_QSV_H */ + diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vaapi.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vaapi.h new file mode 100644 index 00000000..0b2e071c --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vaapi.h @@ -0,0 +1,117 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_VAAPI_H +#define AVUTIL_HWCONTEXT_VAAPI_H + +#include + +/** + * @file + * API-specific header for AV_HWDEVICE_TYPE_VAAPI. + * + * Dynamic frame pools are supported, but note that any pool used as a render + * target is required to be of fixed size in order to be be usable as an + * argument to vaCreateContext(). + * + * For user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer set to a VASurfaceID. + */ + +enum { + /** + * The quirks field has been set by the user and should not be detected + * automatically by av_hwdevice_ctx_init(). + */ + AV_VAAPI_DRIVER_QUIRK_USER_SET = (1 << 0), + /** + * The driver does not destroy parameter buffers when they are used by + * vaRenderPicture(). Additional code will be required to destroy them + * separately afterwards. + */ + AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS = (1 << 1), + + /** + * The driver does not support the VASurfaceAttribMemoryType attribute, + * so the surface allocation code will not try to use it. + */ + AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE = (1 << 2), + + /** + * The driver does not support surface attributes at all. + * The surface allocation code will never pass them to surface allocation, + * and the results of the vaQuerySurfaceAttributes() call will be faked. + */ + AV_VAAPI_DRIVER_QUIRK_SURFACE_ATTRIBUTES = (1 << 3), +}; + +/** + * VAAPI connection details. + * + * Allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVVAAPIDeviceContext { + /** + * The VADisplay handle, to be filled by the user. + */ + VADisplay display; + /** + * Driver quirks to apply - this is filled by av_hwdevice_ctx_init(), + * with reference to a table of known drivers, unless the + * AV_VAAPI_DRIVER_QUIRK_USER_SET bit is already present. The user + * may need to refer to this field when performing any later + * operations using VAAPI with the same VADisplay. + */ + unsigned int driver_quirks; +} AVVAAPIDeviceContext; + +/** + * VAAPI-specific data associated with a frame pool. + * + * Allocated as AVHWFramesContext.hwctx. + */ +typedef struct AVVAAPIFramesContext { + /** + * Set by the user to apply surface attributes to all surfaces in + * the frame pool. If null, default settings are used. + */ + VASurfaceAttrib *attributes; + int nb_attributes; + /** + * The surfaces IDs of all surfaces in the pool after creation. + * Only valid if AVHWFramesContext.initial_pool_size was positive. + * These are intended to be used as the render_targets arguments to + * vaCreateContext(). + */ + VASurfaceID *surface_ids; + int nb_surfaces; +} AVVAAPIFramesContext; + +/** + * VAAPI hardware pipeline configuration details. + * + * Allocated with av_hwdevice_hwconfig_alloc(). + */ +typedef struct AVVAAPIHWConfig { + /** + * ID of a VAAPI pipeline configuration. + */ + VAConfigID config_id; +} AVVAAPIHWConfig; + +#endif /* AVUTIL_HWCONTEXT_VAAPI_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vdpau.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vdpau.h new file mode 100644 index 00000000..1b7ea1e4 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vdpau.h @@ -0,0 +1,44 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_VDPAU_H +#define AVUTIL_HWCONTEXT_VDPAU_H + +#include + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_VDPAU. + * + * This API supports dynamic frame pools. AVHWFramesContext.pool must return + * AVBufferRefs whose data pointer is a VdpVideoSurface. + */ + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVVDPAUDeviceContext { + VdpDevice device; + VdpGetProcAddress *get_proc_address; +} AVVDPAUDeviceContext; + +/** + * AVHWFramesContext.hwctx is currently not used + */ + +#endif /* AVUTIL_HWCONTEXT_VDPAU_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_videotoolbox.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_videotoolbox.h new file mode 100644 index 00000000..d35cfbb6 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_videotoolbox.h @@ -0,0 +1,106 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H +#define AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H + +#include + +#include + +#include "frame.h" +#include "pixfmt.h" + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_VIDEOTOOLBOX. + * + * This API supports frame allocation using a native CVPixelBufferPool + * instead of an AVBufferPool. + * + * If the API user sets a custom pool, AVHWFramesContext.pool must return + * AVBufferRefs whose data pointer is a CVImageBufferRef or CVPixelBufferRef. + * Note that the underlying CVPixelBuffer could be retained by OS frameworks + * depending on application usage, so it is preferable to let CoreVideo manage + * the pool using the default implementation. + * + * Currently AVHWDeviceContext.hwctx are always NULL. + */ + +typedef struct AVVTFramesContext { + enum AVColorRange color_range; +} AVVTFramesContext; + +/** + * Convert a VideoToolbox (actually CoreVideo) format to AVPixelFormat. + * Returns AV_PIX_FMT_NONE if no known equivalent was found. + */ +enum AVPixelFormat av_map_videotoolbox_format_to_pixfmt(uint32_t cv_fmt); + +/** + * Convert an AVPixelFormat to a VideoToolbox (actually CoreVideo) format. + * Returns 0 if no known equivalent was found. + */ +uint32_t av_map_videotoolbox_format_from_pixfmt(enum AVPixelFormat pix_fmt); + +/** + * Same as av_map_videotoolbox_format_from_pixfmt function, but can map and + * return full range pixel formats via a flag. + */ +uint32_t av_map_videotoolbox_format_from_pixfmt2(enum AVPixelFormat pix_fmt, bool full_range); + +/** + * Convert an AVChromaLocation to a VideoToolbox/CoreVideo chroma location string. + * Returns 0 if no known equivalent was found. + */ +CFStringRef av_map_videotoolbox_chroma_loc_from_av(enum AVChromaLocation loc); + +/** + * Convert an AVColorSpace to a VideoToolbox/CoreVideo color matrix string. + * Returns 0 if no known equivalent was found. + */ +CFStringRef av_map_videotoolbox_color_matrix_from_av(enum AVColorSpace space); + +/** + * Convert an AVColorPrimaries to a VideoToolbox/CoreVideo color primaries string. + * Returns 0 if no known equivalent was found. + */ +CFStringRef av_map_videotoolbox_color_primaries_from_av(enum AVColorPrimaries pri); + +/** + * Convert an AVColorTransferCharacteristic to a VideoToolbox/CoreVideo color transfer + * function string. + * Returns 0 if no known equivalent was found. + */ +CFStringRef av_map_videotoolbox_color_trc_from_av(enum AVColorTransferCharacteristic trc); + +/** + * Set CVPixelBufferRef's metadata based on an AVFrame. + * + * Sets/unsets the CVPixelBuffer attachments to match as closely as possible the + * AVFrame metadata. To prevent inconsistent attachments, the attachments for properties + * that could not be matched or are unspecified in the given AVFrame are unset. So if + * any attachments already covered by AVFrame metadata need to be set to a specific + * value, this should happen after calling this function. + * + * Returns < 0 in case of an error. + */ +int av_vt_pixbuf_set_attachments(void *log_ctx, + CVPixelBufferRef pixbuf, const struct AVFrame *src); + +#endif /* AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vulkan.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vulkan.h new file mode 100644 index 00000000..2688a475 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/hwcontext_vulkan.h @@ -0,0 +1,382 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_VULKAN_H +#define AVUTIL_HWCONTEXT_VULKAN_H + +#if defined(_WIN32) && !defined(VK_USE_PLATFORM_WIN32_KHR) +#define VK_USE_PLATFORM_WIN32_KHR +#endif +#include + +#include "pixfmt.h" +#include "frame.h" +#include "hwcontext.h" + +typedef struct AVVkFrame AVVkFrame; + +typedef struct AVVulkanDeviceQueueFamily { + /* Queue family index */ + int idx; + /* Number of queues in the queue family in use */ + int num; + /* Queue family capabilities. Must be non-zero. + * Flags may be removed to indicate the queue family may not be used + * for a given purpose. */ + VkQueueFlagBits flags; + /* Vulkan implementations are allowed to list multiple video queues + * which differ in what they can encode or decode. */ + VkVideoCodecOperationFlagBitsKHR video_caps; +} AVVulkanDeviceQueueFamily; + +/** + * @file + * API-specific header for AV_HWDEVICE_TYPE_VULKAN. + * + * For user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer set to an AVVkFrame. + */ + +/** + * Main Vulkan context, allocated as AVHWDeviceContext.hwctx. + * All of these can be set before init to change what the context uses + */ +typedef struct AVVulkanDeviceContext { + /** + * Custom memory allocator, else NULL + */ + const VkAllocationCallbacks *alloc; + + /** + * Pointer to a vkGetInstanceProcAddr loading function. + * If unset, will dynamically load and use libvulkan. + */ + PFN_vkGetInstanceProcAddr get_proc_addr; + + /** + * Vulkan instance. Must be at least version 1.3. + */ + VkInstance inst; + + /** + * Physical device + */ + VkPhysicalDevice phys_dev; + + /** + * Active device + */ + VkDevice act_dev; + + /** + * This structure should be set to the set of features that present and enabled + * during device creation. When a device is created by FFmpeg, it will default to + * enabling all that are present of the shaderImageGatherExtended, + * fragmentStoresAndAtomics, shaderInt64 and vertexPipelineStoresAndAtomics features. + */ + VkPhysicalDeviceFeatures2 device_features; + + /** + * Enabled instance extensions. + * If supplying your own device context, set this to an array of strings, with + * each entry containing the specified Vulkan extension string to enable. + * Duplicates are possible and accepted. + * If no extensions are enabled, set these fields to NULL, and 0 respectively. + */ + const char * const *enabled_inst_extensions; + int nb_enabled_inst_extensions; + + /** + * Enabled device extensions. By default, VK_KHR_external_memory_fd, + * VK_EXT_external_memory_dma_buf, VK_EXT_image_drm_format_modifier, + * VK_KHR_external_semaphore_fd and VK_EXT_external_memory_host are enabled if found. + * If supplying your own device context, these fields takes the same format as + * the above fields, with the same conditions that duplicates are possible + * and accepted, and that NULL and 0 respectively means no extensions are enabled. + */ + const char * const *enabled_dev_extensions; + int nb_enabled_dev_extensions; + +#if FF_API_VULKAN_FIXED_QUEUES + /** + * Queue family index for graphics operations, and the number of queues + * enabled for it. If unavaiable, will be set to -1. Not required. + * av_hwdevice_create() will attempt to find a dedicated queue for each + * queue family, or pick the one with the least unrelated flags set. + * Queue indices here may overlap if a queue has to share capabilities. + */ + attribute_deprecated + int queue_family_index; + attribute_deprecated + int nb_graphics_queues; + + /** + * Queue family index for transfer operations and the number of queues + * enabled. Required. + */ + attribute_deprecated + int queue_family_tx_index; + attribute_deprecated + int nb_tx_queues; + + /** + * Queue family index for compute operations and the number of queues + * enabled. Required. + */ + attribute_deprecated + int queue_family_comp_index; + attribute_deprecated + int nb_comp_queues; + + /** + * Queue family index for video encode ops, and the amount of queues enabled. + * If the device doesn't support such, queue_family_encode_index will be -1. + * Not required. + */ + attribute_deprecated + int queue_family_encode_index; + attribute_deprecated + int nb_encode_queues; + + /** + * Queue family index for video decode ops, and the amount of queues enabled. + * If the device doesn't support such, queue_family_decode_index will be -1. + * Not required. + */ + attribute_deprecated + int queue_family_decode_index; + attribute_deprecated + int nb_decode_queues; +#endif + + /** + * Locks a queue, preventing other threads from submitting any command + * buffers to this queue. + * If set to NULL, will be set to lavu-internal functions that utilize a + * mutex. + */ + void (*lock_queue)(struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index); + + /** + * Similar to lock_queue(), unlocks a queue. Must only be called after locking. + */ + void (*unlock_queue)(struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index); + + /** + * Queue families used. Must be preferentially ordered. List may contain + * duplicates. + * + * For compatibility reasons, all the enabled queue families listed above + * (queue_family_(tx/comp/encode/decode)_index) must also be included in + * this list until they're removed after deprecation. + */ + AVVulkanDeviceQueueFamily qf[64]; + int nb_qf; +} AVVulkanDeviceContext; + +/** + * Defines the behaviour of frame allocation. + */ +typedef enum AVVkFrameFlags { + /* Unless this flag is set, autodetected flags will be OR'd based on the + * device and tiling during av_hwframe_ctx_init(). */ + AV_VK_FRAME_FLAG_NONE = (1ULL << 0), + +#if FF_API_VULKAN_CONTIGUOUS_MEMORY + /* DEPRECATED: does nothing. Replaced by multiplane images. */ + AV_VK_FRAME_FLAG_CONTIGUOUS_MEMORY = (1ULL << 1), +#endif + + /* Disables multiplane images. + * This is required to export/import images from CUDA. */ + AV_VK_FRAME_FLAG_DISABLE_MULTIPLANE = (1ULL << 2), +} AVVkFrameFlags; + +/** + * Allocated as AVHWFramesContext.hwctx, used to set pool-specific options + */ +typedef struct AVVulkanFramesContext { + /** + * Controls the tiling of allocated frames. + * If left as VK_IMAGE_TILING_OPTIMAL (0), will use optimal tiling. + * Can be set to VK_IMAGE_TILING_LINEAR to force linear images, + * or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT to force DMABUF-backed + * images. + * @note Imported frames from other APIs ignore this. + */ + VkImageTiling tiling; + + /** + * Defines extra usage of output frames. If non-zero, all flags MUST be + * supported by the VkFormat. Otherwise, will use supported flags amongst: + * - VK_IMAGE_USAGE_SAMPLED_BIT + * - VK_IMAGE_USAGE_STORAGE_BIT + * - VK_IMAGE_USAGE_TRANSFER_SRC_BIT + * - VK_IMAGE_USAGE_TRANSFER_DST_BIT + */ + VkImageUsageFlagBits usage; + + /** + * Extension data for image creation. + * If DRM tiling is used, a VkImageDrmFormatModifierListCreateInfoEXT structure + * can be added to specify the exact modifier to use. + * + * Additional structures may be added at av_hwframe_ctx_init() time, + * which will be freed automatically on uninit(), so users must only free + * any structures they've allocated themselves. + */ + void *create_pnext; + + /** + * Extension data for memory allocation. Must have as many entries as + * the number of planes of the sw_format. + * This will be chained to VkExportMemoryAllocateInfo, which is used + * to make all pool images exportable to other APIs if the necessary + * extensions are present in enabled_dev_extensions. + */ + void *alloc_pnext[AV_NUM_DATA_POINTERS]; + + /** + * A combination of AVVkFrameFlags. Unless AV_VK_FRAME_FLAG_NONE is set, + * autodetected flags will be OR'd based on the device and tiling during + * av_hwframe_ctx_init(). + */ + AVVkFrameFlags flags; + + /** + * Flags to set during image creation. If unset, defaults to + * VK_IMAGE_CREATE_ALIAS_BIT. + */ + VkImageCreateFlags img_flags; + + /** + * Vulkan format for each image. MUST be compatible with the pixel format. + * If unset, will be automatically set. + * There are at most two compatible formats for a frame - a multiplane + * format, and a single-plane multi-image format. + */ + VkFormat format[AV_NUM_DATA_POINTERS]; + + /** + * Number of layers each image will have. + */ + int nb_layers; + + /** + * Locks a frame, preventing other threads from changing frame properties. + * Users SHOULD only ever lock just before command submission in order + * to get accurate frame properties, and unlock immediately after command + * submission without waiting for it to finish. + * + * If unset, will be set to lavu-internal functions that utilize a mutex. + */ + void (*lock_frame)(struct AVHWFramesContext *fc, AVVkFrame *vkf); + + /** + * Similar to lock_frame(), unlocks a frame. Must only be called after locking. + */ + void (*unlock_frame)(struct AVHWFramesContext *fc, AVVkFrame *vkf); +} AVVulkanFramesContext; + +/* + * Frame structure. + * + * @note the size of this structure is not part of the ABI, to allocate + * you must use @av_vk_frame_alloc(). + */ +struct AVVkFrame { + /** + * Vulkan images to which the memory is bound to. + * May be one for multiplane formats, or multiple. + */ + VkImage img[AV_NUM_DATA_POINTERS]; + + /** + * Tiling for the frame. + */ + VkImageTiling tiling; + + /** + * Memory backing the images. Either one, or as many as there are planes + * in the sw_format. + * In case of having multiple VkImages, but one memory, the offset field + * will indicate the bound offset for each image. + */ + VkDeviceMemory mem[AV_NUM_DATA_POINTERS]; + size_t size[AV_NUM_DATA_POINTERS]; + + /** + * OR'd flags for all memory allocated + */ + VkMemoryPropertyFlagBits flags; + + /** + * Updated after every barrier. One per VkImage. + */ + VkAccessFlagBits access[AV_NUM_DATA_POINTERS]; + VkImageLayout layout[AV_NUM_DATA_POINTERS]; + + /** + * Synchronization timeline semaphores, one for each VkImage. + * Must not be freed manually. Must be waited on at every submission using + * the value in sem_value, and must be signalled at every submission, + * using an incremented value. + */ + VkSemaphore sem[AV_NUM_DATA_POINTERS]; + + /** + * Up to date semaphore value at which each image becomes accessible. + * One per VkImage. + * Clients must wait on this value when submitting a command queue, + * and increment it when signalling. + */ + uint64_t sem_value[AV_NUM_DATA_POINTERS]; + + /** + * Internal data. + */ + struct AVVkFrameInternal *internal; + + /** + * Describes the binding offset of each image to the VkDeviceMemory. + * One per VkImage. + */ + ptrdiff_t offset[AV_NUM_DATA_POINTERS]; + + /** + * Queue family of the images. Must be VK_QUEUE_FAMILY_IGNORED if + * the image was allocated with the CONCURRENT concurrency option. + * One per VkImage. + */ + uint32_t queue_family[AV_NUM_DATA_POINTERS]; +}; + +/** + * Allocates a single AVVkFrame and initializes everything as 0. + * @note Must be freed via av_free() + */ +AVVkFrame *av_vk_frame_alloc(void); + +/** + * Returns the optimal per-plane Vulkan format for a given sw_format, + * one for each plane. + * Returns NULL on unsupported formats. + */ +const VkFormat *av_vkfmt_from_pixfmt(enum AVPixelFormat p); + +#endif /* AVUTIL_HWCONTEXT_VULKAN_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/iamf.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/iamf.h new file mode 100644 index 00000000..1fa73893 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/iamf.h @@ -0,0 +1,690 @@ +/* + * Immersive Audio Model and Formats helper functions and defines + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_IAMF_H +#define AVUTIL_IAMF_H + +/** + * @file + * Immersive Audio Model and Formats API header + * @see Immersive Audio Model and Formats + */ + +#include +#include + +#include "attributes.h" +#include "avassert.h" +#include "channel_layout.h" +#include "dict.h" +#include "rational.h" + +/** + * @defgroup lavu_iamf Immersive Audio Model and Formats + * @ingroup lavu_audio + * + * Immersive Audio Model and Formats related functions and defines + * + * @defgroup lavu_iamf_params Parameter Definition + * @ingroup lavu_iamf + * @{ + * Parameters as defined in section 3.6.1 and 3.8 of IAMF. + * @} + * + * @defgroup lavu_iamf_audio Audio Element + * @ingroup lavu_iamf + * @{ + * Audio Elements as defined in section 3.6 of IAMF. + * @} + * + * @defgroup lavu_iamf_mix Mix Presentation + * @ingroup lavu_iamf + * @{ + * Mix Presentations as defined in section 3.7 of IAMF. + * @} + * + * @addtogroup lavu_iamf_params + * @{ + */ +enum AVIAMFAnimationType { + AV_IAMF_ANIMATION_TYPE_STEP, + AV_IAMF_ANIMATION_TYPE_LINEAR, + AV_IAMF_ANIMATION_TYPE_BEZIER, +}; + +/** + * Mix Gain Parameter Data as defined in section 3.8.1 of IAMF. + * + * @note This struct's size is not a part of the public ABI. + */ +typedef struct AVIAMFMixGain { + const AVClass *av_class; + + /** + * Duration for the given subblock, in units of + * 1 / @ref AVIAMFParamDefinition.parameter_rate "parameter_rate". + * It must not be 0. + */ + unsigned int subblock_duration; + /** + * The type of animation applied to the parameter values. + */ + enum AVIAMFAnimationType animation_type; + /** + * Parameter value that is applied at the start of the subblock. + * Applies to all defined Animation Types. + * + * Valid range of values is -128.0 to 128.0 + */ + AVRational start_point_value; + /** + * Parameter value that is applied at the end of the subblock. + * Applies only to AV_IAMF_ANIMATION_TYPE_LINEAR and + * AV_IAMF_ANIMATION_TYPE_BEZIER Animation Types. + * + * Valid range of values is -128.0 to 128.0 + */ + AVRational end_point_value; + /** + * Parameter value of the middle control point of a quadratic Bezier + * curve, i.e., its y-axis value. + * Applies only to AV_IAMF_ANIMATION_TYPE_BEZIER Animation Type. + * + * Valid range of values is -128.0 to 128.0 + */ + AVRational control_point_value; + /** + * Parameter value of the time of the middle control point of a + * quadratic Bezier curve, i.e., its x-axis value. + * Applies only to AV_IAMF_ANIMATION_TYPE_BEZIER Animation Type. + * + * Valid range of values is 0.0 to 1.0 + */ + AVRational control_point_relative_time; +} AVIAMFMixGain; + +/** + * Demixing Info Parameter Data as defined in section 3.8.2 of IAMF. + * + * @note This struct's size is not a part of the public ABI. + */ +typedef struct AVIAMFDemixingInfo { + const AVClass *av_class; + + /** + * Duration for the given subblock, in units of + * 1 / @ref AVIAMFParamDefinition.parameter_rate "parameter_rate". + * It must not be 0. + */ + unsigned int subblock_duration; + /** + * Pre-defined combination of demixing parameters. + */ + unsigned int dmixp_mode; +} AVIAMFDemixingInfo; + +/** + * Recon Gain Info Parameter Data as defined in section 3.8.3 of IAMF. + * + * @note This struct's size is not a part of the public ABI. + */ +typedef struct AVIAMFReconGain { + const AVClass *av_class; + + /** + * Duration for the given subblock, in units of + * 1 / @ref AVIAMFParamDefinition.parameter_rate "parameter_rate". + * It must not be 0. + */ + unsigned int subblock_duration; + + /** + * Array of gain values to be applied to each channel for each layer + * defined in the Audio Element referencing the parent Parameter Definition. + * Values for layers where the AV_IAMF_LAYER_FLAG_RECON_GAIN flag is not set + * are undefined. + * + * Channel order is: FL, C, FR, SL, SR, TFL, TFR, BL, BR, TBL, TBR, LFE + */ + uint8_t recon_gain[6][12]; +} AVIAMFReconGain; + +enum AVIAMFParamDefinitionType { + /** + * Subblocks are of struct type AVIAMFMixGain + */ + AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN, + /** + * Subblocks are of struct type AVIAMFDemixingInfo + */ + AV_IAMF_PARAMETER_DEFINITION_DEMIXING, + /** + * Subblocks are of struct type AVIAMFReconGain + */ + AV_IAMF_PARAMETER_DEFINITION_RECON_GAIN, +}; + +/** + * Parameters as defined in section 3.6.1 of IAMF. + * + * The struct is allocated by av_iamf_param_definition_alloc() along with an + * array of subblocks, its type depending on the value of type. + * This array is placed subblocks_offset bytes after the start of this struct. + * + * @note This struct's size is not a part of the public ABI. + */ +typedef struct AVIAMFParamDefinition { + const AVClass *av_class; + + /** + * Offset in bytes from the start of this struct, at which the subblocks + * array is located. + */ + size_t subblocks_offset; + /** + * Size in bytes of each element in the subblocks array. + */ + size_t subblock_size; + /** + * Number of subblocks in the array. + */ + unsigned int nb_subblocks; + + /** + * Parameters type. Determines the type of the subblock elements. + */ + enum AVIAMFParamDefinitionType type; + + /** + * Identifier for the paremeter substream. + */ + unsigned int parameter_id; + /** + * Sample rate for the paremeter substream. It must not be 0. + */ + unsigned int parameter_rate; + + /** + * The accumulated duration of all blocks in this parameter definition, + * in units of 1 / @ref parameter_rate. + * + * May be 0, in which case all duration values should be specified in + * another parameter definition referencing the same parameter_id. + */ + unsigned int duration; + /** + * The duration of every subblock in the case where all subblocks, with + * the optional exception of the last subblock, have equal durations. + * + * Must be 0 if subblocks have different durations. + */ + unsigned int constant_subblock_duration; +} AVIAMFParamDefinition; + +const AVClass *av_iamf_param_definition_get_class(void); + +/** + * Allocates memory for AVIAMFParamDefinition, plus an array of {@code nb_subblocks} + * amount of subblocks of the given type and initializes the variables. Can be + * freed with a normal av_free() call. + * + * @param size if non-NULL, the size in bytes of the resulting data array is written here. + */ +AVIAMFParamDefinition *av_iamf_param_definition_alloc(enum AVIAMFParamDefinitionType type, + unsigned int nb_subblocks, size_t *size); + +/** + * Get the subblock at the specified {@code idx}. Must be between 0 and nb_subblocks - 1. + * + * The @ref AVIAMFParamDefinition.type "param definition type" defines + * the struct type of the returned pointer. + */ +static av_always_inline void* +av_iamf_param_definition_get_subblock(const AVIAMFParamDefinition *par, unsigned int idx) +{ + av_assert0(idx < par->nb_subblocks); + return (void *)((uint8_t *)par + par->subblocks_offset + idx * par->subblock_size); +} + +/** + * @} + * @addtogroup lavu_iamf_audio + * @{ + */ + +enum AVIAMFAmbisonicsMode { + AV_IAMF_AMBISONICS_MODE_MONO, + AV_IAMF_AMBISONICS_MODE_PROJECTION, +}; + +/** + * Recon gain information for the layer is present in AVIAMFReconGain + */ +#define AV_IAMF_LAYER_FLAG_RECON_GAIN (1 << 0) + +/** + * A layer defining a Channel Layout in the Audio Element. + * + * When @ref AVIAMFAudioElement.audio_element_type "the parent's Audio Element type" + * is AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, this corresponds to an Scalable Channel + * Layout layer as defined in section 3.6.2 of IAMF. + * For AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE, it is an Ambisonics channel + * layout as defined in section 3.6.3 of IAMF. + * + * @note The struct should be allocated with av_iamf_audio_element_add_layer() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFLayer { + const AVClass *av_class; + + AVChannelLayout ch_layout; + + /** + * A bitmask which may contain a combination of AV_IAMF_LAYER_FLAG_* flags. + */ + unsigned int flags; + /** + * Output gain channel flags as defined in section 3.6.2 of IAMF. + * + * This field is defined only if @ref AVIAMFAudioElement.audio_element_type + * "the parent's Audio Element type" is AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, + * must be 0 otherwise. + */ + unsigned int output_gain_flags; + /** + * Output gain as defined in section 3.6.2 of IAMF. + * + * Must be 0 if @ref output_gain_flags is 0. + */ + AVRational output_gain; + /** + * Ambisonics mode as defined in section 3.6.3 of IAMF. + * + * This field is defined only if @ref AVIAMFAudioElement.audio_element_type + * "the parent's Audio Element type" is AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE. + * + * If AV_IAMF_AMBISONICS_MODE_MONO, channel_mapping is defined implicitly + * (Ambisonic Order) or explicitly (Custom Order with ambi channels) in + * @ref ch_layout. + * If AV_IAMF_AMBISONICS_MODE_PROJECTION, @ref demixing_matrix must be set. + */ + enum AVIAMFAmbisonicsMode ambisonics_mode; + + /** + * Demixing matrix as defined in section 3.6.3 of IAMF. + * + * The length of the array is ch_layout.nb_channels multiplied by the sum of + * the amount of streams in the group plus the amount of streams in the group + * that are stereo. + * + * May be set only if @ref ambisonics_mode == AV_IAMF_AMBISONICS_MODE_PROJECTION, + * must be NULL otherwise. + */ + AVRational *demixing_matrix; +} AVIAMFLayer; + + +enum AVIAMFAudioElementType { + AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, + AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE, +}; + +/** + * Information on how to combine one or more audio streams, as defined in + * section 3.6 of IAMF. + * + * @note The struct should be allocated with av_iamf_audio_element_alloc() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFAudioElement { + const AVClass *av_class; + + AVIAMFLayer **layers; + /** + * Number of layers, or channel groups, in the Audio Element. + * There may be 6 layers at most, and for @ref audio_element_type + * AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE, there may be exactly 1. + * + * Set by av_iamf_audio_element_add_layer(), must not be + * modified by any other code. + */ + unsigned int nb_layers; + + /** + * Demixing information used to reconstruct a scalable channel audio + * representation. + * The @ref AVIAMFParamDefinition.type "type" must be + * AV_IAMF_PARAMETER_DEFINITION_DEMIXING. + */ + AVIAMFParamDefinition *demixing_info; + /** + * Recon gain information used to reconstruct a scalable channel audio + * representation. + * The @ref AVIAMFParamDefinition.type "type" must be + * AV_IAMF_PARAMETER_DEFINITION_RECON_GAIN. + */ + AVIAMFParamDefinition *recon_gain_info; + + /** + * Audio element type as defined in section 3.6 of IAMF. + */ + enum AVIAMFAudioElementType audio_element_type; + + /** + * Default weight value as defined in section 3.6 of IAMF. + */ + unsigned int default_w; +} AVIAMFAudioElement; + +const AVClass *av_iamf_audio_element_get_class(void); + +/** + * Allocates a AVIAMFAudioElement, and initializes its fields with default values. + * No layers are allocated. Must be freed with av_iamf_audio_element_free(). + * + * @see av_iamf_audio_element_add_layer() + */ +AVIAMFAudioElement *av_iamf_audio_element_alloc(void); + +/** + * Allocate a layer and add it to a given AVIAMFAudioElement. + * It is freed by av_iamf_audio_element_free() alongside the rest of the parent + * AVIAMFAudioElement. + * + * @return a pointer to the allocated layer. + */ +AVIAMFLayer *av_iamf_audio_element_add_layer(AVIAMFAudioElement *audio_element); + +/** + * Free an AVIAMFAudioElement and all its contents. + * + * @param audio_element pointer to pointer to an allocated AVIAMFAudioElement. + * upon return, *audio_element will be set to NULL. + */ +void av_iamf_audio_element_free(AVIAMFAudioElement **audio_element); + +/** + * @} + * @addtogroup lavu_iamf_mix + * @{ + */ + +enum AVIAMFHeadphonesMode { + /** + * The referenced Audio Element shall be rendered to stereo loudspeakers. + */ + AV_IAMF_HEADPHONES_MODE_STEREO, + /** + * The referenced Audio Element shall be rendered with a binaural renderer. + */ + AV_IAMF_HEADPHONES_MODE_BINAURAL, +}; + +/** + * Submix element as defined in section 3.7 of IAMF. + * + * @note The struct should be allocated with av_iamf_submix_add_element() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFSubmixElement { + const AVClass *av_class; + + /** + * The id of the Audio Element this submix element references. + */ + unsigned int audio_element_id; + + /** + * Information required required for applying any processing to the + * referenced and rendered Audio Element before being summed with other + * processed Audio Elements. + * The @ref AVIAMFParamDefinition.type "type" must be + * AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN. + */ + AVIAMFParamDefinition *element_mix_config; + + /** + * Default mix gain value to apply when there are no AVIAMFParamDefinition + * with @ref element_mix_config "element_mix_config's" + * @ref AVIAMFParamDefinition.parameter_id "parameter_id" available for a + * given audio frame. + */ + AVRational default_mix_gain; + + /** + * A value that indicates whether the referenced channel-based Audio Element + * shall be rendered to stereo loudspeakers or spatialized with a binaural + * renderer when played back on headphones. + * If the Audio Element is not of @ref AVIAMFAudioElement.audio_element_type + * "type" AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, then this field is undefined. + */ + enum AVIAMFHeadphonesMode headphones_rendering_mode; + + /** + * A dictionary of strings describing the submix in different languages. + * Must have the same amount of entries as + * @ref AVIAMFMixPresentation.annotations "the mix's annotations", stored + * in the same order, and with the same key strings. + * + * @ref AVDictionaryEntry.key "key" is a string conforming to BCP-47 that + * specifies the language for the string stored in + * @ref AVDictionaryEntry.value "value". + */ + AVDictionary *annotations; +} AVIAMFSubmixElement; + +enum AVIAMFSubmixLayoutType { + /** + * The layout follows the loudspeaker sound system convention of ITU-2051-3. + */ + AV_IAMF_SUBMIX_LAYOUT_TYPE_LOUDSPEAKERS = 2, + /** + * The layout is binaural. + */ + AV_IAMF_SUBMIX_LAYOUT_TYPE_BINAURAL = 3, +}; + +/** + * Submix layout as defined in section 3.7.6 of IAMF. + * + * @note The struct should be allocated with av_iamf_submix_add_layout() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFSubmixLayout { + const AVClass *av_class; + + enum AVIAMFSubmixLayoutType layout_type; + + /** + * Channel layout matching one of Sound Systems A to J of ITU-2051-3, plus + * 7.1.2ch and 3.1.2ch + * If layout_type is not AV_IAMF_SUBMIX_LAYOUT_TYPE_LOUDSPEAKERS, this field + * is undefined. + */ + AVChannelLayout sound_system; + /** + * The program integrated loudness information, as defined in + * ITU-1770-4. + */ + AVRational integrated_loudness; + /** + * The digital (sampled) peak value of the audio signal, as defined + * in ITU-1770-4. + */ + AVRational digital_peak; + /** + * The true peak of the audio signal, as defined in ITU-1770-4. + */ + AVRational true_peak; + /** + * The Dialogue loudness information, as defined in ITU-1770-4. + */ + AVRational dialogue_anchored_loudness; + /** + * The Album loudness information, as defined in ITU-1770-4. + */ + AVRational album_anchored_loudness; +} AVIAMFSubmixLayout; + +/** + * Submix layout as defined in section 3.7 of IAMF. + * + * @note The struct should be allocated with av_iamf_mix_presentation_add_submix() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFSubmix { + const AVClass *av_class; + + /** + * Array of submix elements. + * + * Set by av_iamf_submix_add_element(), must not be modified by any + * other code. + */ + AVIAMFSubmixElement **elements; + /** + * Number of elements in the submix. + * + * Set by av_iamf_submix_add_element(), must not be modified by any + * other code. + */ + unsigned int nb_elements; + + /** + * Array of submix layouts. + * + * Set by av_iamf_submix_add_layout(), must not be modified by any + * other code. + */ + AVIAMFSubmixLayout **layouts; + /** + * Number of layouts in the submix. + * + * Set by av_iamf_submix_add_layout(), must not be modified by any + * other code. + */ + unsigned int nb_layouts; + + /** + * Information required for post-processing the mixed audio signal to + * generate the audio signal for playback. + * The @ref AVIAMFParamDefinition.type "type" must be + * AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN. + */ + AVIAMFParamDefinition *output_mix_config; + + /** + * Default mix gain value to apply when there are no AVIAMFParamDefinition + * with @ref output_mix_config "output_mix_config's" + * @ref AVIAMFParamDefinition.parameter_id "parameter_id" available for a + * given audio frame. + */ + AVRational default_mix_gain; +} AVIAMFSubmix; + +/** + * Information on how to render and mix one or more AVIAMFAudioElement to generate + * the final audio output, as defined in section 3.7 of IAMF. + * + * @note The struct should be allocated with av_iamf_mix_presentation_alloc() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFMixPresentation { + const AVClass *av_class; + + /** + * Array of submixes. + * + * Set by av_iamf_mix_presentation_add_submix(), must not be modified + * by any other code. + */ + AVIAMFSubmix **submixes; + /** + * Number of submixes in the presentation. + * + * Set by av_iamf_mix_presentation_add_submix(), must not be modified + * by any other code. + */ + unsigned int nb_submixes; + + /** + * A dictionary of strings describing the mix in different languages. + * Must have the same amount of entries as every + * @ref AVIAMFSubmixElement.annotations "Submix element annotations", + * stored in the same order, and with the same key strings. + * + * @ref AVDictionaryEntry.key "key" is a string conforming to BCP-47 + * that specifies the language for the string stored in + * @ref AVDictionaryEntry.value "value". + */ + AVDictionary *annotations; +} AVIAMFMixPresentation; + +const AVClass *av_iamf_mix_presentation_get_class(void); + +/** + * Allocates a AVIAMFMixPresentation, and initializes its fields with default + * values. No submixes are allocated. + * Must be freed with av_iamf_mix_presentation_free(). + * + * @see av_iamf_mix_presentation_add_submix() + */ +AVIAMFMixPresentation *av_iamf_mix_presentation_alloc(void); + +/** + * Allocate a submix and add it to a given AVIAMFMixPresentation. + * It is freed by av_iamf_mix_presentation_free() alongside the rest of the + * parent AVIAMFMixPresentation. + * + * @return a pointer to the allocated submix. + */ +AVIAMFSubmix *av_iamf_mix_presentation_add_submix(AVIAMFMixPresentation *mix_presentation); + +/** + * Allocate a submix element and add it to a given AVIAMFSubmix. + * It is freed by av_iamf_mix_presentation_free() alongside the rest of the + * parent AVIAMFSubmix. + * + * @return a pointer to the allocated submix. + */ +AVIAMFSubmixElement *av_iamf_submix_add_element(AVIAMFSubmix *submix); + +/** + * Allocate a submix layout and add it to a given AVIAMFSubmix. + * It is freed by av_iamf_mix_presentation_free() alongside the rest of the + * parent AVIAMFSubmix. + * + * @return a pointer to the allocated submix. + */ +AVIAMFSubmixLayout *av_iamf_submix_add_layout(AVIAMFSubmix *submix); + +/** + * Free an AVIAMFMixPresentation and all its contents. + * + * @param mix_presentation pointer to pointer to an allocated AVIAMFMixPresentation. + * upon return, *mix_presentation will be set to NULL. + */ +void av_iamf_mix_presentation_free(AVIAMFMixPresentation **mix_presentation); + +/** + * @} + */ + +#endif /* AVUTIL_IAMF_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/imgutils.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/imgutils.h new file mode 100644 index 00000000..123a9e5c --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/imgutils.h @@ -0,0 +1,377 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_IMGUTILS_H +#define AVUTIL_IMGUTILS_H + +/** + * @file + * misc image utilities + * + * @addtogroup lavu_picture + * @{ + */ + +#include +#include +#include "pixdesc.h" +#include "pixfmt.h" +#include "rational.h" + +/** + * Compute the max pixel step for each plane of an image with a + * format described by pixdesc. + * + * The pixel step is the distance in bytes between the first byte of + * the group of bytes which describe a pixel component and the first + * byte of the successive group in the same plane for the same + * component. + * + * @param max_pixsteps an array which is filled with the max pixel step + * for each plane. Since a plane may contain different pixel + * components, the computed max_pixsteps[plane] is relative to the + * component in the plane with the max pixel step. + * @param max_pixstep_comps an array which is filled with the component + * for each plane which has the max pixel step. May be NULL. + * @param pixdesc the AVPixFmtDescriptor for the image, describing its format + */ +void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4], + const AVPixFmtDescriptor *pixdesc); + +/** + * Compute the size of an image line with format pix_fmt and width + * width for the plane plane. + * + * @return the computed size in bytes + */ +int av_image_get_linesize(enum AVPixelFormat pix_fmt, int width, int plane); + +/** + * Fill plane linesizes for an image with pixel format pix_fmt and + * width width. + * + * @param linesizes array to be filled with the linesize for each plane + * @param pix_fmt the AVPixelFormat of the image + * @param width width of the image in pixels + * @return >= 0 in case of success, a negative error code otherwise + */ +int av_image_fill_linesizes(int linesizes[4], enum AVPixelFormat pix_fmt, int width); + +/** + * Fill plane sizes for an image with pixel format pix_fmt and height height. + * + * @param size the array to be filled with the size of each image plane + * @param pix_fmt the AVPixelFormat of the image + * @param height height of the image in pixels + * @param linesizes the array containing the linesize for each + * plane, should be filled by av_image_fill_linesizes() + * @return >= 0 in case of success, a negative error code otherwise + * + * @note The linesize parameters have the type ptrdiff_t here, while they are + * int for av_image_fill_linesizes(). + */ +int av_image_fill_plane_sizes(size_t size[4], enum AVPixelFormat pix_fmt, + int height, const ptrdiff_t linesizes[4]); + +/** + * Fill plane data pointers for an image with pixel format pix_fmt and + * height height. + * + * @param data pointers array to be filled with the pointer for each image plane + * @param pix_fmt the AVPixelFormat of the image + * @param height height of the image in pixels + * @param ptr the pointer to a buffer which will contain the image + * @param linesizes the array containing the linesize for each + * plane, should be filled by av_image_fill_linesizes() + * @return the size in bytes required for the image buffer, a negative + * error code in case of failure + */ +int av_image_fill_pointers(uint8_t *data[4], enum AVPixelFormat pix_fmt, int height, + uint8_t *ptr, const int linesizes[4]); + +/** + * Allocate an image with size w and h and pixel format pix_fmt, and + * fill pointers and linesizes accordingly. + * The allocated image buffer has to be freed by using + * av_freep(&pointers[0]). + * + * @param pointers array to be filled with the pointer for each image plane + * @param linesizes the array filled with the linesize for each plane + * @param w width of the image in pixels + * @param h height of the image in pixels + * @param pix_fmt the AVPixelFormat of the image + * @param align the value to use for buffer size alignment + * @return the size in bytes required for the image buffer, a negative + * error code in case of failure + */ +int av_image_alloc(uint8_t *pointers[4], int linesizes[4], + int w, int h, enum AVPixelFormat pix_fmt, int align); + +/** + * Copy image plane from src to dst. + * That is, copy "height" number of lines of "bytewidth" bytes each. + * The first byte of each successive line is separated by *_linesize + * bytes. + * + * bytewidth must be contained by both absolute values of dst_linesize + * and src_linesize, otherwise the function behavior is undefined. + * + * @param dst destination plane to copy to + * @param dst_linesize linesize for the image plane in dst + * @param src source plane to copy from + * @param src_linesize linesize for the image plane in src + * @param height height (number of lines) of the plane + */ +void av_image_copy_plane(uint8_t *dst, int dst_linesize, + const uint8_t *src, int src_linesize, + int bytewidth, int height); + +/** + * Copy image data located in uncacheable (e.g. GPU mapped) memory. Where + * available, this function will use special functionality for reading from such + * memory, which may result in greatly improved performance compared to plain + * av_image_copy_plane(). + * + * bytewidth must be contained by both absolute values of dst_linesize + * and src_linesize, otherwise the function behavior is undefined. + * + * @note The linesize parameters have the type ptrdiff_t here, while they are + * int for av_image_copy_plane(). + * @note On x86, the linesizes currently need to be aligned to the cacheline + * size (i.e. 64) to get improved performance. + */ +void av_image_copy_plane_uc_from(uint8_t *dst, ptrdiff_t dst_linesize, + const uint8_t *src, ptrdiff_t src_linesize, + ptrdiff_t bytewidth, int height); + +/** + * Copy image in src_data to dst_data. + * + * @param dst_data destination image data buffer to copy to + * @param dst_linesizes linesizes for the image in dst_data + * @param src_data source image data buffer to copy from + * @param src_linesizes linesizes for the image in src_data + * @param pix_fmt the AVPixelFormat of the image + * @param width width of the image in pixels + * @param height height of the image in pixels + */ +void av_image_copy(uint8_t * const dst_data[4], const int dst_linesizes[4], + const uint8_t * const src_data[4], const int src_linesizes[4], + enum AVPixelFormat pix_fmt, int width, int height); + +/** + * Wrapper around av_image_copy() to workaround the limitation + * that the conversion from uint8_t * const * to const uint8_t * const * + * is not performed automatically in C. + * @see av_image_copy() + */ +static inline +void av_image_copy2(uint8_t * const dst_data[4], const int dst_linesizes[4], + uint8_t * const src_data[4], const int src_linesizes[4], + enum AVPixelFormat pix_fmt, int width, int height) +{ + av_image_copy(dst_data, dst_linesizes, + (const uint8_t * const *)src_data, src_linesizes, + pix_fmt, width, height); +} + +/** + * Copy image data located in uncacheable (e.g. GPU mapped) memory. Where + * available, this function will use special functionality for reading from such + * memory, which may result in greatly improved performance compared to plain + * av_image_copy(). + * + * The data pointers and the linesizes must be aligned to the maximum required + * by the CPU architecture. + * + * @note The linesize parameters have the type ptrdiff_t here, while they are + * int for av_image_copy(). + * @note On x86, the linesizes currently need to be aligned to the cacheline + * size (i.e. 64) to get improved performance. + */ +void av_image_copy_uc_from(uint8_t * const dst_data[4], const ptrdiff_t dst_linesizes[4], + const uint8_t * const src_data[4], const ptrdiff_t src_linesizes[4], + enum AVPixelFormat pix_fmt, int width, int height); + +/** + * Setup the data pointers and linesizes based on the specified image + * parameters and the provided array. + * + * The fields of the given image are filled in by using the src + * address which points to the image data buffer. Depending on the + * specified pixel format, one or multiple image data pointers and + * line sizes will be set. If a planar format is specified, several + * pointers will be set pointing to the different picture planes and + * the line sizes of the different planes will be stored in the + * lines_sizes array. Call with src == NULL to get the required + * size for the src buffer. + * + * To allocate the buffer and fill in the dst_data and dst_linesize in + * one call, use av_image_alloc(). + * + * @param dst_data data pointers to be filled in + * @param dst_linesize linesizes for the image in dst_data to be filled in + * @param src buffer which will contain or contains the actual image data, can be NULL + * @param pix_fmt the pixel format of the image + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @param align the value used in src for linesize alignment + * @return the size in bytes required for src, a negative error code + * in case of failure + */ +int av_image_fill_arrays(uint8_t *dst_data[4], int dst_linesize[4], + const uint8_t *src, + enum AVPixelFormat pix_fmt, int width, int height, int align); + +/** + * Return the size in bytes of the amount of data required to store an + * image with the given parameters. + * + * @param pix_fmt the pixel format of the image + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @param align the assumed linesize alignment + * @return the buffer size in bytes, a negative error code in case of failure + */ +int av_image_get_buffer_size(enum AVPixelFormat pix_fmt, int width, int height, int align); + +/** + * Copy image data from an image into a buffer. + * + * av_image_get_buffer_size() can be used to compute the required size + * for the buffer to fill. + * + * @param dst a buffer into which picture data will be copied + * @param dst_size the size in bytes of dst + * @param src_data pointers containing the source image data + * @param src_linesize linesizes for the image in src_data + * @param pix_fmt the pixel format of the source image + * @param width the width of the source image in pixels + * @param height the height of the source image in pixels + * @param align the assumed linesize alignment for dst + * @return the number of bytes written to dst, or a negative value + * (error code) on error + */ +int av_image_copy_to_buffer(uint8_t *dst, int dst_size, + const uint8_t * const src_data[4], const int src_linesize[4], + enum AVPixelFormat pix_fmt, int width, int height, int align); + +/** + * Check if the given dimension of an image is valid, meaning that all + * bytes of the image can be addressed with a signed int. + * + * @param w the width of the picture + * @param h the height of the picture + * @param log_offset the offset to sum to the log level for logging with log_ctx + * @param log_ctx the parent logging context, it may be NULL + * @return >= 0 if valid, a negative error code otherwise + */ +int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx); + +/** + * Check if the given dimension of an image is valid, meaning that all + * bytes of a plane of an image with the specified pix_fmt can be addressed + * with a signed int. + * + * @param w the width of the picture + * @param h the height of the picture + * @param max_pixels the maximum number of pixels the user wants to accept + * @param pix_fmt the pixel format, can be AV_PIX_FMT_NONE if unknown. + * @param log_offset the offset to sum to the log level for logging with log_ctx + * @param log_ctx the parent logging context, it may be NULL + * @return >= 0 if valid, a negative error code otherwise + */ +int av_image_check_size2(unsigned int w, unsigned int h, int64_t max_pixels, enum AVPixelFormat pix_fmt, int log_offset, void *log_ctx); + +/** + * Check if the given sample aspect ratio of an image is valid. + * + * It is considered invalid if the denominator is 0 or if applying the ratio + * to the image size would make the smaller dimension less than 1. If the + * sar numerator is 0, it is considered unknown and will return as valid. + * + * @param w width of the image + * @param h height of the image + * @param sar sample aspect ratio of the image + * @return 0 if valid, a negative AVERROR code otherwise + */ +int av_image_check_sar(unsigned int w, unsigned int h, AVRational sar); + +/** + * Overwrite the image data with black. This is suitable for filling a + * sub-rectangle of an image, meaning the padding between the right most pixel + * and the left most pixel on the next line will not be overwritten. For some + * formats, the image size might be rounded up due to inherent alignment. + * + * If the pixel format has alpha, the alpha is cleared to opaque. + * + * This can return an error if the pixel format is not supported. Normally, all + * non-hwaccel pixel formats should be supported. + * + * Passing NULL for dst_data is allowed. Then the function returns whether the + * operation would have succeeded. (It can return an error if the pix_fmt is + * not supported.) + * + * @param dst_data data pointers to destination image + * @param dst_linesize linesizes for the destination image + * @param pix_fmt the pixel format of the image + * @param range the color range of the image (important for colorspaces such as YUV) + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @return 0 if the image data was cleared, a negative AVERROR code otherwise + */ +int av_image_fill_black(uint8_t * const dst_data[4], const ptrdiff_t dst_linesize[4], + enum AVPixelFormat pix_fmt, enum AVColorRange range, + int width, int height); + +/** + * Overwrite the image data with a color. This is suitable for filling a + * sub-rectangle of an image, meaning the padding between the right most pixel + * and the left most pixel on the next line will not be overwritten. For some + * formats, the image size might be rounded up due to inherent alignment. + * + * If the pixel format has alpha, it is also replaced. Color component values + * are interpreted as native integers (or intfloats) regardless of actual pixel + * format endianness. + * + * This can return an error if the pixel format is not supported. Normally, all + * non-hwaccel pixel formats should be supported. + * + * Passing NULL for dst_data is allowed. Then the function returns whether the + * operation would have succeeded. (It can return an error if the pix_fmt is + * not supported.) + * + * @param dst_data data pointers to destination image + * @param dst_linesize linesizes for the destination image + * @param pix_fmt the pixel format of the image + * @param color the color components to be used for the fill + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @param flags currently unused + * @return 0 if the image data was filled, a negative AVERROR code otherwise + */ +int av_image_fill_color(uint8_t * const dst_data[4], const ptrdiff_t dst_linesize[4], + enum AVPixelFormat pix_fmt, const uint32_t color[4], + int width, int height, int flags); + +/** + * @} + */ + + +#endif /* AVUTIL_IMGUTILS_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/intfloat.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/intfloat.h new file mode 100644 index 00000000..fe3d7ec4 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/intfloat.h @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2011 Mans Rullgard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_INTFLOAT_H +#define AVUTIL_INTFLOAT_H + +#include +#include "attributes.h" + +union av_intfloat32 { + uint32_t i; + float f; +}; + +union av_intfloat64 { + uint64_t i; + double f; +}; + +/** + * Reinterpret a 32-bit integer as a float. + */ +static av_always_inline float av_int2float(uint32_t i) +{ + union av_intfloat32 v; + v.i = i; + return v.f; +} + +/** + * Reinterpret a float as a 32-bit integer. + */ +static av_always_inline uint32_t av_float2int(float f) +{ + union av_intfloat32 v; + v.f = f; + return v.i; +} + +/** + * Reinterpret a 64-bit integer as a double. + */ +static av_always_inline double av_int2double(uint64_t i) +{ + union av_intfloat64 v; + v.i = i; + return v.f; +} + +/** + * Reinterpret a double as a 64-bit integer. + */ +static av_always_inline uint64_t av_double2int(double f) +{ + union av_intfloat64 v; + v.f = f; + return v.i; +} + +#endif /* AVUTIL_INTFLOAT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/intreadwrite.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/intreadwrite.h new file mode 100644 index 00000000..ffd15a15 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/intreadwrite.h @@ -0,0 +1,677 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_INTREADWRITE_H +#define AVUTIL_INTREADWRITE_H + +#include +#include "libavutil/avconfig.h" +#include "attributes.h" +#include "bswap.h" + +typedef union { + uint64_t u64; + uint32_t u32[2]; + uint16_t u16[4]; + uint8_t u8 [8]; + double f64; + float f32[2]; +} av_alias av_alias64; + +typedef union { + uint32_t u32; + uint16_t u16[2]; + uint8_t u8 [4]; + float f32; +} av_alias av_alias32; + +typedef union { + uint16_t u16; + uint8_t u8 [2]; +} av_alias av_alias16; + +/* + * Arch-specific headers can provide any combination of + * AV_[RW][BLN](16|24|32|48|64) and AV_(COPY|SWAP|ZERO)(64|128) macros. + * Preprocessor symbols must be defined, even if these are implemented + * as inline functions. + * + * R/W means read/write, B/L/N means big/little/native endianness. + * The following macros require aligned access, compared to their + * unaligned variants: AV_(COPY|SWAP|ZERO)(64|128), AV_[RW]N[8-64]A. + * Incorrect usage may range from abysmal performance to crash + * depending on the platform. + * + * The unaligned variants are AV_[RW][BLN][8-64] and AV_COPY*U. + */ + +#ifdef HAVE_AV_CONFIG_H + +#include "config.h" + +#if ARCH_AARCH64 +# include "aarch64/intreadwrite.h" +#elif ARCH_MIPS +# include "mips/intreadwrite.h" +#elif ARCH_PPC +# include "ppc/intreadwrite.h" +#elif ARCH_X86 +# include "x86/intreadwrite.h" +#endif + +#endif /* HAVE_AV_CONFIG_H */ + +/* + * Map AV_RNXX <-> AV_R[BL]XX for all variants provided by per-arch headers. + */ + +#if AV_HAVE_BIGENDIAN + +# if defined(AV_RN16) && !defined(AV_RB16) +# define AV_RB16(p) AV_RN16(p) +# elif !defined(AV_RN16) && defined(AV_RB16) +# define AV_RN16(p) AV_RB16(p) +# endif + +# if defined(AV_WN16) && !defined(AV_WB16) +# define AV_WB16(p, v) AV_WN16(p, v) +# elif !defined(AV_WN16) && defined(AV_WB16) +# define AV_WN16(p, v) AV_WB16(p, v) +# endif + +# if defined(AV_RN24) && !defined(AV_RB24) +# define AV_RB24(p) AV_RN24(p) +# elif !defined(AV_RN24) && defined(AV_RB24) +# define AV_RN24(p) AV_RB24(p) +# endif + +# if defined(AV_WN24) && !defined(AV_WB24) +# define AV_WB24(p, v) AV_WN24(p, v) +# elif !defined(AV_WN24) && defined(AV_WB24) +# define AV_WN24(p, v) AV_WB24(p, v) +# endif + +# if defined(AV_RN32) && !defined(AV_RB32) +# define AV_RB32(p) AV_RN32(p) +# elif !defined(AV_RN32) && defined(AV_RB32) +# define AV_RN32(p) AV_RB32(p) +# endif + +# if defined(AV_WN32) && !defined(AV_WB32) +# define AV_WB32(p, v) AV_WN32(p, v) +# elif !defined(AV_WN32) && defined(AV_WB32) +# define AV_WN32(p, v) AV_WB32(p, v) +# endif + +# if defined(AV_RN48) && !defined(AV_RB48) +# define AV_RB48(p) AV_RN48(p) +# elif !defined(AV_RN48) && defined(AV_RB48) +# define AV_RN48(p) AV_RB48(p) +# endif + +# if defined(AV_WN48) && !defined(AV_WB48) +# define AV_WB48(p, v) AV_WN48(p, v) +# elif !defined(AV_WN48) && defined(AV_WB48) +# define AV_WN48(p, v) AV_WB48(p, v) +# endif + +# if defined(AV_RN64) && !defined(AV_RB64) +# define AV_RB64(p) AV_RN64(p) +# elif !defined(AV_RN64) && defined(AV_RB64) +# define AV_RN64(p) AV_RB64(p) +# endif + +# if defined(AV_WN64) && !defined(AV_WB64) +# define AV_WB64(p, v) AV_WN64(p, v) +# elif !defined(AV_WN64) && defined(AV_WB64) +# define AV_WN64(p, v) AV_WB64(p, v) +# endif + +#else /* AV_HAVE_BIGENDIAN */ + +# if defined(AV_RN16) && !defined(AV_RL16) +# define AV_RL16(p) AV_RN16(p) +# elif !defined(AV_RN16) && defined(AV_RL16) +# define AV_RN16(p) AV_RL16(p) +# endif + +# if defined(AV_WN16) && !defined(AV_WL16) +# define AV_WL16(p, v) AV_WN16(p, v) +# elif !defined(AV_WN16) && defined(AV_WL16) +# define AV_WN16(p, v) AV_WL16(p, v) +# endif + +# if defined(AV_RN24) && !defined(AV_RL24) +# define AV_RL24(p) AV_RN24(p) +# elif !defined(AV_RN24) && defined(AV_RL24) +# define AV_RN24(p) AV_RL24(p) +# endif + +# if defined(AV_WN24) && !defined(AV_WL24) +# define AV_WL24(p, v) AV_WN24(p, v) +# elif !defined(AV_WN24) && defined(AV_WL24) +# define AV_WN24(p, v) AV_WL24(p, v) +# endif + +# if defined(AV_RN32) && !defined(AV_RL32) +# define AV_RL32(p) AV_RN32(p) +# elif !defined(AV_RN32) && defined(AV_RL32) +# define AV_RN32(p) AV_RL32(p) +# endif + +# if defined(AV_WN32) && !defined(AV_WL32) +# define AV_WL32(p, v) AV_WN32(p, v) +# elif !defined(AV_WN32) && defined(AV_WL32) +# define AV_WN32(p, v) AV_WL32(p, v) +# endif + +# if defined(AV_RN48) && !defined(AV_RL48) +# define AV_RL48(p) AV_RN48(p) +# elif !defined(AV_RN48) && defined(AV_RL48) +# define AV_RN48(p) AV_RL48(p) +# endif + +# if defined(AV_WN48) && !defined(AV_WL48) +# define AV_WL48(p, v) AV_WN48(p, v) +# elif !defined(AV_WN48) && defined(AV_WL48) +# define AV_WN48(p, v) AV_WL48(p, v) +# endif + +# if defined(AV_RN64) && !defined(AV_RL64) +# define AV_RL64(p) AV_RN64(p) +# elif !defined(AV_RN64) && defined(AV_RL64) +# define AV_RN64(p) AV_RL64(p) +# endif + +# if defined(AV_WN64) && !defined(AV_WL64) +# define AV_WL64(p, v) AV_WN64(p, v) +# elif !defined(AV_WN64) && defined(AV_WL64) +# define AV_WN64(p, v) AV_WL64(p, v) +# endif + +#endif /* !AV_HAVE_BIGENDIAN */ + +/* + * Define AV_[RW]N helper macros to simplify definitions not provided + * by per-arch headers. + */ + +#if defined(__GNUC__) || defined(__clang__) + +union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias; +union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias; +union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias; + +# define AV_RN(s, p) (((const union unaligned_##s *) (p))->l) +# define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v)) + +#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_X64) || defined(_M_ARM64)) && AV_HAVE_FAST_UNALIGNED + +# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p))) +# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v)) + +#elif AV_HAVE_FAST_UNALIGNED + +# define AV_RN(s, p) (((const av_alias##s*)(p))->u##s) +# define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v)) + +#else + +#ifndef AV_RB16 +# define AV_RB16(x) \ + ((((const uint8_t*)(x))[0] << 8) | \ + ((const uint8_t*)(x))[1]) +#endif +#ifndef AV_WB16 +# define AV_WB16(p, val) do { \ + uint16_t d = (val); \ + ((uint8_t*)(p))[1] = (d); \ + ((uint8_t*)(p))[0] = (d)>>8; \ + } while(0) +#endif + +#ifndef AV_RL16 +# define AV_RL16(x) \ + ((((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL16 +# define AV_WL16(p, val) do { \ + uint16_t d = (val); \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + } while(0) +#endif + +#ifndef AV_RB32 +# define AV_RB32(x) \ + (((uint32_t)((const uint8_t*)(x))[0] << 24) | \ + (((const uint8_t*)(x))[1] << 16) | \ + (((const uint8_t*)(x))[2] << 8) | \ + ((const uint8_t*)(x))[3]) +#endif +#ifndef AV_WB32 +# define AV_WB32(p, val) do { \ + uint32_t d = (val); \ + ((uint8_t*)(p))[3] = (d); \ + ((uint8_t*)(p))[2] = (d)>>8; \ + ((uint8_t*)(p))[1] = (d)>>16; \ + ((uint8_t*)(p))[0] = (d)>>24; \ + } while(0) +#endif + +#ifndef AV_RL32 +# define AV_RL32(x) \ + (((uint32_t)((const uint8_t*)(x))[3] << 24) | \ + (((const uint8_t*)(x))[2] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL32 +# define AV_WL32(p, val) do { \ + uint32_t d = (val); \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + ((uint8_t*)(p))[3] = (d)>>24; \ + } while(0) +#endif + +#ifndef AV_RB64 +# define AV_RB64(x) \ + (((uint64_t)((const uint8_t*)(x))[0] << 56) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 48) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[5] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[6] << 8) | \ + (uint64_t)((const uint8_t*)(x))[7]) +#endif +#ifndef AV_WB64 +# define AV_WB64(p, val) do { \ + uint64_t d = (val); \ + ((uint8_t*)(p))[7] = (d); \ + ((uint8_t*)(p))[6] = (d)>>8; \ + ((uint8_t*)(p))[5] = (d)>>16; \ + ((uint8_t*)(p))[4] = (d)>>24; \ + ((uint8_t*)(p))[3] = (d)>>32; \ + ((uint8_t*)(p))[2] = (d)>>40; \ + ((uint8_t*)(p))[1] = (d)>>48; \ + ((uint8_t*)(p))[0] = (d)>>56; \ + } while(0) +#endif + +#ifndef AV_RL64 +# define AV_RL64(x) \ + (((uint64_t)((const uint8_t*)(x))[7] << 56) | \ + ((uint64_t)((const uint8_t*)(x))[6] << 48) | \ + ((uint64_t)((const uint8_t*)(x))[5] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 8) | \ + (uint64_t)((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL64 +# define AV_WL64(p, val) do { \ + uint64_t d = (val); \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + ((uint8_t*)(p))[3] = (d)>>24; \ + ((uint8_t*)(p))[4] = (d)>>32; \ + ((uint8_t*)(p))[5] = (d)>>40; \ + ((uint8_t*)(p))[6] = (d)>>48; \ + ((uint8_t*)(p))[7] = (d)>>56; \ + } while(0) +#endif + +#if AV_HAVE_BIGENDIAN +# define AV_RN(s, p) AV_RB##s(p) +# define AV_WN(s, p, v) AV_WB##s(p, v) +#else +# define AV_RN(s, p) AV_RL##s(p) +# define AV_WN(s, p, v) AV_WL##s(p, v) +#endif + +#endif /* HAVE_FAST_UNALIGNED */ + +#ifndef AV_RN16 +# define AV_RN16(p) AV_RN(16, p) +#endif + +#ifndef AV_RN32 +# define AV_RN32(p) AV_RN(32, p) +#endif + +#ifndef AV_RN64 +# define AV_RN64(p) AV_RN(64, p) +#endif + +#ifndef AV_WN16 +# define AV_WN16(p, v) AV_WN(16, p, v) +#endif + +#ifndef AV_WN32 +# define AV_WN32(p, v) AV_WN(32, p, v) +#endif + +#ifndef AV_WN64 +# define AV_WN64(p, v) AV_WN(64, p, v) +#endif + +#if AV_HAVE_BIGENDIAN +# define AV_RB(s, p) AV_RN##s(p) +# define AV_WB(s, p, v) AV_WN##s(p, v) +# define AV_RL(s, p) av_bswap##s(AV_RN##s(p)) +# define AV_WL(s, p, v) AV_WN##s(p, av_bswap##s(v)) +#else +# define AV_RB(s, p) av_bswap##s(AV_RN##s(p)) +# define AV_WB(s, p, v) AV_WN##s(p, av_bswap##s(v)) +# define AV_RL(s, p) AV_RN##s(p) +# define AV_WL(s, p, v) AV_WN##s(p, v) +#endif + +#define AV_RB8(x) (((const uint8_t*)(x))[0]) +#define AV_WB8(p, d) do { ((uint8_t*)(p))[0] = (d); } while(0) + +#define AV_RL8(x) AV_RB8(x) +#define AV_WL8(p, d) AV_WB8(p, d) + +#ifndef AV_RB16 +# define AV_RB16(p) AV_RB(16, p) +#endif +#ifndef AV_WB16 +# define AV_WB16(p, v) AV_WB(16, p, v) +#endif + +#ifndef AV_RL16 +# define AV_RL16(p) AV_RL(16, p) +#endif +#ifndef AV_WL16 +# define AV_WL16(p, v) AV_WL(16, p, v) +#endif + +#ifndef AV_RB32 +# define AV_RB32(p) AV_RB(32, p) +#endif +#ifndef AV_WB32 +# define AV_WB32(p, v) AV_WB(32, p, v) +#endif + +#ifndef AV_RL32 +# define AV_RL32(p) AV_RL(32, p) +#endif +#ifndef AV_WL32 +# define AV_WL32(p, v) AV_WL(32, p, v) +#endif + +#ifndef AV_RB64 +# define AV_RB64(p) AV_RB(64, p) +#endif +#ifndef AV_WB64 +# define AV_WB64(p, v) AV_WB(64, p, v) +#endif + +#ifndef AV_RL64 +# define AV_RL64(p) AV_RL(64, p) +#endif +#ifndef AV_WL64 +# define AV_WL64(p, v) AV_WL(64, p, v) +#endif + +#ifndef AV_RB24 +# define AV_RB24(x) \ + ((((const uint8_t*)(x))[0] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[2]) +#endif +#ifndef AV_WB24 +# define AV_WB24(p, d) do { \ + ((uint8_t*)(p))[2] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[0] = (d)>>16; \ + } while(0) +#endif + +#ifndef AV_RL24 +# define AV_RL24(x) \ + ((((const uint8_t*)(x))[2] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL24 +# define AV_WL24(p, d) do { \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + } while(0) +#endif + +#ifndef AV_RB48 +# define AV_RB48(x) \ + (((uint64_t)((const uint8_t*)(x))[0] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 8) | \ + (uint64_t)((const uint8_t*)(x))[5]) +#endif +#ifndef AV_WB48 +# define AV_WB48(p, darg) do { \ + uint64_t d = (darg); \ + ((uint8_t*)(p))[5] = (d); \ + ((uint8_t*)(p))[4] = (d)>>8; \ + ((uint8_t*)(p))[3] = (d)>>16; \ + ((uint8_t*)(p))[2] = (d)>>24; \ + ((uint8_t*)(p))[1] = (d)>>32; \ + ((uint8_t*)(p))[0] = (d)>>40; \ + } while(0) +#endif + +#ifndef AV_RL48 +# define AV_RL48(x) \ + (((uint64_t)((const uint8_t*)(x))[5] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 8) | \ + (uint64_t)((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL48 +# define AV_WL48(p, darg) do { \ + uint64_t d = (darg); \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + ((uint8_t*)(p))[3] = (d)>>24; \ + ((uint8_t*)(p))[4] = (d)>>32; \ + ((uint8_t*)(p))[5] = (d)>>40; \ + } while(0) +#endif + +/* + * The AV_[RW]NA macros access naturally aligned data + * in a type-safe way. + */ + +#define AV_RNA(s, p) (((const av_alias##s*)(p))->u##s) +#define AV_WNA(s, p, v) (((av_alias##s*)(p))->u##s = (v)) + +#ifndef AV_RN16A +# define AV_RN16A(p) AV_RNA(16, p) +#endif + +#ifndef AV_RN32A +# define AV_RN32A(p) AV_RNA(32, p) +#endif + +#ifndef AV_RN64A +# define AV_RN64A(p) AV_RNA(64, p) +#endif + +#ifndef AV_WN16A +# define AV_WN16A(p, v) AV_WNA(16, p, v) +#endif + +#ifndef AV_WN32A +# define AV_WN32A(p, v) AV_WNA(32, p, v) +#endif + +#ifndef AV_WN64A +# define AV_WN64A(p, v) AV_WNA(64, p, v) +#endif + +#if AV_HAVE_BIGENDIAN +# define AV_RLA(s, p) av_bswap##s(AV_RN##s##A(p)) +# define AV_WLA(s, p, v) AV_WN##s##A(p, av_bswap##s(v)) +# define AV_RBA(s, p) AV_RN##s##A(p) +# define AV_WBA(s, p, v) AV_WN##s##A(p, v) +#else +# define AV_RLA(s, p) AV_RN##s##A(p) +# define AV_WLA(s, p, v) AV_WN##s##A(p, v) +# define AV_RBA(s, p) av_bswap##s(AV_RN##s##A(p)) +# define AV_WBA(s, p, v) AV_WN##s##A(p, av_bswap##s(v)) +#endif + +#ifndef AV_RL16A +# define AV_RL16A(p) AV_RLA(16, p) +#endif +#ifndef AV_WL16A +# define AV_WL16A(p, v) AV_WLA(16, p, v) +#endif + +#ifndef AV_RB16A +# define AV_RB16A(p) AV_RBA(16, p) +#endif +#ifndef AV_WB16A +# define AV_WB16A(p, v) AV_WBA(16, p, v) +#endif + +#ifndef AV_RL32A +# define AV_RL32A(p) AV_RLA(32, p) +#endif +#ifndef AV_WL32A +# define AV_WL32A(p, v) AV_WLA(32, p, v) +#endif + +#ifndef AV_RB32A +# define AV_RB32A(p) AV_RBA(32, p) +#endif +#ifndef AV_WB32A +# define AV_WB32A(p, v) AV_WBA(32, p, v) +#endif + +#ifndef AV_RL64A +# define AV_RL64A(p) AV_RLA(64, p) +#endif +#ifndef AV_WL64A +# define AV_WL64A(p, v) AV_WLA(64, p, v) +#endif + +#ifndef AV_RB64A +# define AV_RB64A(p) AV_RBA(64, p) +#endif +#ifndef AV_WB64A +# define AV_WB64A(p, v) AV_WBA(64, p, v) +#endif + +/* + * The AV_COPYxxU macros are suitable for copying data to/from unaligned + * memory locations. + */ + +#define AV_COPYU(n, d, s) AV_WN##n(d, AV_RN##n(s)); + +#ifndef AV_COPY16U +# define AV_COPY16U(d, s) AV_COPYU(16, d, s) +#endif + +#ifndef AV_COPY32U +# define AV_COPY32U(d, s) AV_COPYU(32, d, s) +#endif + +#ifndef AV_COPY64U +# define AV_COPY64U(d, s) AV_COPYU(64, d, s) +#endif + +#ifndef AV_COPY128U +# define AV_COPY128U(d, s) \ + do { \ + AV_COPY64U(d, s); \ + AV_COPY64U((char *)(d) + 8, (const char *)(s) + 8); \ + } while(0) +#endif + +/* Parameters for AV_COPY*, AV_SWAP*, AV_ZERO* must be + * naturally aligned. + */ + +#define AV_COPY(n, d, s) \ + (((av_alias##n*)(d))->u##n = ((const av_alias##n*)(s))->u##n) + +#ifndef AV_COPY16 +# define AV_COPY16(d, s) AV_COPY(16, d, s) +#endif + +#ifndef AV_COPY32 +# define AV_COPY32(d, s) AV_COPY(32, d, s) +#endif + +#ifndef AV_COPY64 +# define AV_COPY64(d, s) AV_COPY(64, d, s) +#endif + +#ifndef AV_COPY128 +# define AV_COPY128(d, s) \ + do { \ + AV_COPY64(d, s); \ + AV_COPY64((char*)(d)+8, (char*)(s)+8); \ + } while(0) +#endif + +#define AV_SWAP(n, a, b) FFSWAP(av_alias##n, *(av_alias##n*)(a), *(av_alias##n*)(b)) + +#ifndef AV_SWAP64 +# define AV_SWAP64(a, b) AV_SWAP(64, a, b) +#endif + +#define AV_ZERO(n, d) (((av_alias##n*)(d))->u##n = 0) + +#ifndef AV_ZERO16 +# define AV_ZERO16(d) AV_ZERO(16, d) +#endif + +#ifndef AV_ZERO32 +# define AV_ZERO32(d) AV_ZERO(32, d) +#endif + +#ifndef AV_ZERO64 +# define AV_ZERO64(d) AV_ZERO(64, d) +#endif + +#ifndef AV_ZERO128 +# define AV_ZERO128(d) \ + do { \ + AV_ZERO64(d); \ + AV_ZERO64((char*)(d)+8); \ + } while(0) +#endif + +#endif /* AVUTIL_INTREADWRITE_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/lfg.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/lfg.h new file mode 100644 index 00000000..e75a986f --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/lfg.h @@ -0,0 +1,81 @@ +/* + * Lagged Fibonacci PRNG + * Copyright (c) 2008 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_LFG_H +#define AVUTIL_LFG_H + +#include + +/** + * Context structure for the Lagged Fibonacci PRNG. + * The exact layout, types and content of this struct may change and should + * not be accessed directly. Only its `sizeof()` is guaranteed to stay the same + * to allow easy instanciation. + */ +typedef struct AVLFG { + unsigned int state[64]; + int index; +} AVLFG; + +void av_lfg_init(AVLFG *c, unsigned int seed); + +/** + * Seed the state of the ALFG using binary data. + * + * @return 0 on success, negative value (AVERROR) on failure. + */ +int av_lfg_init_from_data(AVLFG *c, const uint8_t *data, unsigned int length); + +/** + * Get the next random unsigned 32-bit number using an ALFG. + * + * Please also consider a simple LCG like state= state*1664525+1013904223, + * it may be good enough and faster for your specific use case. + */ +static inline unsigned int av_lfg_get(AVLFG *c){ + unsigned a = c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63]; + c->index += 1U; + return a; +} + +/** + * Get the next random unsigned 32-bit number using a MLFG. + * + * Please also consider av_lfg_get() above, it is faster. + */ +static inline unsigned int av_mlfg_get(AVLFG *c){ + unsigned int a= c->state[(c->index-55) & 63]; + unsigned int b= c->state[(c->index-24) & 63]; + a = c->state[c->index & 63] = 2*a*b+a+b; + c->index += 1U; + return a; +} + +/** + * Get the next two numbers generated by a Box-Muller Gaussian + * generator using the random numbers issued by lfg. + * + * @param lfg pointer to the contex structure + * @param out array where the two generated numbers are placed + */ +void av_bmg_get(AVLFG *lfg, double out[2]); + +#endif /* AVUTIL_LFG_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/log.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/log.h new file mode 100644 index 00000000..ab7ceabe --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/log.h @@ -0,0 +1,387 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_LOG_H +#define AVUTIL_LOG_H + +#include +#include "attributes.h" +#include "version.h" + +typedef enum { + AV_CLASS_CATEGORY_NA = 0, + AV_CLASS_CATEGORY_INPUT, + AV_CLASS_CATEGORY_OUTPUT, + AV_CLASS_CATEGORY_MUXER, + AV_CLASS_CATEGORY_DEMUXER, + AV_CLASS_CATEGORY_ENCODER, + AV_CLASS_CATEGORY_DECODER, + AV_CLASS_CATEGORY_FILTER, + AV_CLASS_CATEGORY_BITSTREAM_FILTER, + AV_CLASS_CATEGORY_SWSCALER, + AV_CLASS_CATEGORY_SWRESAMPLER, + AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = 40, + AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, + AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, + AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, + AV_CLASS_CATEGORY_DEVICE_OUTPUT, + AV_CLASS_CATEGORY_DEVICE_INPUT, + AV_CLASS_CATEGORY_NB ///< not part of ABI/API +}AVClassCategory; + +#define AV_IS_INPUT_DEVICE(category) \ + (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_INPUT)) + +#define AV_IS_OUTPUT_DEVICE(category) \ + (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_OUTPUT)) + +struct AVOptionRanges; + +/** + * Describe the class of an AVClass context structure. That is an + * arbitrary struct of which the first field is a pointer to an + * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.). + */ +typedef struct AVClass { + /** + * The name of the class; usually it is the same name as the + * context structure type to which the AVClass is associated. + */ + const char* class_name; + + /** + * A pointer to a function which returns the name of a context + * instance ctx associated with the class. + */ + const char* (*item_name)(void* ctx); + + /** + * a pointer to the first option specified in the class if any or NULL + * + * @see av_set_default_options() + */ + const struct AVOption *option; + + /** + * LIBAVUTIL_VERSION with which this structure was created. + * This is used to allow fields to be added without requiring major + * version bumps everywhere. + */ + + int version; + + /** + * Offset in the structure where log_level_offset is stored. + * 0 means there is no such variable + */ + int log_level_offset_offset; + + /** + * Offset in the structure where a pointer to the parent context for + * logging is stored. For example a decoder could pass its AVCodecContext + * to eval as such a parent context, which an av_log() implementation + * could then leverage to display the parent context. + * The offset can be NULL. + */ + int parent_log_context_offset; + + /** + * Category used for visualization (like color) + * This is only set if the category is equal for all objects using this class. + * available since version (51 << 16 | 56 << 8 | 100) + */ + AVClassCategory category; + + /** + * Callback to return the category. + * available since version (51 << 16 | 59 << 8 | 100) + */ + AVClassCategory (*get_category)(void* ctx); + + /** + * Callback to return the supported/allowed ranges. + * available since version (52.12) + */ + int (*query_ranges)(struct AVOptionRanges **, void *obj, const char *key, int flags); + + /** + * Return next AVOptions-enabled child or NULL + */ + void* (*child_next)(void *obj, void *prev); + + /** + * Iterate over the AVClasses corresponding to potential AVOptions-enabled + * children. + * + * @param iter pointer to opaque iteration state. The caller must initialize + * *iter to NULL before the first call. + * @return AVClass for the next AVOptions-enabled child or NULL if there are + * no more such children. + * + * @note The difference between child_next and this is that child_next + * iterates over _already existing_ objects, while child_class_iterate + * iterates over _all possible_ children. + */ + const struct AVClass* (*child_class_iterate)(void **iter); +} AVClass; + +/** + * @addtogroup lavu_log + * + * @{ + * + * @defgroup lavu_log_constants Logging Constants + * + * @{ + */ + +/** + * Print no output. + */ +#define AV_LOG_QUIET -8 + +/** + * Something went really wrong and we will crash now. + */ +#define AV_LOG_PANIC 0 + +/** + * Something went wrong and recovery is not possible. + * For example, no header was found for a format which depends + * on headers or an illegal combination of parameters is used. + */ +#define AV_LOG_FATAL 8 + +/** + * Something went wrong and cannot losslessly be recovered. + * However, not all future data is affected. + */ +#define AV_LOG_ERROR 16 + +/** + * Something somehow does not look correct. This may or may not + * lead to problems. An example would be the use of '-vstrict -2'. + */ +#define AV_LOG_WARNING 24 + +/** + * Standard information. + */ +#define AV_LOG_INFO 32 + +/** + * Detailed information. + */ +#define AV_LOG_VERBOSE 40 + +/** + * Stuff which is only useful for libav* developers. + */ +#define AV_LOG_DEBUG 48 + +/** + * Extremely verbose debugging, useful for libav* development. + */ +#define AV_LOG_TRACE 56 + +#define AV_LOG_MAX_OFFSET (AV_LOG_TRACE - AV_LOG_QUIET) + +/** + * @} + */ + +/** + * Sets additional colors for extended debugging sessions. + * @code + av_log(ctx, AV_LOG_DEBUG|AV_LOG_C(134), "Message in purple\n"); + @endcode + * Requires 256color terminal support. Uses outside debugging is not + * recommended. + */ +#define AV_LOG_C(x) ((x) << 8) + +/** + * Send the specified message to the log if the level is less than or equal + * to the current av_log_level. By default, all logging messages are sent to + * stderr. This behavior can be altered by setting a different logging callback + * function. + * @see av_log_set_callback + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct or NULL if general log. + * @param level The importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant". + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + */ +void av_log(void *avcl, int level, const char *fmt, ...) av_printf_format(3, 4); + +/** + * Send the specified message to the log once with the initial_level and then with + * the subsequent_level. By default, all logging messages are sent to + * stderr. This behavior can be altered by setting a different logging callback + * function. + * @see av_log + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct or NULL if general log. + * @param initial_level importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant" for the first occurance. + * @param subsequent_level importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant" after the first occurance. + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + * @param state a variable to keep trak of if a message has already been printed + * this must be initialized to 0 before the first use. The same state + * must not be accessed by 2 Threads simultaneously. + */ +void av_log_once(void* avcl, int initial_level, int subsequent_level, int *state, const char *fmt, ...) av_printf_format(5, 6); + + +/** + * Send the specified message to the log if the level is less than or equal + * to the current av_log_level. By default, all logging messages are sent to + * stderr. This behavior can be altered by setting a different logging callback + * function. + * @see av_log_set_callback + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant". + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + * @param vl The arguments referenced by the format string. + */ +void av_vlog(void *avcl, int level, const char *fmt, va_list vl); + +/** + * Get the current log level + * + * @see lavu_log_constants + * + * @return Current log level + */ +int av_log_get_level(void); + +/** + * Set the log level + * + * @see lavu_log_constants + * + * @param level Logging level + */ +void av_log_set_level(int level); + +/** + * Set the logging callback + * + * @note The callback must be thread safe, even if the application does not use + * threads itself as some codecs are multithreaded. + * + * @see av_log_default_callback + * + * @param callback A logging function with a compatible signature. + */ +void av_log_set_callback(void (*callback)(void*, int, const char*, va_list)); + +/** + * Default logging callback + * + * It prints the message to stderr, optionally colorizing it. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant". + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + * @param vl The arguments referenced by the format string. + */ +void av_log_default_callback(void *avcl, int level, const char *fmt, + va_list vl); + +/** + * Return the context name + * + * @param ctx The AVClass context + * + * @return The AVClass class_name + */ +const char* av_default_item_name(void* ctx); +AVClassCategory av_default_get_category(void *ptr); + +/** + * Format a line of log the same way as the default callback. + * @param line buffer to receive the formatted line + * @param line_size size of the buffer + * @param print_prefix used to store whether the prefix must be printed; + * must point to a persistent integer initially set to 1 + */ +void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl, + char *line, int line_size, int *print_prefix); + +/** + * Format a line of log the same way as the default callback. + * @param line buffer to receive the formatted line; + * may be NULL if line_size is 0 + * @param line_size size of the buffer; at most line_size-1 characters will + * be written to the buffer, plus one null terminator + * @param print_prefix used to store whether the prefix must be printed; + * must point to a persistent integer initially set to 1 + * @return Returns a negative value if an error occurred, otherwise returns + * the number of characters that would have been written for a + * sufficiently large buffer, not including the terminating null + * character. If the return value is not less than line_size, it means + * that the log message was truncated to fit the buffer. + */ +int av_log_format_line2(void *ptr, int level, const char *fmt, va_list vl, + char *line, int line_size, int *print_prefix); + +/** + * Skip repeated messages, this requires the user app to use av_log() instead of + * (f)printf as the 2 would otherwise interfere and lead to + * "Last message repeated x times" messages below (f)printf messages with some + * bad luck. + * Also to receive the last, "last repeated" line if any, the user app must + * call av_log(NULL, AV_LOG_QUIET, "%s", ""); at the end + */ +#define AV_LOG_SKIP_REPEATED 1 + +/** + * Include the log severity in messages originating from codecs. + * + * Results in messages such as: + * [rawvideo @ 0xDEADBEEF] [error] encode did not produce valid pts + */ +#define AV_LOG_PRINT_LEVEL 2 + +void av_log_set_flags(int arg); +int av_log_get_flags(void); + +/** + * @} + */ + +#endif /* AVUTIL_LOG_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/lzo.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/lzo.h new file mode 100644 index 00000000..c0340399 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/lzo.h @@ -0,0 +1,66 @@ +/* + * LZO 1x decompression + * copyright (c) 2006 Reimar Doeffinger + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_LZO_H +#define AVUTIL_LZO_H + +/** + * @defgroup lavu_lzo LZO + * @ingroup lavu_crypto + * + * @{ + */ + +#include + +/** @name Error flags returned by av_lzo1x_decode + * @{ */ +/// end of the input buffer reached before decoding finished +#define AV_LZO_INPUT_DEPLETED 1 +/// decoded data did not fit into output buffer +#define AV_LZO_OUTPUT_FULL 2 +/// a reference to previously decoded data was wrong +#define AV_LZO_INVALID_BACKPTR 4 +/// a non-specific error in the compressed bitstream +#define AV_LZO_ERROR 8 +/** @} */ + +#define AV_LZO_INPUT_PADDING 8 +#define AV_LZO_OUTPUT_PADDING 12 + +/** + * @brief Decodes LZO 1x compressed data. + * @param out output buffer + * @param outlen size of output buffer, number of bytes left are returned here + * @param in input buffer + * @param inlen size of input buffer, number of bytes left are returned here + * @return 0 on success, otherwise a combination of the error flags above + * + * Make sure all buffers are appropriately padded, in must provide + * AV_LZO_INPUT_PADDING, out must provide AV_LZO_OUTPUT_PADDING additional bytes. + */ +int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen); + +/** + * @} + */ + +#endif /* AVUTIL_LZO_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/macros.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/macros.h new file mode 100644 index 00000000..2a7567c3 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/macros.h @@ -0,0 +1,80 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu + * Utility Preprocessor macros + */ + +#ifndef AVUTIL_MACROS_H +#define AVUTIL_MACROS_H + +#include "libavutil/avconfig.h" + +#if AV_HAVE_BIGENDIAN +# define AV_NE(be, le) (be) +#else +# define AV_NE(be, le) (le) +#endif + +/** + * Comparator. + * For two numerical expressions x and y, gives 1 if x > y, -1 if x < y, and 0 + * if x == y. This is useful for instance in a qsort comparator callback. + * Furthermore, compilers are able to optimize this to branchless code, and + * there is no risk of overflow with signed types. + * As with many macros, this evaluates its argument multiple times, it thus + * must not have a side-effect. + */ +#define FFDIFFSIGN(x,y) (((x)>(y)) - ((x)<(y))) + +#define FFMAX(a,b) ((a) > (b) ? (a) : (b)) +#define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c) +#define FFMIN(a,b) ((a) > (b) ? (b) : (a)) +#define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c) + +#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0) +#define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0])) + +#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24)) +#define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24)) + +/** + * @addtogroup preproc_misc Preprocessor String Macros + * + * String manipulation macros + * + * @{ + */ + +#define AV_STRINGIFY(s) AV_TOSTRING(s) +#define AV_TOSTRING(s) #s + +#define AV_GLUE(a, b) a ## b +#define AV_JOIN(a, b) AV_GLUE(a, b) + +/** + * @} + */ + +#define AV_PRAGMA(s) _Pragma(#s) + +#define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1)) + +#endif /* AVUTIL_MACROS_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/mastering_display_metadata.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/mastering_display_metadata.h new file mode 100644 index 00000000..52fcef9e --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/mastering_display_metadata.h @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2016 Neil Birkbeck + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_MASTERING_DISPLAY_METADATA_H +#define AVUTIL_MASTERING_DISPLAY_METADATA_H + +#include "frame.h" +#include "rational.h" + + +/** + * Mastering display metadata capable of representing the color volume of + * the display used to master the content (SMPTE 2086:2014). + * + * To be used as payload of a AVFrameSideData or AVPacketSideData with the + * appropriate type. + * + * @note The struct should be allocated with av_mastering_display_metadata_alloc() + * and its size is not a part of the public ABI. + */ +typedef struct AVMasteringDisplayMetadata { + /** + * CIE 1931 xy chromaticity coords of color primaries (r, g, b order). + */ + AVRational display_primaries[3][2]; + + /** + * CIE 1931 xy chromaticity coords of white point. + */ + AVRational white_point[2]; + + /** + * Min luminance of mastering display (cd/m^2). + */ + AVRational min_luminance; + + /** + * Max luminance of mastering display (cd/m^2). + */ + AVRational max_luminance; + + /** + * Flag indicating whether the display primaries (and white point) are set. + */ + int has_primaries; + + /** + * Flag indicating whether the luminance (min_ and max_) have been set. + */ + int has_luminance; + +} AVMasteringDisplayMetadata; + +/** + * Allocate an AVMasteringDisplayMetadata structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVMasteringDisplayMetadata filled with default values or NULL + * on failure. + */ +AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc(void); + +/** + * Allocate an AVMasteringDisplayMetadata structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVMasteringDisplayMetadata filled with default values or NULL + * on failure. + */ +AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc_size(size_t *size); + +/** + * Allocate a complete AVMasteringDisplayMetadata and add it to the frame. + * + * @param frame The frame which side data is added to. + * + * @return The AVMasteringDisplayMetadata structure to be filled by caller. + */ +AVMasteringDisplayMetadata *av_mastering_display_metadata_create_side_data(AVFrame *frame); + +/** + * Content light level needed by to transmit HDR over HDMI (CTA-861.3). + * + * To be used as payload of a AVFrameSideData or AVPacketSideData with the + * appropriate type. + * + * @note The struct should be allocated with av_content_light_metadata_alloc() + * and its size is not a part of the public ABI. + */ +typedef struct AVContentLightMetadata { + /** + * Max content light level (cd/m^2). + */ + unsigned MaxCLL; + + /** + * Max average light level per frame (cd/m^2). + */ + unsigned MaxFALL; +} AVContentLightMetadata; + +/** + * Allocate an AVContentLightMetadata structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVContentLightMetadata filled with default values or NULL + * on failure. + */ +AVContentLightMetadata *av_content_light_metadata_alloc(size_t *size); + +/** + * Allocate a complete AVContentLightMetadata and add it to the frame. + * + * @param frame The frame which side data is added to. + * + * @return The AVContentLightMetadata structure to be filled by caller. + */ +AVContentLightMetadata *av_content_light_metadata_create_side_data(AVFrame *frame); + +#endif /* AVUTIL_MASTERING_DISPLAY_METADATA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/mathematics.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/mathematics.h new file mode 100644 index 00000000..e213bab6 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/mathematics.h @@ -0,0 +1,300 @@ +/* + * copyright (c) 2005-2012 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @addtogroup lavu_math + * Mathematical utilities for working with timestamp and time base. + */ + +#ifndef AVUTIL_MATHEMATICS_H +#define AVUTIL_MATHEMATICS_H + +#include +#include +#include "attributes.h" +#include "rational.h" +#include "intfloat.h" + +#ifndef M_E +#define M_E 2.7182818284590452354 /* e */ +#endif +#ifndef M_Ef +#define M_Ef 2.7182818284590452354f /* e */ +#endif +#ifndef M_LN2 +#define M_LN2 0.69314718055994530942 /* log_e 2 */ +#endif +#ifndef M_LN2f +#define M_LN2f 0.69314718055994530942f /* log_e 2 */ +#endif +#ifndef M_LN10 +#define M_LN10 2.30258509299404568402 /* log_e 10 */ +#endif +#ifndef M_LN10f +#define M_LN10f 2.30258509299404568402f /* log_e 10 */ +#endif +#ifndef M_LOG2_10 +#define M_LOG2_10 3.32192809488736234787 /* log_2 10 */ +#endif +#ifndef M_LOG2_10f +#define M_LOG2_10f 3.32192809488736234787f /* log_2 10 */ +#endif +#ifndef M_PHI +#define M_PHI 1.61803398874989484820 /* phi / golden ratio */ +#endif +#ifndef M_PHIf +#define M_PHIf 1.61803398874989484820f /* phi / golden ratio */ +#endif +#ifndef M_PI +#define M_PI 3.14159265358979323846 /* pi */ +#endif +#ifndef M_PIf +#define M_PIf 3.14159265358979323846f /* pi */ +#endif +#ifndef M_PI_2 +#define M_PI_2 1.57079632679489661923 /* pi/2 */ +#endif +#ifndef M_PI_2f +#define M_PI_2f 1.57079632679489661923f /* pi/2 */ +#endif +#ifndef M_PI_4 +#define M_PI_4 0.78539816339744830962 /* pi/4 */ +#endif +#ifndef M_PI_4f +#define M_PI_4f 0.78539816339744830962f /* pi/4 */ +#endif +#ifndef M_1_PI +#define M_1_PI 0.31830988618379067154 /* 1/pi */ +#endif +#ifndef M_1_PIf +#define M_1_PIf 0.31830988618379067154f /* 1/pi */ +#endif +#ifndef M_2_PI +#define M_2_PI 0.63661977236758134308 /* 2/pi */ +#endif +#ifndef M_2_PIf +#define M_2_PIf 0.63661977236758134308f /* 2/pi */ +#endif +#ifndef M_2_SQRTPI +#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ +#endif +#ifndef M_2_SQRTPIf +#define M_2_SQRTPIf 1.12837916709551257390f /* 2/sqrt(pi) */ +#endif +#ifndef M_SQRT1_2 +#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ +#endif +#ifndef M_SQRT1_2f +#define M_SQRT1_2f 0.70710678118654752440f /* 1/sqrt(2) */ +#endif +#ifndef M_SQRT2 +#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ +#endif +#ifndef M_SQRT2f +#define M_SQRT2f 1.41421356237309504880f /* sqrt(2) */ +#endif +#ifndef NAN +#define NAN av_int2float(0x7fc00000) +#endif +#ifndef INFINITY +#define INFINITY av_int2float(0x7f800000) +#endif + +/** + * @addtogroup lavu_math + * + * @{ + */ + +/** + * Rounding methods. + */ +enum AVRounding { + AV_ROUND_ZERO = 0, ///< Round toward zero. + AV_ROUND_INF = 1, ///< Round away from zero. + AV_ROUND_DOWN = 2, ///< Round toward -infinity. + AV_ROUND_UP = 3, ///< Round toward +infinity. + AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero. + /** + * Flag telling rescaling functions to pass `INT64_MIN`/`MAX` through + * unchanged, avoiding special cases for #AV_NOPTS_VALUE. + * + * Unlike other values of the enumeration AVRounding, this value is a + * bitmask that must be used in conjunction with another value of the + * enumeration through a bitwise OR, in order to set behavior for normal + * cases. + * + * @code{.c} + * av_rescale_rnd(3, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX); + * // Rescaling 3: + * // Calculating 3 * 1 / 2 + * // 3 / 2 is rounded up to 2 + * // => 2 + * + * av_rescale_rnd(AV_NOPTS_VALUE, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX); + * // Rescaling AV_NOPTS_VALUE: + * // AV_NOPTS_VALUE == INT64_MIN + * // AV_NOPTS_VALUE is passed through + * // => AV_NOPTS_VALUE + * @endcode + */ + AV_ROUND_PASS_MINMAX = 8192, +}; + +/** + * Compute the greatest common divisor of two integer operands. + * + * @param a Operand + * @param b Operand + * @return GCD of a and b up to sign; if a >= 0 and b >= 0, return value is >= 0; + * if a == 0 and b == 0, returns 0. + */ +int64_t av_const av_gcd(int64_t a, int64_t b); + +/** + * Rescale a 64-bit integer with rounding to nearest. + * + * The operation is mathematically equivalent to `a * b / c`, but writing that + * directly can overflow. + * + * This function is equivalent to av_rescale_rnd() with #AV_ROUND_NEAR_INF. + * + * @see av_rescale_rnd(), av_rescale_q(), av_rescale_q_rnd() + */ +int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const; + +/** + * Rescale a 64-bit integer with specified rounding. + * + * The operation is mathematically equivalent to `a * b / c`, but writing that + * directly can overflow, and does not support different rounding methods. + * If the result is not representable then INT64_MIN is returned. + * + * @see av_rescale(), av_rescale_q(), av_rescale_q_rnd() + */ +int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd) av_const; + +/** + * Rescale a 64-bit integer by 2 rational numbers. + * + * The operation is mathematically equivalent to `a * bq / cq`. + * + * This function is equivalent to av_rescale_q_rnd() with #AV_ROUND_NEAR_INF. + * + * @see av_rescale(), av_rescale_rnd(), av_rescale_q_rnd() + */ +int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const; + +/** + * Rescale a 64-bit integer by 2 rational numbers with specified rounding. + * + * The operation is mathematically equivalent to `a * bq / cq`. + * + * @see av_rescale(), av_rescale_rnd(), av_rescale_q() + */ +int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq, + enum AVRounding rnd) av_const; + +/** + * Compare two timestamps each in its own time base. + * + * @return One of the following values: + * - -1 if `ts_a` is before `ts_b` + * - 1 if `ts_a` is after `ts_b` + * - 0 if they represent the same position + * + * @warning + * The result of the function is undefined if one of the timestamps is outside + * the `int64_t` range when represented in the other's timebase. + */ +int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b); + +/** + * Compare the remainders of two integer operands divided by a common divisor. + * + * In other words, compare the least significant `log2(mod)` bits of integers + * `a` and `b`. + * + * @code{.c} + * av_compare_mod(0x11, 0x02, 0x10) < 0 // since 0x11 % 0x10 (0x1) < 0x02 % 0x10 (0x2) + * av_compare_mod(0x11, 0x02, 0x20) > 0 // since 0x11 % 0x20 (0x11) > 0x02 % 0x20 (0x02) + * @endcode + * + * @param a Operand + * @param b Operand + * @param mod Divisor; must be a power of 2 + * @return + * - a negative value if `a % mod < b % mod` + * - a positive value if `a % mod > b % mod` + * - zero if `a % mod == b % mod` + */ +int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod); + +/** + * Rescale a timestamp while preserving known durations. + * + * This function is designed to be called per audio packet to scale the input + * timestamp to a different time base. Compared to a simple av_rescale_q() + * call, this function is robust against possible inconsistent frame durations. + * + * The `last` parameter is a state variable that must be preserved for all + * subsequent calls for the same stream. For the first call, `*last` should be + * initialized to #AV_NOPTS_VALUE. + * + * @param[in] in_tb Input time base + * @param[in] in_ts Input timestamp + * @param[in] fs_tb Duration time base; typically this is finer-grained + * (greater) than `in_tb` and `out_tb` + * @param[in] duration Duration till the next call to this function (i.e. + * duration of the current packet/frame) + * @param[in,out] last Pointer to a timestamp expressed in terms of + * `fs_tb`, acting as a state variable + * @param[in] out_tb Output timebase + * @return Timestamp expressed in terms of `out_tb` + * + * @note In the context of this function, "duration" is in term of samples, not + * seconds. + */ +int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int duration, int64_t *last, AVRational out_tb); + +/** + * Add a value to a timestamp. + * + * This function guarantees that when the same value is repeatly added that + * no accumulation of rounding errors occurs. + * + * @param[in] ts Input timestamp + * @param[in] ts_tb Input timestamp time base + * @param[in] inc Value to be added + * @param[in] inc_tb Time base of `inc` + */ +int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc); + +/** + * 0th order modified bessel function of the first kind. + */ +double av_bessel_i0(double x); + +/** + * @} + */ + +#endif /* AVUTIL_MATHEMATICS_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/md5.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/md5.h new file mode 100644 index 00000000..fc2eabdb --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/md5.h @@ -0,0 +1,89 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_md5 + * Public header for MD5 hash function implementation. + */ + +#ifndef AVUTIL_MD5_H +#define AVUTIL_MD5_H + +#include +#include + +#include "attributes.h" + +/** + * @defgroup lavu_md5 MD5 + * @ingroup lavu_hash + * MD5 hash function implementation. + * + * @{ + */ + +extern const int av_md5_size; + +struct AVMD5; + +/** + * Allocate an AVMD5 context. + */ +struct AVMD5 *av_md5_alloc(void); + +/** + * Initialize MD5 hashing. + * + * @param ctx pointer to the function context (of size av_md5_size) + */ +void av_md5_init(struct AVMD5 *ctx); + +/** + * Update hash value. + * + * @param ctx hash function context + * @param src input data to update hash with + * @param len input data length + */ +void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param ctx hash function context + * @param dst buffer where output digest value is stored + */ +void av_md5_final(struct AVMD5 *ctx, uint8_t *dst); + +/** + * Hash an array of data. + * + * @param dst The output buffer to write the digest into + * @param src The data to hash + * @param len The length of the data, in bytes + */ +void av_md5_sum(uint8_t *dst, const uint8_t *src, size_t len); + +/** + * @} + */ + +#endif /* AVUTIL_MD5_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/mem.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/mem.h new file mode 100644 index 00000000..ab7648ac --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/mem.h @@ -0,0 +1,607 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_mem + * Memory handling functions + */ + +#ifndef AVUTIL_MEM_H +#define AVUTIL_MEM_H + +#include +#include + +#include "attributes.h" + +/** + * @addtogroup lavu_mem + * Utilities for manipulating memory. + * + * FFmpeg has several applications of memory that are not required of a typical + * program. For example, the computing-heavy components like video decoding and + * encoding can be sped up significantly through the use of aligned memory. + * + * However, for each of FFmpeg's applications of memory, there might not be a + * recognized or standardized API for that specific use. Memory alignment, for + * instance, varies wildly depending on operating systems, architectures, and + * compilers. Hence, this component of @ref libavutil is created to make + * dealing with memory consistently possible on all platforms. + * + * @{ + */ + +/** + * @defgroup lavu_mem_attrs Function Attributes + * Function attributes applicable to memory handling functions. + * + * These function attributes can help compilers emit more useful warnings, or + * generate better code. + * @{ + */ + +/** + * @def av_malloc_attrib + * Function attribute denoting a malloc-like function. + * + * @see Function attribute `malloc` in GCC's documentation + */ + +#if AV_GCC_VERSION_AT_LEAST(3,1) + #define av_malloc_attrib __attribute__((__malloc__)) +#else + #define av_malloc_attrib +#endif + +/** + * @def av_alloc_size(...) + * Function attribute used on a function that allocates memory, whose size is + * given by the specified parameter(s). + * + * @code{.c} + * void *av_malloc(size_t size) av_alloc_size(1); + * void *av_calloc(size_t nmemb, size_t size) av_alloc_size(1, 2); + * @endcode + * + * @param ... One or two parameter indexes, separated by a comma + * + * @see Function attribute `alloc_size` in GCC's documentation + */ + +#if AV_GCC_VERSION_AT_LEAST(4,3) + #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__))) +#else + #define av_alloc_size(...) +#endif + +/** + * @} + */ + +/** + * @defgroup lavu_mem_funcs Heap Management + * Functions responsible for allocating, freeing, and copying memory. + * + * All memory allocation functions have a built-in upper limit of `INT_MAX` + * bytes. This may be changed with av_max_alloc(), although exercise extreme + * caution when doing so. + * + * @{ + */ + +/** + * Allocate a memory block with alignment suitable for all memory accesses + * (including vectors if available on the CPU). + * + * @param size Size in bytes for the memory block to be allocated + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * @see av_mallocz() + */ +void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1); + +/** + * Allocate a memory block with alignment suitable for all memory accesses + * (including vectors if available on the CPU) and zero all the bytes of the + * block. + * + * @param size Size in bytes for the memory block to be allocated + * @return Pointer to the allocated block, or `NULL` if it cannot be allocated + * @see av_malloc() + */ +void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1); + +/** + * Allocate a memory block for an array with av_malloc(). + * + * The allocated memory will have size `size * nmemb` bytes. + * + * @param nmemb Number of element + * @param size Size of a single element + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * @see av_malloc() + */ +av_alloc_size(1, 2) void *av_malloc_array(size_t nmemb, size_t size); + +/** + * Allocate a memory block for an array with av_mallocz(). + * + * The allocated memory will have size `size * nmemb` bytes. + * + * @param nmemb Number of elements + * @param size Size of the single element + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * + * @see av_mallocz() + * @see av_malloc_array() + */ +void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib av_alloc_size(1, 2); + +/** + * Allocate, reallocate, or free a block of memory. + * + * If `ptr` is `NULL` and `size` > 0, allocate a new block. Otherwise, expand or + * shrink that block of memory according to `size`. + * + * @param ptr Pointer to a memory block already allocated with + * av_realloc() or `NULL` + * @param size Size in bytes of the memory block to be allocated or + * reallocated + * + * @return Pointer to a newly-reallocated block or `NULL` if the block + * cannot be reallocated + * + * @warning Unlike av_malloc(), the returned pointer is not guaranteed to be + * correctly aligned. The returned pointer must be freed after even + * if size is zero. + * @see av_fast_realloc() + * @see av_reallocp() + */ +void *av_realloc(void *ptr, size_t size) av_alloc_size(2); + +/** + * Allocate, reallocate, or free a block of memory through a pointer to a + * pointer. + * + * If `*ptr` is `NULL` and `size` > 0, allocate a new block. If `size` is + * zero, free the memory block pointed to by `*ptr`. Otherwise, expand or + * shrink that block of memory according to `size`. + * + * @param[in,out] ptr Pointer to a pointer to a memory block already allocated + * with av_realloc(), or a pointer to `NULL`. The pointer + * is updated on success, or freed on failure. + * @param[in] size Size in bytes for the memory block to be allocated or + * reallocated + * + * @return Zero on success, an AVERROR error code on failure + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. + */ +av_warn_unused_result +int av_reallocp(void *ptr, size_t size); + +/** + * Allocate, reallocate, or free a block of memory. + * + * This function does the same thing as av_realloc(), except: + * - It takes two size arguments and allocates `nelem * elsize` bytes, + * after checking the result of the multiplication for integer overflow. + * - It frees the input block in case of failure, thus avoiding the memory + * leak with the classic + * @code{.c} + * buf = realloc(buf); + * if (!buf) + * return -1; + * @endcode + * pattern. + */ +void *av_realloc_f(void *ptr, size_t nelem, size_t elsize); + +/** + * Allocate, reallocate, or free an array. + * + * If `ptr` is `NULL` and `nmemb` > 0, allocate a new block. + * + * @param ptr Pointer to a memory block already allocated with + * av_realloc() or `NULL` + * @param nmemb Number of elements in the array + * @param size Size of the single element of the array + * + * @return Pointer to a newly-reallocated block or NULL if the block + * cannot be reallocated + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. The returned pointer must be freed after even if + * nmemb is zero. + * @see av_reallocp_array() + */ +av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size); + +/** + * Allocate, reallocate an array through a pointer to a pointer. + * + * If `*ptr` is `NULL` and `nmemb` > 0, allocate a new block. + * + * @param[in,out] ptr Pointer to a pointer to a memory block already + * allocated with av_realloc(), or a pointer to `NULL`. + * The pointer is updated on success, or freed on failure. + * @param[in] nmemb Number of elements + * @param[in] size Size of the single element + * + * @return Zero on success, an AVERROR error code on failure + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. *ptr must be freed after even if nmemb is zero. + */ +int av_reallocp_array(void *ptr, size_t nmemb, size_t size); + +/** + * Reallocate the given buffer if it is not large enough, otherwise do nothing. + * + * If the given buffer is `NULL`, then a new uninitialized buffer is allocated. + * + * If the given buffer is not large enough, and reallocation fails, `NULL` is + * returned and `*size` is set to 0, but the original buffer is not changed or + * freed. + * + * A typical use pattern follows: + * + * @code{.c} + * uint8_t *buf = ...; + * uint8_t *new_buf = av_fast_realloc(buf, ¤t_size, size_needed); + * if (!new_buf) { + * // Allocation failed; clean up original buffer + * av_freep(&buf); + * return AVERROR(ENOMEM); + * } + * @endcode + * + * @param[in,out] ptr Already allocated buffer, or `NULL` + * @param[in,out] size Pointer to the size of buffer `ptr`. `*size` is + * updated to the new allocated size, in particular 0 + * in case of failure. + * @param[in] min_size Desired minimal size of buffer `ptr` + * @return `ptr` if the buffer is large enough, a pointer to newly reallocated + * buffer if the buffer was not large enough, or `NULL` in case of + * error + * @see av_realloc() + * @see av_fast_malloc() + */ +void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size); + +/** + * Allocate a buffer, reusing the given one if large enough. + * + * Contrary to av_fast_realloc(), the current buffer contents might not be + * preserved and on error the old buffer is freed, thus no special handling to + * avoid memleaks is necessary. + * + * `*ptr` is allowed to be `NULL`, in which case allocation always happens if + * `size_needed` is greater than 0. + * + * @code{.c} + * uint8_t *buf = ...; + * av_fast_malloc(&buf, ¤t_size, size_needed); + * if (!buf) { + * // Allocation failed; buf already freed + * return AVERROR(ENOMEM); + * } + * @endcode + * + * @param[in,out] ptr Pointer to pointer to an already allocated buffer. + * `*ptr` will be overwritten with pointer to new + * buffer on success or `NULL` on failure + * @param[in,out] size Pointer to the size of buffer `*ptr`. `*size` is + * updated to the new allocated size, in particular 0 + * in case of failure. + * @param[in] min_size Desired minimal size of buffer `*ptr` + * @see av_realloc() + * @see av_fast_mallocz() + */ +void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size); + +/** + * Allocate and clear a buffer, reusing the given one if large enough. + * + * Like av_fast_malloc(), but all newly allocated space is initially cleared. + * Reused buffer is not cleared. + * + * `*ptr` is allowed to be `NULL`, in which case allocation always happens if + * `size_needed` is greater than 0. + * + * @param[in,out] ptr Pointer to pointer to an already allocated buffer. + * `*ptr` will be overwritten with pointer to new + * buffer on success or `NULL` on failure + * @param[in,out] size Pointer to the size of buffer `*ptr`. `*size` is + * updated to the new allocated size, in particular 0 + * in case of failure. + * @param[in] min_size Desired minimal size of buffer `*ptr` + * @see av_fast_malloc() + */ +void av_fast_mallocz(void *ptr, unsigned int *size, size_t min_size); + +/** + * Free a memory block which has been allocated with a function of av_malloc() + * or av_realloc() family. + * + * @param ptr Pointer to the memory block which should be freed. + * + * @note `ptr = NULL` is explicitly allowed. + * @note It is recommended that you use av_freep() instead, to prevent leaving + * behind dangling pointers. + * @see av_freep() + */ +void av_free(void *ptr); + +/** + * Free a memory block which has been allocated with a function of av_malloc() + * or av_realloc() family, and set the pointer pointing to it to `NULL`. + * + * @code{.c} + * uint8_t *buf = av_malloc(16); + * av_free(buf); + * // buf now contains a dangling pointer to freed memory, and accidental + * // dereference of buf will result in a use-after-free, which may be a + * // security risk. + * + * uint8_t *buf = av_malloc(16); + * av_freep(&buf); + * // buf is now NULL, and accidental dereference will only result in a + * // NULL-pointer dereference. + * @endcode + * + * @param ptr Pointer to the pointer to the memory block which should be freed + * @note `*ptr = NULL` is safe and leads to no action. + * @see av_free() + */ +void av_freep(void *ptr); + +/** + * Duplicate a string. + * + * @param s String to be duplicated + * @return Pointer to a newly-allocated string containing a + * copy of `s` or `NULL` if the string cannot be allocated + * @see av_strndup() + */ +char *av_strdup(const char *s) av_malloc_attrib; + +/** + * Duplicate a substring of a string. + * + * @param s String to be duplicated + * @param len Maximum length of the resulting string (not counting the + * terminating byte) + * @return Pointer to a newly-allocated string containing a + * substring of `s` or `NULL` if the string cannot be allocated + */ +char *av_strndup(const char *s, size_t len) av_malloc_attrib; + +/** + * Duplicate a buffer with av_malloc(). + * + * @param p Buffer to be duplicated + * @param size Size in bytes of the buffer copied + * @return Pointer to a newly allocated buffer containing a + * copy of `p` or `NULL` if the buffer cannot be allocated + */ +void *av_memdup(const void *p, size_t size); + +/** + * Overlapping memcpy() implementation. + * + * @param dst Destination buffer + * @param back Number of bytes back to start copying (i.e. the initial size of + * the overlapping window); must be > 0 + * @param cnt Number of bytes to copy; must be >= 0 + * + * @note `cnt > back` is valid, this will copy the bytes we just copied, + * thus creating a repeating pattern with a period length of `back`. + */ +void av_memcpy_backptr(uint8_t *dst, int back, int cnt); + +/** + * @} + */ + +/** + * @defgroup lavu_mem_dynarray Dynamic Array + * + * Utilities to make an array grow when needed. + * + * Sometimes, the programmer would want to have an array that can grow when + * needed. The libavutil dynamic array utilities fill that need. + * + * libavutil supports two systems of appending elements onto a dynamically + * allocated array, the first one storing the pointer to the value in the + * array, and the second storing the value directly. In both systems, the + * caller is responsible for maintaining a variable containing the length of + * the array, as well as freeing of the array after use. + * + * The first system stores pointers to values in a block of dynamically + * allocated memory. Since only pointers are stored, the function does not need + * to know the size of the type. Both av_dynarray_add() and + * av_dynarray_add_nofree() implement this system. + * + * @code + * type **array = NULL; //< an array of pointers to values + * int nb = 0; //< a variable to keep track of the length of the array + * + * type to_be_added = ...; + * type to_be_added2 = ...; + * + * av_dynarray_add(&array, &nb, &to_be_added); + * if (nb == 0) + * return AVERROR(ENOMEM); + * + * av_dynarray_add(&array, &nb, &to_be_added2); + * if (nb == 0) + * return AVERROR(ENOMEM); + * + * // Now: + * // nb == 2 + * // &to_be_added == array[0] + * // &to_be_added2 == array[1] + * + * av_freep(&array); + * @endcode + * + * The second system stores the value directly in a block of memory. As a + * result, the function has to know the size of the type. av_dynarray2_add() + * implements this mechanism. + * + * @code + * type *array = NULL; //< an array of values + * int nb = 0; //< a variable to keep track of the length of the array + * + * type to_be_added = ...; + * type to_be_added2 = ...; + * + * type *addr = av_dynarray2_add((void **)&array, &nb, sizeof(*array), NULL); + * if (!addr) + * return AVERROR(ENOMEM); + * memcpy(addr, &to_be_added, sizeof(to_be_added)); + * + * // Shortcut of the above. + * type *addr = av_dynarray2_add((void **)&array, &nb, sizeof(*array), + * (const void *)&to_be_added2); + * if (!addr) + * return AVERROR(ENOMEM); + * + * // Now: + * // nb == 2 + * // to_be_added == array[0] + * // to_be_added2 == array[1] + * + * av_freep(&array); + * @endcode + * + * @{ + */ + +/** + * Add the pointer to an element to a dynamic array. + * + * The array to grow is supposed to be an array of pointers to + * structures, and the element to add must be a pointer to an already + * allocated structure. + * + * The array is reallocated when its size reaches powers of 2. + * Therefore, the amortized cost of adding an element is constant. + * + * In case of success, the pointer to the array is updated in order to + * point to the new grown array, and the number pointed to by `nb_ptr` + * is incremented. + * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and + * `*nb_ptr` is set to 0. + * + * @param[in,out] tab_ptr Pointer to the array to grow + * @param[in,out] nb_ptr Pointer to the number of elements in the array + * @param[in] elem Element to add + * @see av_dynarray_add_nofree(), av_dynarray2_add() + */ +void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem); + +/** + * Add an element to a dynamic array. + * + * Function has the same functionality as av_dynarray_add(), + * but it doesn't free memory on fails. It returns error code + * instead and leave current buffer untouched. + * + * @return >=0 on success, negative otherwise + * @see av_dynarray_add(), av_dynarray2_add() + */ +av_warn_unused_result +int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem); + +/** + * Add an element of size `elem_size` to a dynamic array. + * + * The array is reallocated when its number of elements reaches powers of 2. + * Therefore, the amortized cost of adding an element is constant. + * + * In case of success, the pointer to the array is updated in order to + * point to the new grown array, and the number pointed to by `nb_ptr` + * is incremented. + * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and + * `*nb_ptr` is set to 0. + * + * @param[in,out] tab_ptr Pointer to the array to grow + * @param[in,out] nb_ptr Pointer to the number of elements in the array + * @param[in] elem_size Size in bytes of an element in the array + * @param[in] elem_data Pointer to the data of the element to add. If + * `NULL`, the space of the newly added element is + * allocated but left uninitialized. + * + * @return Pointer to the data of the element to copy in the newly allocated + * space + * @see av_dynarray_add(), av_dynarray_add_nofree() + */ +void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, size_t elem_size, + const uint8_t *elem_data); + +/** + * @} + */ + +/** + * @defgroup lavu_mem_misc Miscellaneous Functions + * + * Other functions related to memory allocation. + * + * @{ + */ + +/** + * Multiply two `size_t` values checking for overflow. + * + * @param[in] a Operand of multiplication + * @param[in] b Operand of multiplication + * @param[out] r Pointer to the result of the operation + * @return 0 on success, AVERROR(EINVAL) on overflow + */ +int av_size_mult(size_t a, size_t b, size_t *r); + +/** + * Set the maximum size that may be allocated in one block. + * + * The value specified with this function is effective for all libavutil's @ref + * lavu_mem_funcs "heap management functions." + * + * By default, the max value is defined as `INT_MAX`. + * + * @param max Value to be set as the new maximum size + * + * @warning Exercise extreme caution when using this function. Don't touch + * this if you do not understand the full consequence of doing so. + */ +void av_max_alloc(size_t max); + +/** + * @} + * @} + */ + +#endif /* AVUTIL_MEM_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/motion_vector.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/motion_vector.h new file mode 100644 index 00000000..ec295563 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/motion_vector.h @@ -0,0 +1,57 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_MOTION_VECTOR_H +#define AVUTIL_MOTION_VECTOR_H + +#include + +typedef struct AVMotionVector { + /** + * Where the current macroblock comes from; negative value when it comes + * from the past, positive value when it comes from the future. + * XXX: set exact relative ref frame reference instead of a +/- 1 "direction". + */ + int32_t source; + /** + * Width and height of the block. + */ + uint8_t w, h; + /** + * Absolute source position. Can be outside the frame area. + */ + int16_t src_x, src_y; + /** + * Absolute destination position. Can be outside the frame area. + */ + int16_t dst_x, dst_y; + /** + * Extra flag information. + * Currently unused. + */ + uint64_t flags; + /** + * Motion vector + * src_x = dst_x + motion_x / motion_scale + * src_y = dst_y + motion_y / motion_scale + */ + int32_t motion_x, motion_y; + uint16_t motion_scale; +} AVMotionVector; + +#endif /* AVUTIL_MOTION_VECTOR_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/murmur3.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/murmur3.h new file mode 100644 index 00000000..d90bc2fc --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/murmur3.h @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2013 Reimar Döffinger + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_murmur3 + * Public header for MurmurHash3 hash function implementation. + */ + +#ifndef AVUTIL_MURMUR3_H +#define AVUTIL_MURMUR3_H + +#include +#include + +/** + * @defgroup lavu_murmur3 Murmur3 + * @ingroup lavu_hash + * MurmurHash3 hash function implementation. + * + * MurmurHash3 is a non-cryptographic hash function, of which three + * incompatible versions were created by its inventor Austin Appleby: + * + * - 32-bit output + * - 128-bit output for 32-bit platforms + * - 128-bit output for 64-bit platforms + * + * FFmpeg only implements the last variant: 128-bit output designed for 64-bit + * platforms. Even though the hash function was designed for 64-bit platforms, + * the function in reality works on 32-bit systems too, only with reduced + * performance. + * + * @anchor lavu_murmur3_seedinfo + * By design, MurmurHash3 requires a seed to operate. In response to this, + * libavutil provides two functions for hash initiation, one that requires a + * seed (av_murmur3_init_seeded()) and one that uses a fixed arbitrary integer + * as the seed, and therefore does not (av_murmur3_init()). + * + * To make hashes comparable, you should provide the same seed for all calls to + * this hash function -- if you are supplying one yourself, that is. + * + * @{ + */ + +/** + * Allocate an AVMurMur3 hash context. + * + * @return Uninitialized hash context or `NULL` in case of error + */ +struct AVMurMur3 *av_murmur3_alloc(void); + +/** + * Initialize or reinitialize an AVMurMur3 hash context with a seed. + * + * @param[out] c Hash context + * @param[in] seed Random seed + * + * @see av_murmur3_init() + * @see @ref lavu_murmur3_seedinfo "Detailed description" on a discussion of + * seeds for MurmurHash3. + */ +void av_murmur3_init_seeded(struct AVMurMur3 *c, uint64_t seed); + +/** + * Initialize or reinitialize an AVMurMur3 hash context. + * + * Equivalent to av_murmur3_init_seeded() with a built-in seed. + * + * @param[out] c Hash context + * + * @see av_murmur3_init_seeded() + * @see @ref lavu_murmur3_seedinfo "Detailed description" on a discussion of + * seeds for MurmurHash3. + */ +void av_murmur3_init(struct AVMurMur3 *c); + +/** + * Update hash context with new data. + * + * @param[out] c Hash context + * @param[in] src Input data to update hash with + * @param[in] len Number of bytes to read from `src` + */ +void av_murmur3_update(struct AVMurMur3 *c, const uint8_t *src, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param[in,out] c Hash context + * @param[out] dst Buffer where output digest value is stored + */ +void av_murmur3_final(struct AVMurMur3 *c, uint8_t dst[16]); + +/** + * @} + */ + +#endif /* AVUTIL_MURMUR3_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/opt.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/opt.h new file mode 100644 index 00000000..be189f76 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/opt.h @@ -0,0 +1,1187 @@ +/* + * AVOptions + * copyright (c) 2005 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_OPT_H +#define AVUTIL_OPT_H + +/** + * @file + * AVOptions + */ + +#include "rational.h" +#include "avutil.h" +#include "channel_layout.h" +#include "dict.h" +#include "log.h" +#include "pixfmt.h" +#include "samplefmt.h" + +/** + * @defgroup avoptions AVOptions + * @ingroup lavu_data + * @{ + * AVOptions provide a generic system to declare options on arbitrary structs + * ("objects"). An option can have a help text, a type and a range of possible + * values. Options may then be enumerated, read and written to. + * + * There are two modes of access to members of AVOption and its child structs. + * One is called 'native access', and refers to access from the code that + * declares the AVOption in question. The other is 'foreign access', and refers + * to access from other code. + * + * Certain struct members in this header are documented as 'native access only' + * or similar - it means that only the code that declared the AVOption in + * question is allowed to access the field. This allows us to extend the + * semantics of those fields without breaking API compatibility. + * + * @section avoptions_scope Scope of AVOptions + * + * AVOptions is designed to support any set of multimedia configuration options + * that can be defined at compile-time. Although it is mainly used to expose + * FFmpeg options, you are welcome to adapt it to your own use case. + * + * No single approach can ever fully solve the problem of configuration, + * but please submit a patch if you believe you have found a problem + * that is best solved by extending AVOptions. + * + * @section avoptions_implement Implementing AVOptions + * This section describes how to add AVOptions capabilities to a struct. + * + * All AVOptions-related information is stored in an AVClass. Therefore + * the first member of the struct should be a pointer to an AVClass describing it. + * The option field of the AVClass must be set to a NULL-terminated static array + * of AVOptions. Each AVOption must have a non-empty name, a type, a default + * value and for number-type AVOptions also a range of allowed values. It must + * also declare an offset in bytes from the start of the struct, where the field + * associated with this AVOption is located. Other fields in the AVOption struct + * should also be set when applicable, but are not required. + * + * The following example illustrates an AVOptions-enabled struct: + * @code + * typedef struct test_struct { + * const AVClass *class; + * int int_opt; + * char *str_opt; + * uint8_t *bin_opt; + * int bin_len; + * } test_struct; + * + * static const AVOption test_options[] = { + * { "test_int", "This is a test option of int type.", offsetof(test_struct, int_opt), + * AV_OPT_TYPE_INT, { .i64 = -1 }, INT_MIN, INT_MAX }, + * { "test_str", "This is a test option of string type.", offsetof(test_struct, str_opt), + * AV_OPT_TYPE_STRING }, + * { "test_bin", "This is a test option of binary type.", offsetof(test_struct, bin_opt), + * AV_OPT_TYPE_BINARY }, + * { NULL }, + * }; + * + * static const AVClass test_class = { + * .class_name = "test class", + * .item_name = av_default_item_name, + * .option = test_options, + * .version = LIBAVUTIL_VERSION_INT, + * }; + * @endcode + * + * Next, when allocating your struct, you must ensure that the AVClass pointer + * is set to the correct value. Then, av_opt_set_defaults() can be called to + * initialize defaults. After that the struct is ready to be used with the + * AVOptions API. + * + * When cleaning up, you may use the av_opt_free() function to automatically + * free all the allocated string and binary options. + * + * Continuing with the above example: + * + * @code + * test_struct *alloc_test_struct(void) + * { + * test_struct *ret = av_mallocz(sizeof(*ret)); + * ret->class = &test_class; + * av_opt_set_defaults(ret); + * return ret; + * } + * void free_test_struct(test_struct **foo) + * { + * av_opt_free(*foo); + * av_freep(foo); + * } + * @endcode + * + * @subsection avoptions_implement_nesting Nesting + * It may happen that an AVOptions-enabled struct contains another + * AVOptions-enabled struct as a member (e.g. AVCodecContext in + * libavcodec exports generic options, while its priv_data field exports + * codec-specific options). In such a case, it is possible to set up the + * parent struct to export a child's options. To do that, simply + * implement AVClass.child_next() and AVClass.child_class_iterate() in the + * parent struct's AVClass. + * Assuming that the test_struct from above now also contains a + * child_struct field: + * + * @code + * typedef struct child_struct { + * AVClass *class; + * int flags_opt; + * } child_struct; + * static const AVOption child_opts[] = { + * { "test_flags", "This is a test option of flags type.", + * offsetof(child_struct, flags_opt), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT_MIN, INT_MAX }, + * { NULL }, + * }; + * static const AVClass child_class = { + * .class_name = "child class", + * .item_name = av_default_item_name, + * .option = child_opts, + * .version = LIBAVUTIL_VERSION_INT, + * }; + * + * void *child_next(void *obj, void *prev) + * { + * test_struct *t = obj; + * if (!prev && t->child_struct) + * return t->child_struct; + * return NULL + * } + * const AVClass child_class_iterate(void **iter) + * { + * const AVClass *c = *iter ? NULL : &child_class; + * *iter = (void*)(uintptr_t)c; + * return c; + * } + * @endcode + * Putting child_next() and child_class_iterate() as defined above into + * test_class will now make child_struct's options accessible through + * test_struct (again, proper setup as described above needs to be done on + * child_struct right after it is created). + * + * From the above example it might not be clear why both child_next() + * and child_class_iterate() are needed. The distinction is that child_next() + * iterates over actually existing objects, while child_class_iterate() + * iterates over all possible child classes. E.g. if an AVCodecContext + * was initialized to use a codec which has private options, then its + * child_next() will return AVCodecContext.priv_data and finish + * iterating. OTOH child_class_iterate() on AVCodecContext.av_class will + * iterate over all available codecs with private options. + * + * @subsection avoptions_implement_named_constants Named constants + * It is possible to create named constants for options. Simply set the unit + * field of the option the constants should apply to a string and + * create the constants themselves as options of type AV_OPT_TYPE_CONST + * with their unit field set to the same string. + * Their default_val field should contain the value of the named + * constant. + * For example, to add some named constants for the test_flags option + * above, put the following into the child_opts array: + * @code + * { "test_flags", "This is a test option of flags type.", + * offsetof(child_struct, flags_opt), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT_MIN, INT_MAX, "test_unit" }, + * { "flag1", "This is a flag with value 16", 0, AV_OPT_TYPE_CONST, { .i64 = 16 }, 0, 0, "test_unit" }, + * @endcode + * + * @section avoptions_use Using AVOptions + * This section deals with accessing options in an AVOptions-enabled struct. + * Such structs in FFmpeg are e.g. AVCodecContext in libavcodec or + * AVFormatContext in libavformat. + * + * @subsection avoptions_use_examine Examining AVOptions + * The basic functions for examining options are av_opt_next(), which iterates + * over all options defined for one object, and av_opt_find(), which searches + * for an option with the given name. + * + * The situation is more complicated with nesting. An AVOptions-enabled struct + * may have AVOptions-enabled children. Passing the AV_OPT_SEARCH_CHILDREN flag + * to av_opt_find() will make the function search children recursively. + * + * For enumerating there are basically two cases. The first is when you want to + * get all options that may potentially exist on the struct and its children + * (e.g. when constructing documentation). In that case you should call + * av_opt_child_class_iterate() recursively on the parent struct's AVClass. The + * second case is when you have an already initialized struct with all its + * children and you want to get all options that can be actually written or read + * from it. In that case you should call av_opt_child_next() recursively (and + * av_opt_next() on each result). + * + * @subsection avoptions_use_get_set Reading and writing AVOptions + * When setting options, you often have a string read directly from the + * user. In such a case, simply passing it to av_opt_set() is enough. For + * non-string type options, av_opt_set() will parse the string according to the + * option type. + * + * Similarly av_opt_get() will read any option type and convert it to a string + * which will be returned. Do not forget that the string is allocated, so you + * have to free it with av_free(). + * + * In some cases it may be more convenient to put all options into an + * AVDictionary and call av_opt_set_dict() on it. A specific case of this + * are the format/codec open functions in lavf/lavc which take a dictionary + * filled with option as a parameter. This makes it possible to set some options + * that cannot be set otherwise, since e.g. the input file format is not known + * before the file is actually opened. + */ + +/** + * An option type determines: + * - for native access, the underlying C type of the field that an AVOption + * refers to; + * - for foreign access, the semantics of accessing the option through this API, + * e.g. which av_opt_get_*() and av_opt_set_*() functions can be called, or + * what format will av_opt_get()/av_opt_set() expect/produce. + */ +enum AVOptionType{ + /** + * Underlying C type is unsigned int. + */ + AV_OPT_TYPE_FLAGS = 1, + /** + * Underlying C type is int. + */ + AV_OPT_TYPE_INT, + /** + * Underlying C type is int64_t. + */ + AV_OPT_TYPE_INT64, + /** + * Underlying C type is double. + */ + AV_OPT_TYPE_DOUBLE, + /** + * Underlying C type is float. + */ + AV_OPT_TYPE_FLOAT, + /** + * Underlying C type is a uint8_t* that is either NULL or points to a C + * string allocated with the av_malloc() family of functions. + */ + AV_OPT_TYPE_STRING, + /** + * Underlying C type is AVRational. + */ + AV_OPT_TYPE_RATIONAL, + /** + * Underlying C type is a uint8_t* that is either NULL or points to an array + * allocated with the av_malloc() family of functions. The pointer is + * immediately followed by an int containing the array length in bytes. + */ + AV_OPT_TYPE_BINARY, + /** + * Underlying C type is AVDictionary*. + */ + AV_OPT_TYPE_DICT, + /** + * Underlying C type is uint64_t. + */ + AV_OPT_TYPE_UINT64, + /** + * Special option type for declaring named constants. Does not correspond to + * an actual field in the object, offset must be 0. + */ + AV_OPT_TYPE_CONST, + /** + * Underlying C type is two consecutive integers. + */ + AV_OPT_TYPE_IMAGE_SIZE, + /** + * Underlying C type is enum AVPixelFormat. + */ + AV_OPT_TYPE_PIXEL_FMT, + /** + * Underlying C type is enum AVSampleFormat. + */ + AV_OPT_TYPE_SAMPLE_FMT, + /** + * Underlying C type is AVRational. + */ + AV_OPT_TYPE_VIDEO_RATE, + /** + * Underlying C type is int64_t. + */ + AV_OPT_TYPE_DURATION, + /** + * Underlying C type is uint8_t[4]. + */ + AV_OPT_TYPE_COLOR, + /** + * Underlying C type is int. + */ + AV_OPT_TYPE_BOOL, + /** + * Underlying C type is AVChannelLayout. + */ + AV_OPT_TYPE_CHLAYOUT, + /** + * Underlying C type is unsigned int. + */ + AV_OPT_TYPE_UINT, + + /** + * May be combined with another regular option type to declare an array + * option. + * + * For array options, @ref AVOption.offset should refer to a pointer + * corresponding to the option type. The pointer should be immediately + * followed by an unsigned int that will store the number of elements in the + * array. + */ + AV_OPT_TYPE_FLAG_ARRAY = (1 << 16), +}; + +/** + * A generic parameter which can be set by the user for muxing or encoding. + */ +#define AV_OPT_FLAG_ENCODING_PARAM (1 << 0) +/** + * A generic parameter which can be set by the user for demuxing or decoding. + */ +#define AV_OPT_FLAG_DECODING_PARAM (1 << 1) +#define AV_OPT_FLAG_AUDIO_PARAM (1 << 3) +#define AV_OPT_FLAG_VIDEO_PARAM (1 << 4) +#define AV_OPT_FLAG_SUBTITLE_PARAM (1 << 5) +/** + * The option is intended for exporting values to the caller. + */ +#define AV_OPT_FLAG_EXPORT (1 << 6) +/** + * The option may not be set through the AVOptions API, only read. + * This flag only makes sense when AV_OPT_FLAG_EXPORT is also set. + */ +#define AV_OPT_FLAG_READONLY (1 << 7) +/** + * A generic parameter which can be set by the user for bit stream filtering. + */ +#define AV_OPT_FLAG_BSF_PARAM (1 << 8) + +/** + * A generic parameter which can be set by the user at runtime. + */ +#define AV_OPT_FLAG_RUNTIME_PARAM (1 << 15) +/** + * A generic parameter which can be set by the user for filtering. + */ +#define AV_OPT_FLAG_FILTERING_PARAM (1 << 16) +/** + * Set if option is deprecated, users should refer to AVOption.help text for + * more information. + */ +#define AV_OPT_FLAG_DEPRECATED (1 << 17) +/** + * Set if option constants can also reside in child objects. + */ +#define AV_OPT_FLAG_CHILD_CONSTS (1 << 18) + +/** + * May be set as default_val for AV_OPT_TYPE_FLAG_ARRAY options. + */ +typedef struct AVOptionArrayDef { + /** + * Native access only. + * + * Default value of the option, as would be serialized by av_opt_get() (i.e. + * using the value of sep as the separator). + */ + const char *def; + + /** + * Minimum number of elements in the array. When this field is non-zero, def + * must be non-NULL and contain at least this number of elements. + */ + unsigned size_min; + /** + * Maximum number of elements in the array, 0 when unlimited. + */ + unsigned size_max; + + /** + * Separator between array elements in string representations of this + * option, used by av_opt_set() and av_opt_get(). It must be a printable + * ASCII character, excluding alphanumeric and the backslash. A comma is + * used when sep=0. + * + * The separator and the backslash must be backslash-escaped in order to + * appear in string representations of the option value. + */ + char sep; +} AVOptionArrayDef; + +/** + * AVOption + */ +typedef struct AVOption { + const char *name; + + /** + * short English help text + * @todo What about other languages? + */ + const char *help; + + /** + * Native access only. + * + * The offset relative to the context structure where the option + * value is stored. It should be 0 for named constants. + */ + int offset; + enum AVOptionType type; + + /** + * Native access only, except when documented otherwise. + * the default value for scalar options + */ + union { + int64_t i64; + double dbl; + const char *str; + /* TODO those are unused now */ + AVRational q; + + /** + * Used for AV_OPT_TYPE_FLAG_ARRAY options. May be NULL. + * + * Foreign access to some members allowed, as noted in AVOptionArrayDef + * documentation. + */ + const AVOptionArrayDef *arr; + } default_val; + double min; ///< minimum valid value for the option + double max; ///< maximum valid value for the option + + /** + * A combination of AV_OPT_FLAG_*. + */ + int flags; + + /** + * The logical unit to which the option belongs. Non-constant + * options and corresponding named constants share the same + * unit. May be NULL. + */ + const char *unit; +} AVOption; + +/** + * A single allowed range of values, or a single allowed value. + */ +typedef struct AVOptionRange { + const char *str; + /** + * Value range. + * For string ranges this represents the min/max length. + * For dimensions this represents the min/max pixel count or width/height in multi-component case. + */ + double value_min, value_max; + /** + * Value's component range. + * For string this represents the unicode range for chars, 0-127 limits to ASCII. + */ + double component_min, component_max; + /** + * Range flag. + * If set to 1 the struct encodes a range, if set to 0 a single value. + */ + int is_range; +} AVOptionRange; + +/** + * List of AVOptionRange structs. + */ +typedef struct AVOptionRanges { + /** + * Array of option ranges. + * + * Most of option types use just one component. + * Following describes multi-component option types: + * + * AV_OPT_TYPE_IMAGE_SIZE: + * component index 0: range of pixel count (width * height). + * component index 1: range of width. + * component index 2: range of height. + * + * @note To obtain multi-component version of this structure, user must + * provide AV_OPT_MULTI_COMPONENT_RANGE to av_opt_query_ranges or + * av_opt_query_ranges_default function. + * + * Multi-component range can be read as in following example: + * + * @code + * int range_index, component_index; + * AVOptionRanges *ranges; + * AVOptionRange *range[3]; //may require more than 3 in the future. + * av_opt_query_ranges(&ranges, obj, key, AV_OPT_MULTI_COMPONENT_RANGE); + * for (range_index = 0; range_index < ranges->nb_ranges; range_index++) { + * for (component_index = 0; component_index < ranges->nb_components; component_index++) + * range[component_index] = ranges->range[ranges->nb_ranges * component_index + range_index]; + * //do something with range here. + * } + * av_opt_freep_ranges(&ranges); + * @endcode + */ + AVOptionRange **range; + /** + * Number of ranges per component. + */ + int nb_ranges; + /** + * Number of componentes. + */ + int nb_components; +} AVOptionRanges; + +/** + * @defgroup opt_mng AVOption (un)initialization and inspection. + * @{ + */ + +/** + * Set the values of all AVOption fields to their default values. + * + * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass) + */ +void av_opt_set_defaults(void *s); + +/** + * Set the values of all AVOption fields to their default values. Only these + * AVOption fields for which (opt->flags & mask) == flags will have their + * default applied to s. + * + * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass) + * @param mask combination of AV_OPT_FLAG_* + * @param flags combination of AV_OPT_FLAG_* + */ +void av_opt_set_defaults2(void *s, int mask, int flags); + +/** + * Free all allocated objects in obj. + */ +void av_opt_free(void *obj); + +/** + * Iterate over all AVOptions belonging to obj. + * + * @param obj an AVOptions-enabled struct or a double pointer to an + * AVClass describing it. + * @param prev result of the previous call to av_opt_next() on this object + * or NULL + * @return next AVOption or NULL + */ +const AVOption *av_opt_next(const void *obj, const AVOption *prev); + +/** + * Iterate over AVOptions-enabled children of obj. + * + * @param prev result of a previous call to this function or NULL + * @return next AVOptions-enabled child or NULL + */ +void *av_opt_child_next(void *obj, void *prev); + +/** + * Iterate over potential AVOptions-enabled children of parent. + * + * @param iter a pointer where iteration state is stored. + * @return AVClass corresponding to next potential child or NULL + */ +const AVClass *av_opt_child_class_iterate(const AVClass *parent, void **iter); + +#define AV_OPT_SEARCH_CHILDREN (1 << 0) /**< Search in possible children of the + given object first. */ +/** + * The obj passed to av_opt_find() is fake -- only a double pointer to AVClass + * instead of a required pointer to a struct containing AVClass. This is + * useful for searching for options without needing to allocate the corresponding + * object. + */ +#define AV_OPT_SEARCH_FAKE_OBJ (1 << 1) + +/** + * In av_opt_get, return NULL if the option has a pointer type and is set to NULL, + * rather than returning an empty string. + */ +#define AV_OPT_ALLOW_NULL (1 << 2) + +/** + * May be used with av_opt_set_array() to signal that new elements should + * replace the existing ones in the indicated range. + */ +#define AV_OPT_ARRAY_REPLACE (1 << 3) + +/** + * Allows av_opt_query_ranges and av_opt_query_ranges_default to return more than + * one component for certain option types. + * @see AVOptionRanges for details. + */ +#define AV_OPT_MULTI_COMPONENT_RANGE (1 << 12) + +/** + * Look for an option in an object. Consider only options which + * have all the specified flags set. + * + * @param[in] obj A pointer to a struct whose first element is a + * pointer to an AVClass. + * Alternatively a double pointer to an AVClass, if + * AV_OPT_SEARCH_FAKE_OBJ search flag is set. + * @param[in] name The name of the option to look for. + * @param[in] unit When searching for named constants, name of the unit + * it belongs to. + * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * + * @return A pointer to the option found, or NULL if no option + * was found. + * + * @note Options found with AV_OPT_SEARCH_CHILDREN flag may not be settable + * directly with av_opt_set(). Use special calls which take an options + * AVDictionary (e.g. avformat_open_input()) to set options found with this + * flag. + */ +const AVOption *av_opt_find(void *obj, const char *name, const char *unit, + int opt_flags, int search_flags); + +/** + * Look for an option in an object. Consider only options which + * have all the specified flags set. + * + * @param[in] obj A pointer to a struct whose first element is a + * pointer to an AVClass. + * Alternatively a double pointer to an AVClass, if + * AV_OPT_SEARCH_FAKE_OBJ search flag is set. + * @param[in] name The name of the option to look for. + * @param[in] unit When searching for named constants, name of the unit + * it belongs to. + * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * @param[out] target_obj if non-NULL, an object to which the option belongs will be + * written here. It may be different from obj if AV_OPT_SEARCH_CHILDREN is present + * in search_flags. This parameter is ignored if search_flags contain + * AV_OPT_SEARCH_FAKE_OBJ. + * + * @return A pointer to the option found, or NULL if no option + * was found. + */ +const AVOption *av_opt_find2(void *obj, const char *name, const char *unit, + int opt_flags, int search_flags, void **target_obj); + +/** + * Show the obj options. + * + * @param req_flags requested flags for the options to show. Show only the + * options for which it is opt->flags & req_flags. + * @param rej_flags rejected flags for the options to show. Show only the + * options for which it is !(opt->flags & req_flags). + * @param av_log_obj log context to use for showing the options + */ +int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags); + +/** + * Extract a key-value pair from the beginning of a string. + * + * @param ropts pointer to the options string, will be updated to + * point to the rest of the string (one of the pairs_sep + * or the final NUL) + * @param key_val_sep a 0-terminated list of characters used to separate + * key from value, for example '=' + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other, for example ':' or ',' + * @param flags flags; see the AV_OPT_FLAG_* values below + * @param rkey parsed key; must be freed using av_free() + * @param rval parsed value; must be freed using av_free() + * + * @return >=0 for success, or a negative value corresponding to an + * AVERROR code in case of error; in particular: + * AVERROR(EINVAL) if no key is present + * + */ +int av_opt_get_key_value(const char **ropts, + const char *key_val_sep, const char *pairs_sep, + unsigned flags, + char **rkey, char **rval); + +enum { + + /** + * Accept to parse a value without a key; the key will then be returned + * as NULL. + */ + AV_OPT_FLAG_IMPLICIT_KEY = 1, +}; + +/** + * @} + */ + +/** + * @defgroup opt_write Setting and modifying option values + * @{ + */ + +/** + * Parse the key/value pairs list in opts. For each key/value pair + * found, stores the value in the field in ctx that is named like the + * key. ctx must be an AVClass context, storing is done using + * AVOptions. + * + * @param opts options string to parse, may be NULL + * @param key_val_sep a 0-terminated list of characters used to + * separate key from value + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other + * @return the number of successfully set key/value pairs, or a negative + * value corresponding to an AVERROR code in case of error: + * AVERROR(EINVAL) if opts cannot be parsed, + * the error code issued by av_opt_set() if a key/value pair + * cannot be set + */ +int av_set_options_string(void *ctx, const char *opts, + const char *key_val_sep, const char *pairs_sep); + +/** + * Parse the key-value pairs list in opts. For each key=value pair found, + * set the value of the corresponding option in ctx. + * + * @param ctx the AVClass object to set options on + * @param opts the options string, key-value pairs separated by a + * delimiter + * @param shorthand a NULL-terminated array of options names for shorthand + * notation: if the first field in opts has no key part, + * the key is taken from the first element of shorthand; + * then again for the second, etc., until either opts is + * finished, shorthand is finished or a named option is + * found; after that, all options must be named + * @param key_val_sep a 0-terminated list of characters used to separate + * key from value, for example '=' + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other, for example ':' or ',' + * @return the number of successfully set key=value pairs, or a negative + * value corresponding to an AVERROR code in case of error: + * AVERROR(EINVAL) if opts cannot be parsed, + * the error code issued by av_set_string3() if a key/value pair + * cannot be set + * + * Options names must use only the following characters: a-z A-Z 0-9 - . / _ + * Separators must use characters distinct from option names and from each + * other. + */ +int av_opt_set_from_string(void *ctx, const char *opts, + const char *const *shorthand, + const char *key_val_sep, const char *pairs_sep); + +/** + * Set all the options from a given dictionary on an object. + * + * @param obj a struct whose first element is a pointer to AVClass + * @param options options to process. This dictionary will be freed and replaced + * by a new one containing all options not found in obj. + * Of course this new dictionary needs to be freed by caller + * with av_dict_free(). + * + * @return 0 on success, a negative AVERROR if some option was found in obj, + * but could not be set. + * + * @see av_dict_copy() + */ +int av_opt_set_dict(void *obj, struct AVDictionary **options); + + +/** + * Set all the options from a given dictionary on an object. + * + * @param obj a struct whose first element is a pointer to AVClass + * @param options options to process. This dictionary will be freed and replaced + * by a new one containing all options not found in obj. + * Of course this new dictionary needs to be freed by caller + * with av_dict_free(). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * + * @return 0 on success, a negative AVERROR if some option was found in obj, + * but could not be set. + * + * @see av_dict_copy() + */ +int av_opt_set_dict2(void *obj, struct AVDictionary **options, int search_flags); + +/** + * Copy options from src object into dest object. + * + * The underlying AVClass of both src and dest must coincide. The guarantee + * below does not apply if this is not fulfilled. + * + * Options that require memory allocation (e.g. string or binary) are malloc'ed in dest object. + * Original memory allocated for such options is freed unless both src and dest options points to the same memory. + * + * Even on error it is guaranteed that allocated options from src and dest + * no longer alias each other afterwards; in particular calling av_opt_free() + * on both src and dest is safe afterwards if dest has been memdup'ed from src. + * + * @param dest Object to copy from + * @param src Object to copy into + * @return 0 on success, negative on error + */ +int av_opt_copy(void *dest, const void *src); + +/** + * @defgroup opt_set_funcs Option setting functions + * @{ + * Those functions set the field of obj with the given name to value. + * + * @param[in] obj A struct whose first element is a pointer to an AVClass. + * @param[in] name the name of the field to set + * @param[in] val The value to set. In case of av_opt_set() if the field is not + * of a string type, then the given string is parsed. + * SI postfixes and some named scalars are supported. + * If the field is of a numeric type, it has to be a numeric or named + * scalar. Behavior with more than one scalar and +- infix operators + * is undefined. + * If the field is of a flags type, it has to be a sequence of numeric + * scalars or named flags separated by '+' or '-'. Prefixing a flag + * with '+' causes it to be set without affecting the other flags; + * similarly, '-' unsets a flag. + * If the field is of a dictionary type, it has to be a ':' separated list of + * key=value parameters. Values containing ':' special characters must be + * escaped. + * @param search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN + * is passed here, then the option may be set on a child of obj. + * + * @return 0 if the value has been set, or an AVERROR code in case of + * error: + * AVERROR_OPTION_NOT_FOUND if no matching option exists + * AVERROR(ERANGE) if the value is out of range + * AVERROR(EINVAL) if the value is not valid + */ +int av_opt_set (void *obj, const char *name, const char *val, int search_flags); +int av_opt_set_int (void *obj, const char *name, int64_t val, int search_flags); +int av_opt_set_double (void *obj, const char *name, double val, int search_flags); +int av_opt_set_q (void *obj, const char *name, AVRational val, int search_flags); +int av_opt_set_bin (void *obj, const char *name, const uint8_t *val, int size, int search_flags); +int av_opt_set_image_size(void *obj, const char *name, int w, int h, int search_flags); +int av_opt_set_pixel_fmt (void *obj, const char *name, enum AVPixelFormat fmt, int search_flags); +int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt, int search_flags); +int av_opt_set_video_rate(void *obj, const char *name, AVRational val, int search_flags); +/** + * @note Any old chlayout present is discarded and replaced with a copy of the new one. The + * caller still owns layout and is responsible for uninitializing it. + */ +int av_opt_set_chlayout(void *obj, const char *name, const AVChannelLayout *layout, int search_flags); +/** + * @note Any old dictionary present is discarded and replaced with a copy of the new one. The + * caller still owns val is and responsible for freeing it. + */ +int av_opt_set_dict_val(void *obj, const char *name, const AVDictionary *val, int search_flags); + +/** + * Set a binary option to an integer list. + * + * @param obj AVClass object to set options on + * @param name name of the binary option + * @param val pointer to an integer list (must have the correct type with + * regard to the contents of the list) + * @param term list terminator (usually 0 or -1) + * @param flags search flags + */ +#define av_opt_set_int_list(obj, name, val, term, flags) \ + (av_int_list_length(val, term) > INT_MAX / sizeof(*(val)) ? \ + AVERROR(EINVAL) : \ + av_opt_set_bin(obj, name, (const uint8_t *)(val), \ + av_int_list_length(val, term) * sizeof(*(val)), flags)) + +/** + * Add, replace, or remove elements for an array option. Which of these + * operations is performed depends on the values of val and search_flags. + * + * @param start_elem Index of the first array element to modify; must not be + * larger than array size as returned by + * av_opt_get_array_size(). + * @param nb_elems number of array elements to modify; when val is NULL, + * start_elem+nb_elems must not be larger than array size as + * returned by av_opt_get_array_size() + * + * @param val_type Option type corresponding to the type of val, ignored when val is + * NULL. + * + * The effect of this function will will be as if av_opt_setX() + * was called for each element, where X is specified by type. + * E.g. AV_OPT_TYPE_STRING corresponds to av_opt_set(). + * + * Typically this should be the same as the scalarized type of + * the AVOption being set, but certain conversions are also + * possible - the same as those done by the corresponding + * av_opt_set*() function. E.g. any option type can be set from + * a string, numeric types can be set from int64, double, or + * rational, etc. + * + * @param val Array with nb_elems elements or NULL. + * + * When NULL, nb_elems array elements starting at start_elem are + * removed from the array. Any array elements remaining at the end + * are shifted by nb_elems towards the first element in order to keep + * the array contiguous. + * + * Otherwise (val is non-NULL), the type of val must match the + * underlying C type as documented for val_type. + * + * When AV_OPT_ARRAY_REPLACE is not set in search_flags, the array is + * enlarged by nb_elems, and the contents of val are inserted at + * start_elem. Previously existing array elements from start_elem + * onwards (if present) are shifted by nb_elems away from the first + * element in order to make space for the new elements. + * + * When AV_OPT_ARRAY_REPLACE is set in search_flags, the contents + * of val replace existing array elements from start_elem to + * start_elem+nb_elems (if present). New array size is + * max(start_elem + nb_elems, old array size). + */ +int av_opt_set_array(void *obj, const char *name, int search_flags, + unsigned int start_elem, unsigned int nb_elems, + enum AVOptionType val_type, const void *val); + +/** + * @} + * @} + */ + +/** + * @defgroup opt_read Reading option values + * @{ + */ + +/** + * @defgroup opt_get_funcs Option getting functions + * @{ + * Those functions get a value of the option with the given name from an object. + * + * @param[in] obj a struct whose first element is a pointer to an AVClass. + * @param[in] name name of the option to get. + * @param[in] search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN + * is passed here, then the option may be found in a child of obj. + * @param[out] out_val value of the option will be written here + * @return >=0 on success, a negative error code otherwise + */ +/** + * @note the returned string will be av_malloc()ed and must be av_free()ed by the caller + * + * @note if AV_OPT_ALLOW_NULL is set in search_flags in av_opt_get, and the + * option is of type AV_OPT_TYPE_STRING, AV_OPT_TYPE_BINARY or AV_OPT_TYPE_DICT + * and is set to NULL, *out_val will be set to NULL instead of an allocated + * empty string. + */ +int av_opt_get (void *obj, const char *name, int search_flags, uint8_t **out_val); +int av_opt_get_int (void *obj, const char *name, int search_flags, int64_t *out_val); +int av_opt_get_double (void *obj, const char *name, int search_flags, double *out_val); +int av_opt_get_q (void *obj, const char *name, int search_flags, AVRational *out_val); +int av_opt_get_image_size(void *obj, const char *name, int search_flags, int *w_out, int *h_out); +int av_opt_get_pixel_fmt (void *obj, const char *name, int search_flags, enum AVPixelFormat *out_fmt); +int av_opt_get_sample_fmt(void *obj, const char *name, int search_flags, enum AVSampleFormat *out_fmt); +int av_opt_get_video_rate(void *obj, const char *name, int search_flags, AVRational *out_val); +/** + * @param[out] layout The returned layout is a copy of the actual value and must + * be freed with av_channel_layout_uninit() by the caller + */ +int av_opt_get_chlayout(void *obj, const char *name, int search_flags, AVChannelLayout *layout); +/** + * @param[out] out_val The returned dictionary is a copy of the actual value and must + * be freed with av_dict_free() by the caller + */ +int av_opt_get_dict_val(void *obj, const char *name, int search_flags, AVDictionary **out_val); + +/** + * For an array-type option, get the number of elements in the array. + */ +int av_opt_get_array_size(void *obj, const char *name, int search_flags, + unsigned int *out_val); + +/** + * For an array-type option, retrieve the values of one or more array elements. + * + * @param start_elem index of the first array element to retrieve + * @param nb_elems number of array elements to retrieve; start_elem+nb_elems + * must not be larger than array size as returned by + * av_opt_get_array_size() + * + * @param out_type Option type corresponding to the desired output. + * + * The array elements produced by this function will + * will be as if av_opt_getX() was called for each element, + * where X is specified by out_type. E.g. AV_OPT_TYPE_STRING + * corresponds to av_opt_get(). + * + * Typically this should be the same as the scalarized type of + * the AVOption being retrieved, but certain conversions are + * also possible - the same as those done by the corresponding + * av_opt_get*() function. E.g. any option type can be retrieved + * as a string, numeric types can be retrieved as int64, double, + * or rational, etc. + * + * @param out_val Array with nb_elems members into which the output will be + * written. The array type must match the underlying C type as + * documented for out_type, and be zeroed on entry to this + * function. + * + * For dynamically allocated types (strings, binary, dicts, + * etc.), the result is owned and freed by the caller. + */ +int av_opt_get_array(void *obj, const char *name, int search_flags, + unsigned int start_elem, unsigned int nb_elems, + enum AVOptionType out_type, void *out_val); +/** + * @} + */ + +/** + * @defgroup opt_eval_funcs Evaluating option strings + * @{ + * This group of functions can be used to evaluate option strings + * and get numbers out of them. They do the same thing as av_opt_set(), + * except the result is written into the caller-supplied pointer. + * + * @param obj a struct whose first element is a pointer to AVClass. + * @param o an option for which the string is to be evaluated. + * @param val string to be evaluated. + * @param *_out value of the string will be written here. + * + * @return 0 on success, a negative number on failure. + */ +int av_opt_eval_flags (void *obj, const AVOption *o, const char *val, int *flags_out); +int av_opt_eval_int (void *obj, const AVOption *o, const char *val, int *int_out); +int av_opt_eval_uint (void *obj, const AVOption *o, const char *val, unsigned *uint_out); +int av_opt_eval_int64 (void *obj, const AVOption *o, const char *val, int64_t *int64_out); +int av_opt_eval_float (void *obj, const AVOption *o, const char *val, float *float_out); +int av_opt_eval_double(void *obj, const AVOption *o, const char *val, double *double_out); +int av_opt_eval_q (void *obj, const AVOption *o, const char *val, AVRational *q_out); +/** + * @} + */ + +/** + * Gets a pointer to the requested field in a struct. + * This function allows accessing a struct even when its fields are moved or + * renamed since the application making the access has been compiled, + * + * @returns a pointer to the field, it can be cast to the correct type and read + * or written to. + */ +void *av_opt_ptr(const AVClass *avclass, void *obj, const char *name); + +/** + * Check if given option is set to its default value. + * + * Options o must belong to the obj. This function must not be called to check child's options state. + * @see av_opt_is_set_to_default_by_name(). + * + * @param obj AVClass object to check option on + * @param o option to be checked + * @return >0 when option is set to its default, + * 0 when option is not set its default, + * <0 on error + */ +int av_opt_is_set_to_default(void *obj, const AVOption *o); + +/** + * Check if given option is set to its default value. + * + * @param obj AVClass object to check option on + * @param name option name + * @param search_flags combination of AV_OPT_SEARCH_* + * @return >0 when option is set to its default, + * 0 when option is not set its default, + * <0 on error + */ +int av_opt_is_set_to_default_by_name(void *obj, const char *name, int search_flags); + +/** + * Check whether a particular flag is set in a flags field. + * + * @param field_name the name of the flag field option + * @param flag_name the name of the flag to check + * @return non-zero if the flag is set, zero if the flag isn't set, + * isn't of the right type, or the flags field doesn't exist. + */ +int av_opt_flag_is_set(void *obj, const char *field_name, const char *flag_name); + +#define AV_OPT_SERIALIZE_SKIP_DEFAULTS 0x00000001 ///< Serialize options that are not set to default values only. +#define AV_OPT_SERIALIZE_OPT_FLAGS_EXACT 0x00000002 ///< Serialize options that exactly match opt_flags only. +#define AV_OPT_SERIALIZE_SEARCH_CHILDREN 0x00000004 ///< Serialize options in possible children of the given object. + +/** + * Serialize object's options. + * + * Create a string containing object's serialized options. + * Such string may be passed back to av_opt_set_from_string() in order to restore option values. + * A key/value or pairs separator occurring in the serialized value or + * name string are escaped through the av_escape() function. + * + * @param[in] obj AVClass object to serialize + * @param[in] opt_flags serialize options with all the specified flags set (AV_OPT_FLAG) + * @param[in] flags combination of AV_OPT_SERIALIZE_* flags + * @param[out] buffer Pointer to buffer that will be allocated with string containg serialized options. + * Buffer must be freed by the caller when is no longer needed. + * @param[in] key_val_sep character used to separate key from value + * @param[in] pairs_sep character used to separate two pairs from each other + * @return >= 0 on success, negative on error + * @warning Separators cannot be neither '\\' nor '\0'. They also cannot be the same. + */ +int av_opt_serialize(void *obj, int opt_flags, int flags, char **buffer, + const char key_val_sep, const char pairs_sep); + +/** + * @} + */ + +/** + * Free an AVOptionRanges struct and set it to NULL. + */ +void av_opt_freep_ranges(AVOptionRanges **ranges); + +/** + * Get a list of allowed ranges for the given option. + * + * The returned list may depend on other fields in obj like for example profile. + * + * @param flags is a bitmask of flags, undefined flags should not be set and should be ignored + * AV_OPT_SEARCH_FAKE_OBJ indicates that the obj is a double pointer to a AVClass instead of a full instance + * AV_OPT_MULTI_COMPONENT_RANGE indicates that function may return more than one component, @see AVOptionRanges + * + * The result must be freed with av_opt_freep_ranges. + * + * @return number of compontents returned on success, a negative errro code otherwise + */ +int av_opt_query_ranges(AVOptionRanges **, void *obj, const char *key, int flags); + +/** + * Get a default list of allowed ranges for the given option. + * + * This list is constructed without using the AVClass.query_ranges() callback + * and can be used as fallback from within the callback. + * + * @param flags is a bitmask of flags, undefined flags should not be set and should be ignored + * AV_OPT_SEARCH_FAKE_OBJ indicates that the obj is a double pointer to a AVClass instead of a full instance + * AV_OPT_MULTI_COMPONENT_RANGE indicates that function may return more than one component, @see AVOptionRanges + * + * The result must be freed with av_opt_free_ranges. + * + * @return number of compontents returned on success, a negative errro code otherwise + */ +int av_opt_query_ranges_default(AVOptionRanges **, void *obj, const char *key, int flags); + +/** + * @} + */ + +#endif /* AVUTIL_OPT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/parseutils.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/parseutils.h new file mode 100644 index 00000000..dad5c277 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/parseutils.h @@ -0,0 +1,197 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PARSEUTILS_H +#define AVUTIL_PARSEUTILS_H + +#include + +#include "rational.h" + +/** + * @file + * misc parsing utilities + */ + +/** + * Parse str and store the parsed ratio in q. + * + * Note that a ratio with infinite (1/0) or negative value is + * considered valid, so you should check on the returned value if you + * want to exclude those values. + * + * The undefined value can be expressed using the "0:0" string. + * + * @param[in,out] q pointer to the AVRational which will contain the ratio + * @param[in] str the string to parse: it has to be a string in the format + * num:den, a float number or an expression + * @param[in] max the maximum allowed numerator and denominator + * @param[in] log_offset log level offset which is applied to the log + * level of log_ctx + * @param[in] log_ctx parent logging context + * @return >= 0 on success, a negative error code otherwise + */ +int av_parse_ratio(AVRational *q, const char *str, int max, + int log_offset, void *log_ctx); + +#define av_parse_ratio_quiet(rate, str, max) \ + av_parse_ratio(rate, str, max, AV_LOG_MAX_OFFSET, NULL) + +/** + * Parse str and put in width_ptr and height_ptr the detected values. + * + * @param[in,out] width_ptr pointer to the variable which will contain the detected + * width value + * @param[in,out] height_ptr pointer to the variable which will contain the detected + * height value + * @param[in] str the string to parse: it has to be a string in the format + * width x height or a valid video size abbreviation. + * @return >= 0 on success, a negative error code otherwise + */ +int av_parse_video_size(int *width_ptr, int *height_ptr, const char *str); + +/** + * Parse str and store the detected values in *rate. + * + * @param[in,out] rate pointer to the AVRational which will contain the detected + * frame rate + * @param[in] str the string to parse: it has to be a string in the format + * rate_num / rate_den, a float number or a valid video rate abbreviation + * @return >= 0 on success, a negative error code otherwise + */ +int av_parse_video_rate(AVRational *rate, const char *str); + +/** + * Put the RGBA values that correspond to color_string in rgba_color. + * + * @param rgba_color 4-elements array of uint8_t values, where the respective + * red, green, blue and alpha component values are written. + * @param color_string a string specifying a color. It can be the name of + * a color (case insensitive match) or a [0x|#]RRGGBB[AA] sequence, + * possibly followed by "@" and a string representing the alpha + * component. + * The alpha component may be a string composed by "0x" followed by an + * hexadecimal number or a decimal number between 0.0 and 1.0, which + * represents the opacity value (0x00/0.0 means completely transparent, + * 0xff/1.0 completely opaque). + * If the alpha component is not specified then 0xff is assumed. + * The string "random" will result in a random color. + * @param slen length of the initial part of color_string containing the + * color. It can be set to -1 if color_string is a null terminated string + * containing nothing else than the color. + * @param log_ctx a pointer to an arbitrary struct of which the first field + * is a pointer to an AVClass struct (used for av_log()). Can be NULL. + * @return >= 0 in case of success, a negative value in case of + * failure (for example if color_string cannot be parsed). + */ +int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, + void *log_ctx); + +/** + * Get the name of a color from the internal table of hard-coded named + * colors. + * + * This function is meant to enumerate the color names recognized by + * av_parse_color(). + * + * @param color_idx index of the requested color, starting from 0 + * @param rgb if not NULL, will point to a 3-elements array with the color value in RGB + * @return the color name string or NULL if color_idx is not in the array + */ +const char *av_get_known_color_name(int color_idx, const uint8_t **rgb); + +/** + * Parse timestr and return in *time a corresponding number of + * microseconds. + * + * @param timeval puts here the number of microseconds corresponding + * to the string in timestr. If the string represents a duration, it + * is the number of microseconds contained in the time interval. If + * the string is a date, is the number of microseconds since 1st of + * January, 1970 up to the time of the parsed date. If timestr cannot + * be successfully parsed, set *time to INT64_MIN. + + * @param timestr a string representing a date or a duration. + * - If a date the syntax is: + * @code + * [{YYYY-MM-DD|YYYYMMDD}[T|t| ]]{{HH:MM:SS[.m...]]]}|{HHMMSS[.m...]]]}}[Z] + * now + * @endcode + * If the value is "now" it takes the current time. + * Time is local time unless Z is appended, in which case it is + * interpreted as UTC. + * If the year-month-day part is not specified it takes the current + * year-month-day. + * - If a duration the syntax is: + * @code + * [-][HH:]MM:SS[.m...] + * [-]S+[.m...] + * @endcode + * @param duration flag which tells how to interpret timestr, if not + * zero timestr is interpreted as a duration, otherwise as a date + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_parse_time(int64_t *timeval, const char *timestr, int duration); + +/** + * Attempt to find a specific tag in a URL. + * + * syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done. + * Return 1 if found. + */ +int av_find_info_tag(char *arg, int arg_size, const char *tag1, const char *info); + +/** + * Simplified version of strptime + * + * Parse the input string p according to the format string fmt and + * store its results in the structure dt. + * This implementation supports only a subset of the formats supported + * by the standard strptime(). + * + * The supported input field descriptors are listed below. + * - `%%H`: the hour as a decimal number, using a 24-hour clock, in the + * range '00' through '23' + * - `%%J`: hours as a decimal number, in the range '0' through INT_MAX + * - `%%M`: the minute as a decimal number, using a 24-hour clock, in the + * range '00' through '59' + * - `%%S`: the second as a decimal number, using a 24-hour clock, in the + * range '00' through '59' + * - `%%Y`: the year as a decimal number, using the Gregorian calendar + * - `%%m`: the month as a decimal number, in the range '1' through '12' + * - `%%d`: the day of the month as a decimal number, in the range '1' + * through '31' + * - `%%T`: alias for `%%H:%%M:%%S` + * - `%%`: a literal `%` + * + * @return a pointer to the first character not processed in this function + * call. In case the input string contains more characters than + * required by the format string the return value points right after + * the last consumed input character. In case the whole input string + * is consumed the return value points to the null byte at the end of + * the string. On failure NULL is returned. + */ +char *av_small_strptime(const char *p, const char *fmt, struct tm *dt); + +/** + * Convert the decomposed UTC time in tm to a time_t value. + */ +time_t av_timegm(struct tm *tm); + +#endif /* AVUTIL_PARSEUTILS_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/pixdesc.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/pixdesc.h new file mode 100644 index 00000000..ba2f6328 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/pixdesc.h @@ -0,0 +1,440 @@ +/* + * pixel format descriptor + * Copyright (c) 2009 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PIXDESC_H +#define AVUTIL_PIXDESC_H + +#include + +#include "attributes.h" +#include "pixfmt.h" + +typedef struct AVComponentDescriptor { + /** + * Which of the 4 planes contains the component. + */ + int plane; + + /** + * Number of elements between 2 horizontally consecutive pixels. + * Elements are bits for bitstream formats, bytes otherwise. + */ + int step; + + /** + * Number of elements before the component of the first pixel. + * Elements are bits for bitstream formats, bytes otherwise. + */ + int offset; + + /** + * Number of least significant bits that must be shifted away + * to get the value. + */ + int shift; + + /** + * Number of bits in the component. + */ + int depth; +} AVComponentDescriptor; + +/** + * Descriptor that unambiguously describes how the bits of a pixel are + * stored in the up to 4 data planes of an image. It also stores the + * subsampling factors and number of components. + * + * @note This is separate of the colorspace (RGB, YCbCr, YPbPr, JPEG-style YUV + * and all the YUV variants) AVPixFmtDescriptor just stores how values + * are stored not what these values represent. + */ +typedef struct AVPixFmtDescriptor { + const char *name; + uint8_t nb_components; ///< The number of components each pixel has, (1-4) + + /** + * Amount to shift the luma width right to find the chroma width. + * For YV12 this is 1 for example. + * chroma_width = AV_CEIL_RSHIFT(luma_width, log2_chroma_w) + * The note above is needed to ensure rounding up. + * This value only refers to the chroma components. + */ + uint8_t log2_chroma_w; + + /** + * Amount to shift the luma height right to find the chroma height. + * For YV12 this is 1 for example. + * chroma_height= AV_CEIL_RSHIFT(luma_height, log2_chroma_h) + * The note above is needed to ensure rounding up. + * This value only refers to the chroma components. + */ + uint8_t log2_chroma_h; + + /** + * Combination of AV_PIX_FMT_FLAG_... flags. + */ + uint64_t flags; + + /** + * Parameters that describe how pixels are packed. + * If the format has 1 or 2 components, then luma is 0. + * If the format has 3 or 4 components: + * if the RGB flag is set then 0 is red, 1 is green and 2 is blue; + * otherwise 0 is luma, 1 is chroma-U and 2 is chroma-V. + * + * If present, the Alpha channel is always the last component. + */ + AVComponentDescriptor comp[4]; + + /** + * Alternative comma-separated names. + */ + const char *alias; +} AVPixFmtDescriptor; + +/** + * Pixel format is big-endian. + */ +#define AV_PIX_FMT_FLAG_BE (1 << 0) +/** + * Pixel format has a palette in data[1], values are indexes in this palette. + */ +#define AV_PIX_FMT_FLAG_PAL (1 << 1) +/** + * All values of a component are bit-wise packed end to end. + */ +#define AV_PIX_FMT_FLAG_BITSTREAM (1 << 2) +/** + * Pixel format is an HW accelerated format. + */ +#define AV_PIX_FMT_FLAG_HWACCEL (1 << 3) +/** + * At least one pixel component is not in the first data plane. + */ +#define AV_PIX_FMT_FLAG_PLANAR (1 << 4) +/** + * The pixel format contains RGB-like data (as opposed to YUV/grayscale). + */ +#define AV_PIX_FMT_FLAG_RGB (1 << 5) + +/** + * The pixel format has an alpha channel. This is set on all formats that + * support alpha in some way, including AV_PIX_FMT_PAL8. The alpha is always + * straight, never pre-multiplied. + * + * If a codec or a filter does not support alpha, it should set all alpha to + * opaque, or use the equivalent pixel formats without alpha component, e.g. + * AV_PIX_FMT_RGB0 (or AV_PIX_FMT_RGB24 etc.) instead of AV_PIX_FMT_RGBA. + */ +#define AV_PIX_FMT_FLAG_ALPHA (1 << 7) + +/** + * The pixel format is following a Bayer pattern + */ +#define AV_PIX_FMT_FLAG_BAYER (1 << 8) + +/** + * The pixel format contains IEEE-754 floating point values. Precision (double, + * single, or half) should be determined by the pixel size (64, 32, or 16 bits). + */ +#define AV_PIX_FMT_FLAG_FLOAT (1 << 9) + +/** + * The pixel format contains XYZ-like data (as opposed to YUV/RGB/grayscale). + */ +#define AV_PIX_FMT_FLAG_XYZ (1 << 10) + +/** + * Return the number of bits per pixel used by the pixel format + * described by pixdesc. Note that this is not the same as the number + * of bits per sample. + * + * The returned number of bits refers to the number of bits actually + * used for storing the pixel information, that is padding bits are + * not counted. + */ +int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc); + +/** + * Return the number of bits per pixel for the pixel format + * described by pixdesc, including any padding or unused bits. + */ +int av_get_padded_bits_per_pixel(const AVPixFmtDescriptor *pixdesc); + +/** + * @return a pixel format descriptor for provided pixel format or NULL if + * this pixel format is unknown. + */ +const AVPixFmtDescriptor *av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt); + +/** + * Iterate over all pixel format descriptors known to libavutil. + * + * @param prev previous descriptor. NULL to get the first descriptor. + * + * @return next descriptor or NULL after the last descriptor + */ +const AVPixFmtDescriptor *av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev); + +/** + * @return an AVPixelFormat id described by desc, or AV_PIX_FMT_NONE if desc + * is not a valid pointer to a pixel format descriptor. + */ +enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc); + +/** + * Utility function to access log2_chroma_w log2_chroma_h from + * the pixel format AVPixFmtDescriptor. + * + * @param[in] pix_fmt the pixel format + * @param[out] h_shift store log2_chroma_w (horizontal/width shift) + * @param[out] v_shift store log2_chroma_h (vertical/height shift) + * + * @return 0 on success, AVERROR(ENOSYS) on invalid or unknown pixel format + */ +int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, + int *h_shift, int *v_shift); + +/** + * @return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a + * valid pixel format. + */ +int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt); + +/** + * @return the name for provided color range or NULL if unknown. + */ +const char *av_color_range_name(enum AVColorRange range); + +/** + * @return the AVColorRange value for name or an AVError if not found. + */ +int av_color_range_from_name(const char *name); + +/** + * @return the name for provided color primaries or NULL if unknown. + */ +const char *av_color_primaries_name(enum AVColorPrimaries primaries); + +/** + * @return the AVColorPrimaries value for name or an AVError if not found. + */ +int av_color_primaries_from_name(const char *name); + +/** + * @return the name for provided color transfer or NULL if unknown. + */ +const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer); + +/** + * @return the AVColorTransferCharacteristic value for name or an AVError if not found. + */ +int av_color_transfer_from_name(const char *name); + +/** + * @return the name for provided color space or NULL if unknown. + */ +const char *av_color_space_name(enum AVColorSpace space); + +/** + * @return the AVColorSpace value for name or an AVError if not found. + */ +int av_color_space_from_name(const char *name); + +/** + * @return the name for provided chroma location or NULL if unknown. + */ +const char *av_chroma_location_name(enum AVChromaLocation location); + +/** + * @return the AVChromaLocation value for name or an AVError if not found. + */ +int av_chroma_location_from_name(const char *name); + +/** + * Converts AVChromaLocation to swscale x/y chroma position. + * + * The positions represent the chroma (0,0) position in a coordinates system + * with luma (0,0) representing the origin and luma(1,1) representing 256,256 + * + * @param xpos horizontal chroma sample position + * @param ypos vertical chroma sample position + */ +int av_chroma_location_enum_to_pos(int *xpos, int *ypos, enum AVChromaLocation pos); + +/** + * Converts swscale x/y chroma position to AVChromaLocation. + * + * The positions represent the chroma (0,0) position in a coordinates system + * with luma (0,0) representing the origin and luma(1,1) representing 256,256 + * + * @param xpos horizontal chroma sample position + * @param ypos vertical chroma sample position + */ +enum AVChromaLocation av_chroma_location_pos_to_enum(int xpos, int ypos); + +/** + * Return the pixel format corresponding to name. + * + * If there is no pixel format with name name, then looks for a + * pixel format with the name corresponding to the native endian + * format of name. + * For example in a little-endian system, first looks for "gray16", + * then for "gray16le". + * + * Finally if no pixel format has been found, returns AV_PIX_FMT_NONE. + */ +enum AVPixelFormat av_get_pix_fmt(const char *name); + +/** + * Return the short name for a pixel format, NULL in case pix_fmt is + * unknown. + * + * @see av_get_pix_fmt(), av_get_pix_fmt_string() + */ +const char *av_get_pix_fmt_name(enum AVPixelFormat pix_fmt); + +/** + * Print in buf the string corresponding to the pixel format with + * number pix_fmt, or a header if pix_fmt is negative. + * + * @param buf the buffer where to write the string + * @param buf_size the size of buf + * @param pix_fmt the number of the pixel format to print the + * corresponding info string, or a negative value to print the + * corresponding header. + */ +char *av_get_pix_fmt_string(char *buf, int buf_size, + enum AVPixelFormat pix_fmt); + +/** + * Read a line from an image, and write the values of the + * pixel format component c to dst. + * + * @param data the array containing the pointers to the planes of the image + * @param linesize the array containing the linesizes of the image + * @param desc the pixel format descriptor for the image + * @param x the horizontal coordinate of the first pixel to read + * @param y the vertical coordinate of the first pixel to read + * @param w the width of the line to read, that is the number of + * values to write to dst + * @param read_pal_component if not zero and the format is a paletted + * format writes the values corresponding to the palette + * component c in data[1] to dst, rather than the palette indexes in + * data[0]. The behavior is undefined if the format is not paletted. + * @param dst_element_size size of elements in dst array (2 or 4 byte) + */ +void av_read_image_line2(void *dst, const uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w, int read_pal_component, + int dst_element_size); + +void av_read_image_line(uint16_t *dst, const uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w, int read_pal_component); + +/** + * Write the values from src to the pixel format component c of an + * image line. + * + * @param src array containing the values to write + * @param data the array containing the pointers to the planes of the + * image to write into. It is supposed to be zeroed. + * @param linesize the array containing the linesizes of the image + * @param desc the pixel format descriptor for the image + * @param x the horizontal coordinate of the first pixel to write + * @param y the vertical coordinate of the first pixel to write + * @param w the width of the line to write, that is the number of + * values to write to the image line + * @param src_element_size size of elements in src array (2 or 4 byte) + */ +void av_write_image_line2(const void *src, uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w, int src_element_size); + +void av_write_image_line(const uint16_t *src, uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w); + +/** + * Utility function to swap the endianness of a pixel format. + * + * @param[in] pix_fmt the pixel format + * + * @return pixel format with swapped endianness if it exists, + * otherwise AV_PIX_FMT_NONE + */ +enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt); + +#define FF_LOSS_RESOLUTION 0x0001 /**< loss due to resolution change */ +#define FF_LOSS_DEPTH 0x0002 /**< loss due to color depth change */ +#define FF_LOSS_COLORSPACE 0x0004 /**< loss due to color space conversion */ +#define FF_LOSS_ALPHA 0x0008 /**< loss of alpha bits */ +#define FF_LOSS_COLORQUANT 0x0010 /**< loss due to color quantization */ +#define FF_LOSS_CHROMA 0x0020 /**< loss of chroma (e.g. RGB to gray conversion) */ +#define FF_LOSS_EXCESS_RESOLUTION 0x0040 /**< loss due to unneeded extra resolution */ +#define FF_LOSS_EXCESS_DEPTH 0x0080 /**< loss due to unneeded extra color depth */ + + +/** + * Compute what kind of losses will occur when converting from one specific + * pixel format to another. + * When converting from one pixel format to another, information loss may occur. + * For example, when converting from RGB24 to GRAY, the color information will + * be lost. Similarly, other losses occur when converting from some formats to + * other formats. These losses can involve loss of chroma, but also loss of + * resolution, loss of color depth, loss due to the color space conversion, loss + * of the alpha bits or loss due to color quantization. + * av_get_fix_fmt_loss() informs you about the various types of losses + * which will occur when converting from one pixel format to another. + * + * @param[in] dst_pix_fmt destination pixel format + * @param[in] src_pix_fmt source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @return Combination of flags informing you what kind of losses will occur + * (maximum loss for an invalid dst_pix_fmt). + */ +int av_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, + enum AVPixelFormat src_pix_fmt, + int has_alpha); + +/** + * Compute what kind of losses will occur when converting from one specific + * pixel format to another. + * When converting from one pixel format to another, information loss may occur. + * For example, when converting from RGB24 to GRAY, the color information will + * be lost. Similarly, other losses occur when converting from some formats to + * other formats. These losses can involve loss of chroma, but also loss of + * resolution, loss of color depth, loss due to the color space conversion, loss + * of the alpha bits or loss due to color quantization. + * av_get_fix_fmt_loss() informs you about the various types of losses + * which will occur when converting from one pixel format to another. + * + * @param[in] dst_pix_fmt destination pixel format + * @param[in] src_pix_fmt source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @return Combination of flags informing you what kind of losses will occur + * (maximum loss for an invalid dst_pix_fmt). + */ +enum AVPixelFormat av_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2, + enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); + +#endif /* AVUTIL_PIXDESC_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/pixelutils.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/pixelutils.h new file mode 100644 index 00000000..7a997cde --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/pixelutils.h @@ -0,0 +1,51 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PIXELUTILS_H +#define AVUTIL_PIXELUTILS_H + +#include +#include + +/** + * Sum of abs(src1[x] - src2[x]) + */ +typedef int (*av_pixelutils_sad_fn)(const uint8_t *src1, ptrdiff_t stride1, + const uint8_t *src2, ptrdiff_t stride2); + +/** + * Get a potentially optimized pointer to a Sum-of-absolute-differences + * function (see the av_pixelutils_sad_fn prototype). + * + * @param w_bits 1< + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PIXFMT_H +#define AVUTIL_PIXFMT_H + +/** + * @file + * pixel format definitions + */ + +#include "libavutil/avconfig.h" +#include "version.h" + +#define AVPALETTE_SIZE 1024 +#define AVPALETTE_COUNT 256 + +/** + * Maximum number of planes in any pixel format. + * This should be used when a maximum is needed, but code should not + * be written to require a maximum for no good reason. + */ +#define AV_VIDEO_MAX_PLANES 4 + +/** + * Pixel format. + * + * @note + * AV_PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA + * color is put together as: + * (A << 24) | (R << 16) | (G << 8) | B + * This is stored as BGRA on little-endian CPU architectures and ARGB on + * big-endian CPUs. + * + * @note + * If the resolution is not a multiple of the chroma subsampling factor + * then the chroma plane resolution must be rounded up. + * + * @par + * When the pixel format is palettized RGB32 (AV_PIX_FMT_PAL8), the palettized + * image data is stored in AVFrame.data[0]. The palette is transported in + * AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is + * formatted the same as in AV_PIX_FMT_RGB32 described above (i.e., it is + * also endian-specific). Note also that the individual RGB32 palette + * components stored in AVFrame.data[1] should be in the range 0..255. + * This is important as many custom PAL8 video codecs that were designed + * to run on the IBM VGA graphics adapter use 6-bit palette components. + * + * @par + * For all the 8 bits per pixel formats, an RGB32 palette is in data[1] like + * for pal8. This palette is filled in automatically by the function + * allocating the picture. + */ +enum AVPixelFormat { + AV_PIX_FMT_NONE = -1, + AV_PIX_FMT_YUV420P, ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples) + AV_PIX_FMT_YUYV422, ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr + AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB... + AV_PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR... + AV_PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) + AV_PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples) + AV_PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples) + AV_PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) + AV_PIX_FMT_GRAY8, ///< Y , 8bpp + AV_PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb + AV_PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb + AV_PIX_FMT_PAL8, ///< 8 bits with AV_PIX_FMT_RGB32 palette + AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range + AV_PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range + AV_PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range + AV_PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 + AV_PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3 + AV_PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb) + AV_PIX_FMT_BGR4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits + AV_PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb) + AV_PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)3R 3G 2B(lsb) + AV_PIX_FMT_RGB4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits + AV_PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb) + AV_PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V) + AV_PIX_FMT_NV21, ///< as above, but U and V bytes are swapped + + AV_PIX_FMT_ARGB, ///< packed ARGB 8:8:8:8, 32bpp, ARGBARGB... + AV_PIX_FMT_RGBA, ///< packed RGBA 8:8:8:8, 32bpp, RGBARGBA... + AV_PIX_FMT_ABGR, ///< packed ABGR 8:8:8:8, 32bpp, ABGRABGR... + AV_PIX_FMT_BGRA, ///< packed BGRA 8:8:8:8, 32bpp, BGRABGRA... + + AV_PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian + AV_PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian + AV_PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples) + AV_PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range + AV_PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples) + AV_PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian + AV_PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian + + AV_PIX_FMT_RGB565BE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian + AV_PIX_FMT_RGB565LE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian + AV_PIX_FMT_RGB555BE, ///< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), big-endian , X=unused/undefined + AV_PIX_FMT_RGB555LE, ///< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), little-endian, X=unused/undefined + + AV_PIX_FMT_BGR565BE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian + AV_PIX_FMT_BGR565LE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian + AV_PIX_FMT_BGR555BE, ///< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), big-endian , X=unused/undefined + AV_PIX_FMT_BGR555LE, ///< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), little-endian, X=unused/undefined + + /** + * Hardware acceleration through VA-API, data[3] contains a + * VASurfaceID. + */ + AV_PIX_FMT_VAAPI, + + AV_PIX_FMT_YUV420P16LE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV420P16BE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV422P16LE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV422P16BE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV444P16LE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer + + AV_PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), little-endian, X=unused/undefined + AV_PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), big-endian, X=unused/undefined + AV_PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), little-endian, X=unused/undefined + AV_PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), big-endian, X=unused/undefined + AV_PIX_FMT_YA8, ///< 8 bits gray, 8 bits alpha + + AV_PIX_FMT_Y400A = AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8 + AV_PIX_FMT_GRAY8A= AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8 + + AV_PIX_FMT_BGR48BE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian + AV_PIX_FMT_BGR48LE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian + + /** + * The following 12 formats have the disadvantage of needing 1 format for each bit depth. + * Notice that each 9/10 bits sample is stored in 16 bits with extra padding. + * If you want to support multiple bit depths, then using AV_PIX_FMT_YUV420P16* with the bpp stored separately is better. + */ + AV_PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P10LE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_GBRP, ///< planar GBR 4:4:4 24bpp + AV_PIX_FMT_GBR24P = AV_PIX_FMT_GBRP, // alias for #AV_PIX_FMT_GBRP + AV_PIX_FMT_GBRP9BE, ///< planar GBR 4:4:4 27bpp, big-endian + AV_PIX_FMT_GBRP9LE, ///< planar GBR 4:4:4 27bpp, little-endian + AV_PIX_FMT_GBRP10BE, ///< planar GBR 4:4:4 30bpp, big-endian + AV_PIX_FMT_GBRP10LE, ///< planar GBR 4:4:4 30bpp, little-endian + AV_PIX_FMT_GBRP16BE, ///< planar GBR 4:4:4 48bpp, big-endian + AV_PIX_FMT_GBRP16LE, ///< planar GBR 4:4:4 48bpp, little-endian + AV_PIX_FMT_YUVA422P, ///< planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples) + AV_PIX_FMT_YUVA444P, ///< planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples) + AV_PIX_FMT_YUVA420P9BE, ///< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), big-endian + AV_PIX_FMT_YUVA420P9LE, ///< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), little-endian + AV_PIX_FMT_YUVA422P9BE, ///< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), big-endian + AV_PIX_FMT_YUVA422P9LE, ///< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), little-endian + AV_PIX_FMT_YUVA444P9BE, ///< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), big-endian + AV_PIX_FMT_YUVA444P9LE, ///< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), little-endian + AV_PIX_FMT_YUVA420P10BE, ///< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian) + AV_PIX_FMT_YUVA420P10LE, ///< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian) + AV_PIX_FMT_YUVA422P10BE, ///< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA422P10LE, ///< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian) + AV_PIX_FMT_YUVA444P10BE, ///< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA444P10LE, ///< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian) + AV_PIX_FMT_YUVA420P16BE, ///< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian) + AV_PIX_FMT_YUVA420P16LE, ///< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian) + AV_PIX_FMT_YUVA422P16BE, ///< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA422P16LE, ///< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian) + AV_PIX_FMT_YUVA444P16BE, ///< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA444P16LE, ///< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian) + + AV_PIX_FMT_VDPAU, ///< HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface + + AV_PIX_FMT_XYZ12LE, ///< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as little-endian, the 4 lower bits are set to 0 + AV_PIX_FMT_XYZ12BE, ///< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as big-endian, the 4 lower bits are set to 0 + AV_PIX_FMT_NV16, ///< interleaved chroma YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) + AV_PIX_FMT_NV20LE, ///< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_NV20BE, ///< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + + AV_PIX_FMT_RGBA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + AV_PIX_FMT_RGBA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian + AV_PIX_FMT_BGRA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + AV_PIX_FMT_BGRA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian + + AV_PIX_FMT_YVYU422, ///< packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb + + AV_PIX_FMT_YA16BE, ///< 16 bits gray, 16 bits alpha (big-endian) + AV_PIX_FMT_YA16LE, ///< 16 bits gray, 16 bits alpha (little-endian) + + AV_PIX_FMT_GBRAP, ///< planar GBRA 4:4:4:4 32bpp + AV_PIX_FMT_GBRAP16BE, ///< planar GBRA 4:4:4:4 64bpp, big-endian + AV_PIX_FMT_GBRAP16LE, ///< planar GBRA 4:4:4:4 64bpp, little-endian + /** + * HW acceleration through QSV, data[3] contains a pointer to the + * mfxFrameSurface1 structure. + * + * Before FFmpeg 5.0: + * mfxFrameSurface1.Data.MemId contains a pointer when importing + * the following frames as QSV frames: + * + * VAAPI: + * mfxFrameSurface1.Data.MemId contains a pointer to VASurfaceID + * + * DXVA2: + * mfxFrameSurface1.Data.MemId contains a pointer to IDirect3DSurface9 + * + * FFmpeg 5.0 and above: + * mfxFrameSurface1.Data.MemId contains a pointer to the mfxHDLPair + * structure when importing the following frames as QSV frames: + * + * VAAPI: + * mfxHDLPair.first contains a VASurfaceID pointer. + * mfxHDLPair.second is always MFX_INFINITE. + * + * DXVA2: + * mfxHDLPair.first contains IDirect3DSurface9 pointer. + * mfxHDLPair.second is always MFX_INFINITE. + * + * D3D11: + * mfxHDLPair.first contains a ID3D11Texture2D pointer. + * mfxHDLPair.second contains the texture array index of the frame if the + * ID3D11Texture2D is an array texture, or always MFX_INFINITE if it is a + * normal texture. + */ + AV_PIX_FMT_QSV, + /** + * HW acceleration though MMAL, data[3] contains a pointer to the + * MMAL_BUFFER_HEADER_T structure. + */ + AV_PIX_FMT_MMAL, + + AV_PIX_FMT_D3D11VA_VLD, ///< HW decoding through Direct3D11 via old API, Picture.data[3] contains a ID3D11VideoDecoderOutputView pointer + + /** + * HW acceleration through CUDA. data[i] contain CUdeviceptr pointers + * exactly as for system memory frames. + */ + AV_PIX_FMT_CUDA, + + AV_PIX_FMT_0RGB, ///< packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined + AV_PIX_FMT_RGB0, ///< packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined + AV_PIX_FMT_0BGR, ///< packed BGR 8:8:8, 32bpp, XBGRXBGR... X=unused/undefined + AV_PIX_FMT_BGR0, ///< packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined + + AV_PIX_FMT_YUV420P12BE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P12LE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV420P14BE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P14LE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV422P12BE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P12LE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV422P14BE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P14LE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV444P12BE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P12LE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV444P14BE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P14LE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_GBRP12BE, ///< planar GBR 4:4:4 36bpp, big-endian + AV_PIX_FMT_GBRP12LE, ///< planar GBR 4:4:4 36bpp, little-endian + AV_PIX_FMT_GBRP14BE, ///< planar GBR 4:4:4 42bpp, big-endian + AV_PIX_FMT_GBRP14LE, ///< planar GBR 4:4:4 42bpp, little-endian + AV_PIX_FMT_YUVJ411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV411P and setting color_range + + AV_PIX_FMT_BAYER_BGGR8, ///< bayer, BGBG..(odd line), GRGR..(even line), 8-bit samples + AV_PIX_FMT_BAYER_RGGB8, ///< bayer, RGRG..(odd line), GBGB..(even line), 8-bit samples + AV_PIX_FMT_BAYER_GBRG8, ///< bayer, GBGB..(odd line), RGRG..(even line), 8-bit samples + AV_PIX_FMT_BAYER_GRBG8, ///< bayer, GRGR..(odd line), BGBG..(even line), 8-bit samples + AV_PIX_FMT_BAYER_BGGR16LE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, little-endian + AV_PIX_FMT_BAYER_BGGR16BE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, big-endian + AV_PIX_FMT_BAYER_RGGB16LE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, little-endian + AV_PIX_FMT_BAYER_RGGB16BE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, big-endian + AV_PIX_FMT_BAYER_GBRG16LE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, little-endian + AV_PIX_FMT_BAYER_GBRG16BE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian + AV_PIX_FMT_BAYER_GRBG16LE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian + AV_PIX_FMT_BAYER_GRBG16BE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian + + AV_PIX_FMT_YUV440P10LE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian + AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian + AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian + AV_PIX_FMT_YUV440P12BE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian + AV_PIX_FMT_AYUV64LE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), little-endian + AV_PIX_FMT_AYUV64BE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), big-endian + + AV_PIX_FMT_VIDEOTOOLBOX, ///< hardware decoding through Videotoolbox + + AV_PIX_FMT_P010LE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian + AV_PIX_FMT_P010BE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, big-endian + + AV_PIX_FMT_GBRAP12BE, ///< planar GBR 4:4:4:4 48bpp, big-endian + AV_PIX_FMT_GBRAP12LE, ///< planar GBR 4:4:4:4 48bpp, little-endian + + AV_PIX_FMT_GBRAP10BE, ///< planar GBR 4:4:4:4 40bpp, big-endian + AV_PIX_FMT_GBRAP10LE, ///< planar GBR 4:4:4:4 40bpp, little-endian + + AV_PIX_FMT_MEDIACODEC, ///< hardware decoding through MediaCodec + + AV_PIX_FMT_GRAY12BE, ///< Y , 12bpp, big-endian + AV_PIX_FMT_GRAY12LE, ///< Y , 12bpp, little-endian + AV_PIX_FMT_GRAY10BE, ///< Y , 10bpp, big-endian + AV_PIX_FMT_GRAY10LE, ///< Y , 10bpp, little-endian + + AV_PIX_FMT_P016LE, ///< like NV12, with 16bpp per component, little-endian + AV_PIX_FMT_P016BE, ///< like NV12, with 16bpp per component, big-endian + + /** + * Hardware surfaces for Direct3D11. + * + * This is preferred over the legacy AV_PIX_FMT_D3D11VA_VLD. The new D3D11 + * hwaccel API and filtering support AV_PIX_FMT_D3D11 only. + * + * data[0] contains a ID3D11Texture2D pointer, and data[1] contains the + * texture array index of the frame as intptr_t if the ID3D11Texture2D is + * an array texture (or always 0 if it's a normal texture). + */ + AV_PIX_FMT_D3D11, + + AV_PIX_FMT_GRAY9BE, ///< Y , 9bpp, big-endian + AV_PIX_FMT_GRAY9LE, ///< Y , 9bpp, little-endian + + AV_PIX_FMT_GBRPF32BE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, big-endian + AV_PIX_FMT_GBRPF32LE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, little-endian + AV_PIX_FMT_GBRAPF32BE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, big-endian + AV_PIX_FMT_GBRAPF32LE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, little-endian + + /** + * DRM-managed buffers exposed through PRIME buffer sharing. + * + * data[0] points to an AVDRMFrameDescriptor. + */ + AV_PIX_FMT_DRM_PRIME, + /** + * Hardware surfaces for OpenCL. + * + * data[i] contain 2D image objects (typed in C as cl_mem, used + * in OpenCL as image2d_t) for each plane of the surface. + */ + AV_PIX_FMT_OPENCL, + + AV_PIX_FMT_GRAY14BE, ///< Y , 14bpp, big-endian + AV_PIX_FMT_GRAY14LE, ///< Y , 14bpp, little-endian + + AV_PIX_FMT_GRAYF32BE, ///< IEEE-754 single precision Y, 32bpp, big-endian + AV_PIX_FMT_GRAYF32LE, ///< IEEE-754 single precision Y, 32bpp, little-endian + + AV_PIX_FMT_YUVA422P12BE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), 12b alpha, big-endian + AV_PIX_FMT_YUVA422P12LE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), 12b alpha, little-endian + AV_PIX_FMT_YUVA444P12BE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), 12b alpha, big-endian + AV_PIX_FMT_YUVA444P12LE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), 12b alpha, little-endian + + AV_PIX_FMT_NV24, ///< planar YUV 4:4:4, 24bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V) + AV_PIX_FMT_NV42, ///< as above, but U and V bytes are swapped + + /** + * Vulkan hardware images. + * + * data[0] points to an AVVkFrame + */ + AV_PIX_FMT_VULKAN, + + AV_PIX_FMT_Y210BE, ///< packed YUV 4:2:2 like YUYV422, 20bpp, data in the high bits, big-endian + AV_PIX_FMT_Y210LE, ///< packed YUV 4:2:2 like YUYV422, 20bpp, data in the high bits, little-endian + + AV_PIX_FMT_X2RGB10LE, ///< packed RGB 10:10:10, 30bpp, (msb)2X 10R 10G 10B(lsb), little-endian, X=unused/undefined + AV_PIX_FMT_X2RGB10BE, ///< packed RGB 10:10:10, 30bpp, (msb)2X 10R 10G 10B(lsb), big-endian, X=unused/undefined + AV_PIX_FMT_X2BGR10LE, ///< packed BGR 10:10:10, 30bpp, (msb)2X 10B 10G 10R(lsb), little-endian, X=unused/undefined + AV_PIX_FMT_X2BGR10BE, ///< packed BGR 10:10:10, 30bpp, (msb)2X 10B 10G 10R(lsb), big-endian, X=unused/undefined + + AV_PIX_FMT_P210BE, ///< interleaved chroma YUV 4:2:2, 20bpp, data in the high bits, big-endian + AV_PIX_FMT_P210LE, ///< interleaved chroma YUV 4:2:2, 20bpp, data in the high bits, little-endian + + AV_PIX_FMT_P410BE, ///< interleaved chroma YUV 4:4:4, 30bpp, data in the high bits, big-endian + AV_PIX_FMT_P410LE, ///< interleaved chroma YUV 4:4:4, 30bpp, data in the high bits, little-endian + + AV_PIX_FMT_P216BE, ///< interleaved chroma YUV 4:2:2, 32bpp, big-endian + AV_PIX_FMT_P216LE, ///< interleaved chroma YUV 4:2:2, 32bpp, little-endian + + AV_PIX_FMT_P416BE, ///< interleaved chroma YUV 4:4:4, 48bpp, big-endian + AV_PIX_FMT_P416LE, ///< interleaved chroma YUV 4:4:4, 48bpp, little-endian + + AV_PIX_FMT_VUYA, ///< packed VUYA 4:4:4, 32bpp, VUYAVUYA... + + AV_PIX_FMT_RGBAF16BE, ///< IEEE-754 half precision packed RGBA 16:16:16:16, 64bpp, RGBARGBA..., big-endian + AV_PIX_FMT_RGBAF16LE, ///< IEEE-754 half precision packed RGBA 16:16:16:16, 64bpp, RGBARGBA..., little-endian + + AV_PIX_FMT_VUYX, ///< packed VUYX 4:4:4, 32bpp, Variant of VUYA where alpha channel is left undefined + + AV_PIX_FMT_P012LE, ///< like NV12, with 12bpp per component, data in the high bits, zeros in the low bits, little-endian + AV_PIX_FMT_P012BE, ///< like NV12, with 12bpp per component, data in the high bits, zeros in the low bits, big-endian + + AV_PIX_FMT_Y212BE, ///< packed YUV 4:2:2 like YUYV422, 24bpp, data in the high bits, zeros in the low bits, big-endian + AV_PIX_FMT_Y212LE, ///< packed YUV 4:2:2 like YUYV422, 24bpp, data in the high bits, zeros in the low bits, little-endian + + AV_PIX_FMT_XV30BE, ///< packed XVYU 4:4:4, 32bpp, (msb)2X 10V 10Y 10U(lsb), big-endian, variant of Y410 where alpha channel is left undefined + AV_PIX_FMT_XV30LE, ///< packed XVYU 4:4:4, 32bpp, (msb)2X 10V 10Y 10U(lsb), little-endian, variant of Y410 where alpha channel is left undefined + + AV_PIX_FMT_XV36BE, ///< packed XVYU 4:4:4, 48bpp, data in the high bits, zeros in the low bits, big-endian, variant of Y412 where alpha channel is left undefined + AV_PIX_FMT_XV36LE, ///< packed XVYU 4:4:4, 48bpp, data in the high bits, zeros in the low bits, little-endian, variant of Y412 where alpha channel is left undefined + + AV_PIX_FMT_RGBF32BE, ///< IEEE-754 single precision packed RGB 32:32:32, 96bpp, RGBRGB..., big-endian + AV_PIX_FMT_RGBF32LE, ///< IEEE-754 single precision packed RGB 32:32:32, 96bpp, RGBRGB..., little-endian + + AV_PIX_FMT_RGBAF32BE, ///< IEEE-754 single precision packed RGBA 32:32:32:32, 128bpp, RGBARGBA..., big-endian + AV_PIX_FMT_RGBAF32LE, ///< IEEE-754 single precision packed RGBA 32:32:32:32, 128bpp, RGBARGBA..., little-endian + + AV_PIX_FMT_P212BE, ///< interleaved chroma YUV 4:2:2, 24bpp, data in the high bits, big-endian + AV_PIX_FMT_P212LE, ///< interleaved chroma YUV 4:2:2, 24bpp, data in the high bits, little-endian + + AV_PIX_FMT_P412BE, ///< interleaved chroma YUV 4:4:4, 36bpp, data in the high bits, big-endian + AV_PIX_FMT_P412LE, ///< interleaved chroma YUV 4:4:4, 36bpp, data in the high bits, little-endian + + AV_PIX_FMT_GBRAP14BE, ///< planar GBR 4:4:4:4 56bpp, big-endian + AV_PIX_FMT_GBRAP14LE, ///< planar GBR 4:4:4:4 56bpp, little-endian + + /** + * Hardware surfaces for Direct3D 12. + * + * data[0] points to an AVD3D12VAFrame + */ + AV_PIX_FMT_D3D12, + + AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions +}; + +#if AV_HAVE_BIGENDIAN +# define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##be +#else +# define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##le +#endif + +#define AV_PIX_FMT_RGB32 AV_PIX_FMT_NE(ARGB, BGRA) +#define AV_PIX_FMT_RGB32_1 AV_PIX_FMT_NE(RGBA, ABGR) +#define AV_PIX_FMT_BGR32 AV_PIX_FMT_NE(ABGR, RGBA) +#define AV_PIX_FMT_BGR32_1 AV_PIX_FMT_NE(BGRA, ARGB) +#define AV_PIX_FMT_0RGB32 AV_PIX_FMT_NE(0RGB, BGR0) +#define AV_PIX_FMT_0BGR32 AV_PIX_FMT_NE(0BGR, RGB0) + +#define AV_PIX_FMT_GRAY9 AV_PIX_FMT_NE(GRAY9BE, GRAY9LE) +#define AV_PIX_FMT_GRAY10 AV_PIX_FMT_NE(GRAY10BE, GRAY10LE) +#define AV_PIX_FMT_GRAY12 AV_PIX_FMT_NE(GRAY12BE, GRAY12LE) +#define AV_PIX_FMT_GRAY14 AV_PIX_FMT_NE(GRAY14BE, GRAY14LE) +#define AV_PIX_FMT_GRAY16 AV_PIX_FMT_NE(GRAY16BE, GRAY16LE) +#define AV_PIX_FMT_YA16 AV_PIX_FMT_NE(YA16BE, YA16LE) +#define AV_PIX_FMT_RGB48 AV_PIX_FMT_NE(RGB48BE, RGB48LE) +#define AV_PIX_FMT_RGB565 AV_PIX_FMT_NE(RGB565BE, RGB565LE) +#define AV_PIX_FMT_RGB555 AV_PIX_FMT_NE(RGB555BE, RGB555LE) +#define AV_PIX_FMT_RGB444 AV_PIX_FMT_NE(RGB444BE, RGB444LE) +#define AV_PIX_FMT_RGBA64 AV_PIX_FMT_NE(RGBA64BE, RGBA64LE) +#define AV_PIX_FMT_BGR48 AV_PIX_FMT_NE(BGR48BE, BGR48LE) +#define AV_PIX_FMT_BGR565 AV_PIX_FMT_NE(BGR565BE, BGR565LE) +#define AV_PIX_FMT_BGR555 AV_PIX_FMT_NE(BGR555BE, BGR555LE) +#define AV_PIX_FMT_BGR444 AV_PIX_FMT_NE(BGR444BE, BGR444LE) +#define AV_PIX_FMT_BGRA64 AV_PIX_FMT_NE(BGRA64BE, BGRA64LE) + +#define AV_PIX_FMT_YUV420P9 AV_PIX_FMT_NE(YUV420P9BE , YUV420P9LE) +#define AV_PIX_FMT_YUV422P9 AV_PIX_FMT_NE(YUV422P9BE , YUV422P9LE) +#define AV_PIX_FMT_YUV444P9 AV_PIX_FMT_NE(YUV444P9BE , YUV444P9LE) +#define AV_PIX_FMT_YUV420P10 AV_PIX_FMT_NE(YUV420P10BE, YUV420P10LE) +#define AV_PIX_FMT_YUV422P10 AV_PIX_FMT_NE(YUV422P10BE, YUV422P10LE) +#define AV_PIX_FMT_YUV440P10 AV_PIX_FMT_NE(YUV440P10BE, YUV440P10LE) +#define AV_PIX_FMT_YUV444P10 AV_PIX_FMT_NE(YUV444P10BE, YUV444P10LE) +#define AV_PIX_FMT_YUV420P12 AV_PIX_FMT_NE(YUV420P12BE, YUV420P12LE) +#define AV_PIX_FMT_YUV422P12 AV_PIX_FMT_NE(YUV422P12BE, YUV422P12LE) +#define AV_PIX_FMT_YUV440P12 AV_PIX_FMT_NE(YUV440P12BE, YUV440P12LE) +#define AV_PIX_FMT_YUV444P12 AV_PIX_FMT_NE(YUV444P12BE, YUV444P12LE) +#define AV_PIX_FMT_YUV420P14 AV_PIX_FMT_NE(YUV420P14BE, YUV420P14LE) +#define AV_PIX_FMT_YUV422P14 AV_PIX_FMT_NE(YUV422P14BE, YUV422P14LE) +#define AV_PIX_FMT_YUV444P14 AV_PIX_FMT_NE(YUV444P14BE, YUV444P14LE) +#define AV_PIX_FMT_YUV420P16 AV_PIX_FMT_NE(YUV420P16BE, YUV420P16LE) +#define AV_PIX_FMT_YUV422P16 AV_PIX_FMT_NE(YUV422P16BE, YUV422P16LE) +#define AV_PIX_FMT_YUV444P16 AV_PIX_FMT_NE(YUV444P16BE, YUV444P16LE) + +#define AV_PIX_FMT_GBRP9 AV_PIX_FMT_NE(GBRP9BE , GBRP9LE) +#define AV_PIX_FMT_GBRP10 AV_PIX_FMT_NE(GBRP10BE, GBRP10LE) +#define AV_PIX_FMT_GBRP12 AV_PIX_FMT_NE(GBRP12BE, GBRP12LE) +#define AV_PIX_FMT_GBRP14 AV_PIX_FMT_NE(GBRP14BE, GBRP14LE) +#define AV_PIX_FMT_GBRP16 AV_PIX_FMT_NE(GBRP16BE, GBRP16LE) +#define AV_PIX_FMT_GBRAP10 AV_PIX_FMT_NE(GBRAP10BE, GBRAP10LE) +#define AV_PIX_FMT_GBRAP12 AV_PIX_FMT_NE(GBRAP12BE, GBRAP12LE) +#define AV_PIX_FMT_GBRAP14 AV_PIX_FMT_NE(GBRAP14BE, GBRAP14LE) +#define AV_PIX_FMT_GBRAP16 AV_PIX_FMT_NE(GBRAP16BE, GBRAP16LE) + +#define AV_PIX_FMT_BAYER_BGGR16 AV_PIX_FMT_NE(BAYER_BGGR16BE, BAYER_BGGR16LE) +#define AV_PIX_FMT_BAYER_RGGB16 AV_PIX_FMT_NE(BAYER_RGGB16BE, BAYER_RGGB16LE) +#define AV_PIX_FMT_BAYER_GBRG16 AV_PIX_FMT_NE(BAYER_GBRG16BE, BAYER_GBRG16LE) +#define AV_PIX_FMT_BAYER_GRBG16 AV_PIX_FMT_NE(BAYER_GRBG16BE, BAYER_GRBG16LE) + +#define AV_PIX_FMT_GBRPF32 AV_PIX_FMT_NE(GBRPF32BE, GBRPF32LE) +#define AV_PIX_FMT_GBRAPF32 AV_PIX_FMT_NE(GBRAPF32BE, GBRAPF32LE) + +#define AV_PIX_FMT_GRAYF32 AV_PIX_FMT_NE(GRAYF32BE, GRAYF32LE) + +#define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE) +#define AV_PIX_FMT_YUVA422P9 AV_PIX_FMT_NE(YUVA422P9BE , YUVA422P9LE) +#define AV_PIX_FMT_YUVA444P9 AV_PIX_FMT_NE(YUVA444P9BE , YUVA444P9LE) +#define AV_PIX_FMT_YUVA420P10 AV_PIX_FMT_NE(YUVA420P10BE, YUVA420P10LE) +#define AV_PIX_FMT_YUVA422P10 AV_PIX_FMT_NE(YUVA422P10BE, YUVA422P10LE) +#define AV_PIX_FMT_YUVA444P10 AV_PIX_FMT_NE(YUVA444P10BE, YUVA444P10LE) +#define AV_PIX_FMT_YUVA422P12 AV_PIX_FMT_NE(YUVA422P12BE, YUVA422P12LE) +#define AV_PIX_FMT_YUVA444P12 AV_PIX_FMT_NE(YUVA444P12BE, YUVA444P12LE) +#define AV_PIX_FMT_YUVA420P16 AV_PIX_FMT_NE(YUVA420P16BE, YUVA420P16LE) +#define AV_PIX_FMT_YUVA422P16 AV_PIX_FMT_NE(YUVA422P16BE, YUVA422P16LE) +#define AV_PIX_FMT_YUVA444P16 AV_PIX_FMT_NE(YUVA444P16BE, YUVA444P16LE) + +#define AV_PIX_FMT_XYZ12 AV_PIX_FMT_NE(XYZ12BE, XYZ12LE) +#define AV_PIX_FMT_NV20 AV_PIX_FMT_NE(NV20BE, NV20LE) +#define AV_PIX_FMT_AYUV64 AV_PIX_FMT_NE(AYUV64BE, AYUV64LE) +#define AV_PIX_FMT_P010 AV_PIX_FMT_NE(P010BE, P010LE) +#define AV_PIX_FMT_P012 AV_PIX_FMT_NE(P012BE, P012LE) +#define AV_PIX_FMT_P016 AV_PIX_FMT_NE(P016BE, P016LE) + +#define AV_PIX_FMT_Y210 AV_PIX_FMT_NE(Y210BE, Y210LE) +#define AV_PIX_FMT_Y212 AV_PIX_FMT_NE(Y212BE, Y212LE) +#define AV_PIX_FMT_XV30 AV_PIX_FMT_NE(XV30BE, XV30LE) +#define AV_PIX_FMT_XV36 AV_PIX_FMT_NE(XV36BE, XV36LE) +#define AV_PIX_FMT_X2RGB10 AV_PIX_FMT_NE(X2RGB10BE, X2RGB10LE) +#define AV_PIX_FMT_X2BGR10 AV_PIX_FMT_NE(X2BGR10BE, X2BGR10LE) + +#define AV_PIX_FMT_P210 AV_PIX_FMT_NE(P210BE, P210LE) +#define AV_PIX_FMT_P410 AV_PIX_FMT_NE(P410BE, P410LE) +#define AV_PIX_FMT_P212 AV_PIX_FMT_NE(P212BE, P212LE) +#define AV_PIX_FMT_P412 AV_PIX_FMT_NE(P412BE, P412LE) +#define AV_PIX_FMT_P216 AV_PIX_FMT_NE(P216BE, P216LE) +#define AV_PIX_FMT_P416 AV_PIX_FMT_NE(P416BE, P416LE) + +#define AV_PIX_FMT_RGBAF16 AV_PIX_FMT_NE(RGBAF16BE, RGBAF16LE) + +#define AV_PIX_FMT_RGBF32 AV_PIX_FMT_NE(RGBF32BE, RGBF32LE) +#define AV_PIX_FMT_RGBAF32 AV_PIX_FMT_NE(RGBAF32BE, RGBAF32LE) + +/** + * Chromaticity coordinates of the source primaries. + * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.1 and ITU-T H.273. + */ +enum AVColorPrimaries { + AVCOL_PRI_RESERVED0 = 0, + AVCOL_PRI_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP 177 Annex B + AVCOL_PRI_UNSPECIFIED = 2, + AVCOL_PRI_RESERVED = 3, + AVCOL_PRI_BT470M = 4, ///< also FCC Title 47 Code of Federal Regulations 73.682 (a)(20) + + AVCOL_PRI_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM + AVCOL_PRI_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC + AVCOL_PRI_SMPTE240M = 7, ///< identical to above, also called "SMPTE C" even though it uses D65 + AVCOL_PRI_FILM = 8, ///< colour filters using Illuminant C + AVCOL_PRI_BT2020 = 9, ///< ITU-R BT2020 + AVCOL_PRI_SMPTE428 = 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ) + AVCOL_PRI_SMPTEST428_1 = AVCOL_PRI_SMPTE428, + AVCOL_PRI_SMPTE431 = 11, ///< SMPTE ST 431-2 (2011) / DCI P3 + AVCOL_PRI_SMPTE432 = 12, ///< SMPTE ST 432-1 (2010) / P3 D65 / Display P3 + AVCOL_PRI_EBU3213 = 22, ///< EBU Tech. 3213-E (nothing there) / one of JEDEC P22 group phosphors + AVCOL_PRI_JEDEC_P22 = AVCOL_PRI_EBU3213, + AVCOL_PRI_NB ///< Not part of ABI +}; + +/** + * Color Transfer Characteristic. + * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.2. + */ +enum AVColorTransferCharacteristic { + AVCOL_TRC_RESERVED0 = 0, + AVCOL_TRC_BT709 = 1, ///< also ITU-R BT1361 + AVCOL_TRC_UNSPECIFIED = 2, + AVCOL_TRC_RESERVED = 3, + AVCOL_TRC_GAMMA22 = 4, ///< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM + AVCOL_TRC_GAMMA28 = 5, ///< also ITU-R BT470BG + AVCOL_TRC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC + AVCOL_TRC_SMPTE240M = 7, + AVCOL_TRC_LINEAR = 8, ///< "Linear transfer characteristics" + AVCOL_TRC_LOG = 9, ///< "Logarithmic transfer characteristic (100:1 range)" + AVCOL_TRC_LOG_SQRT = 10, ///< "Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)" + AVCOL_TRC_IEC61966_2_4 = 11, ///< IEC 61966-2-4 + AVCOL_TRC_BT1361_ECG = 12, ///< ITU-R BT1361 Extended Colour Gamut + AVCOL_TRC_IEC61966_2_1 = 13, ///< IEC 61966-2-1 (sRGB or sYCC) + AVCOL_TRC_BT2020_10 = 14, ///< ITU-R BT2020 for 10-bit system + AVCOL_TRC_BT2020_12 = 15, ///< ITU-R BT2020 for 12-bit system + AVCOL_TRC_SMPTE2084 = 16, ///< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems + AVCOL_TRC_SMPTEST2084 = AVCOL_TRC_SMPTE2084, + AVCOL_TRC_SMPTE428 = 17, ///< SMPTE ST 428-1 + AVCOL_TRC_SMPTEST428_1 = AVCOL_TRC_SMPTE428, + AVCOL_TRC_ARIB_STD_B67 = 18, ///< ARIB STD-B67, known as "Hybrid log-gamma" + AVCOL_TRC_NB ///< Not part of ABI +}; + +/** + * YUV colorspace type. + * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.3. + */ +enum AVColorSpace { + AVCOL_SPC_RGB = 0, ///< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB), YZX and ST 428-1 + AVCOL_SPC_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / derived in SMPTE RP 177 Annex B + AVCOL_SPC_UNSPECIFIED = 2, + AVCOL_SPC_RESERVED = 3, ///< reserved for future use by ITU-T and ISO/IEC just like 15-255 are + AVCOL_SPC_FCC = 4, ///< FCC Title 47 Code of Federal Regulations 73.682 (a)(20) + AVCOL_SPC_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601 + AVCOL_SPC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC / functionally identical to above + AVCOL_SPC_SMPTE240M = 7, ///< derived from 170M primaries and D65 white point, 170M is derived from BT470 System M's primaries + AVCOL_SPC_YCGCO = 8, ///< used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16 + AVCOL_SPC_YCOCG = AVCOL_SPC_YCGCO, + AVCOL_SPC_BT2020_NCL = 9, ///< ITU-R BT2020 non-constant luminance system + AVCOL_SPC_BT2020_CL = 10, ///< ITU-R BT2020 constant luminance system + AVCOL_SPC_SMPTE2085 = 11, ///< SMPTE 2085, Y'D'zD'x + AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system + AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system + AVCOL_SPC_ICTCP = 14, ///< ITU-R BT.2100-0, ICtCp + AVCOL_SPC_IPT_C2 = 15, ///< SMPTE ST 2128, IPT-C2 + AVCOL_SPC_YCGCO_RE = 16, ///< YCgCo-R, even addition of bits + AVCOL_SPC_YCGCO_RO = 17, ///< YCgCo-R, odd addition of bits + AVCOL_SPC_NB ///< Not part of ABI +}; + +/** + * Visual content value range. + * + * These values are based on definitions that can be found in multiple + * specifications, such as ITU-T BT.709 (3.4 - Quantization of RGB, luminance + * and colour-difference signals), ITU-T BT.2020 (Table 5 - Digital + * Representation) as well as ITU-T BT.2100 (Table 9 - Digital 10- and 12-bit + * integer representation). At the time of writing, the BT.2100 one is + * recommended, as it also defines the full range representation. + * + * Common definitions: + * - For RGB and luma planes such as Y in YCbCr and I in ICtCp, + * 'E' is the original value in range of 0.0 to 1.0. + * - For chroma planes such as Cb,Cr and Ct,Cp, 'E' is the original + * value in range of -0.5 to 0.5. + * - 'n' is the output bit depth. + * - For additional definitions such as rounding and clipping to valid n + * bit unsigned integer range, please refer to BT.2100 (Table 9). + */ +enum AVColorRange { + AVCOL_RANGE_UNSPECIFIED = 0, + + /** + * Narrow or limited range content. + * + * - For luma planes: + * + * (219 * E + 16) * 2^(n-8) + * + * F.ex. the range of 16-235 for 8 bits + * + * - For chroma planes: + * + * (224 * E + 128) * 2^(n-8) + * + * F.ex. the range of 16-240 for 8 bits + */ + AVCOL_RANGE_MPEG = 1, + + /** + * Full range content. + * + * - For RGB and luma planes: + * + * (2^n - 1) * E + * + * F.ex. the range of 0-255 for 8 bits + * + * - For chroma planes: + * + * (2^n - 1) * E + 2^(n - 1) + * + * F.ex. the range of 1-255 for 8 bits + */ + AVCOL_RANGE_JPEG = 2, + AVCOL_RANGE_NB ///< Not part of ABI +}; + +/** + * Location of chroma samples. + * + * Illustration showing the location of the first (top left) chroma sample of the + * image, the left shows only luma, the right + * shows the location of the chroma sample, the 2 could be imagined to overlay + * each other but are drawn separately due to limitations of ASCII + * + * 1st 2nd 1st 2nd horizontal luma sample positions + * v v v v + * ______ ______ + *1st luma line > |X X ... |3 4 X ... X are luma samples, + * | |1 2 1-6 are possible chroma positions + *2nd luma line > |X X ... |5 6 X ... 0 is undefined/unknown position + */ +enum AVChromaLocation { + AVCHROMA_LOC_UNSPECIFIED = 0, + AVCHROMA_LOC_LEFT = 1, ///< MPEG-2/4 4:2:0, H.264 default for 4:2:0 + AVCHROMA_LOC_CENTER = 2, ///< MPEG-1 4:2:0, JPEG 4:2:0, H.263 4:2:0 + AVCHROMA_LOC_TOPLEFT = 3, ///< ITU-R 601, SMPTE 274M 296M S314M(DV 4:1:1), mpeg2 4:2:2 + AVCHROMA_LOC_TOP = 4, + AVCHROMA_LOC_BOTTOMLEFT = 5, + AVCHROMA_LOC_BOTTOM = 6, + AVCHROMA_LOC_NB ///< Not part of ABI +}; + +#endif /* AVUTIL_PIXFMT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/random_seed.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/random_seed.h new file mode 100644 index 00000000..8a47be96 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/random_seed.h @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2009 Baptiste Coudurier + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_RANDOM_SEED_H +#define AVUTIL_RANDOM_SEED_H + +#include +#include +/** + * @addtogroup lavu_crypto + * @{ + */ + +/** + * Get a seed to use in conjunction with random functions. + * This function tries to provide a good seed at a best effort bases. + * Its possible to call this function multiple times if more bits are needed. + * It can be quite slow, which is why it should only be used as seed for a faster + * PRNG. The quality of the seed depends on the platform. + */ +uint32_t av_get_random_seed(void); + +/** + * Generate cryptographically secure random data, i.e. suitable for use as + * encryption keys and similar. + * + * @param buf buffer into which the random data will be written + * @param len size of buf in bytes + * + * @retval 0 success, len bytes of random data was written + * into buf + * @retval "a negative AVERROR code" random data could not be generated + */ +int av_random_bytes(uint8_t *buf, size_t len); + +/** + * @} + */ + +#endif /* AVUTIL_RANDOM_SEED_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/rational.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/rational.h new file mode 100644 index 00000000..849f47f3 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/rational.h @@ -0,0 +1,225 @@ +/* + * rational numbers + * Copyright (c) 2003 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_math_rational + * Utilties for rational number calculation. + * @author Michael Niedermayer + */ + +#ifndef AVUTIL_RATIONAL_H +#define AVUTIL_RATIONAL_H + +#include +#include +#include "attributes.h" + +/** + * @defgroup lavu_math_rational AVRational + * @ingroup lavu_math + * Rational number calculation. + * + * While rational numbers can be expressed as floating-point numbers, the + * conversion process is a lossy one, so are floating-point operations. On the + * other hand, the nature of FFmpeg demands highly accurate calculation of + * timestamps. This set of rational number utilities serves as a generic + * interface for manipulating rational numbers as pairs of numerators and + * denominators. + * + * Many of the functions that operate on AVRational's have the suffix `_q`, in + * reference to the mathematical symbol "ℚ" (Q) which denotes the set of all + * rational numbers. + * + * @{ + */ + +/** + * Rational number (pair of numerator and denominator). + */ +typedef struct AVRational{ + int num; ///< Numerator + int den; ///< Denominator +} AVRational; + +/** + * Create an AVRational. + * + * Useful for compilers that do not support compound literals. + * + * @note The return value is not reduced. + * @see av_reduce() + */ +static inline AVRational av_make_q(int num, int den) +{ + AVRational r = { num, den }; + return r; +} + +/** + * Compare two rationals. + * + * @param a First rational + * @param b Second rational + * + * @return One of the following values: + * - 0 if `a == b` + * - 1 if `a > b` + * - -1 if `a < b` + * - `INT_MIN` if one of the values is of the form `0 / 0` + */ +static inline int av_cmp_q(AVRational a, AVRational b){ + const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den; + + if(tmp) return (int)((tmp ^ a.den ^ b.den)>>63)|1; + else if(b.den && a.den) return 0; + else if(a.num && b.num) return (a.num>>31) - (b.num>>31); + else return INT_MIN; +} + +/** + * Convert an AVRational to a `double`. + * @param a AVRational to convert + * @return `a` in floating-point form + * @see av_d2q() + */ +static inline double av_q2d(AVRational a){ + return a.num / (double) a.den; +} + +/** + * Reduce a fraction. + * + * This is useful for framerate calculations. + * + * @param[out] dst_num Destination numerator + * @param[out] dst_den Destination denominator + * @param[in] num Source numerator + * @param[in] den Source denominator + * @param[in] max Maximum allowed values for `dst_num` & `dst_den` + * @return 1 if the operation is exact, 0 otherwise + */ +int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max); + +/** + * Multiply two rationals. + * @param b First rational + * @param c Second rational + * @return b*c + */ +AVRational av_mul_q(AVRational b, AVRational c) av_const; + +/** + * Divide one rational by another. + * @param b First rational + * @param c Second rational + * @return b/c + */ +AVRational av_div_q(AVRational b, AVRational c) av_const; + +/** + * Add two rationals. + * @param b First rational + * @param c Second rational + * @return b+c + */ +AVRational av_add_q(AVRational b, AVRational c) av_const; + +/** + * Subtract one rational from another. + * @param b First rational + * @param c Second rational + * @return b-c + */ +AVRational av_sub_q(AVRational b, AVRational c) av_const; + +/** + * Invert a rational. + * @param q value + * @return 1 / q + */ +static av_always_inline AVRational av_inv_q(AVRational q) +{ + AVRational r = { q.den, q.num }; + return r; +} + +/** + * Convert a double precision floating point number to a rational. + * + * In case of infinity, the returned value is expressed as `{1, 0}` or + * `{-1, 0}` depending on the sign. + * + * In general rational numbers with |num| <= 1<<26 && |den| <= 1<<26 + * can be recovered exactly from their double representation. + * (no exceptions were found within 1B random ones) + * + * @param d `double` to convert + * @param max Maximum allowed numerator and denominator + * @return `d` in AVRational form + * @see av_q2d() + */ +AVRational av_d2q(double d, int max) av_const; + +/** + * Find which of the two rationals is closer to another rational. + * + * @param q Rational to be compared against + * @param q1 Rational to be tested + * @param q2 Rational to be tested + * @return One of the following values: + * - 1 if `q1` is nearer to `q` than `q2` + * - -1 if `q2` is nearer to `q` than `q1` + * - 0 if they have the same distance + */ +int av_nearer_q(AVRational q, AVRational q1, AVRational q2); + +/** + * Find the value in a list of rationals nearest a given reference rational. + * + * @param q Reference rational + * @param q_list Array of rationals terminated by `{0, 0}` + * @return Index of the nearest value found in the array + */ +int av_find_nearest_q_idx(AVRational q, const AVRational* q_list); + +/** + * Convert an AVRational to a IEEE 32-bit `float` expressed in fixed-point + * format. + * + * @param q Rational to be converted + * @return Equivalent floating-point value, expressed as an unsigned 32-bit + * integer. + * @note The returned value is platform-indepedant. + */ +uint32_t av_q2intfloat(AVRational q); + +/** + * Return the best rational so that a and b are multiple of it. + * If the resulting denominator is larger than max_den, return def. + */ +AVRational av_gcd_q(AVRational a, AVRational b, int max_den, AVRational def); + +/** + * @} + */ + +#endif /* AVUTIL_RATIONAL_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/rc4.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/rc4.h new file mode 100644 index 00000000..bf0ca6e9 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/rc4.h @@ -0,0 +1,69 @@ +/* + * RC4 encryption/decryption/pseudo-random number generator + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_RC4_H +#define AVUTIL_RC4_H + +#include + +/** + * @defgroup lavu_rc4 RC4 + * @ingroup lavu_crypto + * @{ + */ + +typedef struct AVRC4 { + uint8_t state[256]; + int x, y; +} AVRC4; + +/** + * Allocate an AVRC4 context. + */ +AVRC4 *av_rc4_alloc(void); + +/** + * @brief Initializes an AVRC4 context. + * + * @param d pointer to the AVRC4 context + * @param key buffer containig the key + * @param key_bits must be a multiple of 8 + * @param decrypt 0 for encryption, 1 for decryption, currently has no effect + * @return zero on success, negative value otherwise + */ +int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt); + +/** + * @brief Encrypts / decrypts using the RC4 algorithm. + * + * @param d pointer to the AVRC4 context + * @param count number of bytes + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst, may be NULL + * @param iv not (yet) used for RC4, should be NULL + * @param decrypt 0 for encryption, 1 for decryption, not (yet) used + */ +void av_rc4_crypt(struct AVRC4 *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_RC4_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/replaygain.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/replaygain.h new file mode 100644 index 00000000..b49bf1a3 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/replaygain.h @@ -0,0 +1,50 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_REPLAYGAIN_H +#define AVUTIL_REPLAYGAIN_H + +#include + +/** + * ReplayGain information (see + * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification). + * The size of this struct is a part of the public ABI. + */ +typedef struct AVReplayGain { + /** + * Track replay gain in microbels (divide by 100000 to get the value in dB). + * Should be set to INT32_MIN when unknown. + */ + int32_t track_gain; + /** + * Peak track amplitude, with 100000 representing full scale (but values + * may overflow). 0 when unknown. + */ + uint32_t track_peak; + /** + * Same as track_gain, but for the whole album. + */ + int32_t album_gain; + /** + * Same as track_peak, but for the whole album, + */ + uint32_t album_peak; +} AVReplayGain; + +#endif /* AVUTIL_REPLAYGAIN_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/ripemd.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/ripemd.h new file mode 100644 index 00000000..9df9f905 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/ripemd.h @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2007 Michael Niedermayer + * Copyright (C) 2013 James Almer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_ripemd + * Public header for RIPEMD hash function implementation. + */ + +#ifndef AVUTIL_RIPEMD_H +#define AVUTIL_RIPEMD_H + +#include +#include + +#include "attributes.h" + +/** + * @defgroup lavu_ripemd RIPEMD + * @ingroup lavu_hash + * RIPEMD hash function implementation. + * + * @{ + */ + +extern const int av_ripemd_size; + +struct AVRIPEMD; + +/** + * Allocate an AVRIPEMD context. + */ +struct AVRIPEMD *av_ripemd_alloc(void); + +/** + * Initialize RIPEMD hashing. + * + * @param context pointer to the function context (of size av_ripemd_size) + * @param bits number of bits in digest (128, 160, 256 or 320 bits) + * @return zero if initialization succeeded, -1 otherwise + */ +int av_ripemd_init(struct AVRIPEMD* context, int bits); + +/** + * Update hash value. + * + * @param context hash function context + * @param data input data to update hash with + * @param len input data length + */ +void av_ripemd_update(struct AVRIPEMD* context, const uint8_t* data, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param context hash function context + * @param digest buffer where output digest value is stored + */ +void av_ripemd_final(struct AVRIPEMD* context, uint8_t *digest); + +/** + * @} + */ + +#endif /* AVUTIL_RIPEMD_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/samplefmt.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/samplefmt.h new file mode 100644 index 00000000..43a57a42 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/samplefmt.h @@ -0,0 +1,269 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_SAMPLEFMT_H +#define AVUTIL_SAMPLEFMT_H + +#include + +/** + * @addtogroup lavu_audio + * @{ + * + * @defgroup lavu_sampfmts Audio sample formats + * + * Audio sample format enumeration and related convenience functions. + * @{ + */ + +/** + * Audio sample formats + * + * - The data described by the sample format is always in native-endian order. + * Sample values can be expressed by native C types, hence the lack of a signed + * 24-bit sample format even though it is a common raw audio data format. + * + * - The floating-point formats are based on full volume being in the range + * [-1.0, 1.0]. Any values outside this range are beyond full volume level. + * + * - The data layout as used in av_samples_fill_arrays() and elsewhere in FFmpeg + * (such as AVFrame in libavcodec) is as follows: + * + * @par + * For planar sample formats, each audio channel is in a separate data plane, + * and linesize is the buffer size, in bytes, for a single plane. All data + * planes must be the same size. For packed sample formats, only the first data + * plane is used, and samples for each channel are interleaved. In this case, + * linesize is the buffer size, in bytes, for the 1 plane. + * + */ +enum AVSampleFormat { + AV_SAMPLE_FMT_NONE = -1, + AV_SAMPLE_FMT_U8, ///< unsigned 8 bits + AV_SAMPLE_FMT_S16, ///< signed 16 bits + AV_SAMPLE_FMT_S32, ///< signed 32 bits + AV_SAMPLE_FMT_FLT, ///< float + AV_SAMPLE_FMT_DBL, ///< double + + AV_SAMPLE_FMT_U8P, ///< unsigned 8 bits, planar + AV_SAMPLE_FMT_S16P, ///< signed 16 bits, planar + AV_SAMPLE_FMT_S32P, ///< signed 32 bits, planar + AV_SAMPLE_FMT_FLTP, ///< float, planar + AV_SAMPLE_FMT_DBLP, ///< double, planar + AV_SAMPLE_FMT_S64, ///< signed 64 bits + AV_SAMPLE_FMT_S64P, ///< signed 64 bits, planar + + AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically +}; + +/** + * Return the name of sample_fmt, or NULL if sample_fmt is not + * recognized. + */ +const char *av_get_sample_fmt_name(enum AVSampleFormat sample_fmt); + +/** + * Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE + * on error. + */ +enum AVSampleFormat av_get_sample_fmt(const char *name); + +/** + * Return the planar<->packed alternative form of the given sample format, or + * AV_SAMPLE_FMT_NONE on error. If the passed sample_fmt is already in the + * requested planar/packed format, the format returned is the same as the + * input. + */ +enum AVSampleFormat av_get_alt_sample_fmt(enum AVSampleFormat sample_fmt, int planar); + +/** + * Get the packed alternative form of the given sample format. + * + * If the passed sample_fmt is already in packed format, the format returned is + * the same as the input. + * + * @return the packed alternative form of the given sample format or + AV_SAMPLE_FMT_NONE on error. + */ +enum AVSampleFormat av_get_packed_sample_fmt(enum AVSampleFormat sample_fmt); + +/** + * Get the planar alternative form of the given sample format. + * + * If the passed sample_fmt is already in planar format, the format returned is + * the same as the input. + * + * @return the planar alternative form of the given sample format or + AV_SAMPLE_FMT_NONE on error. + */ +enum AVSampleFormat av_get_planar_sample_fmt(enum AVSampleFormat sample_fmt); + +/** + * Generate a string corresponding to the sample format with + * sample_fmt, or a header if sample_fmt is negative. + * + * @param buf the buffer where to write the string + * @param buf_size the size of buf + * @param sample_fmt the number of the sample format to print the + * corresponding info string, or a negative value to print the + * corresponding header. + * @return the pointer to the filled buffer or NULL if sample_fmt is + * unknown or in case of other errors + */ +char *av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt); + +/** + * Return number of bytes per sample. + * + * @param sample_fmt the sample format + * @return number of bytes per sample or zero if unknown for the given + * sample format + */ +int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt); + +/** + * Check if the sample format is planar. + * + * @param sample_fmt the sample format to inspect + * @return 1 if the sample format is planar, 0 if it is interleaved + */ +int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt); + +/** + * Get the required buffer size for the given audio parameters. + * + * @param[out] linesize calculated linesize, may be NULL + * @param nb_channels the number of channels + * @param nb_samples the number of samples in a single channel + * @param sample_fmt the sample format + * @param align buffer size alignment (0 = default, 1 = no alignment) + * @return required buffer size, or negative error code on failure + */ +int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples, + enum AVSampleFormat sample_fmt, int align); + +/** + * @} + * + * @defgroup lavu_sampmanip Samples manipulation + * + * Functions that manipulate audio samples + * @{ + */ + +/** + * Fill plane data pointers and linesize for samples with sample + * format sample_fmt. + * + * The audio_data array is filled with the pointers to the samples data planes: + * for planar, set the start point of each channel's data within the buffer, + * for packed, set the start point of the entire buffer only. + * + * The value pointed to by linesize is set to the aligned size of each + * channel's data buffer for planar layout, or to the aligned size of the + * buffer for all channels for packed layout. + * + * The buffer in buf must be big enough to contain all the samples + * (use av_samples_get_buffer_size() to compute its minimum size), + * otherwise the audio_data pointers will point to invalid data. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param[out] audio_data array to be filled with the pointer for each channel + * @param[out] linesize calculated linesize, may be NULL + * @param buf the pointer to a buffer containing the samples + * @param nb_channels the number of channels + * @param nb_samples the number of samples in a single channel + * @param sample_fmt the sample format + * @param align buffer size alignment (0 = default, 1 = no alignment) + * @return minimum size in bytes required for the buffer on success, + * or a negative error code on failure + */ +int av_samples_fill_arrays(uint8_t **audio_data, int *linesize, + const uint8_t *buf, + int nb_channels, int nb_samples, + enum AVSampleFormat sample_fmt, int align); + +/** + * Allocate a samples buffer for nb_samples samples, and fill data pointers and + * linesize accordingly. + * The allocated samples buffer can be freed by using av_freep(&audio_data[0]) + * Allocated data will be initialized to silence. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param[out] audio_data array to be filled with the pointer for each channel + * @param[out] linesize aligned size for audio buffer(s), may be NULL + * @param nb_channels number of audio channels + * @param nb_samples number of samples per channel + * @param sample_fmt the sample format + * @param align buffer size alignment (0 = default, 1 = no alignment) + * @return >=0 on success or a negative error code on failure + * @todo return the size of the allocated buffer in case of success at the next bump + * @see av_samples_fill_arrays() + * @see av_samples_alloc_array_and_samples() + */ +int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels, + int nb_samples, enum AVSampleFormat sample_fmt, int align); + +/** + * Allocate a data pointers array, samples buffer for nb_samples + * samples, and fill data pointers and linesize accordingly. + * + * This is the same as av_samples_alloc(), but also allocates the data + * pointers array. + * + * @see av_samples_alloc() + */ +int av_samples_alloc_array_and_samples(uint8_t ***audio_data, int *linesize, int nb_channels, + int nb_samples, enum AVSampleFormat sample_fmt, int align); + +/** + * Copy samples from src to dst. + * + * @param dst destination array of pointers to data planes + * @param src source array of pointers to data planes + * @param dst_offset offset in samples at which the data will be written to dst + * @param src_offset offset in samples at which the data will be read from src + * @param nb_samples number of samples to be copied + * @param nb_channels number of audio channels + * @param sample_fmt audio sample format + */ +int av_samples_copy(uint8_t * const *dst, uint8_t * const *src, int dst_offset, + int src_offset, int nb_samples, int nb_channels, + enum AVSampleFormat sample_fmt); + +/** + * Fill an audio buffer with silence. + * + * @param audio_data array of pointers to data planes + * @param offset offset in samples at which to start filling + * @param nb_samples number of samples to fill + * @param nb_channels number of audio channels + * @param sample_fmt audio sample format + */ +int av_samples_set_silence(uint8_t * const *audio_data, int offset, int nb_samples, + int nb_channels, enum AVSampleFormat sample_fmt); + +/** + * @} + * @} + */ +#endif /* AVUTIL_SAMPLEFMT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/sha.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/sha.h new file mode 100644 index 00000000..2e1220ab --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/sha.h @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2007 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_sha + * Public header for SHA-1 & SHA-256 hash function implementations. + */ + +#ifndef AVUTIL_SHA_H +#define AVUTIL_SHA_H + +#include +#include + +#include "attributes.h" + +/** + * @defgroup lavu_sha SHA + * @ingroup lavu_hash + * SHA-1 and SHA-256 (Secure Hash Algorithm) hash function implementations. + * + * This module supports the following SHA hash functions: + * + * - SHA-1: 160 bits + * - SHA-224: 224 bits, as a variant of SHA-2 + * - SHA-256: 256 bits, as a variant of SHA-2 + * + * @see For SHA-384, SHA-512, and variants thereof, see @ref lavu_sha512. + * + * @{ + */ + +extern const int av_sha_size; + +struct AVSHA; + +/** + * Allocate an AVSHA context. + */ +struct AVSHA *av_sha_alloc(void); + +/** + * Initialize SHA-1 or SHA-2 hashing. + * + * @param context pointer to the function context (of size av_sha_size) + * @param bits number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits) + * @return zero if initialization succeeded, -1 otherwise + */ +int av_sha_init(struct AVSHA* context, int bits); + +/** + * Update hash value. + * + * @param ctx hash function context + * @param data input data to update hash with + * @param len input data length + */ +void av_sha_update(struct AVSHA *ctx, const uint8_t *data, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param context hash function context + * @param digest buffer where output digest value is stored + */ +void av_sha_final(struct AVSHA* context, uint8_t *digest); + +/** + * @} + */ + +#endif /* AVUTIL_SHA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/sha512.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/sha512.h new file mode 100644 index 00000000..a4a3f23d --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/sha512.h @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2007 Michael Niedermayer + * Copyright (C) 2013 James Almer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_sha512 + * Public header for SHA-512 implementation. + */ + +#ifndef AVUTIL_SHA512_H +#define AVUTIL_SHA512_H + +#include +#include + +#include "attributes.h" + +/** + * @defgroup lavu_sha512 SHA-512 + * @ingroup lavu_hash + * SHA-512 (Secure Hash Algorithm) hash function implementations. + * + * This module supports the following SHA-2 hash functions: + * + * - SHA-512/224: 224 bits + * - SHA-512/256: 256 bits + * - SHA-384: 384 bits + * - SHA-512: 512 bits + * + * @see For SHA-1, SHA-256, and variants thereof, see @ref lavu_sha. + * + * @{ + */ + +extern const int av_sha512_size; + +struct AVSHA512; + +/** + * Allocate an AVSHA512 context. + */ +struct AVSHA512 *av_sha512_alloc(void); + +/** + * Initialize SHA-2 512 hashing. + * + * @param context pointer to the function context (of size av_sha512_size) + * @param bits number of bits in digest (224, 256, 384 or 512 bits) + * @return zero if initialization succeeded, -1 otherwise + */ +int av_sha512_init(struct AVSHA512* context, int bits); + +/** + * Update hash value. + * + * @param context hash function context + * @param data input data to update hash with + * @param len input data length + */ +void av_sha512_update(struct AVSHA512* context, const uint8_t* data, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param context hash function context + * @param digest buffer where output digest value is stored + */ +void av_sha512_final(struct AVSHA512* context, uint8_t *digest); + +/** + * @} + */ + +#endif /* AVUTIL_SHA512_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/spherical.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/spherical.h new file mode 100644 index 00000000..2e90f775 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/spherical.h @@ -0,0 +1,243 @@ +/* + * Copyright (c) 2016 Vittorio Giovara + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_video_spherical + * Spherical video + */ + +#ifndef AVUTIL_SPHERICAL_H +#define AVUTIL_SPHERICAL_H + +#include +#include + +/** + * @defgroup lavu_video_spherical Spherical video mapping + * @ingroup lavu_video + * + * A spherical video file contains surfaces that need to be mapped onto a + * sphere. Depending on how the frame was converted, a different distortion + * transformation or surface recomposition function needs to be applied before + * the video should be mapped and displayed. + * @{ + */ + +/** + * Projection of the video surface(s) on a sphere. + */ +enum AVSphericalProjection { + /** + * Video represents a sphere mapped on a flat surface using + * equirectangular projection. + */ + AV_SPHERICAL_EQUIRECTANGULAR, + + /** + * Video frame is split into 6 faces of a cube, and arranged on a + * 3x2 layout. Faces are oriented upwards for the front, left, right, + * and back faces. The up face is oriented so the top of the face is + * forwards and the down face is oriented so the top of the face is + * to the back. + */ + AV_SPHERICAL_CUBEMAP, + + /** + * Video represents a portion of a sphere mapped on a flat surface + * using equirectangular projection. The @ref bounding fields indicate + * the position of the current video in a larger surface. + */ + AV_SPHERICAL_EQUIRECTANGULAR_TILE, + + /** + * Video frame displays as a 180 degree equirectangular projection. + */ + AV_SPHERICAL_HALF_EQUIRECTANGULAR, + + /** + * Video frame displays on a flat, rectangular 2D surface. + */ + AV_SPHERICAL_RECTILINEAR, + + /** + * Fisheye projection (Apple). + * See: https://developer.apple.com/documentation/coremedia/cmprojectiontype/fisheye + */ + AV_SPHERICAL_FISHEYE, +}; + +/** + * This structure describes how to handle spherical videos, outlining + * information about projection, initial layout, and any other view modifier. + * + * @note The struct must be allocated with av_spherical_alloc() and + * its size is not a part of the public ABI. + */ +typedef struct AVSphericalMapping { + /** + * Projection type. + */ + enum AVSphericalProjection projection; + + /** + * @name Initial orientation + * @{ + * There fields describe additional rotations applied to the sphere after + * the video frame is mapped onto it. The sphere is rotated around the + * viewer, who remains stationary. The order of transformation is always + * yaw, followed by pitch, and finally by roll. + * + * The coordinate system matches the one defined in OpenGL, where the + * forward vector (z) is coming out of screen, and it is equivalent to + * a rotation matrix of R = r_y(yaw) * r_x(pitch) * r_z(roll). + * + * A positive yaw rotates the portion of the sphere in front of the viewer + * toward their right. A positive pitch rotates the portion of the sphere + * in front of the viewer upwards. A positive roll tilts the portion of + * the sphere in front of the viewer to the viewer's right. + * + * These values are exported as 16.16 fixed point. + * + * See this equirectangular projection as example: + * + * @code{.unparsed} + * Yaw + * -180 0 180 + * 90 +-------------+-------------+ 180 + * | | | up + * P | | | y| forward + * i | ^ | | /z + * t 0 +-------------X-------------+ 0 Roll | / + * c | | | | / + * h | | | 0|/_____right + * | | | x + * -90 +-------------+-------------+ -180 + * + * X - the default camera center + * ^ - the default up vector + * @endcode + */ + int32_t yaw; ///< Rotation around the up vector [-180, 180]. + int32_t pitch; ///< Rotation around the right vector [-90, 90]. + int32_t roll; ///< Rotation around the forward vector [-180, 180]. + /** + * @} + */ + + /** + * @name Bounding rectangle + * @anchor bounding + * @{ + * These fields indicate the location of the current tile, and where + * it should be mapped relative to the original surface. They are + * exported as 0.32 fixed point, and can be converted to classic + * pixel values with av_spherical_bounds(). + * + * @code{.unparsed} + * +----------------+----------+ + * | |bound_top | + * | +--------+ | + * | bound_left |tile | | + * +<---------->| |<--->+bound_right + * | +--------+ | + * | | | + * | bound_bottom| | + * +----------------+----------+ + * @endcode + * + * If needed, the original video surface dimensions can be derived + * by adding the current stream or frame size to the related bounds, + * like in the following example: + * + * @code{c} + * original_width = tile->width + bound_left + bound_right; + * original_height = tile->height + bound_top + bound_bottom; + * @endcode + * + * @note These values are valid only for the tiled equirectangular + * projection type (@ref AV_SPHERICAL_EQUIRECTANGULAR_TILE), + * and should be ignored in all other cases. + */ + uint32_t bound_left; ///< Distance from the left edge + uint32_t bound_top; ///< Distance from the top edge + uint32_t bound_right; ///< Distance from the right edge + uint32_t bound_bottom; ///< Distance from the bottom edge + /** + * @} + */ + + /** + * Number of pixels to pad from the edge of each cube face. + * + * @note This value is valid for only for the cubemap projection type + * (@ref AV_SPHERICAL_CUBEMAP), and should be ignored in all other + * cases. + */ + uint32_t padding; +} AVSphericalMapping; + +/** + * Allocate a AVSphericalVideo structure and initialize its fields to default + * values. + * + * @return the newly allocated struct or NULL on failure + */ +AVSphericalMapping *av_spherical_alloc(size_t *size); + +/** + * Convert the @ref bounding fields from an AVSphericalVideo + * from 0.32 fixed point to pixels. + * + * @param map The AVSphericalVideo map to read bound values from. + * @param width Width of the current frame or stream. + * @param height Height of the current frame or stream. + * @param left Pixels from the left edge. + * @param top Pixels from the top edge. + * @param right Pixels from the right edge. + * @param bottom Pixels from the bottom edge. + */ +void av_spherical_tile_bounds(const AVSphericalMapping *map, + size_t width, size_t height, + size_t *left, size_t *top, + size_t *right, size_t *bottom); + +/** + * Provide a human-readable name of a given AVSphericalProjection. + * + * @param projection The input AVSphericalProjection. + * + * @return The name of the AVSphericalProjection, or "unknown". + */ +const char *av_spherical_projection_name(enum AVSphericalProjection projection); + +/** + * Get the AVSphericalProjection form a human-readable name. + * + * @param name The input string. + * + * @return The AVSphericalProjection value, or -1 if not found. + */ +int av_spherical_from_name(const char *name); +/** + * @} + */ + +#endif /* AVUTIL_SPHERICAL_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/stereo3d.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/stereo3d.h new file mode 100644 index 00000000..c0a4ab3f --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/stereo3d.h @@ -0,0 +1,325 @@ +/* + * Copyright (c) 2013 Vittorio Giovara + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_video_stereo3d + * Stereoscopic video + */ + +#ifndef AVUTIL_STEREO3D_H +#define AVUTIL_STEREO3D_H + +#include + +#include "frame.h" + +/** + * @defgroup lavu_video_stereo3d Stereo3D types and functions + * @ingroup lavu_video + * + * A stereoscopic video file consists in multiple views embedded in a single + * frame, usually describing two views of a scene. This file describes all + * possible codec-independent view arrangements. + * + * @{ + */ + +/** + * List of possible 3D Types + */ +enum AVStereo3DType { + /** + * Video is not stereoscopic (and metadata has to be there). + */ + AV_STEREO3D_2D, + + /** + * Views are next to each other. + * + * @code{.unparsed} + * LLLLRRRR + * LLLLRRRR + * LLLLRRRR + * ... + * @endcode + */ + AV_STEREO3D_SIDEBYSIDE, + + /** + * Views are on top of each other. + * + * @code{.unparsed} + * LLLLLLLL + * LLLLLLLL + * RRRRRRRR + * RRRRRRRR + * @endcode + */ + AV_STEREO3D_TOPBOTTOM, + + /** + * Views are alternated temporally. + * + * @code{.unparsed} + * frame0 frame1 frame2 ... + * LLLLLLLL RRRRRRRR LLLLLLLL + * LLLLLLLL RRRRRRRR LLLLLLLL + * LLLLLLLL RRRRRRRR LLLLLLLL + * ... ... ... + * @endcode + */ + AV_STEREO3D_FRAMESEQUENCE, + + /** + * Views are packed in a checkerboard-like structure per pixel. + * + * @code{.unparsed} + * LRLRLRLR + * RLRLRLRL + * LRLRLRLR + * ... + * @endcode + */ + AV_STEREO3D_CHECKERBOARD, + + /** + * Views are next to each other, but when upscaling + * apply a checkerboard pattern. + * + * @code{.unparsed} + * LLLLRRRR L L L L R R R R + * LLLLRRRR => L L L L R R R R + * LLLLRRRR L L L L R R R R + * LLLLRRRR L L L L R R R R + * @endcode + */ + AV_STEREO3D_SIDEBYSIDE_QUINCUNX, + + /** + * Views are packed per line, as if interlaced. + * + * @code{.unparsed} + * LLLLLLLL + * RRRRRRRR + * LLLLLLLL + * ... + * @endcode + */ + AV_STEREO3D_LINES, + + /** + * Views are packed per column. + * + * @code{.unparsed} + * LRLRLRLR + * LRLRLRLR + * LRLRLRLR + * ... + * @endcode + */ + AV_STEREO3D_COLUMNS, + + /** + * Video is stereoscopic but the packing is unspecified. + */ + AV_STEREO3D_UNSPEC, +}; + +/** + * List of possible view types. + */ +enum AVStereo3DView { + /** + * Frame contains two packed views. + */ + AV_STEREO3D_VIEW_PACKED, + + /** + * Frame contains only the left view. + */ + AV_STEREO3D_VIEW_LEFT, + + /** + * Frame contains only the right view. + */ + AV_STEREO3D_VIEW_RIGHT, + + /** + * Content is unspecified. + */ + AV_STEREO3D_VIEW_UNSPEC, +}; + +/** + * List of possible primary eyes. + */ +enum AVStereo3DPrimaryEye { + /** + * Neither eye. + */ + AV_PRIMARY_EYE_NONE, + + /** + * Left eye. + */ + AV_PRIMARY_EYE_LEFT, + + /** + * Right eye + */ + AV_PRIMARY_EYE_RIGHT, +}; + +/** + * Inverted views, Right/Bottom represents the left view. + */ +#define AV_STEREO3D_FLAG_INVERT (1 << 0) + +/** + * Stereo 3D type: this structure describes how two videos are packed + * within a single video surface, with additional information as needed. + * + * @note The struct must be allocated with av_stereo3d_alloc() and + * its size is not a part of the public ABI. + */ +typedef struct AVStereo3D { + /** + * How views are packed within the video. + */ + enum AVStereo3DType type; + + /** + * Additional information about the frame packing. + */ + int flags; + + /** + * Determines which views are packed. + */ + enum AVStereo3DView view; + + /** + * Which eye is the primary eye when rendering in 2D. + */ + enum AVStereo3DPrimaryEye primary_eye; + + /** + * The distance between the centres of the lenses of the camera system, + * in micrometers. Zero if unset. + */ + uint32_t baseline; + + /** + * Relative shift of the left and right images, which changes the zero parallax plane. + * Range is -1.0 to 1.0. Zero if unset. + */ + AVRational horizontal_disparity_adjustment; + + /** + * Horizontal field of view, in degrees. Zero if unset. + */ + AVRational horizontal_field_of_view; +} AVStereo3D; + +/** + * Allocate an AVStereo3D structure and set its fields to default values. + * The resulting struct can be freed using av_freep(). + * + * @return An AVStereo3D filled with default values or NULL on failure. + */ +AVStereo3D *av_stereo3d_alloc(void); + +/** + * Allocate an AVStereo3D structure and set its fields to default values. + * The resulting struct can be freed using av_freep(). + * + * @return An AVStereo3D filled with default values or NULL on failure. + */ +AVStereo3D *av_stereo3d_alloc_size(size_t *size); + +/** + * Allocate a complete AVFrameSideData and add it to the frame. + * + * @param frame The frame which side data is added to. + * + * @return The AVStereo3D structure to be filled by caller. + */ +AVStereo3D *av_stereo3d_create_side_data(AVFrame *frame); + +/** + * Provide a human-readable name of a given stereo3d type. + * + * @param type The input stereo3d type value. + * + * @return The name of the stereo3d value, or "unknown". + */ +const char *av_stereo3d_type_name(unsigned int type); + +/** + * Get the AVStereo3DType form a human-readable name. + * + * @param name The input string. + * + * @return The AVStereo3DType value, or -1 if not found. + */ +int av_stereo3d_from_name(const char *name); + +/** + * Provide a human-readable name of a given stereo3d view. + * + * @param type The input stereo3d view value. + * + * @return The name of the stereo3d view value, or "unknown". + */ +const char *av_stereo3d_view_name(unsigned int view); + +/** + * Get the AVStereo3DView form a human-readable name. + * + * @param name The input string. + * + * @return The AVStereo3DView value, or -1 if not found. + */ +int av_stereo3d_view_from_name(const char *name); + +/** + * Provide a human-readable name of a given stereo3d primary eye. + * + * @param type The input stereo3d primary eye value. + * + * @return The name of the stereo3d primary eye value, or "unknown". + */ +const char *av_stereo3d_primary_eye_name(unsigned int eye); + +/** + * Get the AVStereo3DPrimaryEye form a human-readable name. + * + * @param name The input string. + * + * @return The AVStereo3DPrimaryEye value, or -1 if not found. + */ +int av_stereo3d_primary_eye_from_name(const char *name); + +/** + * @} + */ + +#endif /* AVUTIL_STEREO3D_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/tea.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/tea.h new file mode 100644 index 00000000..dd929bda --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/tea.h @@ -0,0 +1,71 @@ +/* + * A 32-bit implementation of the TEA algorithm + * Copyright (c) 2015 Vesselin Bontchev + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_TEA_H +#define AVUTIL_TEA_H + +#include + +/** + * @file + * @brief Public header for libavutil TEA algorithm + * @defgroup lavu_tea TEA + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_tea_size; + +struct AVTEA; + +/** + * Allocate an AVTEA context + * To free the struct: av_free(ptr) + */ +struct AVTEA *av_tea_alloc(void); + +/** + * Initialize an AVTEA context. + * + * @param ctx an AVTEA context + * @param key a key of 16 bytes used for encryption/decryption + * @param rounds the number of rounds in TEA (64 is the "standard") + */ +void av_tea_init(struct AVTEA *ctx, const uint8_t key[16], int rounds); + +/** + * Encrypt or decrypt a buffer using a previously initialized context. + * + * @param ctx an AVTEA context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_tea_crypt(struct AVTEA *ctx, uint8_t *dst, const uint8_t *src, + int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_TEA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/threadmessage.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/threadmessage.h new file mode 100644 index 00000000..42ce655f --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/threadmessage.h @@ -0,0 +1,115 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with FFmpeg; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_THREADMESSAGE_H +#define AVUTIL_THREADMESSAGE_H + +typedef struct AVThreadMessageQueue AVThreadMessageQueue; + +typedef enum AVThreadMessageFlags { + + /** + * Perform non-blocking operation. + * If this flag is set, send and recv operations are non-blocking and + * return AVERROR(EAGAIN) immediately if they can not proceed. + */ + AV_THREAD_MESSAGE_NONBLOCK = 1, + +} AVThreadMessageFlags; + +/** + * Allocate a new message queue. + * + * @param mq pointer to the message queue + * @param nelem maximum number of elements in the queue + * @param elsize size of each element in the queue + * @return >=0 for success; <0 for error, in particular AVERROR(ENOSYS) if + * lavu was built without thread support + */ +int av_thread_message_queue_alloc(AVThreadMessageQueue **mq, + unsigned nelem, + unsigned elsize); + +/** + * Free a message queue. + * + * The message queue must no longer be in use by another thread. + */ +void av_thread_message_queue_free(AVThreadMessageQueue **mq); + +/** + * Send a message on the queue. + */ +int av_thread_message_queue_send(AVThreadMessageQueue *mq, + void *msg, + unsigned flags); + +/** + * Receive a message from the queue. + */ +int av_thread_message_queue_recv(AVThreadMessageQueue *mq, + void *msg, + unsigned flags); + +/** + * Set the sending error code. + * + * If the error code is set to non-zero, av_thread_message_queue_send() will + * return it immediately. Conventional values, such as AVERROR_EOF or + * AVERROR(EAGAIN), can be used to cause the sending thread to stop or + * suspend its operation. + */ +void av_thread_message_queue_set_err_send(AVThreadMessageQueue *mq, + int err); + +/** + * Set the receiving error code. + * + * If the error code is set to non-zero, av_thread_message_queue_recv() will + * return it immediately when there are no longer available messages. + * Conventional values, such as AVERROR_EOF or AVERROR(EAGAIN), can be used + * to cause the receiving thread to stop or suspend its operation. + */ +void av_thread_message_queue_set_err_recv(AVThreadMessageQueue *mq, + int err); + +/** + * Set the optional free message callback function which will be called if an + * operation is removing messages from the queue. + */ +void av_thread_message_queue_set_free_func(AVThreadMessageQueue *mq, + void (*free_func)(void *msg)); + +/** + * Return the current number of messages in the queue. + * + * @return the current number of messages or AVERROR(ENOSYS) if lavu was built + * without thread support + */ +int av_thread_message_queue_nb_elems(AVThreadMessageQueue *mq); + +/** + * Flush the message queue + * + * This function is mostly equivalent to reading and free-ing every message + * except that it will be done in a single operation (no lock/unlock between + * reads). + */ +void av_thread_message_flush(AVThreadMessageQueue *mq); + +#endif /* AVUTIL_THREADMESSAGE_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/time.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/time.h new file mode 100644 index 00000000..dc169b06 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/time.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2000-2003 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_TIME_H +#define AVUTIL_TIME_H + +#include + +/** + * Get the current time in microseconds. + */ +int64_t av_gettime(void); + +/** + * Get the current time in microseconds since some unspecified starting point. + * On platforms that support it, the time comes from a monotonic clock + * This property makes this time source ideal for measuring relative time. + * The returned values may not be monotonic on platforms where a monotonic + * clock is not available. + */ +int64_t av_gettime_relative(void); + +/** + * Indicates with a boolean result if the av_gettime_relative() time source + * is monotonic. + */ +int av_gettime_relative_is_monotonic(void); + +/** + * Sleep for a period of time. Although the duration is expressed in + * microseconds, the actual delay may be rounded to the precision of the + * system timer. + * + * @param usec Number of microseconds to sleep. + * @return zero on success or (negative) error code. + */ +int av_usleep(unsigned usec); + +#endif /* AVUTIL_TIME_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/timecode.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/timecode.h new file mode 100644 index 00000000..fe0fc835 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/timecode.h @@ -0,0 +1,199 @@ +/* + * Copyright (c) 2006 Smartjog S.A.S, Baptiste Coudurier + * Copyright (c) 2011-2012 Smartjog S.A.S, Clément Bœsch + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Timecode helpers header + */ + +#ifndef AVUTIL_TIMECODE_H +#define AVUTIL_TIMECODE_H + +#include +#include "rational.h" + +#define AV_TIMECODE_STR_SIZE 23 + +enum AVTimecodeFlag { + AV_TIMECODE_FLAG_DROPFRAME = 1<<0, ///< timecode is drop frame + AV_TIMECODE_FLAG_24HOURSMAX = 1<<1, ///< timecode wraps after 24 hours + AV_TIMECODE_FLAG_ALLOWNEGATIVE = 1<<2, ///< negative time values are allowed +}; + +typedef struct { + int start; ///< timecode frame start (first base frame number) + uint32_t flags; ///< flags such as drop frame, +24 hours support, ... + AVRational rate; ///< frame rate in rational form + unsigned fps; ///< frame per second; must be consistent with the rate field +} AVTimecode; + +/** + * Adjust frame number for NTSC drop frame time code. + * + * @param framenum frame number to adjust + * @param fps frame per second, multiples of 30 + * @return adjusted frame number + * @warning adjustment is only valid for multiples of NTSC 29.97 + */ +int av_timecode_adjust_ntsc_framenum2(int framenum, int fps); + +/** + * Convert frame number to SMPTE 12M binary representation. + * + * @param tc timecode data correctly initialized + * @param framenum frame number + * @return the SMPTE binary representation + * + * See SMPTE ST 314M-2005 Sec 4.4.2.2.1 "Time code pack (TC)" + * the format description as follows: + * bits 0-5: hours, in BCD(6bits) + * bits 6: BGF1 + * bits 7: BGF2 (NTSC) or FIELD (PAL) + * bits 8-14: minutes, in BCD(7bits) + * bits 15: BGF0 (NTSC) or BGF2 (PAL) + * bits 16-22: seconds, in BCD(7bits) + * bits 23: FIELD (NTSC) or BGF0 (PAL) + * bits 24-29: frames, in BCD(6bits) + * bits 30: drop frame flag (0: non drop, 1: drop) + * bits 31: color frame flag (0: unsync mode, 1: sync mode) + * @note BCD numbers (6 or 7 bits): 4 or 5 lower bits for units, 2 higher bits for tens. + * @note Frame number adjustment is automatically done in case of drop timecode, + * you do NOT have to call av_timecode_adjust_ntsc_framenum2(). + * @note The frame number is relative to tc->start. + * @note Color frame (CF) and binary group flags (BGF) bits are set to zero. + */ +uint32_t av_timecode_get_smpte_from_framenum(const AVTimecode *tc, int framenum); + +/** + * Convert sei info to SMPTE 12M binary representation. + * + * @param rate frame rate in rational form + * @param drop drop flag + * @param hh hour + * @param mm minute + * @param ss second + * @param ff frame number + * @return the SMPTE binary representation + */ +uint32_t av_timecode_get_smpte(AVRational rate, int drop, int hh, int mm, int ss, int ff); + +/** + * Load timecode string in buf. + * + * @param tc timecode data correctly initialized + * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long + * @param framenum frame number + * @return the buf parameter + * + * @note Timecode representation can be a negative timecode and have more than + * 24 hours, but will only be honored if the flags are correctly set. + * @note The frame number is relative to tc->start. + */ +char *av_timecode_make_string(const AVTimecode *tc, char *buf, int framenum); + +/** + * Get the timecode string from the SMPTE timecode format. + * + * In contrast to av_timecode_make_smpte_tc_string this function supports 50/60 + * fps timecodes by using the field bit. + * + * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long + * @param rate frame rate of the timecode + * @param tcsmpte the 32-bit SMPTE timecode + * @param prevent_df prevent the use of a drop flag when it is known the DF bit + * is arbitrary + * @param skip_field prevent the use of a field flag when it is known the field + * bit is arbitrary (e.g. because it is used as PC flag) + * @return the buf parameter + */ +char *av_timecode_make_smpte_tc_string2(char *buf, AVRational rate, uint32_t tcsmpte, int prevent_df, int skip_field); + +/** + * Get the timecode string from the SMPTE timecode format. + * + * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long + * @param tcsmpte the 32-bit SMPTE timecode + * @param prevent_df prevent the use of a drop flag when it is known the DF bit + * is arbitrary + * @return the buf parameter + */ +char *av_timecode_make_smpte_tc_string(char *buf, uint32_t tcsmpte, int prevent_df); + +/** + * Get the timecode string from the 25-bit timecode format (MPEG GOP format). + * + * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long + * @param tc25bit the 25-bits timecode + * @return the buf parameter + */ +char *av_timecode_make_mpeg_tc_string(char *buf, uint32_t tc25bit); + +/** + * Init a timecode struct with the passed parameters. + * + * @param tc pointer to an allocated AVTimecode + * @param rate frame rate in rational form + * @param flags miscellaneous flags such as drop frame, +24 hours, ... + * (see AVTimecodeFlag) + * @param frame_start the first frame number + * @param log_ctx a pointer to an arbitrary struct of which the first field + * is a pointer to an AVClass struct (used for av_log) + * @return 0 on success, AVERROR otherwise + */ +int av_timecode_init(AVTimecode *tc, AVRational rate, int flags, int frame_start, void *log_ctx); + +/** + * Init a timecode struct from the passed timecode components. + * + * @param tc pointer to an allocated AVTimecode + * @param rate frame rate in rational form + * @param flags miscellaneous flags such as drop frame, +24 hours, ... + * (see AVTimecodeFlag) + * @param hh hours + * @param mm minutes + * @param ss seconds + * @param ff frames + * @param log_ctx a pointer to an arbitrary struct of which the first field + * is a pointer to an AVClass struct (used for av_log) + * @return 0 on success, AVERROR otherwise + */ +int av_timecode_init_from_components(AVTimecode *tc, AVRational rate, int flags, int hh, int mm, int ss, int ff, void *log_ctx); + +/** + * Parse timecode representation (hh:mm:ss[:;.]ff). + * + * @param tc pointer to an allocated AVTimecode + * @param rate frame rate in rational form + * @param str timecode string which will determine the frame start + * @param log_ctx a pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct (used for av_log). + * @return 0 on success, AVERROR otherwise + */ +int av_timecode_init_from_string(AVTimecode *tc, AVRational rate, const char *str, void *log_ctx); + +/** + * Check if the timecode feature is available for the given frame rate + * + * @return 0 if supported, <0 otherwise + */ +int av_timecode_check_frame_rate(AVRational rate); + +#endif /* AVUTIL_TIMECODE_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/timestamp.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/timestamp.h new file mode 100644 index 00000000..fa53a46b --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/timestamp.h @@ -0,0 +1,85 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * timestamp utils, mostly useful for debugging/logging purposes + */ + +#ifndef AVUTIL_TIMESTAMP_H +#define AVUTIL_TIMESTAMP_H + +#include "avutil.h" + +#if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS) && !defined(PRId64) +#error missing -D__STDC_FORMAT_MACROS / #define __STDC_FORMAT_MACROS +#endif + +#define AV_TS_MAX_STRING_SIZE 32 + +/** + * Fill the provided buffer with a string containing a timestamp + * representation. + * + * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE + * @param ts the timestamp to represent + * @return the buffer in input + */ +static inline char *av_ts_make_string(char *buf, int64_t ts) +{ + if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); + else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%" PRId64, ts); + return buf; +} + +/** + * Convenience macro, the return value should be used only directly in + * function arguments but never stand-alone. + */ +#define av_ts2str(ts) av_ts_make_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts) + +/** + * Fill the provided buffer with a string containing a timestamp time + * representation. + * + * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE + * @param ts the timestamp to represent + * @param tb the timebase of the timestamp + * @return the buffer in input + */ +char *av_ts_make_time_string2(char *buf, int64_t ts, AVRational tb); + +/** + * Fill the provided buffer with a string containing a timestamp + * representation. + * + * @see av_ts_make_time_string2 + */ +static inline char *av_ts_make_time_string(char *buf, int64_t ts, + const AVRational *tb) +{ + return av_ts_make_time_string2(buf, ts, *tb); +} + +/** + * Convenience macro, the return value should be used only directly in + * function arguments but never stand-alone. + */ +#define av_ts2timestr(ts, tb) av_ts_make_time_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts, tb) + +#endif /* AVUTIL_TIMESTAMP_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/tree.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/tree.h new file mode 100644 index 00000000..bbb8fbb1 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/tree.h @@ -0,0 +1,137 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * A tree container. + * @author Michael Niedermayer + */ + +#ifndef AVUTIL_TREE_H +#define AVUTIL_TREE_H + +#include "attributes.h" + +/** + * @addtogroup lavu_tree AVTree + * @ingroup lavu_data + * + * Low-complexity tree container + * + * Insertion, removal, finding equal, largest which is smaller than and + * smallest which is larger than, all have O(log n) worst-case complexity. + * @{ + */ + + +struct AVTreeNode; +extern const int av_tree_node_size; + +/** + * Allocate an AVTreeNode. + */ +struct AVTreeNode *av_tree_node_alloc(void); + +/** + * Find an element. + * @param root a pointer to the root node of the tree + * @param next If next is not NULL, then next[0] will contain the previous + * element and next[1] the next element. If either does not exist, + * then the corresponding entry in next is unchanged. + * @param cmp compare function used to compare elements in the tree, + * API identical to that of Standard C's qsort + * It is guaranteed that the first and only the first argument to cmp() + * will be the key parameter to av_tree_find(), thus it could if the + * user wants, be a different type (like an opaque context). + * @return An element with cmp(key, elem) == 0 or NULL if no such element + * exists in the tree. + */ +void *av_tree_find(const struct AVTreeNode *root, void *key, + int (*cmp)(const void *key, const void *b), void *next[2]); + +/** + * Insert or remove an element. + * + * If *next is NULL, then the supplied element will be removed if it exists. + * If *next is non-NULL, then the supplied element will be inserted, unless + * it already exists in the tree. + * + * @param rootp A pointer to a pointer to the root node of the tree; note that + * the root node can change during insertions, this is required + * to keep the tree balanced. + * @param key pointer to the element key to insert in the tree + * @param next Used to allocate and free AVTreeNodes. For insertion the user + * must set it to an allocated and zeroed object of at least + * av_tree_node_size bytes size. av_tree_insert() will set it to + * NULL if it has been consumed. + * For deleting elements *next is set to NULL by the user and + * av_tree_insert() will set it to the AVTreeNode which was + * used for the removed element. + * This allows the use of flat arrays, which have + * lower overhead compared to many malloced elements. + * You might want to define a function like: + * @code + * void *tree_insert(struct AVTreeNode **rootp, void *key, + * int (*cmp)(void *key, const void *b), + * AVTreeNode **next) + * { + * if (!*next) + * *next = av_mallocz(av_tree_node_size); + * return av_tree_insert(rootp, key, cmp, next); + * } + * void *tree_remove(struct AVTreeNode **rootp, void *key, + * int (*cmp)(void *key, const void *b, AVTreeNode **next)) + * { + * av_freep(next); + * return av_tree_insert(rootp, key, cmp, next); + * } + * @endcode + * @param cmp compare function used to compare elements in the tree, API identical + * to that of Standard C's qsort + * @return If no insertion happened, the found element; if an insertion or + * removal happened, then either key or NULL will be returned. + * Which one it is depends on the tree state and the implementation. You + * should make no assumptions that it's one or the other in the code. + */ +void *av_tree_insert(struct AVTreeNode **rootp, void *key, + int (*cmp)(const void *key, const void *b), + struct AVTreeNode **next); + +void av_tree_destroy(struct AVTreeNode *t); + +/** + * Apply enu(opaque, &elem) to all the elements in the tree in a given range. + * + * @param cmp a comparison function that returns < 0 for an element below the + * range, > 0 for an element above the range and == 0 for an + * element inside the range + * + * @note The cmp function should use the same ordering used to construct the + * tree. + */ +void av_tree_enumerate(struct AVTreeNode *t, void *opaque, + int (*cmp)(void *opaque, void *elem), + int (*enu)(void *opaque, void *elem)); + +/** + * @} + */ + +#endif /* AVUTIL_TREE_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/twofish.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/twofish.h new file mode 100644 index 00000000..67f359e8 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/twofish.h @@ -0,0 +1,70 @@ +/* + * An implementation of the TwoFish algorithm + * Copyright (c) 2015 Supraja Meedinti + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_TWOFISH_H +#define AVUTIL_TWOFISH_H + +#include + + +/** + * @file + * @brief Public header for libavutil TWOFISH algorithm + * @defgroup lavu_twofish TWOFISH + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_twofish_size; + +struct AVTWOFISH; + +/** + * Allocate an AVTWOFISH context + * To free the struct: av_free(ptr) + */ +struct AVTWOFISH *av_twofish_alloc(void); + +/** + * Initialize an AVTWOFISH context. + * + * @param ctx an AVTWOFISH context + * @param key a key of size ranging from 1 to 32 bytes used for encryption/decryption + * @param key_bits number of keybits: 128, 192, 256 If less than the required, padded with zeroes to nearest valid value; return value is 0 if key_bits is 128/192/256, -1 if less than 0, 1 otherwise + */ +int av_twofish_init(struct AVTWOFISH *ctx, const uint8_t *key, int key_bits); + +/** + * Encrypt or decrypt a buffer using a previously initialized context + * + * @param ctx an AVTWOFISH context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 16 byte blocks + * @param iv initialization vector for CBC mode, NULL for ECB mode + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_twofish_crypt(struct AVTWOFISH *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t* iv, int decrypt); + +/** + * @} + */ +#endif /* AVUTIL_TWOFISH_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/tx.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/tx.h new file mode 100644 index 00000000..4696988c --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/tx.h @@ -0,0 +1,210 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_TX_H +#define AVUTIL_TX_H + +#include +#include + +typedef struct AVTXContext AVTXContext; + +typedef struct AVComplexFloat { + float re, im; +} AVComplexFloat; + +typedef struct AVComplexDouble { + double re, im; +} AVComplexDouble; + +typedef struct AVComplexInt32 { + int32_t re, im; +} AVComplexInt32; + +enum AVTXType { + /** + * Standard complex to complex FFT with sample data type of AVComplexFloat, + * AVComplexDouble or AVComplexInt32, for each respective variant. + * + * Output is not 1/len normalized. Scaling currently unsupported. + * The stride parameter must be set to the size of a single sample in bytes. + */ + AV_TX_FLOAT_FFT = 0, + AV_TX_DOUBLE_FFT = 2, + AV_TX_INT32_FFT = 4, + + /** + * Standard MDCT with a sample data type of float, double or int32_t, + * respecively. For the float and int32 variants, the scale type is + * 'float', while for the double variant, it's 'double'. + * If scale is NULL, 1.0 will be used as a default. + * + * Length is the frame size, not the window size (which is 2x frame). + * For forward transforms, the stride specifies the spacing between each + * sample in the output array in bytes. The input must be a flat array. + * + * For inverse transforms, the stride specifies the spacing between each + * sample in the input array in bytes. The output must be a flat array. + * + * NOTE: the inverse transform is half-length, meaning the output will not + * contain redundant data. This is what most codecs work with. To do a full + * inverse transform, set the AV_TX_FULL_IMDCT flag on init. + */ + AV_TX_FLOAT_MDCT = 1, + AV_TX_DOUBLE_MDCT = 3, + AV_TX_INT32_MDCT = 5, + + /** + * Real to complex and complex to real DFTs. + * For the float and int32 variants, the scale type is 'float', while for + * the double variant, it's a 'double'. If scale is NULL, 1.0 will be used + * as a default. + * + * For forward transforms (R2C), stride must be the spacing between two + * samples in bytes. For inverse transforms, the stride must be set + * to the spacing between two complex values in bytes. + * + * The forward transform performs a real-to-complex DFT of N samples to + * N/2+1 complex values. + * + * The inverse transform performs a complex-to-real DFT of N/2+1 complex + * values to N real samples. The output is not normalized, but can be + * made so by setting the scale value to 1.0/len. + * NOTE: the inverse transform always overwrites the input. + */ + AV_TX_FLOAT_RDFT = 6, + AV_TX_DOUBLE_RDFT = 7, + AV_TX_INT32_RDFT = 8, + + /** + * Real to real (DCT) transforms. + * + * The forward transform is a DCT-II. + * The inverse transform is a DCT-III. + * + * The input array is always overwritten. DCT-III requires that the + * input be padded with 2 extra samples. Stride must be set to the + * spacing between two samples in bytes. + */ + AV_TX_FLOAT_DCT = 9, + AV_TX_DOUBLE_DCT = 10, + AV_TX_INT32_DCT = 11, + + /** + * Discrete Cosine Transform I + * + * The forward transform is a DCT-I. + * The inverse transform is a DCT-I multiplied by 2/(N + 1). + * + * The input array is always overwritten. + */ + AV_TX_FLOAT_DCT_I = 12, + AV_TX_DOUBLE_DCT_I = 13, + AV_TX_INT32_DCT_I = 14, + + /** + * Discrete Sine Transform I + * + * The forward transform is a DST-I. + * The inverse transform is a DST-I multiplied by 2/(N + 1). + * + * The input array is always overwritten. + */ + AV_TX_FLOAT_DST_I = 15, + AV_TX_DOUBLE_DST_I = 16, + AV_TX_INT32_DST_I = 17, + + /* Not part of the API, do not use */ + AV_TX_NB, +}; + +/** + * Function pointer to a function to perform the transform. + * + * @note Using a different context than the one allocated during av_tx_init() + * is not allowed. + * + * @param s the transform context + * @param out the output array + * @param in the input array + * @param stride the input or output stride in bytes + * + * The out and in arrays must be aligned to the maximum required by the CPU + * architecture unless the AV_TX_UNALIGNED flag was set in av_tx_init(). + * The stride must follow the constraints the transform type has specified. + */ +typedef void (*av_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride); + +/** + * Flags for av_tx_init() + */ +enum AVTXFlags { + /** + * Allows for in-place transformations, where input == output. + * May be unsupported or slower for some transform types. + */ + AV_TX_INPLACE = 1ULL << 0, + + /** + * Relaxes alignment requirement for the in and out arrays of av_tx_fn(). + * May be slower with certain transform types. + */ + AV_TX_UNALIGNED = 1ULL << 1, + + /** + * Performs a full inverse MDCT rather than leaving out samples that can be + * derived through symmetry. Requires an output array of 'len' floats, + * rather than the usual 'len/2' floats. + * Ignored for all transforms but inverse MDCTs. + */ + AV_TX_FULL_IMDCT = 1ULL << 2, + + /** + * Perform a real to half-complex RDFT. + * Only the real, or imaginary coefficients will + * be output, depending on the flag used. Only available for forward RDFTs. + * Output array must have enough space to hold N complex values + * (regular size for a real to complex transform). + */ + AV_TX_REAL_TO_REAL = 1ULL << 3, + AV_TX_REAL_TO_IMAGINARY = 1ULL << 4, +}; + +/** + * Initialize a transform context with the given configuration + * (i)MDCTs with an odd length are currently not supported. + * + * @param ctx the context to allocate, will be NULL on error + * @param tx pointer to the transform function pointer to set + * @param type type the type of transform + * @param inv whether to do an inverse or a forward transform + * @param len the size of the transform in samples + * @param scale pointer to the value to scale the output if supported by type + * @param flags a bitmask of AVTXFlags or 0 + * + * @return 0 on success, negative error code on failure + */ +int av_tx_init(AVTXContext **ctx, av_tx_fn *tx, enum AVTXType type, + int inv, int len, const void *scale, uint64_t flags); + +/** + * Frees a context and sets *ctx to NULL, does nothing when *ctx == NULL. + */ +void av_tx_uninit(AVTXContext **ctx); + +#endif /* AVUTIL_TX_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/uuid.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/uuid.h new file mode 100644 index 00000000..748b7ed3 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/uuid.h @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2022 Pierre-Anthony Lemieux + * Zane van Iperen + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * UUID parsing and serialization utilities. + * The library treats the UUID as an opaque sequence of 16 unsigned bytes, + * i.e. ignoring the internal layout of the UUID, which depends on the type + * of the UUID. + * + * @author Pierre-Anthony Lemieux + * @author Zane van Iperen + */ + +#ifndef AVUTIL_UUID_H +#define AVUTIL_UUID_H + +#include +#include + +#define AV_PRI_UUID \ + "%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-" \ + "%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx" + +#define AV_PRI_URN_UUID \ + "urn:uuid:%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-" \ + "%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx" + +/* AV_UUID_ARG() is used together with AV_PRI_UUID() or AV_PRI_URN_UUID + * to print UUIDs, e.g. + * av_log(NULL, AV_LOG_DEBUG, "UUID: " AV_PRI_UUID, AV_UUID_ARG(uuid)); + */ +#define AV_UUID_ARG(x) \ + (x)[ 0], (x)[ 1], (x)[ 2], (x)[ 3], \ + (x)[ 4], (x)[ 5], (x)[ 6], (x)[ 7], \ + (x)[ 8], (x)[ 9], (x)[10], (x)[11], \ + (x)[12], (x)[13], (x)[14], (x)[15] + +#define AV_UUID_LEN 16 + +/* Binary representation of a UUID */ +typedef uint8_t AVUUID[AV_UUID_LEN]; + +/** + * Parses a string representation of a UUID formatted according to IETF RFC 4122 + * into an AVUUID. The parsing is case-insensitive. The string must be 37 + * characters long, including the terminating NUL character. + * + * Example string representation: "2fceebd0-7017-433d-bafb-d073a7116696" + * + * @param[in] in String representation of a UUID, + * e.g. 2fceebd0-7017-433d-bafb-d073a7116696 + * @param[out] uu AVUUID + * @return A non-zero value in case of an error. + */ +int av_uuid_parse(const char *in, AVUUID uu); + +/** + * Parses a URN representation of a UUID, as specified at IETF RFC 4122, + * into an AVUUID. The parsing is case-insensitive. The string must be 46 + * characters long, including the terminating NUL character. + * + * Example string representation: "urn:uuid:2fceebd0-7017-433d-bafb-d073a7116696" + * + * @param[in] in URN UUID + * @param[out] uu AVUUID + * @return A non-zero value in case of an error. + */ +int av_uuid_urn_parse(const char *in, AVUUID uu); + +/** + * Parses a string representation of a UUID formatted according to IETF RFC 4122 + * into an AVUUID. The parsing is case-insensitive. + * + * @param[in] in_start Pointer to the first character of the string representation + * @param[in] in_end Pointer to the character after the last character of the + * string representation. That memory location is never + * accessed. It is an error if `in_end - in_start != 36`. + * @param[out] uu AVUUID + * @return A non-zero value in case of an error. + */ +int av_uuid_parse_range(const char *in_start, const char *in_end, AVUUID uu); + +/** + * Serializes a AVUUID into a string representation according to IETF RFC 4122. + * The string is lowercase and always 37 characters long, including the + * terminating NUL character. + * + * @param[in] uu AVUUID + * @param[out] out Pointer to an array of no less than 37 characters. + */ +void av_uuid_unparse(const AVUUID uu, char *out); + +/** + * Compares two UUIDs for equality. + * + * @param[in] uu1 AVUUID + * @param[in] uu2 AVUUID + * @return Nonzero if uu1 and uu2 are identical, 0 otherwise + */ +static inline int av_uuid_equal(const AVUUID uu1, const AVUUID uu2) +{ + return memcmp(uu1, uu2, AV_UUID_LEN) == 0; +} + +/** + * Copies the bytes of src into dest. + * + * @param[out] dest AVUUID + * @param[in] src AVUUID + */ +static inline void av_uuid_copy(AVUUID dest, const AVUUID src) +{ + memcpy(dest, src, AV_UUID_LEN); +} + +/** + * Sets a UUID to the nil UUID, i.e. a UUID with have all + * its 128 bits set to zero. + * + * @param[in,out] uu UUID to be set to the nil UUID + */ +static inline void av_uuid_nil(AVUUID uu) +{ + memset(uu, 0, AV_UUID_LEN); +} + +#endif /* AVUTIL_UUID_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/version.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/version.h new file mode 100644 index 00000000..753f85b9 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/version.h @@ -0,0 +1,124 @@ +/* + * copyright (c) 2003 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu + * Libavutil version macros + */ + +#ifndef AVUTIL_VERSION_H +#define AVUTIL_VERSION_H + +#include "macros.h" + +/** + * @addtogroup version_utils + * + * Useful to check and match library version in order to maintain + * backward compatibility. + * + * The FFmpeg libraries follow a versioning sheme very similar to + * Semantic Versioning (http://semver.org/) + * The difference is that the component called PATCH is called MICRO in FFmpeg + * and its value is reset to 100 instead of 0 to keep it above or equal to 100. + * Also we do not increase MICRO for every bugfix or change in git master. + * + * Prior to FFmpeg 3.2 point releases did not change any lib version number to + * avoid aliassing different git master checkouts. + * Starting with FFmpeg 3.2, the released library versions will occupy + * a separate MAJOR.MINOR that is not used on the master development branch. + * That is if we branch a release of master 55.10.123 we will bump to 55.11.100 + * for the release and master will continue at 55.12.100 after it. Each new + * point release will then bump the MICRO improving the usefulness of the lib + * versions. + * + * @{ + */ + +#define AV_VERSION_INT(a, b, c) ((a)<<16 | (b)<<8 | (c)) +#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c +#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) + +/** + * Extract version components from the full ::AV_VERSION_INT int as returned + * by functions like ::avformat_version() and ::avcodec_version() + */ +#define AV_VERSION_MAJOR(a) ((a) >> 16) +#define AV_VERSION_MINOR(a) (((a) & 0x00FF00) >> 8) +#define AV_VERSION_MICRO(a) ((a) & 0xFF) + +/** + * @} + */ + +/** + * @defgroup lavu_ver Version and Build diagnostics + * + * Macros and function useful to check at compiletime and at runtime + * which version of libavutil is in use. + * + * @{ + */ + +#define LIBAVUTIL_VERSION_MAJOR 59 +#define LIBAVUTIL_VERSION_MINOR 39 +#define LIBAVUTIL_VERSION_MICRO 100 + +#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ + LIBAVUTIL_VERSION_MINOR, \ + LIBAVUTIL_VERSION_MICRO) +#define LIBAVUTIL_VERSION AV_VERSION(LIBAVUTIL_VERSION_MAJOR, \ + LIBAVUTIL_VERSION_MINOR, \ + LIBAVUTIL_VERSION_MICRO) +#define LIBAVUTIL_BUILD LIBAVUTIL_VERSION_INT + +#define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) + +/** + * @defgroup lavu_depr_guards Deprecation Guards + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + * + * @note, when bumping the major version it is recommended to manually + * disable each FF_API_* in its own commit instead of disabling them all + * at once through the bump. This improves the git bisect-ability of the change. + * + * @{ + */ + +#define FF_API_HDR_VIVID_THREE_SPLINE (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_INTERLACED_FRAME (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_FRAME_KEY (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_PALETTE_HAS_CHANGED (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_H274_FILM_GRAIN_VCS (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_MOD_UINTP2 (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_RISCV_FD_ZBA (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_VULKAN_FIXED_QUEUES (LIBAVUTIL_VERSION_MAJOR < 60) + +/** + * @} + * @} + */ + +#endif /* AVUTIL_VERSION_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/video_enc_params.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/video_enc_params.h new file mode 100644 index 00000000..62265a5c --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/video_enc_params.h @@ -0,0 +1,171 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_VIDEO_ENC_PARAMS_H +#define AVUTIL_VIDEO_ENC_PARAMS_H + +#include +#include + +#include "libavutil/avassert.h" +#include "libavutil/frame.h" + +enum AVVideoEncParamsType { + AV_VIDEO_ENC_PARAMS_NONE = -1, + /** + * VP9 stores: + * - per-frame base (luma AC) quantizer index, exported as AVVideoEncParams.qp + * - deltas for luma DC, chroma AC and chroma DC, exported in the + * corresponding entries in AVVideoEncParams.delta_qp + * - per-segment delta, exported as for each block as AVVideoBlockParams.delta_qp + * + * To compute the resulting quantizer index for a block: + * - for luma AC, add the base qp and the per-block delta_qp, saturating to + * unsigned 8-bit. + * - for luma DC and chroma AC/DC, add the corresponding + * AVVideoBlockParams.delta_qp to the luma AC index, again saturating to + * unsigned 8-bit. + */ + AV_VIDEO_ENC_PARAMS_VP9, + + /** + * H.264 stores: + * - in PPS (per-picture): + * * initial QP_Y (luma) value, exported as AVVideoEncParams.qp + * * delta(s) for chroma QP values (same for both, or each separately), + * exported as in the corresponding entries in AVVideoEncParams.delta_qp + * - per-slice QP delta, not exported directly, added to the per-MB value + * - per-MB delta; not exported directly; the final per-MB quantizer + * parameter - QP_Y - minus the value in AVVideoEncParams.qp is exported + * as AVVideoBlockParams.qp_delta. + */ + AV_VIDEO_ENC_PARAMS_H264, + + /* + * MPEG-2-compatible quantizer. + * + * Summing the frame-level qp with the per-block delta_qp gives the + * resulting quantizer for the block. + */ + AV_VIDEO_ENC_PARAMS_MPEG2, +}; + +/** + * Video encoding parameters for a given frame. This struct is allocated along + * with an optional array of per-block AVVideoBlockParams descriptors. + * Must be allocated with av_video_enc_params_alloc(). + */ +typedef struct AVVideoEncParams { + /** + * Number of blocks in the array. + * + * May be 0, in which case no per-block information is present. In this case + * the values of blocks_offset / block_size are unspecified and should not + * be accessed. + */ + unsigned int nb_blocks; + /** + * Offset in bytes from the beginning of this structure at which the array + * of blocks starts. + */ + size_t blocks_offset; + /* + * Size of each block in bytes. May not match sizeof(AVVideoBlockParams). + */ + size_t block_size; + + /** + * Type of the parameters (the codec they are used with). + */ + enum AVVideoEncParamsType type; + + /** + * Base quantisation parameter for the frame. The final quantiser for a + * given block in a given plane is obtained from this value, possibly + * combined with {@code delta_qp} and the per-block delta in a manner + * documented for each type. + */ + int32_t qp; + + /** + * Quantisation parameter offset from the base (per-frame) qp for a given + * plane (first index) and AC/DC coefficients (second index). + */ + int32_t delta_qp[4][2]; +} AVVideoEncParams; + +/** + * Data structure for storing block-level encoding information. + * It is allocated as a part of AVVideoEncParams and should be retrieved with + * av_video_enc_params_block(). + * + * sizeof(AVVideoBlockParams) is not a part of the ABI and new fields may be + * added to it. + */ +typedef struct AVVideoBlockParams { + /** + * Distance in luma pixels from the top-left corner of the visible frame + * to the top-left corner of the block. + * Can be negative if top/right padding is present on the coded frame. + */ + int src_x, src_y; + /** + * Width and height of the block in luma pixels. + */ + int w, h; + + /** + * Difference between this block's final quantization parameter and the + * corresponding per-frame value. + */ + int32_t delta_qp; +} AVVideoBlockParams; + +/** + * Get the block at the specified {@code idx}. Must be between 0 and nb_blocks - 1. + */ +static av_always_inline AVVideoBlockParams* +av_video_enc_params_block(AVVideoEncParams *par, unsigned int idx) +{ + av_assert0(idx < par->nb_blocks); + return (AVVideoBlockParams *)((uint8_t *)par + par->blocks_offset + + idx * par->block_size); +} + +/** + * Allocates memory for AVVideoEncParams of the given type, plus an array of + * {@code nb_blocks} AVVideoBlockParams and initializes the variables. Can be + * freed with a normal av_free() call. + * + * @param out_size if non-NULL, the size in bytes of the resulting data array is + * written here. + */ +AVVideoEncParams *av_video_enc_params_alloc(enum AVVideoEncParamsType type, + unsigned int nb_blocks, size_t *out_size); + +/** + * Allocates memory for AVEncodeInfoFrame plus an array of + * {@code nb_blocks} AVEncodeInfoBlock in the given AVFrame {@code frame} + * as AVFrameSideData of type AV_FRAME_DATA_VIDEO_ENC_PARAMS + * and initializes the variables. + */ +AVVideoEncParams* +av_video_enc_params_create_side_data(AVFrame *frame, enum AVVideoEncParamsType type, + unsigned int nb_blocks); + +#endif /* AVUTIL_VIDEO_ENC_PARAMS_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/video_hint.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/video_hint.h new file mode 100644 index 00000000..1b219609 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/video_hint.h @@ -0,0 +1,107 @@ +/** + * Copyright 2023 Elias Carotti + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_VIDEO_HINT_H +#define AVUTIL_VIDEO_HINT_H + +#include +#include +#include "libavutil/avassert.h" +#include "libavutil/frame.h" + +typedef struct AVVideoRect { + uint32_t x, y; + uint32_t width, height; +} AVVideoRect; + +typedef enum AVVideoHintType { + /* rectangled delimit the constant areas (unchanged), default is changed */ + AV_VIDEO_HINT_TYPE_CONSTANT, + + /* rectangled delimit the constant areas (changed), default is not changed */ + AV_VIDEO_HINT_TYPE_CHANGED, +} AVVideoHintType; + +typedef struct AVVideoHint { + /** + * Number of AVVideoRect present. + * + * May be 0, in which case no per-rectangle information is present. In this + * case the values of rect_offset / rect_size are unspecified and should + * not be accessed. + */ + size_t nb_rects; + + /** + * Offset in bytes from the beginning of this structure at which the array + * of AVVideoRect starts. + */ + size_t rect_offset; + + /** + * Size in bytes of AVVideoRect. + */ + size_t rect_size; + + AVVideoHintType type; +} AVVideoHint; + +static av_always_inline AVVideoRect * +av_video_hint_rects(const AVVideoHint *hints) { + return (AVVideoRect *)((uint8_t *)hints + hints->rect_offset); +} + +static av_always_inline AVVideoRect * +av_video_hint_get_rect(const AVVideoHint *hints, size_t idx) { + return (AVVideoRect *)((uint8_t *)hints + hints->rect_offset + idx * hints->rect_size); +} + +/** + * Allocate memory for the AVVideoHint struct along with an nb_rects-sized + * arrays of AVVideoRect. + * + * The side data contains a list of rectangles for the portions of the frame + * which changed from the last encoded one (and the remainder are assumed to be + * changed), or, alternately (depending on the type parameter) the unchanged + * ones (and the remanining ones are those which changed). + * Macroblocks will thus be hinted either to be P_SKIP-ped or go through the + * regular encoding procedure. + * + * It's responsibility of the caller to fill the AVRects accordingly, and to set + * the proper AVVideoHintType field. + * + * @param out_size if non-NULL, the size in bytes of the resulting data array is + * written here + * + * @return newly allocated AVVideoHint struct (must be freed by the caller using + * av_free()) on success, NULL on memory allocation failure + */ +AVVideoHint *av_video_hint_alloc(size_t nb_rects, + size_t *out_size); + +/** + * Same as av_video_hint_alloc(), except newly-allocated AVVideoHint is attached + * as side data of type AV_FRAME_DATA_VIDEO_HINT_INFO to frame. + */ +AVVideoHint *av_video_hint_create_side_data(AVFrame *frame, + size_t nb_rects); + + +#endif /* AVUTIL_VIDEO_HINT_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libavutil/xtea.h b/app/src/main/jniLibs/arm64-v8a/include/libavutil/xtea.h new file mode 100644 index 00000000..735427c1 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libavutil/xtea.h @@ -0,0 +1,94 @@ +/* + * A 32-bit implementation of the XTEA algorithm + * Copyright (c) 2012 Samuel Pitoiset + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_XTEA_H +#define AVUTIL_XTEA_H + +#include + +/** + * @file + * @brief Public header for libavutil XTEA algorithm + * @defgroup lavu_xtea XTEA + * @ingroup lavu_crypto + * @{ + */ + +typedef struct AVXTEA { + uint32_t key[16]; +} AVXTEA; + +/** + * Allocate an AVXTEA context. + */ +AVXTEA *av_xtea_alloc(void); + +/** + * Initialize an AVXTEA context. + * + * @param ctx an AVXTEA context + * @param key a key of 16 bytes used for encryption/decryption, + * interpreted as big endian 32 bit numbers + */ +void av_xtea_init(struct AVXTEA *ctx, const uint8_t key[16]); + +/** + * Initialize an AVXTEA context. + * + * @param ctx an AVXTEA context + * @param key a key of 16 bytes used for encryption/decryption, + * interpreted as little endian 32 bit numbers + */ +void av_xtea_le_init(struct AVXTEA *ctx, const uint8_t key[16]); + +/** + * Encrypt or decrypt a buffer using a previously initialized context, + * in big endian format. + * + * @param ctx an AVXTEA context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_xtea_crypt(struct AVXTEA *ctx, uint8_t *dst, const uint8_t *src, + int count, uint8_t *iv, int decrypt); + +/** + * Encrypt or decrypt a buffer using a previously initialized context, + * in little endian format. + * + * @param ctx an AVXTEA context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_xtea_le_crypt(struct AVXTEA *ctx, uint8_t *dst, const uint8_t *src, + int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_XTEA_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libswresample/swresample.h b/app/src/main/jniLibs/arm64-v8a/include/libswresample/swresample.h new file mode 100644 index 00000000..0e1929b3 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libswresample/swresample.h @@ -0,0 +1,587 @@ +/* + * Copyright (C) 2011-2013 Michael Niedermayer (michaelni@gmx.at) + * + * This file is part of libswresample + * + * libswresample is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * libswresample is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with libswresample; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWRESAMPLE_SWRESAMPLE_H +#define SWRESAMPLE_SWRESAMPLE_H + +/** + * @file + * @ingroup lswr + * libswresample public header + */ + +/** + * @defgroup lswr libswresample + * @{ + * + * Audio resampling, sample format conversion and mixing library. + * + * Interaction with lswr is done through SwrContext, which is + * allocated with swr_alloc() or swr_alloc_set_opts2(). It is opaque, so all parameters + * must be set with the @ref avoptions API. + * + * The first thing you will need to do in order to use lswr is to allocate + * SwrContext. This can be done with swr_alloc() or swr_alloc_set_opts2(). If you + * are using the former, you must set options through the @ref avoptions API. + * The latter function provides the same feature, but it allows you to set some + * common options in the same statement. + * + * For example the following code will setup conversion from planar float sample + * format to interleaved signed 16-bit integer, downsampling from 48kHz to + * 44.1kHz and downmixing from 5.1 channels to stereo (using the default mixing + * matrix). This is using the swr_alloc() function. + * @code + * SwrContext *swr = swr_alloc(); + * av_opt_set_chlayout(swr, "in_chlayout", &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1, 0); + * av_opt_set_chlayout(swr, "out_chlayout", &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO, 0); + * av_opt_set_int(swr, "in_sample_rate", 48000, 0); + * av_opt_set_int(swr, "out_sample_rate", 44100, 0); + * av_opt_set_sample_fmt(swr, "in_sample_fmt", AV_SAMPLE_FMT_FLTP, 0); + * av_opt_set_sample_fmt(swr, "out_sample_fmt", AV_SAMPLE_FMT_S16, 0); + * @endcode + * + * The same job can be done using swr_alloc_set_opts2() as well: + * @code + * SwrContext *swr = NULL; + * int ret = swr_alloc_set_opts2(&swr, // we're allocating a new context + * &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO, // out_ch_layout + * AV_SAMPLE_FMT_S16, // out_sample_fmt + * 44100, // out_sample_rate + * &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1, // in_ch_layout + * AV_SAMPLE_FMT_FLTP, // in_sample_fmt + * 48000, // in_sample_rate + * 0, // log_offset + * NULL); // log_ctx + * @endcode + * + * Once all values have been set, it must be initialized with swr_init(). If + * you need to change the conversion parameters, you can change the parameters + * using @ref avoptions, as described above in the first example; or by using + * swr_alloc_set_opts2(), but with the first argument the allocated context. + * You must then call swr_init() again. + * + * The conversion itself is done by repeatedly calling swr_convert(). + * Note that the samples may get buffered in swr if you provide insufficient + * output space or if sample rate conversion is done, which requires "future" + * samples. Samples that do not require future input can be retrieved at any + * time by using swr_convert() (in_count can be set to 0). + * At the end of conversion the resampling buffer can be flushed by calling + * swr_convert() with NULL in and 0 in_count. + * + * The samples used in the conversion process can be managed with the libavutil + * @ref lavu_sampmanip "samples manipulation" API, including av_samples_alloc() + * function used in the following example. + * + * The delay between input and output, can at any time be found by using + * swr_get_delay(). + * + * The following code demonstrates the conversion loop assuming the parameters + * from above and caller-defined functions get_input() and handle_output(): + * @code + * uint8_t **input; + * int in_samples; + * + * while (get_input(&input, &in_samples)) { + * uint8_t *output; + * int out_samples = av_rescale_rnd(swr_get_delay(swr, 48000) + + * in_samples, 44100, 48000, AV_ROUND_UP); + * av_samples_alloc(&output, NULL, 2, out_samples, + * AV_SAMPLE_FMT_S16, 0); + * out_samples = swr_convert(swr, &output, out_samples, + * input, in_samples); + * handle_output(output, out_samples); + * av_freep(&output); + * } + * @endcode + * + * When the conversion is finished, the conversion + * context and everything associated with it must be freed with swr_free(). + * A swr_close() function is also available, but it exists mainly for + * compatibility with libavresample, and is not required to be called. + * + * There will be no memory leak if the data is not completely flushed before + * swr_free(). + */ + +#include +#include "libavutil/channel_layout.h" +#include "libavutil/frame.h" +#include "libavutil/samplefmt.h" + +#include "libswresample/version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "libswresample/version.h" +#endif + +/** + * @name Option constants + * These constants are used for the @ref avoptions interface for lswr. + * @{ + * + */ + +#define SWR_FLAG_RESAMPLE 1 ///< Force resampling even if equal sample rate +//TODO use int resample ? +//long term TODO can we enable this dynamically? + +/** Dithering algorithms */ +enum SwrDitherType { + SWR_DITHER_NONE = 0, + SWR_DITHER_RECTANGULAR, + SWR_DITHER_TRIANGULAR, + SWR_DITHER_TRIANGULAR_HIGHPASS, + + SWR_DITHER_NS = 64, ///< not part of API/ABI + SWR_DITHER_NS_LIPSHITZ, + SWR_DITHER_NS_F_WEIGHTED, + SWR_DITHER_NS_MODIFIED_E_WEIGHTED, + SWR_DITHER_NS_IMPROVED_E_WEIGHTED, + SWR_DITHER_NS_SHIBATA, + SWR_DITHER_NS_LOW_SHIBATA, + SWR_DITHER_NS_HIGH_SHIBATA, + SWR_DITHER_NB, ///< not part of API/ABI +}; + +/** Resampling Engines */ +enum SwrEngine { + SWR_ENGINE_SWR, /**< SW Resampler */ + SWR_ENGINE_SOXR, /**< SoX Resampler */ + SWR_ENGINE_NB, ///< not part of API/ABI +}; + +/** Resampling Filter Types */ +enum SwrFilterType { + SWR_FILTER_TYPE_CUBIC, /**< Cubic */ + SWR_FILTER_TYPE_BLACKMAN_NUTTALL, /**< Blackman Nuttall windowed sinc */ + SWR_FILTER_TYPE_KAISER, /**< Kaiser windowed sinc */ +}; + +/** + * @} + */ + +/** + * The libswresample context. Unlike libavcodec and libavformat, this structure + * is opaque. This means that if you would like to set options, you must use + * the @ref avoptions API and cannot directly set values to members of the + * structure. + */ +typedef struct SwrContext SwrContext; + +/** + * Get the AVClass for SwrContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + * @return the AVClass of SwrContext + */ +const AVClass *swr_get_class(void); + +/** + * @name SwrContext constructor functions + * @{ + */ + +/** + * Allocate SwrContext. + * + * If you use this function you will need to set the parameters (manually or + * with swr_alloc_set_opts2()) before calling swr_init(). + * + * @see swr_alloc_set_opts2(), swr_init(), swr_free() + * @return NULL on error, allocated context otherwise + */ +struct SwrContext *swr_alloc(void); + +/** + * Initialize context after user parameters have been set. + * @note The context must be configured using the AVOption API. + * + * @see av_opt_set_int() + * @see av_opt_set_dict() + * + * @param[in,out] s Swr context to initialize + * @return AVERROR error code in case of failure. + */ +int swr_init(struct SwrContext *s); + +/** + * Check whether an swr context has been initialized or not. + * + * @param[in] s Swr context to check + * @see swr_init() + * @return positive if it has been initialized, 0 if not initialized + */ +int swr_is_initialized(struct SwrContext *s); + +/** + * Allocate SwrContext if needed and set/reset common parameters. + * + * This function does not require *ps to be allocated with swr_alloc(). On the + * other hand, swr_alloc() can use swr_alloc_set_opts2() to set the parameters + * on the allocated context. + * + * @param ps Pointer to an existing Swr context if available, or to NULL if not. + * On success, *ps will be set to the allocated context. + * @param out_ch_layout output channel layout (e.g. AV_CHANNEL_LAYOUT_*) + * @param out_sample_fmt output sample format (AV_SAMPLE_FMT_*). + * @param out_sample_rate output sample rate (frequency in Hz) + * @param in_ch_layout input channel layout (e.g. AV_CHANNEL_LAYOUT_*) + * @param in_sample_fmt input sample format (AV_SAMPLE_FMT_*). + * @param in_sample_rate input sample rate (frequency in Hz) + * @param log_offset logging level offset + * @param log_ctx parent logging context, can be NULL + * + * @see swr_init(), swr_free() + * @return 0 on success, a negative AVERROR code on error. + * On error, the Swr context is freed and *ps set to NULL. + */ +int swr_alloc_set_opts2(struct SwrContext **ps, + const AVChannelLayout *out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, + const AVChannelLayout *in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate, + int log_offset, void *log_ctx); +/** + * @} + * + * @name SwrContext destructor functions + * @{ + */ + +/** + * Free the given SwrContext and set the pointer to NULL. + * + * @param[in] s a pointer to a pointer to Swr context + */ +void swr_free(struct SwrContext **s); + +/** + * Closes the context so that swr_is_initialized() returns 0. + * + * The context can be brought back to life by running swr_init(), + * swr_init() can also be used without swr_close(). + * This function is mainly provided for simplifying the usecase + * where one tries to support libavresample and libswresample. + * + * @param[in,out] s Swr context to be closed + */ +void swr_close(struct SwrContext *s); + +/** + * @} + * + * @name Core conversion functions + * @{ + */ + +/** Convert audio. + * + * in and in_count can be set to 0 to flush the last few samples out at the + * end. + * + * If more input is provided than output space, then the input will be buffered. + * You can avoid this buffering by using swr_get_out_samples() to retrieve an + * upper bound on the required number of output samples for the given number of + * input samples. Conversion will run directly without copying whenever possible. + * + * @param s allocated Swr context, with parameters set + * @param out output buffers, only the first one need be set in case of packed audio + * @param out_count amount of space available for output in samples per channel + * @param in input buffers, only the first one need to be set in case of packed audio + * @param in_count number of input samples available in one channel + * + * @return number of samples output per channel, negative value on error + */ +int swr_convert(struct SwrContext *s, uint8_t * const *out, int out_count, + const uint8_t * const *in , int in_count); + +/** + * Convert the next timestamp from input to output + * timestamps are in 1/(in_sample_rate * out_sample_rate) units. + * + * @note There are 2 slightly differently behaving modes. + * @li When automatic timestamp compensation is not used, (min_compensation >= FLT_MAX) + * in this case timestamps will be passed through with delays compensated + * @li When automatic timestamp compensation is used, (min_compensation < FLT_MAX) + * in this case the output timestamps will match output sample numbers. + * See ffmpeg-resampler(1) for the two modes of compensation. + * + * @param[in] s initialized Swr context + * @param[in] pts timestamp for the next input sample, INT64_MIN if unknown + * @see swr_set_compensation(), swr_drop_output(), and swr_inject_silence() are + * function used internally for timestamp compensation. + * @return the output timestamp for the next output sample + */ +int64_t swr_next_pts(struct SwrContext *s, int64_t pts); + +/** + * @} + * + * @name Low-level option setting functions + * These functons provide a means to set low-level options that is not possible + * with the AVOption API. + * @{ + */ + +/** + * Activate resampling compensation ("soft" compensation). This function is + * internally called when needed in swr_next_pts(). + * + * @param[in,out] s allocated Swr context. If it is not initialized, + * or SWR_FLAG_RESAMPLE is not set, swr_init() is + * called with the flag set. + * @param[in] sample_delta delta in PTS per sample + * @param[in] compensation_distance number of samples to compensate for + * @return >= 0 on success, AVERROR error codes if: + * @li @c s is NULL, + * @li @c compensation_distance is less than 0, + * @li @c compensation_distance is 0 but sample_delta is not, + * @li compensation unsupported by resampler, or + * @li swr_init() fails when called. + */ +int swr_set_compensation(struct SwrContext *s, int sample_delta, int compensation_distance); + +/** + * Set a customized input channel mapping. + * + * @param[in,out] s allocated Swr context, not yet initialized + * @param[in] channel_map customized input channel mapping (array of channel + * indexes, -1 for a muted channel) + * @return >= 0 on success, or AVERROR error code in case of failure. + */ +int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map); + +/** + * Generate a channel mixing matrix. + * + * This function is the one used internally by libswresample for building the + * default mixing matrix. It is made public just as a utility function for + * building custom matrices. + * + * @param in_layout input channel layout + * @param out_layout output channel layout + * @param center_mix_level mix level for the center channel + * @param surround_mix_level mix level for the surround channel(s) + * @param lfe_mix_level mix level for the low-frequency effects channel + * @param rematrix_maxval if 1.0, coefficients will be normalized to prevent + * overflow. if INT_MAX, coefficients will not be + * normalized. + * @param[out] matrix mixing coefficients; matrix[i + stride * o] is + * the weight of input channel i in output channel o. + * @param stride distance between adjacent input channels in the + * matrix array + * @param matrix_encoding matrixed stereo downmix mode (e.g. dplii) + * @param log_ctx parent logging context, can be NULL + * @return 0 on success, negative AVERROR code on failure + */ +int swr_build_matrix2(const AVChannelLayout *in_layout, const AVChannelLayout *out_layout, + double center_mix_level, double surround_mix_level, + double lfe_mix_level, double maxval, + double rematrix_volume, double *matrix, + ptrdiff_t stride, enum AVMatrixEncoding matrix_encoding, + void *log_context); + +/** + * Set a customized remix matrix. + * + * @param s allocated Swr context, not yet initialized + * @param matrix remix coefficients; matrix[i + stride * o] is + * the weight of input channel i in output channel o + * @param stride offset between lines of the matrix + * @return >= 0 on success, or AVERROR error code in case of failure. + */ +int swr_set_matrix(struct SwrContext *s, const double *matrix, int stride); + +/** + * @} + * + * @name Sample handling functions + * @{ + */ + +/** + * Drops the specified number of output samples. + * + * This function, along with swr_inject_silence(), is called by swr_next_pts() + * if needed for "hard" compensation. + * + * @param s allocated Swr context + * @param count number of samples to be dropped + * + * @return >= 0 on success, or a negative AVERROR code on failure + */ +int swr_drop_output(struct SwrContext *s, int count); + +/** + * Injects the specified number of silence samples. + * + * This function, along with swr_drop_output(), is called by swr_next_pts() + * if needed for "hard" compensation. + * + * @param s allocated Swr context + * @param count number of samples to be dropped + * + * @return >= 0 on success, or a negative AVERROR code on failure + */ +int swr_inject_silence(struct SwrContext *s, int count); + +/** + * Gets the delay the next input sample will experience relative to the next output sample. + * + * Swresample can buffer data if more input has been provided than available + * output space, also converting between sample rates needs a delay. + * This function returns the sum of all such delays. + * The exact delay is not necessarily an integer value in either input or + * output sample rate. Especially when downsampling by a large value, the + * output sample rate may be a poor choice to represent the delay, similarly + * for upsampling and the input sample rate. + * + * @param s swr context + * @param base timebase in which the returned delay will be: + * @li if it's set to 1 the returned delay is in seconds + * @li if it's set to 1000 the returned delay is in milliseconds + * @li if it's set to the input sample rate then the returned + * delay is in input samples + * @li if it's set to the output sample rate then the returned + * delay is in output samples + * @li if it's the least common multiple of in_sample_rate and + * out_sample_rate then an exact rounding-free delay will be + * returned + * @returns the delay in 1 / @c base units. + */ +int64_t swr_get_delay(struct SwrContext *s, int64_t base); + +/** + * Find an upper bound on the number of samples that the next swr_convert + * call will output, if called with in_samples of input samples. This + * depends on the internal state, and anything changing the internal state + * (like further swr_convert() calls) will may change the number of samples + * swr_get_out_samples() returns for the same number of input samples. + * + * @param in_samples number of input samples. + * @note any call to swr_inject_silence(), swr_convert(), swr_next_pts() + * or swr_set_compensation() invalidates this limit + * @note it is recommended to pass the correct available buffer size + * to all functions like swr_convert() even if swr_get_out_samples() + * indicates that less would be used. + * @returns an upper bound on the number of samples that the next swr_convert + * will output or a negative value to indicate an error + */ +int swr_get_out_samples(struct SwrContext *s, int in_samples); + +/** + * @} + * + * @name Configuration accessors + * @{ + */ + +/** + * Return the @ref LIBSWRESAMPLE_VERSION_INT constant. + * + * This is useful to check if the build-time libswresample has the same version + * as the run-time one. + * + * @returns the unsigned int-typed version + */ +unsigned swresample_version(void); + +/** + * Return the swr build-time configuration. + * + * @returns the build-time @c ./configure flags + */ +const char *swresample_configuration(void); + +/** + * Return the swr license. + * + * @returns the license of libswresample, determined at build-time + */ +const char *swresample_license(void); + +/** + * @} + * + * @name AVFrame based API + * @{ + */ + +/** + * Convert the samples in the input AVFrame and write them to the output AVFrame. + * + * Input and output AVFrames must have channel_layout, sample_rate and format set. + * + * If the output AVFrame does not have the data pointers allocated the nb_samples + * field will be set using av_frame_get_buffer() + * is called to allocate the frame. + * + * The output AVFrame can be NULL or have fewer allocated samples than required. + * In this case, any remaining samples not written to the output will be added + * to an internal FIFO buffer, to be returned at the next call to this function + * or to swr_convert(). + * + * If converting sample rate, there may be data remaining in the internal + * resampling delay buffer. swr_get_delay() tells the number of + * remaining samples. To get this data as output, call this function or + * swr_convert() with NULL input. + * + * If the SwrContext configuration does not match the output and + * input AVFrame settings the conversion does not take place and depending on + * which AVFrame is not matching AVERROR_OUTPUT_CHANGED, AVERROR_INPUT_CHANGED + * or the result of a bitwise-OR of them is returned. + * + * @see swr_delay() + * @see swr_convert() + * @see swr_get_delay() + * + * @param swr audio resample context + * @param output output AVFrame + * @param input input AVFrame + * @return 0 on success, AVERROR on failure or nonmatching + * configuration. + */ +int swr_convert_frame(SwrContext *swr, + AVFrame *output, const AVFrame *input); + +/** + * Configure or reconfigure the SwrContext using the information + * provided by the AVFrames. + * + * The original resampling context is reset even on failure. + * The function calls swr_close() internally if the context is open. + * + * @see swr_close(); + * + * @param swr audio resample context + * @param out output AVFrame + * @param in input AVFrame + * @return 0 on success, AVERROR on failure. + */ +int swr_config_frame(SwrContext *swr, const AVFrame *out, const AVFrame *in); + +/** + * @} + * @} + */ + +#endif /* SWRESAMPLE_SWRESAMPLE_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libswresample/version.h b/app/src/main/jniLibs/arm64-v8a/include/libswresample/version.h new file mode 100644 index 00000000..d1795b55 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libswresample/version.h @@ -0,0 +1,46 @@ +/* + * Version macros. + * + * This file is part of libswresample + * + * libswresample is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * libswresample is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with libswresample; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWRESAMPLE_VERSION_H +#define SWRESAMPLE_VERSION_H + +/** + * @file + * Libswresample version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBSWRESAMPLE_VERSION_MINOR 3 +#define LIBSWRESAMPLE_VERSION_MICRO 100 + +#define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \ + LIBSWRESAMPLE_VERSION_MINOR, \ + LIBSWRESAMPLE_VERSION_MICRO) +#define LIBSWRESAMPLE_VERSION AV_VERSION(LIBSWRESAMPLE_VERSION_MAJOR, \ + LIBSWRESAMPLE_VERSION_MINOR, \ + LIBSWRESAMPLE_VERSION_MICRO) +#define LIBSWRESAMPLE_BUILD LIBSWRESAMPLE_VERSION_INT + +#define LIBSWRESAMPLE_IDENT "SwR" AV_STRINGIFY(LIBSWRESAMPLE_VERSION) + +#endif /* SWRESAMPLE_VERSION_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libswresample/version_major.h b/app/src/main/jniLibs/arm64-v8a/include/libswresample/version_major.h new file mode 100644 index 00000000..dd13f2bb --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libswresample/version_major.h @@ -0,0 +1,31 @@ +/* + * Version macros. + * + * This file is part of libswresample + * + * libswresample is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * libswresample is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with libswresample; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWRESAMPLE_VERSION_MAJOR_H +#define SWRESAMPLE_VERSION_MAJOR_H + +/** + * @file + * Libswresample version macros + */ + +#define LIBSWRESAMPLE_VERSION_MAJOR 5 + +#endif /* SWRESAMPLE_VERSION_MAJOR_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libswscale/swscale.h b/app/src/main/jniLibs/arm64-v8a/include/libswscale/swscale.h new file mode 100644 index 00000000..e575695c --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libswscale/swscale.h @@ -0,0 +1,460 @@ +/* + * Copyright (C) 2001-2011 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWSCALE_SWSCALE_H +#define SWSCALE_SWSCALE_H + +/** + * @file + * @ingroup libsws + * external API header + */ + +#include + +#include "libavutil/avutil.h" +#include "libavutil/frame.h" +#include "libavutil/log.h" +#include "libavutil/pixfmt.h" +#include "version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "version.h" +#endif + +/** + * @defgroup libsws libswscale + * Color conversion and scaling library. + * + * @{ + * + * Return the LIBSWSCALE_VERSION_INT constant. + */ +unsigned swscale_version(void); + +/** + * Return the libswscale build-time configuration. + */ +const char *swscale_configuration(void); + +/** + * Return the libswscale license. + */ +const char *swscale_license(void); + +/* values for the flags, the stuff on the command line is different */ +#define SWS_FAST_BILINEAR 1 +#define SWS_BILINEAR 2 +#define SWS_BICUBIC 4 +#define SWS_X 8 +#define SWS_POINT 0x10 +#define SWS_AREA 0x20 +#define SWS_BICUBLIN 0x40 +#define SWS_GAUSS 0x80 +#define SWS_SINC 0x100 +#define SWS_LANCZOS 0x200 +#define SWS_SPLINE 0x400 + +#define SWS_SRC_V_CHR_DROP_MASK 0x30000 +#define SWS_SRC_V_CHR_DROP_SHIFT 16 + +#define SWS_PARAM_DEFAULT 123456 + +#define SWS_PRINT_INFO 0x1000 + +//the following 3 flags are not completely implemented + +/** + * Perform full chroma upsampling when upscaling to RGB. + * + * For example, when converting 50x50 yuv420p to 100x100 rgba, setting this flag + * will scale the chroma plane from 25x25 to 100x100 (4:4:4), and then convert + * the 100x100 yuv444p image to rgba in the final output step. + * + * Without this flag, the chroma plane is instead scaled to 50x100 (4:2:2), + * with a single chroma sample being re-used for both of the horizontally + * adjacent RGBA output pixels. + */ +#define SWS_FULL_CHR_H_INT 0x2000 + +/** + * Perform full chroma interpolation when downscaling RGB sources. + * + * For example, when converting a 100x100 rgba source to 50x50 yuv444p, setting + * this flag will generate a 100x100 (4:4:4) chroma plane, which is then + * downscaled to the required 50x50. + * + * Without this flag, the chroma plane is instead generated at 50x100 (dropping + * every other pixel), before then being downscaled to the required 50x50 + * resolution. + */ +#define SWS_FULL_CHR_H_INP 0x4000 + +#define SWS_DIRECT_BGR 0x8000 + +#define SWS_ACCURATE_RND 0x40000 +#define SWS_BITEXACT 0x80000 +#define SWS_ERROR_DIFFUSION 0x800000 + +#define SWS_MAX_REDUCE_CUTOFF 0.002 + +#define SWS_CS_ITU709 1 +#define SWS_CS_FCC 4 +#define SWS_CS_ITU601 5 +#define SWS_CS_ITU624 5 +#define SWS_CS_SMPTE170M 5 +#define SWS_CS_SMPTE240M 7 +#define SWS_CS_DEFAULT 5 +#define SWS_CS_BT2020 9 + +/** + * Return a pointer to yuv<->rgb coefficients for the given colorspace + * suitable for sws_setColorspaceDetails(). + * + * @param colorspace One of the SWS_CS_* macros. If invalid, + * SWS_CS_DEFAULT is used. + */ +const int *sws_getCoefficients(int colorspace); + +// when used for filters they must have an odd number of elements +// coeffs cannot be shared between vectors +typedef struct SwsVector { + double *coeff; ///< pointer to the list of coefficients + int length; ///< number of coefficients in the vector +} SwsVector; + +// vectors can be shared +typedef struct SwsFilter { + SwsVector *lumH; + SwsVector *lumV; + SwsVector *chrH; + SwsVector *chrV; +} SwsFilter; + +struct SwsContext; + +/** + * Return a positive value if pix_fmt is a supported input format, 0 + * otherwise. + */ +int sws_isSupportedInput(enum AVPixelFormat pix_fmt); + +/** + * Return a positive value if pix_fmt is a supported output format, 0 + * otherwise. + */ +int sws_isSupportedOutput(enum AVPixelFormat pix_fmt); + +/** + * @param[in] pix_fmt the pixel format + * @return a positive value if an endianness conversion for pix_fmt is + * supported, 0 otherwise. + */ +int sws_isSupportedEndiannessConversion(enum AVPixelFormat pix_fmt); + +/** + * Allocate an empty SwsContext. This must be filled and passed to + * sws_init_context(). For filling see AVOptions, options.c and + * sws_setColorspaceDetails(). + */ +struct SwsContext *sws_alloc_context(void); + +/** + * Initialize the swscaler context sws_context. + * + * @return zero or positive value on success, a negative value on + * error + */ +av_warn_unused_result +int sws_init_context(struct SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter); + +/** + * Free the swscaler context swsContext. + * If swsContext is NULL, then does nothing. + */ +void sws_freeContext(struct SwsContext *swsContext); + +/** + * Allocate and return an SwsContext. You need it to perform + * scaling/conversion operations using sws_scale(). + * + * @param srcW the width of the source image + * @param srcH the height of the source image + * @param srcFormat the source image format + * @param dstW the width of the destination image + * @param dstH the height of the destination image + * @param dstFormat the destination image format + * @param flags specify which algorithm and options to use for rescaling + * @param param extra parameters to tune the used scaler + * For SWS_BICUBIC param[0] and [1] tune the shape of the basis + * function, param[0] tunes f(1) and param[1] f´(1) + * For SWS_GAUSS param[0] tunes the exponent and thus cutoff + * frequency + * For SWS_LANCZOS param[0] tunes the width of the window function + * @return a pointer to an allocated context, or NULL in case of error + * @note this function is to be removed after a saner alternative is + * written + */ +struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat, + int dstW, int dstH, enum AVPixelFormat dstFormat, + int flags, SwsFilter *srcFilter, + SwsFilter *dstFilter, const double *param); + +/** + * Scale the image slice in srcSlice and put the resulting scaled + * slice in the image in dst. A slice is a sequence of consecutive + * rows in an image. + * + * Slices have to be provided in sequential order, either in + * top-bottom or bottom-top order. If slices are provided in + * non-sequential order the behavior of the function is undefined. + * + * @param c the scaling context previously created with + * sws_getContext() + * @param srcSlice the array containing the pointers to the planes of + * the source slice + * @param srcStride the array containing the strides for each plane of + * the source image + * @param srcSliceY the position in the source image of the slice to + * process, that is the number (counted starting from + * zero) in the image of the first row of the slice + * @param srcSliceH the height of the source slice, that is the number + * of rows in the slice + * @param dst the array containing the pointers to the planes of + * the destination image + * @param dstStride the array containing the strides for each plane of + * the destination image + * @return the height of the output slice + */ +int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[], + const int srcStride[], int srcSliceY, int srcSliceH, + uint8_t *const dst[], const int dstStride[]); + +/** + * Scale source data from src and write the output to dst. + * + * This is merely a convenience wrapper around + * - sws_frame_start() + * - sws_send_slice(0, src->height) + * - sws_receive_slice(0, dst->height) + * - sws_frame_end() + * + * @param c The scaling context + * @param dst The destination frame. See documentation for sws_frame_start() for + * more details. + * @param src The source frame. + * + * @return 0 on success, a negative AVERROR code on failure + */ +int sws_scale_frame(struct SwsContext *c, AVFrame *dst, const AVFrame *src); + +/** + * Initialize the scaling process for a given pair of source/destination frames. + * Must be called before any calls to sws_send_slice() and sws_receive_slice(). + * + * This function will retain references to src and dst, so they must both use + * refcounted buffers (if allocated by the caller, in case of dst). + * + * @param c The scaling context + * @param dst The destination frame. + * + * The data buffers may either be already allocated by the caller or + * left clear, in which case they will be allocated by the scaler. + * The latter may have performance advantages - e.g. in certain cases + * some output planes may be references to input planes, rather than + * copies. + * + * Output data will be written into this frame in successful + * sws_receive_slice() calls. + * @param src The source frame. The data buffers must be allocated, but the + * frame data does not have to be ready at this point. Data + * availability is then signalled by sws_send_slice(). + * @return 0 on success, a negative AVERROR code on failure + * + * @see sws_frame_end() + */ +int sws_frame_start(struct SwsContext *c, AVFrame *dst, const AVFrame *src); + +/** + * Finish the scaling process for a pair of source/destination frames previously + * submitted with sws_frame_start(). Must be called after all sws_send_slice() + * and sws_receive_slice() calls are done, before any new sws_frame_start() + * calls. + * + * @param c The scaling context + */ +void sws_frame_end(struct SwsContext *c); + +/** + * Indicate that a horizontal slice of input data is available in the source + * frame previously provided to sws_frame_start(). The slices may be provided in + * any order, but may not overlap. For vertically subsampled pixel formats, the + * slices must be aligned according to subsampling. + * + * @param c The scaling context + * @param slice_start first row of the slice + * @param slice_height number of rows in the slice + * + * @return a non-negative number on success, a negative AVERROR code on failure. + */ +int sws_send_slice(struct SwsContext *c, unsigned int slice_start, + unsigned int slice_height); + +/** + * Request a horizontal slice of the output data to be written into the frame + * previously provided to sws_frame_start(). + * + * @param c The scaling context + * @param slice_start first row of the slice; must be a multiple of + * sws_receive_slice_alignment() + * @param slice_height number of rows in the slice; must be a multiple of + * sws_receive_slice_alignment(), except for the last slice + * (i.e. when slice_start+slice_height is equal to output + * frame height) + * + * @return a non-negative number if the data was successfully written into the output + * AVERROR(EAGAIN) if more input data needs to be provided before the + * output can be produced + * another negative AVERROR code on other kinds of scaling failure + */ +int sws_receive_slice(struct SwsContext *c, unsigned int slice_start, + unsigned int slice_height); + +/** + * Get the alignment required for slices + * + * @param c The scaling context + * @return alignment required for output slices requested with sws_receive_slice(). + * Slice offsets and sizes passed to sws_receive_slice() must be + * multiples of the value returned from this function. + */ +unsigned int sws_receive_slice_alignment(const struct SwsContext *c); + +/** + * @param c the scaling context + * @param dstRange flag indicating the while-black range of the output (1=jpeg / 0=mpeg) + * @param srcRange flag indicating the while-black range of the input (1=jpeg / 0=mpeg) + * @param table the yuv2rgb coefficients describing the output yuv space, normally ff_yuv2rgb_coeffs[x] + * @param inv_table the yuv2rgb coefficients describing the input yuv space, normally ff_yuv2rgb_coeffs[x] + * @param brightness 16.16 fixed point brightness correction + * @param contrast 16.16 fixed point contrast correction + * @param saturation 16.16 fixed point saturation correction + * + * @return A negative error code on error, non negative otherwise. + * If `LIBSWSCALE_VERSION_MAJOR < 7`, returns -1 if not supported. + */ +int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], + int srcRange, const int table[4], int dstRange, + int brightness, int contrast, int saturation); + +/** + * @return A negative error code on error, non negative otherwise. + * If `LIBSWSCALE_VERSION_MAJOR < 7`, returns -1 if not supported. + */ +int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table, + int *srcRange, int **table, int *dstRange, + int *brightness, int *contrast, int *saturation); + +/** + * Allocate and return an uninitialized vector with length coefficients. + */ +SwsVector *sws_allocVec(int length); + +/** + * Return a normalized Gaussian curve used to filter stuff + * quality = 3 is high quality, lower is lower quality. + */ +SwsVector *sws_getGaussianVec(double variance, double quality); + +/** + * Scale all the coefficients of a by the scalar value. + */ +void sws_scaleVec(SwsVector *a, double scalar); + +/** + * Scale all the coefficients of a so that their sum equals height. + */ +void sws_normalizeVec(SwsVector *a, double height); + +void sws_freeVec(SwsVector *a); + +SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur, + float lumaSharpen, float chromaSharpen, + float chromaHShift, float chromaVShift, + int verbose); +void sws_freeFilter(SwsFilter *filter); + +/** + * Check if context can be reused, otherwise reallocate a new one. + * + * If context is NULL, just calls sws_getContext() to get a new + * context. Otherwise, checks if the parameters are the ones already + * saved in context. If that is the case, returns the current + * context. Otherwise, frees context and gets a new context with + * the new parameters. + * + * Be warned that srcFilter and dstFilter are not checked, they + * are assumed to remain the same. + */ +struct SwsContext *sws_getCachedContext(struct SwsContext *context, + int srcW, int srcH, enum AVPixelFormat srcFormat, + int dstW, int dstH, enum AVPixelFormat dstFormat, + int flags, SwsFilter *srcFilter, + SwsFilter *dstFilter, const double *param); + +/** + * Convert an 8-bit paletted frame into a frame with a color depth of 32 bits. + * + * The output frame will have the same packed format as the palette. + * + * @param src source frame buffer + * @param dst destination frame buffer + * @param num_pixels number of pixels to convert + * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src + */ +void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette); + +/** + * Convert an 8-bit paletted frame into a frame with a color depth of 24 bits. + * + * With the palette format "ABCD", the destination frame ends up with the format "ABC". + * + * @param src source frame buffer + * @param dst destination frame buffer + * @param num_pixels number of pixels to convert + * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src + */ +void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette); + +/** + * Get the AVClass for swsContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *sws_get_class(void); + +/** + * @} + */ + +#endif /* SWSCALE_SWSCALE_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libswscale/version.h b/app/src/main/jniLibs/arm64-v8a/include/libswscale/version.h new file mode 100644 index 00000000..51eb013a --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libswscale/version.h @@ -0,0 +1,44 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWSCALE_VERSION_H +#define SWSCALE_VERSION_H + +/** + * @file + * swscale version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBSWSCALE_VERSION_MINOR 3 +#define LIBSWSCALE_VERSION_MICRO 100 + +#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \ + LIBSWSCALE_VERSION_MINOR, \ + LIBSWSCALE_VERSION_MICRO) +#define LIBSWSCALE_VERSION AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \ + LIBSWSCALE_VERSION_MINOR, \ + LIBSWSCALE_VERSION_MICRO) +#define LIBSWSCALE_BUILD LIBSWSCALE_VERSION_INT + +#define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION) + +#endif /* SWSCALE_VERSION_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/include/libswscale/version_major.h b/app/src/main/jniLibs/arm64-v8a/include/libswscale/version_major.h new file mode 100644 index 00000000..fd259f95 --- /dev/null +++ b/app/src/main/jniLibs/arm64-v8a/include/libswscale/version_major.h @@ -0,0 +1,35 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWSCALE_VERSION_MAJOR_H +#define SWSCALE_VERSION_MAJOR_H + +/** + * @file + * swscale version macros + */ + +#define LIBSWSCALE_VERSION_MAJOR 8 + +/** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + */ + +#endif /* SWSCALE_VERSION_MAJOR_H */ diff --git a/app/src/main/jniLibs/arm64-v8a/libavcodec.so b/app/src/main/jniLibs/arm64-v8a/libavcodec.so new file mode 100644 index 0000000000000000000000000000000000000000..d84d08d24bf8045678d9095e3acadd763af8761a GIT binary patch literal 7617264 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%0AKw0}*6QuJx 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

dBP-l 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

z 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 &Sq4o3mm4mbSHD*ElYp%Zht8P60Ea<{7jko6O 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

+IyHg*hXyoN5DtoT(Yl9vX8 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ÛF36BZ0%@!)dM5gAqt)I!ow6S0&saxAgi$x9+*R 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κ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

VX_$=3+}o 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

-rs+oruziuB74K-bSRVEqRa$&V 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ࣉwTnTVT{PsUyxV*PsUW^c*@9q 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

f00}fvWZxcF2z=o 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

glo(Md{9bW8 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%0DC}L+{+_MqwKXFA7tL7&Pon zEVmvJ)}eiad43x`<5(0>?Iu6K3;kWOk}JfN6J^ z!s&rj^D|vrD#jmtJ&pEAI0Uk!BAsmsp6e-A@3AbCNoO*?pJpCfQeqro@}OOX zxIr^lLVw8ZWX`HtD{uVn=k?%yAMD+`SN0;_VAp2Z@@ZVlPuPh@4rRboGkvAX2veRM znxoS^!Ne?=X_BXkWzdv7p`w<>`mJt0hfR zXdZtnXQ^Ugg7$@mV2*`GO?dRA7R4{@lX~*IA%P)Y^4Es33fV!6rVn&!7G;|!p;#EI zzPNc%sv-45goVCPrvcl4p^e>9V(}=P7WP^W=Dt- z6G3sEK9CawksY>@C7snF+@xBnL`y8;O7qAt&4Vk7lu#u}St6BMLzZ11oJyLy79e*; zEu5Mku=)kPA&*Nsknoj)oZT|DR7YyUe1a7~BdvxZL1mTYFTzz>IufqxFHBi?x0YE? zSICC59Y~3J?E3H&1S~%^1lw-;IO6&e@u)YW~eunLFlT%er3f3vSYXc9+reDr-X~T zL28wVd@Yrq4+Rm%aT@0t{#Dkj(>$kXusR88Ec9!*(SJy$iPHYC{$?u0OVDB+hGiTK z9SA5}F6|c>RbZd^Xo4?rkJiym(I*{+4AEmMsV>oUQLTQ&F0n%6hv|W?q{B*ev(UTz zm+otQ2j!L15(Q!FDkm9)^{7ICW3^caQop((G=zuM;6$kq6sJ@~XR1S7t~qMJf{BFi zVM<`EYrV%jkSh4roZPMpDVT_^aJ;Zqts~9L=!SEnoEx%L4wJshW7M*5dus_oZM_3` z5SKNh$b8{N3}By$8nDzDR#-pdV=WwFkmMjbMUX6mbJIl=m@=ipLPnEM5g!UtR-{W) zGgXxsRL(Huj^cR|t}Q8yuPPLBm?~nY_Jvy&;Yt0l5i7!G&3Mpt%$OcJu#aN=Q4@wP{51W=R9k6P7 zT!~P$aF`=er$X2W4D-Xk5Skq#3UsqKFU7p)tMkDBd}U}AO| zc1Qa{SN$o0_fjp>$S@TrbZsfcq=%-cLXYc$a5)#k$|{spKtQWnH&dj;E3$<{l;}{y zs&3s`EnP`FIOGTHT>H!=HT;G+M1G+QRo8TZ`7fA&p@L{N3jb{GUcg2E#n9J+lGY5u zRBEJ!UChW9cr|g?b(pFg*OceFP%rEreF4RghlVQ62y2=XH5|fEhxJR(1F7((OZdP| zrYb_#xF&p6Ig~hMbRq{r``C$Og5eZa?Nu=BNPQgC-$1|NUAtxMu=ql{PJE&mkndKQ zpU@^S5XWB{{)|6`)X-BWVF#v9(hg&)rK-kt*u5!?P{F&3R^oM&M?nt@3{e%a%jkev z@IttY14fUvD17WhDfeJ>NH@&w)z=in3A0z-S6PGvUr3nwiX5$xDOHX&P$;LKj0QDn zEg)Ys-HK5Ql=-LT^;b5ebqVvMa7|;D_Ek$TNG43#cM+lxN`s!&2jxP-2%7CS&y}%v z2uIZ@DL*cJIRR80u8D8j9$^%UaP>eH;cTh8S2YeEK5$oPP(`ly0DsB zEm0Y*mdFKKW`QoX6gm;&8*L|nQu8SgY*<6Lm6uBBFbbs$=6}?U4izu22BXYRCOZesuPtFmMUN=XBtgtFBGV8GQ1YMluedS zB^=!~(TY&jF-;PFAv$0jTBRv+SVSwNpvg`P4zz)_A|nh8sD!{pgG^N2=-TjALnfgx zRn73)Fty&L-^QbmGTDM@6sZ}TE(@dyy#c8rXT&K%aKFF`xI>3JEDSNitPdf~3Ej)3 zkeZ7LTh;)p9?%$dEFWa4<yV*a>^3ue!}!IRZsHQwk_)LC7wxDulqr>3b6d?z#5_c1nC0_9_zG4Hc-9l+$uogZ z_z^(H7IvG3_fZ$#A0x`(YwW7YRyciZSLN-RH!xy+K9UbPvOCyX)*U{oK(si}8uvWC zW`5}Pzj~)e3=BTR=09BvZ}mrSaVLJF6L&6U2NWN?1S)Z;l^A&?L{>5nn zr`Va!r-~~{`7KV$r76#MH=PVn;vC}?IYYQt0!*XaZTtx7V&D?m_Gu{%98X`fxn55G zO+b!vS)dL$9XJg*6*vVr88`_z5tsp-37iGY1kM1?0nP@_rJdV>TYy`EWxz^c1#mNP z18@nj6j%bx0d54&2R;epz-JNZ^}uz&wZKAP0dNiQ31B`j54almIB*s4G2lwzqrerw z<-ldYrNHU5c`@l+Aj|n|(pkVoz=gmCz%=sDBb`fH2b|6MMWl0pnVioeok2Psm}aT2 zRW=Fz33!#HTmrr%;EU=f;7J00sNDqgCFmzXe+h6)fMWt&6X2Wx_XIQ~XeUXXq;nLI z1x^P}1&#$K0ONr1z{e?j8E`RhHSh`G8ejo1A6N)n2V4uBfQ+XC^Ef}5x~Bjq0Ve`e zffIn^fhoXbU=mOZOazVrjs}hda=@9uS-^PYJPsHOi~&XiA0huZU=-(5fssHBFdP^G z3R%l2fG7|FT%ZW30)_&Efl?q1_&^3I1ImF4z~# z*MT>HH-Wc+w}G9&F5n&DU0^p*4>SNxz@LHlfcJq$U@!0iun*V|Gy^R_D{ug41KNQO zpcCiT*O5L>`b*$q@;8${0epr0gn3z!AVWpc<$FDzLgrU=UCR34f`3?DlgMCNnQ#2l@XeUMO6lGGBNm4!uB}phxlAj+ z2jqj~j}$*Bc98!WN-M*FDqtiq92fyq)58d03@{p~0Y(8w0KiU_3Am7z&I4jsOM&$3np|zzCoQmiU_3AmI1Z^yq0I3>E$63@o(fFj{4~;IfTMu3xjvF~ zI_WfEJm+)Z*lZxnbscara2jwba0)PvGAEJFqRfe;Q-QnS#6?`6!1;xwQ%ENR7jS+) za0lEwk8};`YT$FgXMxWEU!d++fmNK}4xCH5TS;#LzC`{C(wl+hz&YGoO1cEN3Ahnh z415x}0ayfF4_pUa3oHZ{0M`JY0KQCncLP^*{&C%V%2RIuz3pf*)37i4U0Hy=efEVVUM(|}WfQ-G6! zlYkR}slW-q@xT;dGB63K1&#wg0!##s1&#rZ295$I07nAjfpNfCU<@!Cr~#^hQNR(v zNMHmo92f=+1%?2F0sR{UR00)1IZy^<03VP=$kWK8WNk%23P=J8AP&R;4~PO0zy%y& zJtO04M$?UW`FU=&yCsr~G~?lOZnNV|800u3i+<|7^0}Y%AG7A-qk1pB<>5n_PL5D7oYUOS@-_W^-m9; z@xW>CeSO-Vx*L8!Xv=xuJ$~2bc`uCm#IHvF@!RLTJ9X%b*FN4j`N0cn>o5A|Ux#m6 zu>6OmuYKi;1LLp!udywUEd8fn-G23#-zt81Me2=PHgt}@`>I!?KmPQDzRNxz9KHGy z_vO$2^b50lKC-SXW9Io6oO#xT7k%ui1q(lZ^|jY6zH!CMo0i;it21GiZP&2LwXMkg>nvQLv!`)< zGm>4f+UBY=mOObV%&HD&nkuu>!`?9a2EQhMg|e)T+g;YPxNA4;4^^2~BIH8LJRXlQ z4Yfu!UFA&A9m2bsosyw#vg(bdw3rkn#L|CexO%^*kWiN8eizINC*Z3oY`AwUQ@y%2 zH*4P7^&7V=-L|tCYT`w_bm1lS#zopk(QH!7a)&0R^uYw0_lFX0l6THfOS^BAZct>d zOevdPGXqA6Q%BK4ka3)06^^qAl`I;<0?u&9nSF%gq(?i>3F94S&(V%ErIzO^Qypi+ zX^u1e49cGGILj_^oTjUJ9dxndeC{^KnR>V5eB&FA^X^X^=WoAvoNv9tk_f8)r4rXU z?l{*O`Z3q}&RwoE^{1}$(|xY<=7b37g$I1GV<1O}>j+;0a zzM6D3*VTo*EnEw7TniELbc>jxdUTj8-^%sY&MLt~XvDXEJNVPywwdC~b;xy@EC;P21e z#qM?Pk3Xz;Pvn+4I@~Ty<9OskApX~j> z{ee`^`GGqpGAFW{PXi1dHdqHS(_rV^Yj0h3s}3UATb)bSJovo_bufQ^(D};agP;Fb zNvG<>6BXsv^3Pom@%YIK{_xMKntgK?CCr}pv3s)DKGhVoo=_kB>FW)_o}bhQ9e=J5 zu0Ospc>amT;Gu6e1+V_IDR}(UreFuxt@qRiyDA%l2^ZG~D=G6O;M>5&{-)p*@@9=_ z3T~#(IiGF{o~50qDgU>n4Z%;SdpUU?hG6g9 z`rrZZ*;(2U%sI9p_)5Mpc$@sAu51c!1jqX;>w~@A>jXAX@9Ya3f-`8lnKDn&*Gk$s ziLxUfXbjFJ?WVoYQt!9)^DOuKD0d0@N$|ak{HMWV1NdA(8&}icM%vs!|F7+62v#kv z4<3a6WV#`^oAWZG26Pu%+%?R*S;`Z^ne&ywFj-p?s}4Q2m8 z|CwJ3=lUS^Mq@CH^ZRM@ajv)0=S#q%y|hQ!-_TBmKCc3&zfv#N)e!uSz82B;H^BJ? z&Rb~vbt-S&RhN-SqW8^g9+D=80GE z;yJEw;Cu}2bZ~zIbXU^v*PvtYh^C;2{!ZZDZ=mN`+V})=KAmgH`_teYd$}PP0$pq9 zZx8sqM0=~bclW7H!BgP%YucMge-Chd7v&#?_Eq#ZoxH}Lrr@%E8iM2t^}!d9ZU|0$tRc8;75Yir|Det`($^{f2I=o9UvhF& z@CDjkJ+vvf|H-D{5z@!*YYcwzkH(<(wWi<}`fgv=7|gr4F?j2|hTx9v4Z)9!8-jn{ z-V}Vm^-bjWaDEzPub};0d3|s%WhO$;u#=mD-_zDz?F~WgkH8BWrjuSt|0{tk{eO+L z7(9PHyFLgeH3kRXs}Fua-f!tY{eFFL9%b4uZwj3Ap;`I#JrCR$!NUxBpQZmV!H;qD z^)322iS&B#_&D_*AKDaD(?-=V(FNMyvZ*1sje0MG(_HXK!j~cRT{gKfIF536!@HAc z^J?yufomoAzXL7j(B>(eUj&V#DZ7-mFQWX_Tt7n}w}a1e>imWFzeT!?{K=HNgK~d? zj=SjdkHVWe?|{dt;PcZbn}VH`A4fl@0^gwQHt4$(eqY4(0m|J=y<4gCdD{EzgH6FY z?n!pijo(uLUh=;}-|s+A^y`hmx4{2s=&9oTZ2CxE(G+wIZVHZ_g}xtX2&UglUQt8v z{PW0tV?*%wSDS+66X3~-O+o+P8-sPEKc3SVoPJqTa0YcYHi3UfWAH=rZ#%ak_*14a zxFu5`y!f|<;1AtRK@)90vA7{vb6ZpJ9&J^=))>4&+wcFXDL8`mudZzjuBDw$uHU5m zRNDFU+J@j7+H~l57VUk5>nQbqq4Y6$OFKR1Gz1m&*SVxI_$GM$3iu3dl+gFRsfOT8 z@LK=h4M8>KKRvi9@Rv3Qchlx_@L5lKA~>CLS3S0Y@1kBMeNCe7AJ;Voo4DRcnFo(- z2-;imjmI?xN72^FGGza0I+wg*=No8iLKknu5zq@XyN|gBtwEE0kIL&8FZbuJ`V# z4^Ad;&IRz3a_4ZqvJxM2Nn=oVOheF${Bp>B5%+3n&!z1*CZi+tbq2QHhaS!Ta(!?) z*Po?KFZbq?Kb7_$Ko{<({Uzw!Q>61(H3bW3>xIj)!yD^^QriC-Wp5$>>%c1)qi5)Q z47zToy+2U@9B8kJ7F{!c@r=0_-@bI=Sqqn(xA1o7 z!^}l1=C4?^W< zdQirUB}lWQ~{*s%n`?vY?R~(dm=KRGsFPu65<`s($DQ(#oE?K_f`hS!E zZ`-#Tg**Sdhw#RK=qJ4SZ+e@t@TL_Dmmfw*A@h(v!o2_8e3<`lTAquRES$FDLuMVs zk;1L8>OuL_RxP@5<%;X4-E`gJL#4BP{-W!yUm-P{wPf+agRoV=Xve0z!r6c>CWKk6 z`Gv=YBpbQEppbs1kbb?8{DWsYKsJ~wq z((Q$GZy{xY#_kU%h5GB3&tH1|qH7MaCuJU{`pNPbzG%Us z`2)76{QqqPhvpt+1iAs+S1vx(Xb#IhtisI2ix(}udC8&$6q6fJ>A4GUTy(+w8gZwam(M|s=|D2m{Idk#+6)P6r^e-#0UPDzl*n*XP2&w-`55jrizw{u79Cc`R zC%N2YR}O3I;q`Y5*S{`YzgS3j7gApGw4<^hzhg+xy7&TwvG`!2T|5UHU%32`tiz;O zXsD2Ao-Dl`M_M#-N8N8Ke^vLlEhp98_}mqopP0SuFZZ2(=_kH>+AYJ|POqGPb9T{P zX7O+2;aaq#uPedP~;?hl;n{y?39 z^MkJs&ZFpu^;BlyIJiIIaPYOt9Ngc){ek{<|KR=(ra^t{IJoS<{ek{%-W>kXa)*A7 z3O;elFU8obS`XMbRgsMTxVGLv0e9)vC*VP@s)SoK-#AAXPh=>Uf5G8TzSqsH;yOkI$~e!EFMLMR zha1n(7t5*it$fy73vg&nWP@ye;2@v8aN_%fbTvXbqU@t=~_UbX9uCbQhD&UmA_Mawl_rp&9M zk1&cVg}QV% z$*YZctEX;dlQ@rXLuVRuH1vefVjOD%e zOr$ze8_7jxu^8h<$|5z9Ns(!h*^&7y!IwuyMW<=&juHj>$ zm65TL<0EH8E{-gS#3F+t<02B);re*d!0(I_Xa-g zE^y`rzXZ@^G}J)W5n78`DVlB8<4Th$Bke__oebB~>N2j&xGpQhf@F1ApII5#vLNca zSf5LMS+GleSJp;-m-;UCUFy5kmxquQ%Stn{R_bS{pP_z+`exU0)g#RSTvNYHmP!3G>dQjQsL#vI0N2znqkb92fQn;Cm>g=2X<>wz5Xy>KVm}zF zGe*jdYC4lWXNv65HN!)<+>GoHvq4Rev23bGDWt>v!19uM#6HU7-YE@#Yn2XXpNLOI>w9EdQlX5vKO5q*MRT9 zO<*VT7iBV3>;aE}4P*J4F%qDL>%qmwLW|u1uwamyZkwj#0 z&0B#a}w6jQIh{GYQpDvSd&ivNUv6bFLxEhP!f=cWt=iu{ZS?Vyb0)H2_12TOB8|!Pux<&G1Jb8j5)Q z7_U)&BonWuFCLpSWT{-lj6jAtn)}r@RAQjj^r3n(K=5#?dBh0Fz#`xyqt3Vt!L+BL z(S}ThxN5bDAw{@vP5`xKtU-}ce>96BrW!p$wZkC^UyT`+YlNaC_Jls7;MLU1*Z@Q= z95p6|eQ;t1;c#gN$7qH2Nz2ed6d9|cK#dJ^r&Vi>AwA{rJ^c8nF(#^BIabdZrq zhK1%bnox#Y40GUsoiQ4Yws8SfWvD`VsX{R>j7 zbm;QDoTDLf66ZJxo*`iFV>QaS)4j@SZ#v4(t+5*W7|zPZdga$@bi>Nar+c}Kmt!>d zys?fq9V##d#yf_yv7VFjGGo2WbZ;`4OxJK(p8J1o5U9E1oaa8vSA&mqHo6m~_Z(<7 z3LeJ2Fvy7ks0e8{{@%p56_$Gyb#QD)(2~yr9tlV3-0*q7q0qZ z?C!U|^!Iz(zB+sDJNLeIzyHvhZ{NQD{6}8;$(J`3Jvnyki+?(K$Bs8&eeb@mC8-yN z?LBJLN!>GVxcHfCHs8GPd!O8V$Fs|J4B7e1JtI1<2(C=V%jOI{x8_e1x{hm@dhh9P z&-m>*XI^yO#kE&#xN7hG?u9Qe`sj_{UHbEzKY2^@Z6E#ABcD0$gOlg9T>RtR)#K~- zy_(7$yLtc4V|Havo^sq7{SB9&@pkv5*4JljJU!O=sf&90e?I<=lBcJfocLY&_h-C4 zylzxk>f6$pzesI!fim#gZ_NZSC9X;Wp((+N~4{a!s5%u%4 z4jvC9dxJK{+HywweSvnhb_DM*#@8~EZwrR9Lx(2RT+*m>8zIvA;~|GZ)0^gZA{?cLB{*K=p&Yl%LQ}eUP`Yhv+2s;Am$q zri)B9hp~}i9F}O>N}D9eb-&)8-%W&t$JxZRBx(WBLSV zv%kyPUh+zMmOstO_#54A?mB<1zm%QCoBUjQTj@$?R{ClG4*wPF zc9OpfN|ySw;ovpSEVntm-kt5g;@{_QDa}RhcV6<*T%@oTsptIl{&;6&x+UFQI@fXi zX7_2o!*53dgPc44U8R$8DrY(yOE>##;Jmb>1^GxpYW$i04u4*HE4)3ynd#)*=}78{ z^c3e=f34f#kA;#uohj+1=`HDv&Mf2c7-zS?lP}(^akl!~{W;Df{{8-Q=}knb^Wn(5 zzDeDA$G^mRj_;(dcB|7nOGmS6@Hldwid1$wk{o>Yoy;U>n>)mL*m=T#j=gaizZ&hS zO+SjRY)fzR*E_HJ>q{r4(HnQEyT#oFC$;ZyEwb9=uXNU?*ZFOJg>wKs>hc#lx%5Uf zY?)J!Y?t{NSMr?g%ulaLuTFPDZ7sRAZnLx0U7B9w=a91Y1F!eDz$w+HEO) z1aNsc{kS_7jz8>A^B-^?PmlMj{3ra)=+LXi2PdF+U1;ERb{Dpw>#cB~-QWIm$n+7X8XnC-yJw;G+uZxnlAY+uuJl;+8ePQ- z*23q<{2FL^#^3F`{{3js>B~&Gw+Xx1;>sR3`m^B9H1uhmUyCHf>1}B0 zJN~Tn27jf$0S@KdF-WNfkLb9|kn@(b%@VO0L-Q+jG+bw1p z&-z=@i+8bdY>%DqQ^Dq8cNx4}kHuDl<(=s1T>RT;>dtVMrjN%b<&a!6mb2R5=!~cJ zg-(Ur>EG<^au1{@!AjYw&-GsboO zchlRUYpY3Q7CdZ5E zt={dQ37^K{S9Yc!@wd85eR&fnGt(*auf+nji?+sim@x@0b=v){w6PsqnD5>R-PLe) zDLj~rZd~H5bFaY%tU-o@z+@piKsVtvhM<}9K(D}+*>JPLe-<2Dk#RW~&A?JO;ESu> zP4u@D%f8l$qA~N(w+{S6H8wA-%D`k9er7keU5m#Y<35b0GcvBkv#j>t zMXKYl*JeE7N_gFdq~`gfrFH2Fe~o*KKgOR4m1FR_m-@?GEC$(K3K!%tANO0*2e8ex z=+x6b-U6+ej!&=mWtD5dz1qJ83z_Ecz%z`Y=Pme$?>n%?G2!P|9#QO-R9 zoVSC~R&2Hc`NC5?^g^cw9hnA?j(1-6XTZJ9_~3dpw%Q#7O@rWz% zDL!f*dXdA!?e?SYI_S?}J@3FNG!7ek+Mn(2fP1sBs=16?%aENkQG96gAMlr96`lUO z(7qLqxCITyi#V&%>KXnuQ2#~RXJkY}A4gxVp@nJ2mo;e7H1wqw-fnVsIS&3}9=xB8 zRlRF`+6hNi!kIInW*vNa9Qt=*b?fmA+u%#ByqvQE+REHV(W?23BAbxOI4tc|yx{S8 zsEu%Jh%?EZ4X<*>4~^h6@Ee!fu4vgrIlP⋘=9P_;;ek>sYH>W`24jJX*-xHgg%X z-+^Oe;n8S(e*=D1K1MtkjYcnn(mCkBbS!GO|3&EA3KrXu!ToUOQKY&HU((5#^ElMV zH*J;9K<|3+-3VO{F~n+gXBz(2aVLZ08aOi(X>EaLFC(|5@I*3~MpU2~?;`E{uq?@| znNe)Bc?kKVDe$Wv&K!^BJpkusFs9ChV)1r^^E7rgixFxWV@nNOX+ejyKYBgBc_Ey9 z2KtANlATaEQ>L*H-4uF8z^dGx;lUJrpck5Xjqu&G^D;Nc z*T9!87ENr#S~g>q>#)fkNPU}ghdl?7FoG*^tfwqKkNR5p*Ent5ioLL9wm!TK4;lf%xWec=7AfG3& z8%4D{&@1_hx!Brz z_iQ*lhLLYRI{hrt?Eu?X=zS{`PQ>A=}6B50b0A%Ni`^U15QCZD6bxr5f*dLHTMh zRE&HF_Ol79+OUIJ_)gi;6r`qDQ1riyl`bPLyAMu3ie*$Fy8~F?E;Q>IvjBWFoaux^ zlF|;ODyj!)D+l9s$l_t7G|0G4G=hJ66z)z&BPW6BYUJ}ScnP}>IP(N}uVW-}GP}&% zw9vzBMUT)i582&}#jiF$U4xBXf`*Joi^n3v_2AwGzLM-Fusa^UOog}4!NYc>p=jX_ z@HkS_8yq2p(lWkt z?!{9nJ{!qVQc`3;bfB+DmXz>e%|t3y%=aV{3Hz*MQ88Z&<+lhZrqX=LvLu;Gd7f$) zQ8-D4PW6{I`AnuYNy2~qxC6g!LrYY*BFUs0w?3>tU8o8Er;@74&o|JFx-m48Wb$(i zB_)&sDZtuF^2;Fn%8S}m9lis~PxurWPW(<5#Hk_Gw7MZO$^sXDg8^hhoS-e0ipRmp z+EI^WQJ>$(upI7Ne=*@`ZK(ym?QgUjF7~4nMNxjsDEttoA;}L->m!50fNa{OHkCNn z!OvvyRZ*@I3EJd9r%CxCcRnqc5Y_yLq?p>J zP}m61N?|F#oD=1bN*g{#w{@OSyGBw-gk8X4@k8y!B@vzIHktufIT22}J%B0a2sWPJ zTEc{fLc$7~&`p5)f>~V6=mu@6X9+WGKF-$&!k;Fwj3Ov7rqf}9-z`vgrePw6brSeX zo=Hs#l1%9Pik@{_ROo~IeB~DMLsF7ZBI3zT7)k0^5Gpcvii-66AG8ndCiIj#4jGh6 zN$KJgmtc*4mDK$N0{9R^G(mY9H;~`Gzah0YO$!6 zd{fD2M7$@@1OQ?p*~%aa83Fv`G8x*XIHtmAo_q@o=R%E(Uo`;i-xV=R>~0csivWsh)b}9DKxQRSfYA8xB=M)afvO8_%SILJ0lju;zt;vJ55I zl1kFCY*vg0FF0X+hEVv1>!ijq!;qcWuk*EqxFS3^O zyPo*z_aCmq+xj4QvZS~aLLzBDRmA&jMI{NpxYUcp(=prvw@dl4$f9%v$?}_i zJZDNH|3nd%6Z1>CE-mrUhXk+D`Dv;z=$z8aw+tkrY_s@VI1CIdT2krpA z0DK7wa8V`8@#_qi(}u5kBU7Re>r(={5ov&7m2E(y3&s1ABu1G zPcK?t`lGTti>v)NEB;dQw@i6eW%@JaXASw7e@x}4hy5V)k3pM8>@B-{a0Bo9MQKw< zahMS09eQL7m)US>-uYWR%+O^7@PH(c0jhx=*wuHha=_XJn6j`j+euo9@nj^Pz{c3x~dt9sG}u>_s_0cjb=iT=s;ix%9-zbrWYi zRTn%qJX^f^(roF@uV%Z~|993|vORm=ANObP8{*}zPE_Su+Q#RKH&4yYIcH?u=im8Z z-O)deX2*Wxxa^DjZqI&s)Q0S>zk5Dg{>TT}x0c0opQ^0NoxN*(?(Z8;%I#Wpab0s& zQ{6AGn3=tD#}~2-UVJ3`<&9gjrysjJTbYgIR^FG%E$<$c+xO{Xa!>Z2nEUY$(sg@} z`&8Xc$8V|o;7Q%K$DgeG z+V1Ju-XE{a&N*jucEPF7XII|$TJ{r}rfhlT{_I1)jpV-l{o%RK{9t(QA6stR6?&(;3+#N38^SJmxW zRhfO{*tyy3*L@~?b>e~SlJdv14ZnCL`@YwfU2s)0x8T&_xyQb9OzylZPRX4z=G?kR zj(w)C@2<-1CmueNIyYvg{^h>x^m&`J&3A6kZhfI8`{n=2e+}wSq49fjHKQ~ zP^2xTK#@W@#ogWAX>oV5Hy+&G3GNp6{P!&W@0_a_g=Qy9W?s3U=N&5Fcq{AQaZxSr z`Kg$Pk?O>+HPpzQA)-Oqo8s@e!Se2<@1$SX0rGbBm2&9V(=zVX2N}1=MJ@TCzv??W zQvJ8Iy5eVx8rDKQ>*}&Z%b#TVB6DTi;rryo^|$5Xikb3wke52$q@=RiE2;_~;#BPS z-No?It>_VM zm7fFukpuV6m!Y+H%87wjrSm^2T$j75|6QQEl~`6)+4ZfOn)jO+^6wUL^Pe~3Zf7@H zeNA;ad&F3|?Bos^(fB^=B2S9JMb+Vz;c7#>8p_(Nn5aG~LlmykO;%kzN8W0?PF63r zkG*-C{q|h8kK_INlu-A!M5*5Y)KDEmYn%Ih&iNud_vUhN`&lx!;!ZiO@j2-o`C8_s zJF0yt#ni#+;p$|aZ&l&L{a9-^M8hW)<+wtfW#7-^WqiaY>Dcs!%sHPfJ+^qLZ+{L{ zq1Vc(KGkcf{>Bs$ck6{%_qeo-{k{g*(!hMjldo-)10x?x`!fgi@u$M7-0{-teaq^+ z=i#E`%%|dEWR$c#?kqb!m?3|!w^N?nd5c(*E$>h9RI{oEsb<|G*^A%sYYTB?xLrIS zTUef1)I{#~87+G@T`T3OlQOK#b9tb&qZ;yWQC0Tu(#pwJRedNVglqMkV#KuKviN}C zN0{reO*7Za@W<|65IU_*gq3zdbDSe{*L&SClQLx06j% zX2@!74#;{_9}r9OW!GxO)XeAM#D|*dyT7uG5z`in+GE0{)&7^f8opKzsc~MuzMCpD z+={554;5F{N0s54%BxbtzE#`jl@(oE?-KqpPxXUg3h>!zz;@_c}$I~oj#`m(XDzV)@;in&L{JW7i zaiGzvT&PhgJ;+#`u)uaO*WFgP)I0q>t^F=dvi`TUp0(Vn$+oo-amMg%`>aV-irQ;s z*0FZ3(8PXzb)vmr=ZSppcL~bxiNSg|{+d$Q_UUY0d(i%tHa=?$+JE&Rd&NlYeak58 zHrj}uwaVJ&Sb1Aap9uSfk7w=0P9L)W?{FFWhIZ#{3&LjDEC06GyjT6R9^4*nlpo<^ zY?<1@W`8!%==5izmFHkd%&%rd+#hUI3Jx$jS2%BVUF&NvKVq7l=VNO-JlfzItr>rJ zu{l+mXgkzvvN8D0e@5ZMJM2-<$J+UCw#5m7mQH`xH~#4R*=X$JBziU-VDPopk3StZ zu0KjL_^kEF@I3J%xj>A(nkEPpYUn z9plyQ>YohHtS)8^kyPcg$oM-{9*g@yPQEsQ{j-MqvB`teZ^_=CU-h&dF!oJIOACCUX6&<)uygrEB74Ip*mrx#vv2Y}U<3HEa>A z&Q*(4XWXl*hkLCm^p|L{Z`?BB(D#X$dE8a@yA&*UEpIN*wVo{BL~WECzD<-xhdh$j zW?6FVQ7_drB~a~t8=>-V#H#jjR_cdW#=+?m#G|>d#G3k1d|gZ8@=)T)0{L;+b{SXy zw9JW5l8H03*vpjVKEx<9Su}Inb(VmKa68{UZM88!OvyXd_D; z?L{3jp4x2%^-F?GJ9telsQXSDUd~FkE21Lqhp6%IDp0poRkJ_TQmJ`2j9tt7iZ7|> z#HKI4)Q1hocO$3|7n3V@%l;)V60={*kXi+D)np%4tVXb^BO+Dg!C19mmsPPxMZ$rt zV!-WWk+dv~ci&XHyc$ORw@@zoW|!Qu^^9Ef{XB^6*@K-^|H5$kHZSYrZH7zP{V%mVdMhV;STcYIoWpQGx@lAo_w?4o4PPa73_*o zF0W$w$EvRE{!xs~IVAR_6e2d)lphNHEX!4$Bnuy2B?EJI%lJ9xd7rQ3><_u}{Ay3N zZC{}B-xi^UC0ADdS8A!f0Txm3kL_kmJsuP#H=JrhjXThM2g9$dCFdL>k6x4W(qGCe z^&Hf(xFTxPm=M+JK}GeVYaBI63vpok3GwuetE6_8#6nrbdpvP`9`~_B4r+di_wkV2 zo+G24yQ@Fj2B<;J!&SQuRj4t7)-3i+HufqolaKc9!_C;(_RT!jD>6%K5+jBe(6F z!@X}JSD%zk-aa75q|2HmJk;YPKlPwTC^cLawd|XCmD8~bacH%8e>6)(+^-;S`?iwZ zGX}~(6KAky*2~Jj9g~w%@5>{@)2L6~)XQzfRM6ehN(`>7*3^$z#9Yz2!c?&~;;yjt zD=ho0tty9a>n>l)dGgYvUGi1PW!CabIc`NBxzw9_H&B&&7p`i5iBSt@S=7x}J;gsm z62+<#MR?XidKkUrKi<=*nb#6C4pQ%5miAUJspoR#r14&=x$>1n=Rr!Xmih5p#_gFL0I)wvQ8YgV(YDK8vAa%g7?j>QWz!kmrl8l%d!5vxm;}4w7V*x~VdGhl`qaun5n- zlv+QylByUVPyG2v-aIN~yOMIFpOV|Y8!aC+SSnvl+aVV{JV8BvMb13_f>@ryI&@RM zV}sSQlac208yizgU4IlRT9r!@BYRe+UT)2^|CRVZRAwHZN58j6KC5v}ZWgbobJAtk z6W*%b`;ye_<<*ZtG1L;ZR6@BT;`8{);+K(kMf$=JdGnt}a>rkzsJ|EU{QWs4H&1+GOUj(Jp1>Bd12Pbl@0j$3;?pyN$Z% zq**8BZu~;+@2ZF~%5zE?>YggfVRpQt)-YE8{*5^G=R8rgy(jO!f%y#H$1IhXGj_9= zE}HqPf5|-dwGTfph`umFm36DCzOQMh@EPBVb0^k_^zyml&Hfna-nqTZ={THPf1y!g>njE&*~HkEo^s8enzBO2zVg(A z>2l@ff5{<721Qvi^6+=_PJ*Pp^q(IsCh)8XXm=zBx%RnpQ>K?HsRuuUA3*+UWuDH(dVQ zq#-fC7e8yftUYFl92>JoUh8{VR*Ziuug-R$&+$J`Ve_aWcRm76bbm8*Y0A_TCA{7Fox6(wUHwkFPwl_PsDBZlmeJ#81*6VJ(GdBhTL;(d_nurorrcaAmp z|7H;+E_|FUE^WFjX1EolMyk&G=_KDYoWT98B<|RW8~5lV(%4t-YEXYa_3>ROyy0v8 z)3$IG5z%-l@%JrptP)@Q6FGP+z5Y^q_}%hw>{+?u=O^;;%52uNJN1H}DmtXJ>JeU9 zEl!A6YTaYwO~V;N49*mZp|NJ{J6CNQHPBjFw^Ras%njLj(R&z)BRyduHE?fnVoq6A zDY&Zo@{3iaH7+im)i@-6N-NH_Hl-&UN!_uKnrFNG_R|@1`6J>$DtpjH6>eSx)=+}J zwXCYUwJJ4`p$6RcCH{>R<%^sbMc)L$Y?{gkJtoOdXV=o(?2|PopCxuZm+zjYvj*Mi z8v}{i;VK}c3Tvm9T3)QI*nD}u+0)(`9U({0|AAh7487e#SrE3B7;;)>{GBAz7pB3H z+*PY`{_3V@s9FDo=fx|Zxf_i?6NNax`d_i_J4fmcYM@2KWczbV$UnQd?hA6>#1}Gr zMjrXiM=8JJter?=SFE}JTwZ-Iu7)ST58UN*|0?8}rgBunk;LyM^6a2}ti6jez5H|j zocM9v%VaG>{lmHMXm#jbyxLN#gjl(Gx^TaAmpY<^+*`9D`EDRFdlrmlJ^lL;*56%u z^!-QbFc;#6uc~pe483p_*i<|@G~Dcm|E=t2_J?yiHluc%AWIEfO)lL|96BOve|bg> z&!e_>Q^wL_%JES+{ah7QWLZshW>JE{dl2+#!sZ$df9e8PnM5tPS`O=a2qtwyZZG>@ zuASqgQhOIxm47Qv{ZUr+d{kAvzH8+@{vqyszQO(r;IpxE;jHH5>~YjFYvqKWPRM7c z@9_TL%cU<}RrBpd)uBegy#Fv2S3ic@&#JPDRN&qhi|=c`5xb&G%fFo(%RN8-O}#ps z{&+iF?gD%2IrT^;OvzInjtx-z#)YcV>noEB;#93nC($YYglOy&PL6CNe+>E`wdPE? z#BzD(^A_^SG1=_uRe7kaXsDGQqstY5n>f2AXh~L{qhFgK) znb2$eDw7URpnh8^Q}g!FQ-95$PL&Fz(-I%{UZDE5Q>1$KZ;a~K*`oIVxof4^`Q#08 zC{XTfVIc2K!6%xCBW{bAN zKZ@vCv8=xy^jec;uO%z#W%kNv|DKl#2VO|G(RtK>UesFws!o?MRbz8By+}O!|E@9f z`7W_KGmQSKgB&q!u%rhi4$oyT>Hg&+d*Lm7CYM<5&U^RcorP0Fe*?o3YJ1s8(XPX6 zdY}hlVqkIJ)Az*6@p5kbVt(C94|G<}{NXuqEKB~dz*7yW5k%h-LGKr>0;a{Q>E)}4 z$b~CK_>45+J2qB&PU#F+9wUF8u*h6LP2Qd)4?Q3Te&HHi=$(qNhC@{G0hP$#ac2Gh zreQRUbS<3Pm)zT&95$A{yqx^GS5D2lNZ?QwOI!*rhYORdvlfXN;Za%}=Bb?c{#Z-fNrPa?(Dyv~# z_#Yqflw6o5#}D&R-HQ6Fp#5Ry{{LY? zoH}-HwJ~>N9oE2A;oYFDEWN%xKX0tO+k0O|y~)`vw>_ODN;_ zo3G$Dv#d|w%(o>Rm~Ju|_`e0_Y)w1(lkuYKYAgL@!j`G`6U6HuHBT`#OYtmO+WvNa zHCyDuf`o0~J+V&h{kx%g)3D^&1ZsqYrUBD553-Iu+Sq`{TlIacsb9kmgRyItRHw@e z8yttvkF@Z$w!Jm~v3q8%vXd|E+@qndudlDO(W=q%Lwrwbi|GqZzVj-iobg-nZU&4Y zL31HEl4eXc_s)x~{9NmaUpE~he;Ic^4>TS(pKidijIc7PwuJ?=Y}akiG_T_8s+eqy zdoUi&b?1IInfFHBZguE8+E(tko88_j(5_im4XXh&nq|}P#9yAW>gQiFrjym>m5(*7 z%s}&5TKY9JK94_ZCGXn?Mh4lrUR%*OHSI__cAvQw>|CpD=aWC|?c=JOj466ns1@cG zulZN?Q8nWmEq8!VZL)D+HtHoCKQCePZ)7cN+- z&#k^=k6M>~6K+0N_KTf&V6S{*iA~?*vwxS`^u6e3pIrO04VK7ru-jJuzT2kP;=L_H ztgJcf!Q6>9`eXabixutuvVqMtv53j*8n(!_@T_eEdKBYb2U;!tE+z0T((lkpoVI%1j!5vjz1G71u)YdepTK+3&&1BpJLFk%g}zRUemAEc>}5asS^0Cj z&2^5w_<(ly{NMg()9>Wr-f{MIkA=Qg8_&q9`6oZe!uPUQ*%e~veHr9WgLi4NKz`42 zaJFy0e3Q@bNw{wNMSmY#xmBKA_cZJ0@r~@0Qak8t&}=nfV&GjX-^bt`TJ*Xf+0$l& zTUzx#)c5gxY-yvaM`hO5BMW=Y3fB;W`sau%^)khtGwEXD`V4XSScVACOBVz8rlA?6 zi`BPM(LmDR-e1J9szr|EEI=he-v{%3UXLOlRIwx=LUo@4c4~>#3WtPBu z_Q~sy?!X>0sR_L47X#t-Wz>qF%Tl*jQq%6kAHIuI{?bj<%3LG4fCEQu2RI=>?Khsismzd_q< zC~v+RLJnLg?;0D?{}N5z>G*^U>Iql$IDfU_+c5R1Rux!?<}X38pCRPFyP{)gF*LJA zvgN&@Xdw&b{;NA=@cfhVbd%fEgP+Msp7i`BV0YzIx7F3?y{*LmY@@lFE2_0|fW=p% z_xOc;Kb1VXj{I#$FT24te30RJPAcheVKk`{aQrA$?SEC(!U8K=Pc?e~rJ~EAPh$C~ zKxa5qE1)&3G1+p_H|1o= zPp#2&$C~|L?#7+ywrA;up35y$Q{a;HU-bf%#W9Q;G#Y&=PW|8-AvSzFU5t);Dsnf5 z!7F}%84ojcp!RX=s9W~)F0RnWeu3qAz`X+1Ki-ihKRMLMs*V&cCD!$OD1N^gM15Xe zj&`ZfJ^zX>yMX@9PAz{!o~-jiPCJ+*KdkUkGu(oyK|__jRYkPLTGZb^iTt`t&~FaY z!`!6?cA|&)24*=FUa|_UD}j3GE zYxl;F^o=8_+0aOL?4W-*Esu7%!|y-P8@f^N2dUjYWvSuNqE=Xy`=#RI<4h>v(H z=57pU&9;y}PDA16Jpc6VCV#z^_z)c}9Sz(=?Z4_z%@KyCS4G_!ZJ`f~T@%YyZ0F`#7_H9vHb_bSvsX zj~ma|_mmdL>1bE0<@k38&9yWC#vAsPBdov&UJ}eTL{dLjRZdH+iabHy^%KNi0k0Mn z&WB3ZwcX%oQ_&0mGk^Zw&X45e+L`A5BiE|Br6N?5GcoGKb@+e3!sre+=^e_M`d{S2 z&TyWQa>b{GGUEP0biIpmxO_nm~$dLwIUo0;+UT|cc z@cq}|S^vdanMKXNncC|#Ec7WoSS}pbQ}y)?;<-f-hhnHbEo$CGSMj0H3UTy(zIZjQ zyv+Ztoh(*koQyoUjDCDCO!5-X^EG{70rkI+YFoItdhTCV-T53#A8A30twZdZZSvpd z>bhvwEmRil>IL&$AX}B&LEnE?lIQUaWb<6S&^>}oe*NW_STuSoJf;@0c)2LNMgWDVBMayAW!ga3cJ@vb*$#3d^7mjWaYd(KnKhK-^ui5`}D;f-Q zssl3`DQ_jtM@QYvIyfq;dfbqk#=Jp~byh1c`f}}|cm!f#7*?eeOS;l1}1 zEX5mc*o-(h8ScFSmU|NJoMh@R70!FWzXMfna0Gsaulfsmi#Zp zw+w|p&XUESZh#-!>BsKU4}Kyp;QKgPRCR4#+U&o6`4~?ezh$&K@UwW@{+zn7v1?~)DnohK&0pa;()CVQz8Edyb&;p)%CXx?2M`=OI)c`reH^NlmysuHZG z1BCcxp&_FaK-G5fp>>H2EPvU5YBn{7x6&O( zh;{UxY5n*QkKlqIxA6GDyb7zs8yT@?Oa;aFAnYf=Mv70_lInhrTZu{UZ|nrYgOtfnVp4@ovE1ygNs@K_hwM z`dFCDEOY$~EKP-kQNGq*es$uoCgCChuY}asRma{?i&)fUk6v z*KK2E)DO!|etv1vadO!s*nbK<%uRVm`kVf$jOSIzC4jZ_xmX%Xb6n z%S~VYV(rdk->+jI9>iyJm0b3k+~}m*Zzu-$D6NXVsYLFMhX?dBwWEshzUVxah?^}~ z1LMiVE2-TManHBdL+|OSb4>j+u6~fJG%;Mk>e-7rek~&ZeiB*>f4J8l-7b_mCl=ke zqx{!C8*j@281NmL82TA6iYs~7A7&K>yN|(dVWEz3g5Mm$^HrQ0p*nS13zI+g_FN4| z+W|*9Oda+R4X}VZ&_lI9=c~$(h*Y(Hk7e!0;cIb2Hy(x7enHTKpdSiyc3<|vEaJch zn8iuf^&|B24A~;r1MN1D93DX*AFGVYdjH-uhIRc*)VO$G9E*#9GqgY}7|LfBpkwT0 z{hot|KZix-vZuY&{%&9S^M+F~uoo*app;m4a+IilX9qrk$D;AjZ_ui{lP@R3Znm-> z&ycs1;D8R)S{|^6!m!^Et|OXfXC;>T3fIJ$qO98!@_0Dxz8U(>KWMFA`H$A$hRcVN zo&cucsq*Uvsx4C^)JDHpGk{7x-qklOnZul<8q8cYFrya3jp?6t%|_YTz9Fe4c3j zL8|+t2z8}iEZ1SB2Ja&1#aTZR-^>WKgZVP;{z|ll^`w3hOZ5)bDo>{foSB7h_|5sJrS*csRbWMKU*dH*4yG9C`Nz&ov*W?u~yjn3^#X zA5<*$j8&l-p?^=ukM>fuKNpVH-GWXg^+z0}+Jf%pc) zslj83-v&K|4_>PYqS)zsqQZv|Vod{Tj{fAz8R!5T@E9GZj=IY|BvT8!!SDRE=1ARL zg}oQgduR{$OA^^1O3EKx>%w0Ll1Jtehqu6k6Y(Y8r;biTfA&y``GN4ZC}L=J6;{TI zFRqTd@X?c=v#nS^cp|mm4(ebx`Q2ZQc-|9ChJAL>VY&P5eXb`RrszS<8(`{p@pEFh z77O`wm00m9NdD1R5uaP5(R5(14V2$}g9g)b7JG3sHSiVckq^`pF6!ueUv&3SyeHA* zaMqtoqOoObdl=q1;y_Wf;u>($U+7(?b1z%)(VS-eC!xjU$W{mNhV2hhDKjF-{V`_! zU-Zp>s~5>Z=)aNlKC$FK zD|M{9m|p%**zZwv1Q+&S74l>knCUb#{wypwDxE#=(UYc_`q9%j0cQQfIx+np+OO-h zWP@lu&;^|~8l9#s`F0$va|xcs?ex-T&_f>MW6h)=_uw=B3ZIk;tzE_BpW4s5?Ym?2 zzghSyOH<=Fq*v>O_A^6%`DGo?B7ygD7auVCeNhinzpM7YF!Fc|zF3R;+o^;Vwqa!t zCBPXinu};A1*frT?)JCSk_1>sf@Vo@Lc8XXO#^)Job}Vp!vgy<_N5HB;x)5tPIc#V zs>v7Oes;%4W8iy_4)J+oNR7=_{>-9z5kJdT>~y^83)2h+rjr0K)cnuF&oez+d~f_? zC-i4*-B!1SHLbM4-fX4Uzt-H&aix(vE(d~sm8j;hi$bok82)x5WbWE zN7H;bLG#DPL&u`EjWGIe@iz4Pfv?${{OD$b?b-{%hTG|7?D+HSP2P^P@X2l_?+g(CYLNe;5Pj8oo0Cnn)Cj*^rXe8 z+*)&LyS_g-vrXSKp2P&0vgV&w&7WbfCZE>ql55n@&W3(xuj;V{p8Q(^&)>Wco^L$w z+1Bi8G5bcp7I5SC`m+h}b8Cy-MMhSUH-_c$Wn;ss^9H)Ijl7xw^RsG}s(p`|72+S% z>)!&Cv}^w(-$TDMD{IEuVW+gRFRbrd9?)J#)?;9TX5Fkyy*DhLS)rOq$Mbp38!bF% zi}nzr3+nG-^XppIzAq(DGklx&H^TAlhF3fNJoP(T4U-e~zK8~e=U_L?2@91m%(IHX1;d;cv{(FLyBG#lle84C-FvbK^fFkd^* z&)hQ`+BG&b%jH?>cLYN{odBz~vabzzzSx@GQRq0T{JM%oeOkc-+UuMw9yF*c+Wf{dkpL;;Lvm?xJYFVXx@FWivicyJ)*| zGyagnFxb6#^{z6#lx7dlRolT22xV+&qW`@5(6%ow5fzV^}T_@UzrT%TvC@ZUTzJ^z=A zcQyTY{VuJdmOlW4xQeFrntbL!-v8P^{oF)*?PE><0sEKw@v^D?*8UQKX4#0m*F`S* z-!$s~jp(nZ&Hl-1e~T{Wj&Isu{W3BH?XUv1XPio|-5f9d7Sr<%ALnQFfD=xUYaN%t zVt3OQUZVGS#=qyFVS2(_0#$fkI5lt#J)i}a_{CW9^B?H%PtZV1!Q1M?3;N5FD`v>= z|69Yahv|DBG1rnsJ?4q_8-#x?9PS$p2a8wrroJ~8)SW6$SIDLgjppZeq|P2sy|)|> z;2vt?OY-yjmv|y`WkNY`HLg&Q?s;LCF{)F(g?jdxUT^G~WIQNE@YvMAXW7E+;hS~a z!2H8md}q&0ewkIoljr7-mpxp$e~#w+Sny9&5M{=17I!b*Mu#mzuk)1wy~>$w`oHE) zyht5>TMjw>M4qeWfOc9;jUN_DAOF?A)x2~d{PmDHbnmSQtz8VSua%my6SFvj)K?|;d*6QYiIg~$?$_UaNGnm z^BeTS@2Mdj)$AhL$6j2;-72g8wO56MSQRiDm73!5+J;U_6Xy&h!pi;+3e$~Mq~7j+VGHvB{}iiHUR7&TOKA-!e$Hm`Z?h!&pHlFS+VJBJcwolC5jU_F&)`41gD)+~^iY0S zQ5641nEGoT<()?%#>N?G_xgG_0(tsb3FDT1M}^4+eY{?)_GNeCL2?*oS$I zVAFr0{lm3>x8j9}68QDS`<8b^xmEbjcQ=B&^}xG21uw>0IOt*S{W1JHpFYN$o;65$ zW<|0NzJa}2)#8fn1#ub=Xn@I|Jxex&(~UCspY~6980XOvo|*n1?O*6xEr6MnaMQo6 z`McJ%bnnsi#C7IQ!to0><2es7XFNKFZe-t|g`+*?8D!!m^5ov}?>E0_tZUcu%mhEr?WIUc@q^WMv;X zichu1i^1*BXsr$1rVd`=UNX91GTeO)Jn017DhWST2L2uoybJz#2*XYOt>afhx#ps2 z$~JNRQ4%^%h_v(*XdfNWDrWHRx0?FdH1-Ghd`j5s8a1-6TPY~!U zqI*W9>AfG6G>m?0F3fKuKK`@JUA<-=FP|RI2mg4G>Hps09HVBBu;4>UCbusob~*Cd z7`ZQ{6CRS0k~s<(#uj+Y8M*H9Bm5H?c#A#NgWCbj^+eFWR#i#M47|iojnaWrM5W*~ z;ngGDoX@-5{cpLb&m8vg7FgaHxYZN<{ORaP?)c9FV2I&xvuO6Qg?XN{2K|zFH(;-b z>Ej1?t&8{ff3kChxu$=td-qeO{x<(c7CeFe?@A!-GLkulSam?bzkkax+OC{x?mxVE za%;AgzP&BHd$i1Wz8Z#f%#6QN%H-h1@kBQXpl1y;`H%MhL>GkN+nON`lzss_Er(CI z1D^5GcyQ*R!)`+NJ8#Zbj*iMEmwBn=9r#ZghO!SUBiqNr;k`v}@LYjMNW6&(!|Pgy zei;wa_Y=rLYtV8M@xVMoOUfXodZ>X7{MFpxP&MXhC1Q6iW=QrL%rP)CXD9xbV$HQ7 z?u>@RENAT|pnu$=r~LqvaK?LE1m;kj8IZCHpSSwX*{U8lZ_2aZiwFI)VD1yIl>xW! zL9SWAv)@6?ImsHlDJT8%0gmI2-!K5?7N*`kt;Rf;fe!q=>EHV16!wB#F4>9N-doUDM(88Rb(ER7X zcIGFxoQHcoV=f>E4be+ov;=C+&eTsTZnP+RF>?3+@GqSb8!>pQ{AJ`u z_T4FR`U^S3&4G9AiC;EI^=ukJ9IJ}{}$wI5(PcG!TT5$K?@PgUQG;YMpXCsDRXD0JC z?5qF=??Vm@R!!bUGP4`Ye415lyYtxKe#N4PDb&T4c;Btjkp~icW|Dt)nE5N`{7V>I z9`%41bG7KtL(1Y~j#XU-S>Wgb-{un2f4kPPGTy^><_uu9HjCg_JIK9>u&+C&ezf|Q z2eU)Pi2b2T^VgS>pZ{GL+;t_hupiljq3pHh%-9ZtgU_dS+{Vnu8NS~W+26>9uXw@U zgIIHs)D2bf0b7-x{nGm{>F`I9QYKt>3~h;bZZto05&nan=xOKhBqS00Ghw+N%uNO0 zSqN9FO2nYyT2+ao_wiNzZu-C0zYZqXNi+ZaUT-$K<0dqXM0hOmm(T0^)#e(Ah8E5o zL5wO{i2RojDCkMW{Q8^rsx%;h=cQ)AKC`9I>n6lBh&xi@}4`q*UDnj?ssKSE7k7)}1Hg%;blKh^6TVl)5Z3( zC+T5I!3-Osm-Iomo&+;rNjy(rU)*N?D9xOIdzBNw9uCI`5NrB>@!!B)Mxg&b62rQN zQ!BP&y^oUNy%*8LY%%%U_;+t$cg}cLi!yssf*e#9?@6rr^QoN_#!cRA|hZCuLZ*woqy;pQ$?H8r*D8qZGjE_GK{Vagl*8ho@@+5tPH$6{d{F1%V zT_&O3F2YB;n?B|S9+(WiucunM`K$kT=-5j1LGjE&ls2!OU(qSrqnk}+Ze}I#aVLB6 zG#vMl%pQ?!&Sl5dFQTUGC~op|F*sJGmxlqzJTz8Xdy7kxuF(UO#3x;!9P}6WK1-H$ z+bCNPJjp!76FIAD0kOdc?Jp4TO9UEXG;ugiuLs`!8Z^)Xd=%l_>vz=P!+7tDx%SP( z!{g+Rhxnh<;HYlshraBaQ0}7&vriUs`CB73Zyxb4TVz#@BF?tpT@8TM&tzV31M&PQ zdej}$|I%xTJJ%mz&T_B37;S$3-)2XRGO3lRVgAFz>`%Q{->iYQmz{@xu@g=D0&(Oe zxqaJ-p+cwb`L{WId^&eHgw8l!jjGwX*r=eN^GoJMzfL_W{P z!{DKM+WeUV2t&t;=3e5JUOU?V!fYr0rwB9tc$S=C&L4apzf;C0oMuM;0XpPo(D>K+ zn`0Y7&HOiNe=Yh+7xc$L%-`H#{;D+Ilg8xlKUfD-%o>i_XH)+zw-$y z7eq4 z@KPpdFDh&@fn2YdqW00%f+cD1okcSin5%(yYtH7vG7_{WkNoqluKNpy__K-3|{nonk$a^c^ zLCtwAy*&rRNKb1Pr=NF%W;gmdF>7tkO>4dgE3fsy@f@2T zT-Gz1K%T*S7yjGasqMd*yia?E;iL(gCo|t{*B(>ttK>RZ59|4P!FDuU*kN0%X8Z6< ze6mkXp35_0?tPO@dsF$DHtlUbU-Yz%_h~8IJVsw<0^UDU2hh(~Gh4l;?oSzRFkfJ@ zL;bAv^VA$3AFN*Uu(NoBvpbByob#IB*|j%SYZ!VRz;&!V2dn0B`uD6E&F(Fl^TMKS zno;+d{efpbIpP0%QuVdyb!6rGw8t|6KbT#w37BYt=aiN9GO6$F<%>+!?Ar>rHhrvo zFYR5mH*7HsmfXu&wq~u-df+-!lhEs5?=4uiUduLWC%xx1>rMD;$_zA_54K*F2H76@ zSSUuP`<2f0jKJum-_Ok=1D=|FPNU^XtczD-*_vmXuNqYs_Y|SmE(^Rd#IJbrd{^^q8Q-ys z=-IS~>j+Hn8vd7;%vff^0$izm3e(2~Q%8s4hpT`VTum){Xu%VB%+S|4DRn7x5nq_i zD@87Eh==ueYLId0;R~r_x8M&TFPy&xA9%yLI0e$Xfu}j!JlZ9M`o5eQ-=hoS%=va^ zY2e*C@Zd`3e1r1qPcJ%|e6Se5#0F+I4iazA$uR>S(W8ANZ#Yuh(<@x?XI3W!&9EHY zAeP!M-sDBAO7s==rf%U3h$MPuf93+L%-wgAjeW+@@6RFM{D+6Rkn;F|s+s&Xu;)di_LpDar~7#?`P89dCIfBRt0(Mh620G28T!jMnCLO) z5pFWa|C*XQ51!*e4eEz}8={VOD36v~4PPkp*!Auh%pl>XS}2&C!JFp_)2jr__=);y zA}nDAUZUM_+B0a{4`IZgVHQq!g1xmDiriX;9-%zGqH3H;WM#hpvcZ`!;)(ZlYD|B; zpmFpf-OTrUw8J9$lTGxcHtLK^W}SZ9H<@SPM1Sa|931?4hNbWbMsaPi%+1Hcert$c zOa3REDy_#e;>nzCdDuuje6s`Px_;B)ZA-bXt!TJ5v+vYrpsc)@%^b>Cb{1Bq6zrfZ zJ!};fm{XH^+U;5o;e44ztd(5xx@RTRgLL%$2ovgHO5s5RuFjpP`KZ)mi{wf>Hn?P^17%%Bo zb2c>e+HG?FJFedW9^l3KO8)p+N~_ib%j2)DrdSuu`qUA@QFHMI*vuKJ7s+MF?~SO* z|A4hmrq)@C=DP#Fc>>-4F6-z6wYxK1)yG_aAK#VYjGHJ`?~fRIhB!Qn2}Z?@KTs?E zC$2f%hAY^AJI!+wY_9j{+25ffJK#0*WF7nAnF^t9iK1?c zQ6XpJSkLD;%cBdu*HL;nFBp4OSWjEi!|mWOi=J-{vwwTxk7uYqADVT{)I3LKh`pIT z3Sb7RG(Amub>(I?W)cmU<_=?CdIMPgGJNe>oLyAfWEyo#^}OJ=f&7vWQUhOeJgo`M z7gu?ftcK6b0&BX$eA5`yAMNZ}0;VGA#k$fPkH#x8hd8(zPP7}1<&^0&c5M2dJyU?+ z)Du?jhelA!JUh&3Ni5tlo__DT;p2p7;m#2;rHnIuQF+b;QOVY2tJ_bgo!>+;})^Me*tE zSWysWXDt`zJyu~3znK~9|7<&-Yg)@cyIFIIT-yU?Fh1Znb--ipY0e4`>slJmQ91Tp zw3@Z*tKSknD9}p9@GH*vO)J57n$Vy1!>=-fy}MYBj>5Ni?J)n`LeF{+&n#e;RL>3+ z!#7k4-KiXN2(hX|op{a^J75G%Yi!0-Jx{`XrOBYbulWbxd#W6@e-(Li59{L$dF3H& z?F&93XQj`wa9taSpDI*|*A-aT-!Ri{sN)mX8$D)M5#tKY6wIB93!O@uXDV#{qYr)Q zG<1L!@S#0ujA!87_v!UN;xBeoPrSX!X947)(!{;;_|&VCk1fpDH-?L>;(c5dtq$ai zUX`MV#cfTG)9@=}>8%zptGkol@EpC`1GvL$^Q@B3<6ZfzFRZ#Wno&7eXDqqgq8>SU zn&$;Hn72?FA0O2UQL>SXF61to-(oo|!V49JL8d!k1iI3-;KJxG<5tu>_X1121VJ zG5anv6Yp3zU*mIweSVy)5JF6eQdK?R6HVi}-tK7fKQNzjiJHR)A8#d-G4}Nx027;H z)dI^p8FlO5b<<_r#b67yGRLq_7V90EAxKiU?4}06W4p8RUQ$a*Sn!> zR>beznlmGYz+7gbH?AfB?v>l;CE`K93G;r#JJM(O=yUJD^+Xx- z?7Hj`)wni&p2}6@udL=~{Cm;$33;g~zRemisGs3tW2vnc@clOO`@_VmYv@HU(K)`J z?GpNnul92ir=v`N_uiUT_<9p+m)&T5?>Xb7I9@P`54DRN>OX=ybUydJiSxYNrTzzNt)34s-%m8>%Y0kVTXX-sO{*EJVIrDu6bJog15#BpfbY4`7=Od_de_>{I z9J=iS;>!m1ij5hl%hWDUIfE#JJ?#eTDh9tRrB3dQB6n6r2iE@So9G`sIRo*4=(E-l z4_zc@hBP+Mz*znJRBFBD%yjLbem+jzxdmH)4I9pZFS#>I@5?+@DfHMVuJ!AA4D_t@ zO0ituU^L-f#07Vrncz%?Kk?>I#gn^=^9J{t=gTo?#=c92uQ^k*_?WZ#{@cos$1A9` zgJ1KxKHrMIn;!70;QRyFYE@Z%R6DfM5yY*zeBXazYzL?l&cWy(5W7F3IXj>=d!di| zk<&`5`%}uYc49d9BA(jPh5H;W%A{W4`FX&4E5qiSz#0eQ@t?voT*kZ>=XMM}N_~En z*|Qhs8JP`_xRO7LDqsJSrhiY*-)R5Au&%q9=WIl-+|JotdHC=m$=gk&o9{q$fEjSG z)$qi9#E5gSp@;0jPt*`j=mtKp_dwM>BNUEUk=md-YuiARyJ1Y((N!?}B8Hr1CS3%R z#{{};SG?Wh_KR-Hr|OdU3~B|1eo5wbFC|=^F_Z=j6CA^^AOZM z%y*nc<8($(jiSbAhA!5RIkBnKZp%%da*<^xm|4DQ#=oL(^sKyxN?%xvGp9X>Gh=J}V zdw&&DQnkp9WR5PHv#h?Je}P|s^K-7?LG(l`u87Xpf_OJb?r@%I)(1Ui?}eeCK}UN) zt@ROayd(Z^Z`EiyUht}=@kN*C9F?jjPwi0WFbt#_v)Ie=#l8_1Gz z^9XIxsfL?-txxq0)T{f@T*&8#AHjUz%cAWaxh^mK(Z%?_CFv_86uwTgo}{ledhG6L zdV}hJm(1CPA@I3+obA)ooO#mcmg)Lb>rMyMHT0jCCi@(u)mhW z?6=aZ9!7J&#M*oWgVn6kkvxQ7*~K5ti}PULRaRBPv|s$Vq0gLgP24V?`{%&~!kKZY z%XLswUYf{RA-gUx)K=_D86ZJ!82>D_)4ZhGr61 zXWK*(Z&%J5tHk$e$=v-Q>Vz3){lfVQoU4^ce!4^Mct?!MCr*06KK=01gqZcgMN2hw z5i2tld(HLo&B@uKRilTZ`y@YR;c8Qt{mI&$K|EfAHo2eodk&53F*BZDh-FUriM`FU zmAZE?&6#TDh^w)jl@+J^E-^K4y!g-S6u$-#L%tl6FJXh0e!=IJQD}$JI>4F z6CM)_l1|~spf5Ve`(J`=%s{*eX8go_CGki6CD7kV5 z@tykq#BSn3BAV}Qxc3`#c57?42WQ?Cqc1PP42zy0sBE4ecl7-VV`^Sm82lLK2X6_^ zqaiLeHZ|~V-_53;{+IZ25H0-zXPiDEE~e5Oxu6>tGH0n8Ef1v@s)&!`8~Q+vps{y~my>Bw{PR*Sw5FxN`q z!{s?ow;DCDfll>S`!-FF(Cz9)q=Q4O>Cqmz_iwIa8b0skJh$!i=Ev|0X`SO0o|P=l za&zNskD}(h@9njb=6O*aXU3ylJuqVW{33en-h{_7Q%pNp5}i>|mv-mOj)}yUCB&`m zXm`h{v+mGyy}`?)&#v(xuK41&D9OxF6nz)xXN1I2_ntS7ZTMBpE^#!-hcd&(ok4B63ZK|sH2X8mP2QvCdPiNJ!yK_Y^>PvO zEaWCuI8OuKfn*6=khI@VGnL!-cCPfed6thud;-p*{AkX>T^Q* zJic2$JjN|8+IL6cGKNS}3ZAXJR zq&ctl{c5hPe~zBXybAyMwncjHqNf#VE1n1Lwik)KDrZowzyP(T(4JYIE868@G(4J*|E{WC%v}ahK zsiDsh(Vl31KiV6v??d}r;fp4p*V>Q1cj^r7-%ilFf__H&eQ5R%FSel_Xf4LZc_XIQ zz&&WMbiCFBsKxZ>4(j*K=gi;h_rN-_pmUmMDCl3&L$uf1qOV8$vfLmJn6s=Lg`E9HTlkw|wFSMUt zztbOF*V@o(w0@PKH45$B)qke1U$c3=eu=AA{l4`XweUA1F?5IdezoSsT20WJ0^SSl zXV&Lk#B0q-YeHx+NH!%5{W;C;wVsBj->NkVo~y1E%-I0$&pfw7pKq(reBu3RpLc@R z;s!RDXKD+2FKFFHKNEdz`kfq(U2Lvtt=H(YDp*gf(E#&I3!eKS?#t9XSOmgq67wu8kx|+T}eI|xJZ9Z30@Jjpt_L-tGGA5v~8|wSh)r?giGU4PUgm zzw~wJ_pS9K^b+$~>$S(av~vE30Rz*s6V2hkAbl2(jxqYo5%QazGe`6~-wM;5}IN87F$4M(cxrw#_p+tUd=spTVim0kOFz3un)__(|Ug__fG9{#>6EY)-QVoSgUzDfGYVze_>?-38A4%?$egF8pmDZsy^7?NF5%q$?Z+)kh2RWr9)Zh-esE*|a~E_Y)BGjh^PyX{Y{p87DusqpRa4qioyUdp_X z)jNB)&ys>=4oCB^Ic;}q)50aSQ^vZKZOOLe!>Q4k$K5^@`6sPg)|=FE-c8f?q*u>) zlAV&@+uc8{UjFx~5$TQncf0QLJCZZU*}v$6kRvHuQfx)$C$~>|mG)mif#33|rm5Rg zCMG{i2}>T3+&jZFC!|Q(fTC&fnUxCpW;o>z^0}9n;C9A&n0wtcx9mywz$EwyP%o#H-a3upeBHYt5YN@7}xjQ#}+vsy&A3(C(< zNL!bFGCeZ$M9$~5De2uZ)_z+l9Y|C5cp6>L*KQjGu`s~cCjO%_s=&_bqJanb|y0_vv)>8 zMxVUdg>E@ab~YUIGZJ$ir&SAYkkL22N7fvVlOCr$$7j_`dtJ;(9aK0keRXF0%o{n4 zysM@Dkm{Kcm{#C@A?s#AU9WtXPwp!-Jky`04^8QiQY&ppM0|cq(a&zp(sufe%2<^7 zt49M@2j?t@H_rE6L!5_XbjmJSkW^rCp6yuJvA)wV$HVCd(kG|ANU4@JHYeVQB?S@aHM_^8$yg~WT94|X{b*btyG}SvdIJJ$_lay-d%`(fCN(dY7?w=KspPX*X zw5I>-Jv}SR>44MkPWv;mGPY*z%82y&u~5nUs|78b8@laDYm?Q$=T_mzjvI2?IN9_4 z+;UuJq{e%!Nl#C|nd#ur!+Vr-bAFUJN>5Ay%Y>X!Cxnk}VR+K7zb(vs4u=hn!%tVhV;j?sO{Q6y;OFJ1#3SXLsH&`L!KxJ9;_Qb#%?FToB?~A^$?&=Yk=Q zNAsKHKX>Spu{$j$eNNiJ%m%rSGS;MrXCwslPaT*Zm{u!mb=HmSbFO9b3wa)PJ)2q~ z^RQFB%z*qp1 h7C3sRy4aIPB|E1sOg@$RO+l3NBkxCrrPrX;gv?rbS$xTUSmvD6OKy2-tJBgmy?ipf7kLJ!%t>3G5t@BIf4b{% zH!rtX-rLi((^-YG-?(@7*`K>C|DU{X9jCkWNnMvQC8JgLlB_*B_S|hw*PNrA)?_*7 z_RHRzxh5wnzmCJ5ph?ahoKEDH&EJsSGN)as3Ar)(e>n_tNOI_v?wI2cnvrc~4eW8K z=QzOWszY?zrAq5_8?w(oRDa94!B<^DC)ebphLl0#}fH-!e`~Z z&UMXp&igqpD(^&Y&w>{Pmpy*ZS?|>|`-#(#+|=B1c^e%99cLHbT{x-Wde+6f6M0P? zrsW?kh{(657k28Cb-?v_?zn;nc~zaxIdpL8ll3_(JacEpnry$k*gWM>)g!cIm9*M^ z{jxe{^vr&o`VK^!i-8;wVi9b^=GZ!t!wMrU2CsvAQm=? zA|fg((#`F2&cu7(zxmvI4|AS*=K01m59_Ap$6E9z_@u7Gabj|Bm8L2GKUwHc5Nvos zFR^8$nd_9Rw(EzKp&hPHF8>Ye6FLfU+*fC=dpW+t4uNE_m8;?~x`4tZ13oR?lrH(3 zs9l-MCi6wmh$fQ#_$0l~7J*^F&dlJoy{0?bu-*NK(hP>eT%I8<7v`AlT%^2$HT5^( zPx=&npgZ7dM=e)x3CdrIpM}CT{9W`v^u^UcAX@<`{0Z}6<6O(4B*DOPbwlUsIm*ef^AF>^vrsbA0_>8@9*>E_u^CQt1vRmB4X2aL84m*es z$o1edkW4<}!8qQd1g3cWp&v*tC=HcqcsHJmb8wZCAy=`f+C7>%WCBTN5%L)j!{%D{ zxf7%s(qj2<{2%KMf8or+Q+GYj@A4z*6}bu%s0l9Sez56EComhXQ&Q+c^9S6Kt!6{n zG~!Z9@j~@|6w#gRDSZs*nnUF@M}kA|G`s(ihm+^%qjqFiJ6D|3N6m^i!2wMZSS~*1 zM;IQn?!cEFl}h9!($n$~HwK+qJvz!&*X1R*X4ljiYxl@q7QtC%nNPJ`mphU&(ul5R zGihVe7y25qXUkOj%ei))9L>+oZ#HbdvKRVfj@-1_^7g) z%#i)$?MlAzm*KEaFaA;!w{N+|mj`e4m0$%}VJvqAjk1sW8!W0wvSM4Hlvqim~y);*1|jXhwcKKL*Z_`r|d4 z8uTtX2>O6stq!1-{8rSMywOzROduLC*U#M@{Ha!0Yadrh2dLRFTuTjF=M-HUU&m6& zxq&zO15foxXtM76-`Z09Aa+<<%8s+vnq}_4!9Nif*c5hNHp_p!3J6$jL;js5so=5f z$o-2PEWTpju1<)~LNg=1=)K^1^xX@<=D9PVlXeK5$o`^vHP?dq!q2Ks{C{P4?WO$j zK*&4tTky%B&IjJE9LWF4U+mrw^<4|J<%?6^$Uo6Jjx4Q=MNO+@v2gbXCjE#PnG*4cA;Z7EYi0kD!*)=s1 zdCJC_;-Amuy_`v(E7>hLE9aZ`&mUtozhb}2VtEQY2iw8D{3PRkZSb>QWQDz!tDMXs zze3M07llG;5d7&n$z6ex@CN>;#CqSt8`{0*9*a##OyG^`Cm!v|G{;uKAYkn-Fbt>4 zKQ%Q2e!yQ7cG7r{F7!LM3@?NsEL1kaf%Ku{8!dGeMP*gRlrD$mhMaPTP%6Db&vbpc zwlu`uoVFvec|XW0mtA+1{yBJxt2b0Q zBJZ=e*3PcGm=5(k0ZQP(nt|Y%d!Kz7+U>QIp|JO|(|I2z`243_itI_Us%x>Uh(&3+ z$@siPH6P$5VYE3}u}D{h3?OPl@NHzFJ%8CwC`jS_tGtoj@$@Oe2wtqtqw?eiGhg{7Zb2GEyBfOR$%U-ZC>?eBxmeZP$vXR_QdKj)| zGnn#eEB~?XGP$pPfOZ^R>vh@i)3k@IiKwGgnAsN)Yp_qR=!r&T=b02Y_K1Er$PRQ zX=|`ne;)5+_1lcqjZ!$^6W-!Of6q4RSl!|5GG0jf1TW>1MGI+&Yx2!-TewPlm<#7* znhft5AC?WO_{O_5xs88Sa^-}Q176$FhsrL|pYeHRqph2C8f0gkclXpL!uffZTuXIU zVZ9N2^U{1N`6cpr^*=R^7ygEO)Bl_mFV31aDKGh$LVX-}wq6c%{LYa;{C(Nca;`7qg2?geXkZbD1`KWn-7;I5i&dQWq?;v@K$oR zc5-06QlIrL?Q5OJPIS4aV&zlf5#h1Zm)2zYVnsixb%K^t~9`x%|j{q0v*dX!PD zbI}mVfnVmlqNmvnO}sg!Q;g7u%%(oo|I_A!Rb-^LOMxf3(=;8X7By$__={p;OEPu=ztyV2Rzwn&&LCpvuS5496pMXrTlLnb5YU;ZyX|d2#_ZjNSt4YxNAmFl`axNzU z>h>U zpsHoWGsK^}!lm)UYUByMtNYNT220s4g_S0$V?4uhduZ-Pw9!3unYl}>zqu1>1f$_> z_ewTR?s;dp@();;7eGhzZ3~KFwPcF_EPN+r9aBMu?jKzYj%NQ^TPiWy6@bSz_yhu* zm}xzDUhcvU+g7tyb&|QSV1J9N^5PM?jG)B zY{mRd#k7B_Nonj;taE44sBsk}e--N-M|!{UuCkM${BoQF5Fv zNS#G2{B5!DV_lR_k3{Z;GwE>u!5R}c9*-xb_ynDaFufN41^*{fR_3GEJmjsgk0u^<4TRI>PE}ouv7g_;uis9=hCiK}?Qjh6 zGPhKE{Pbol&Dg_o=LxM+x>v+ucVh=37eGll*}`PrVixvy>p;J)TRP@s$$=KUu0QMMFH! z8|p>e)tPca@h(Re8_Y6nV^KTRLldB^k{4RvK|2}ZTM8edd%2~Wxlms(=AfG*izu=}clZe%WzPrMmku+RPLmkl>dKV|A5;KeU~Bu}!Q8D`oFkZz$AHpb9mr6N=+N)a6f9PciwI2C{V6 z3Yg(bZaI@+TUH_Z1gEijNxWS!tp)*Nhw)4**IB-Lgc)S0obz~Q-X!7Fl5 ztvRQ&)3gJer=H%4Yy?O}|2{bVvILw~b^sTP2biQtW&N`!OQV16Ws#sXs zO8oy+?jrGDAq+hRKI;?UFp6Or9l#F3Rdh4WVr$v|;APl@LU2sQMVI)EDlQra?y?be zP6EVr2X)|U#G!#I|AZN3b+}yAP#*%igQw8afC~9EM;Q8LQh6%*345`moPAP9_1qEy zsC71QdM3Ja)M_P>t44fm=R6uBu$yzREwB?Sp&P(ONMI-Ofn~A{k;+a6LGfA$VI`0K;KNdMQ1iZXCGA4`f>V66XmmbwhuQ^qeIV{=(`{aPDb7& zGr0}vE8q-%E{NslfQNV#^TS<8G7Dsw&Q#a?E2sz4S$55H;3hpwUbApo3w(w%QHy|M zbPBx%HgHvB3EU2c!$8oL)dEY{Lzc$u{9^VO+r%HD#}TKpR7SQ6twW0$W(~oyKJ!^T zS_0<7P4Vlf0j9-aIs-U4C;AuGMZ?(}bx86kItg7x#?LA4v3vsOq9SQ6t|M_^2U&q< zz&`XK>!-1!ygO&WPZEi?1D}#_N{T#_v}IYqNDa&h+JnpJBa&k`m0&Oj520mb8YxwG zeHiJ^>VRPOOl4uT>@oAES75Tb?u*HA6~)#B9k}fCjqpgY2sQ>eiW~H1>P6wWzw(y7 zhh`R;?X>=YhbKpGHC#ENIcAA!Sn<7npVNRYG!A#Q7}q540>~& zaD90_4w!^4f)DZ)kH*YKy1X)gTW~)qq7f>aa)rHwv1mVwR?$Qsr2tsTubdCRm7dbk zjLb9}Xv(^BlkjjDLh1^G!BsYpZgh`l2w?bB<#UgVKUC~Ff(4^55v8Cz%Vwz{hQ=}O z>va5qK2Z1Ed$bajl6i6`=mUDg4fqC~30Hu^^^=&D{i()a0Q;Twr|p4>t)sKyD)<=O zROW<*WHraQGJTJ8prF@PPV@`K&t|qYfq?#U7CmmV|n#W9wrg_PLU!Dsqr+V!HR? znlY|)W*{x)-{qC5yF~(Ob7}B1n~J~D8MIs6Xn2#&2A$YqbQLZq4z2_gHT(>235!|w z>p#I|lEp?cA4!Ja;3*icPL^+vLpcG33KMA=`h=39Z+*|##r#}iV}WFyu$WfRe0&@{ zCOyCNgUq_ zj3Q^*ZgxqX&OQ;P!4J%$?(<#XnR;H@DOlE&4JRi-SLF^34$WY-Q5Tgh9!bZ-3J{4p zfwOQK?1696Sk{_mfT0aLvIsC2FU^R?-BC3@f=_@VMoB~UT_Y9Y3_#1kI1r@fy4oW$BGZLrH;gAa$_17RGr0oR zh)h)Td`Z(^bRSU{mMH z+Q1sAIbEs+)Z&4OJPmnUM^f2sLQWAu|iaLcqeHQDd89LSIHw}SKk}b*ty@? zP8fsJ=otXyU%?h|j_Y;xH5W=p(D}F}{ptQk+JXYzvo#*{()*iq^gAnqz#pxpwfJaO zpIw4B_S$OB*viEb3v)6at^$9P6sD?uIbFC#)k~BO+|qh_`YY=M{s->Gb&@}TB4xFF z89rAUf(vyJdAJu@|fRRNF1|f4nB3P%^NNH>)lc^g9s=GH>TN!$SuMPL&7oZF1 z4+`lD_LYudlh}J!3HAX@hSFZ778eYvU?$y>ksMW%T~rypZ#WQjPkd#r^l*VZ7d!CQEhi-AMw9MD(U!EWGS6<>ZqujoFIqAJKgz}wBOX$)P$=5tk` zF}%piz*}$>%0eXUkA8y~t_Qn+CbH+MUb333#&gI8vKY=GwR5hsk=5Zugm>MtGFT|4 zci~np9rRG;nONpaI)K4haqLKwJ9HRqL?cN(vK*df0vSZdai7>pTpRpki)n@&$vEv( zX|1oJ-rbxu?MJ`1@(ax zs@jl({XtK$*lBt^lDqXGMU|>KOfDz|E4>2{-t8IkrGViRckY83K*~tB(qDhMP zi~jrzHbk2l8wP3xK15TM-khO)jMlFE#2V2H6c`CO)g{``J zk8uiz{~71ln9}h(CG%p!RlAhCsS&Q2+xA~Ae^p5dd>lt zu~4M&3)zsq&%t&G&~6&TY%~MU1U=O(^_6(hk?QIH@`WGX%a0M~(sq@CoX+}lR~2X6 zGQ=+9Ia2|@sf1_X&2riKnP{}USdr8xHFE!I0gM%rQ_rWjdHZa13%O$KW z_=~(#741>rwaTk~hXVKo97KE6il>BaLVeYIoC#XI?MjNkD71n#Cjm5=9p&Chi>^9A z99;}rs%Ruhjo~uTnw5}rbv^RIJ0P$mz8g9W-+_A|f@Sl8Nqbl_*g!w907gJ#^pUQk zFO^sHQe6Kx?LkMDN&h6TU=fJGwP|ZnRXNBcvk_4oq+$x7m&O1J$f3wP`^K#25CFon1f_o2e`mFmaeAc8bW_AOpT_4 z&TuAzf7vOy1==fwI)i1u_%M7{8Hl&DXIuqok0yXp{s~8m%u#Yg^%b>wQ}ph{9a$ic2%K#f;NyBbQ>I^;*(2os(Qv5 z@q8(XwFiztVWbVGR}tlPxQ%^L)e8(Bu>Gnc_d6H?GMQRBf@f+L^MDqq*pkhCBtPIN zO^l;2_gkSBW;E&{E+d_V9*$hsM((6C8;-yKRqCta2trE0ZEge_k0!7;&>xLr7u0jT z6_*{g8;m7+`2%3Cs&XEsSzHE~10*$G4slDhDw{-#VI#KGClXAD%~X7-fwNgL31j_X zf0etM1)8L7gA-^CXlF%e04spY-|kXtpkRu?ZWWGss@ZZDJwo=VZ1P#@9#XJHtu2nR ziFhvO)9flp0XsoQp#f+G%BfXFG8tessHLLRd9+-Oq3bHb>j-06`oKKc9d_14fvMQ3 zR%Tyew&;Sfp_k}AwcZ^Ak8qdNjC4#r=YEiBa0%-Q)^LBa1n>cNMnP-CRmOG#Z9^vk zF-JwGQYI^=Cs+}!LzmEU(w^%JCOmnj;@cCT5qTUoj-GHPqB8CU?df_;ms4*T$y@n) zD&F`5FXC2$5+w*ZmlScOEJ(%6ZlRxAL3D*@RR7K^^p$3+ykuAY39C%o+Qf?+f|{@e zoQ5<9Niaw`PsYQ8N*WuY;-YMAPqpsqhW5g-tVhd*Fa|0t7EDuBtWxH~d!mzgjMAK? zXyV`w*b!`2>gZR|-}q)Q7dFZq2Rtj5G`t}HMH@#vq{S?bU%+}e?&IEI3pYxw>&~i* z_%ED?vdL?xPGs}Hw8i(qDYZ@=4CiWcTj^mi@_^?INrET}csc%oYQPJqfLw~2fJ5PF z^a?D@sC1s9UnG$|p(jYZ&;mvXXO(>_ZmYxIKdT|v#t%>y?ukyI;V>mPU0zknT$8Hb zvt;Nen#k~?9sYrpdFTY~7u!iYg$y9=3sUMXt>sYKI}TLjQ-gTMYm@yh8g05?)tHad z^~n20>P3sZCb>`WMs9UgL19N}j~A}E?wTTXfQ#@NVLaa8=&y83)w|=Zi@@9ZGc{}6 zCu-i(|58~}*4$c89w3DlJIp(^e&ugeJ+-oUk?TiQviXeM5$;!l@wciK%_e@nj6ayi zlPAibx?<~m$Sc{W?`nLkyq0yn1Qqp{lf?>oc}0c)P_c$1R`d}@`UU96*T03T ztXrI2>d2N5>nvd#;ItXFLjs!k%!f@PMOSgjX?`!e=tj<;lymK${#m)Xs^I4o^E_>ovra=ujsAra zxuvjjmGF)>`nFTvSMOuC7oW(XiYD4Ee2S2RMaK#FhTNgU^=bCzg4sKn8vvfcYy99` z8sAmfuN~>0?mln5rR?;dD`m-xDt^g~uAAg+VcYIiPNS^{xeESz@GQGGnMAFgMsHu* z&!qL54jQ6E@?|Nh;<&g<=!Cq~=zjvzPWZSEf<%5Y`|7@|YMPyNK|eC&Y0{05V?k{w zg3Ibm)nwF4*zULhN%zF&g%}ANzk{BAVE=8~>ZK!1jS8+OD$(9vw|qZolRTfaO!X`sK~2%Jua# zZ3#JCT>7JLxMHBDbv|vH4XhgD%CDM4_OgbaJ${6PJ6twvidUF6c~6DozQj4!xemHx zb3@9<6?|SprjL22y!DB#`kLR;=nx|?S_Tdx$AT*Cg&9JophS9a5B+&)vPe5ka(_MpdovIbtQ z702BG;W*DXCt?V%wL9rMK9E-ND_#3uY&Xxb*>&mSw9m^!mz%4tp5<=+&hq818sJ=U zmPb2H3ojqtY$X&SFwA3>?Y({yK56$Ob(J()tS@1g97Tp(Mx!QI&gfF)jt66;Mzn;4 zxD@}Eu7=K+O0lt0@Pw221Cna}lBaM*r;aK*=iZM!T|KN1L2dnWakAIbX0J@o>CsRl z{ujF|YH$wPgiUU;+EG;S7~Bq;AoV60e6oF~BiKDQY=Q$;jK@D+5AA!zx*tDDi?s`@ zj{9YZkKM(k2fX~titJC^J@ozkuLERTFTLRZ2R(f@I98MvTFzDHMJBp8Yu6c;=655L z`T50NidWU>XznL@dNcylvwwGg(S<8Lf|oQ*VLzMkN-R8^ek~O+|gW@YccVIP#ZPZ@iCVS^Po8IpN=eg=tK%W)3 zeg2lBD9tm{DXarG+_bC0hs-vKo}u=LtY5-w$o0z)X%eu*^aMUY)7ve=BUqY!FRLM$ zq)_FW@n1~=e;Y5PS8bTf(fPY~tF&OMd=_u9{&}$)EM$o)cWKmzX+MR|27Kg({OP4* zoE6%$WH6m0%*~5a;^C}{I?j4th4Llkq4SpZhlly!YPpNe2UnG*fqlHQbf_*X7A#!Xo)L+BL3rzUBh)rVxO&*fxeQ-K7kJG74Xe-dfznP_dZz^6gU&ws!bJX zHS?=4JAV}h1l6>?WOmKF^5d2r5k@@K-q16}H7#bF>Ia!_{Z5w1L)}n5sk&;WCHH~Q zE5TiEUPPK`QrKAQ3gZTv%9hCMf`__~xu(7kazdmO7UxgW_A^#^pV9s!XK0z%`aC2q zDQ)Z=1q`P3)>YLY_*P|C?xF3VQIKnwG;Hw}>~}Tg9w~C8guqD0m(N^Tt%82i*vgTG zcKMV{lsP!vp5>14iXnOQH)bwN4QlenPrg>-V@omh;%_OXPCxRE4btzf_=yLS65+b| zxbS+7zpe8K_mTI0?)Q(gg33ai$5d4jI`8y-U*$T>U8DVkbg93u*44o_>D!#j`h|C$ zA8hf$eAh!Tv~tXk+Cl$%mZKBFoxp$86K*tqb045fgS<=|0*c_ls*JkrYIK7wJU4R- zxGQBlNTaGeU2n}MWEJ-ym%)g4$Q>$G5v{;ktMqkD081HSj-*be3+XHRq9h!r*R+3JW@UvC;!lR#G$)IolJkgs?wt# z2YJYSAeY_C?Xl8@TCatRk=x|aCj5Pm${VL>J{k(mO>hmgBJYAmQ!?2zFiVhP9mzSD z!OrS>HIj@&QLOuUvj9h5zT9=AuvGX?<CqbZL0V{K*+5%{7m&IY;WnRR(r8WSDmA ztlVzh(qfyYo@re6F+4R-uW8^nT=zuJ`FA4g((6>=kSdDw13)Z#T-widkXBn045#GI zx#eP}W@KfG&tS-h_4L-DDpP0AxB4ULP3_|~`^8-)?Y_^cxrtS|)>h2rH)yt@w?BF~ z;%qtk28Ompy?tht2hvjf<=zW|y)W?Xx!acBz+!x>@1^DV%VKjF#XXUBvk6A0=Tf_e z=>9Pk?Ue?=+nxrK4?0SDD1oys)hl*uKKW6#!B;PRe!qd{x_XFBz}X73(`@g?DW4Pc zRGbJtE4x&GNwn1kd(sdvLFfs-*scJ7$C3qb8t`W1IDwU!%r zj;I>UrO1(djkDu-n1>SFR>i+t%ND&O)vU*&2{|`ulDW`aM~+IIiZ0S z$%ZX-3>o!iaPh~`O{%}Jb>T4W8{Q8zVA0y)q^+(KsjQp^_Z#k$-Q2<8R>Y=>_Guqn z<5d^i9K6##x-!?%76y6WLRoCP6fU+>!n_ywGzMQ?ab;g?des>&_Aw-vE&iUZE!JFj zUp4mES7P6%O5{FMf@=joSRb$VaIdqM$+vYgxcW+*(tsExBZ??+SZh09o07N{h9lax z*41zH_9R^j9F7i_kJT;Iq_SOLU3E?OZp+TRm9}^?$Q4&N%5ls#M8DFIU}{*Ssc5G~ zWTNK%m%7o>*gwo%BgSW|*AY-+IE)hmMkvGbCW)Ee$TL^`S+$%0oi*o&Yijz~68h5r zIj<^%mF7H@M~BUJoc6eh62V0T40oFjr9JX4L#zo-FQZGeb8z4C5q=``1K69gCHgzu zqnyegldF%Q-pWhMT}%7eROg?55yBG-h9w3&>CStZ3dwxuV=2FQxMeF@BsvU*`paTJ zdnza08-vWY_Lia5ozWHR1^P1GO-@U{8jhi9Yi%$?#$)qS?)lS?^%WHuR5^|NSZ^*PTSAI-`;km)_pUQpG?<2m<98CMukvB~+) zwF%eOU9}DJU8~e4Q^mE~b3N86F6UI5!86kupx0=td>v=eesf*To%Xvpvn!?gl{AJ` zsb1p^(4D(Qw*xMq|FR9TDC{d3<O`@X$qNAS6kdVyzSrpTN2Il^i~V(QjDNDl9`%5gmZx#OT+#Ym z^DNC`>5?l?^UN7x7>Cll!<2*AgYGuXaCfvXB7*s)p^j~kdWXnjw;gvD_Ljzfb-#-tKYEsorPEK>08CO;>_(iT*Wy z=p4hncLnpQEEqb?OUf%MKgvM@wm0?e`A&~Ix@QKx56czbF&|Xyy~}$aF&pb?ZGjh+ z##LwSWj<}oTj3^wEj-%RnJRpauIoR~-U`pKJ}o`w7;0)$`aHQy!6=paN#hF~;kN05 z8HCbf6)l8mAe^7)q434U`TQ>D8z85(518dVYkjIZ`uvRZ!++85(Iso+bQfGdeg5LE zY4@>be(}x?HAh7>C{jG8>bpvz@b|!Mk3Xs1wZnI&@sQUTRRJk`-yvpj!2HU)J`;>> zy(icwmN&q2!Cp-d_s)_vHJtRt&x71C$91wk;+u1v=ArAmcY956Xs4=yc$W~t9WK8l zFXlS2k>BnZ9|DFR+3!@=#`_wLVlnQ$vc2T4lnWXaKB_Di<8`sju>1&o;W_5aT)W=|Dw{=XK&7I&M+x9#@ zEM+i<2bcTCA(dxdto?s~{J$2;~gE6+#7ZtiBC`=0N8 zuWMI1%oP)zsqTB#R(H17(04mEEv(J?Ev1{B7g>eVS}Ng_=;P-jcpBc~c>p#jpW#2> z^S+;%(+l= zP(CBYzz28|ZV$KPV5Onz28a!E5+CDwmL_0B?Lf&UHBAjT%Z(DLGD-8pxwdMJZ;t*B znCYyk*pcPo@5VosD6WCjt{_uLvmH_yhfhaHaU>4li1Q@n$gM3{g8hk?8=wlx2*KDc=J<=hYB&EJj3ZxM|QBk$XjUQW;TN`8Z|Ojp!;q=K3D;6#k$~-*Gl1cmkI4a$5jq}IM9lD_0RAMU{=zrdtDwc91$adpZnt}(aOw}mV01he7P?gX> z&^%GgZsSe^PqR~!7h0}-57#5H=%jXgRvIbdE_$zFgzXL53~#%pz<=5lDEV0UK(N?+q~5xFV113nK&u=CNoa#3$7VDftiFO8ctm@pfO|BpB!=WPI7&3; zmzFNtDR9D<>kS`Ro9RB*+@+qsl>kf(w6&sO}%)t*1?o+;Fs(kInJ6$`F9J`ua_jC+ThLiOZ5$82e1YGRQ}6aJv?Pq`W8`eu3w2eafuB?g*SxKA2dWD9C(RZv;rkSruGzv0 z9EFN%T%||AX7Tvs3{`dM$l1U#Qbil$JJMv}ORXr7ZP2Msq|&+6&pIwXQ5j`ZbV;x0 z;fwGS=u15nBMW8QxD;mOdhvrf3yXu%+e8!w-g0eoLhU+DAn})%fsM9bxmM4d?$`WX z_EJ?9sYh?|;kTvAGBUc|b<;jMv+5-6Ct_2IhP?u62X!Y#S?`5t795(2aFAZ@&+ zj0~;bR5OGRhGVLk?ykPC$t|6uX{Vp79Ry5gfD2(!^(uLhWMebJX?x29q6WMjUWfyQdel-h3Zs-X@uHdk*X zF?2k>g7^BZ;PBggzNw@aS5)Wd_ggF68u;*Ab7Kpzj=liTRIkisuJz-+j#+{ScPrzn zxJ1fQgz_wBZ&*v{rcC3$xG%Xp>;vJ*&?&YF4UHxD1fwa&u&3%E{tf2H`Pxk9sMtJi zoYPBlAMJ3BGLHV#r1n3ig=$6CpUY)~bbH8C<86r*Uoq6Eo9K7v-Azk?u*LZeHn{)j z%~(S>xRj&(D&YnFgGlmBE}=3Ktkf2`D%`2SE#3OQSEtw~+m=?_8h&&A!G3tn5zXeh zXuY&VdCcCa87^9`qxZs-_5Gve_eu6uq$3T`5UH6ZksVZ>4LW#OyA+LNBVAj_2sHNM zAKK=sKO()nv#HGXoy=2RA|pVYybhOq>7zL*&XU)P4kpPBp7li*eh1mnbSi0)R;IEA z`%HSV6f7hIwWr80Ix2XW@0MlJ2kv~=IY$I@e_YRZ@{bPMRp*>3qezhE!gu@^{ykRv z$?AYI6ZMkzyC&Bgth!Y*x%1>Vum_Zo{WTJ~jyRThY17yv`%PBnN<3Vj9H0`vOY>D1 z1771mCh|7z589b`IM2g!mI9B7T_WE_XB*n;PdN4}ZCMhVq)>OjSvw#s#ht5ka5SS2 zSsxnWLQ;DcONP-FsxEX!)0Ka$d*ckFRk)R+p)bUMPh}rYzgP%X!to@5e&JfrH;`)Q zbnc<*01OmfA%cTYJA&aNO-Jon?mj%tO_J9u13W7m&U3zGdou56>Z?r0K=yahOeNf% zt{o(g20_XN-#Og2r)`Z6-31WrJD$792BBqdWaLmjtbAG{ypfp!L>T7x=p_&i8L} zLVHdKvCl3qG4(_hkJ29xK?48AITSzCoDf#KFxQy`%a6cFXD&`^zsaRVd-U$-0q%Wx zYH6NnuIgNKv%cCKiPs*sO>O^)Vx7N`NRQMkHXgGMR4UygwRSmxPk{S09Z@_F*&u#0 zY9pqCiCavn+w>bt0wZah@ELv-yhJOGgR<`?bi|&@RP{zt-8x`JE=4x~4 z^t=k~MUVHo1^SQ@0OBMF?Wm~1ZSJV&G7p=VAB40G7h$OWG`HF+b*4uwzmjS1+g5gz zk5(pPPnN*?2`wU?3-$3L;Ts3p^zbOnO!opdmVd0@q^Z;eah)6gsWa21uky?%q{kpc zQ*L>tA5PBMzwkZW3-c1+eiN3t7Hg)##puHOp=CN-OtluT<{ws$G7W)SJR5M-#(SzY zru8lVPF$zI_N^TbuUr9oRCa%!ZkXk`2HIy83Q6*HWt#Fy`r`0&&wsyM|4b-Ei=;F9 z0`!>OZ7@*v7Ht#YlL>T$cA0cYUZXlY_tRH+2`sFdr|!p6W>I}q_r6Auz2V2i0>{Gq zW=@N=+&jNY=jh0m$8UM=Z|twkQ_tX0nh=;m-nmj?Z!$;NtPG{QRM*x`^)iNaag&)& z^(imLsHCyc=ff50xaLt+m}!?V#N)8$hSE!QReuqRdVEIR=>&5vyB+ke%wakq3QnPC zwCm&vZY>1jWkYkYnCr=0k{=v4`YY!vK&7*~#=nzs$Ran@4Sd~0_0bL#2HH;)D!Rae zt->vMj@(sZVW@MY^alp|B=v%bf%e}CNL<4&Cu!cA`c|gX+0pNAzYl(NbLn9H1l>8+ zN7)aKt#PO#$G1MzQfrGiyeZu6np*pTG}j%j{U4}@-_XB>zu++aXqFGs!6AW@7AO*T zMD<*z!lB$8QXyU9Cv;l~uE1gJ82FM|zu^wAK$YLwByV+Mca#j32#&;zAyQ}uSm^fob7n~JYo9*K(_!2_J;GY+S1C~Z`Nwv7ANd@gpsr3AJPCv10D+=<$9bxnT;%PF~V<7tZoW42>Hex1AH1C0m!BC9{OaQ#cWQhClg8 z+ZM+|uZr~EcreYi4-osQ1teqN)V%V0)LQ$4xW4=Z^e6uvch_xZ0bCMZ?leg%qT^C+ z_u;rlE#c4l$?_U!A4hZPuC^;*o2xGbo9nZQLY01h)NNknEwWm=_p`qoOgrBdsadG7 zVpA2*TEKDW1`Tm6dZVwqp=fbgSM20gE5o@wekfn+(yM;3E96u~0a(;`iuzx7maD4g zYddq15~R5#3j~6lrp!UlxDa@-oX8({O!o1?S*-c_EhCL z*&8WD@QmN+>gk$E#`?6irMkt?)!sUn28}`m*~6t0G48P_9J0UCHYG!}mvkel6Lbpm zW+A$Js=Hu?m`QQ79Fk*yJo6A$f1Q(j8OOg8P?)E!cBKkVD{JHg0JlD z9q+18e7r2tyVOi3$u3#dmX(WKit7;^Ctm`Q@UyB&_YfzGXUS}&*B(Yg#kzPkb8AjQ zL1RfQ(e0zX%L0ts)Sm57O$Z1{uaqz0k+iNHDy4g;L}!3K8$Ig+UMTN{h8JU zg=&{~YVI@SRl1D35F0D0S6GPZbquQ0>lTaUe-YyOGSgil7gorb1s~|b*9Nk$5_#Nv z-(G3L+KStiA+{W2F3lr4m2nxSobc?e_tzFgEXF0AclUNA#eI|yD<32Ex0X4bc5THg zO}1@1m~SZ^Uh2&WFLe@Gtu#a-y1Qu0Yg57@wGZq(zZr*`N|i=h zEs|7+lP@<@=*BikYd9U);9BJlMOR&chU+v*I76?)skA@yr$ade^TB)84L+umlmz+* z2xrYzKcNS#AmQRe;&bRU_!SZ57wML5LFGZos4AsuuQ6^;uW+@|17Ns4PVItD;QGU5 zd=n(nzFZ}^3%04w#s2IGvx5Dad#o5KnlrFHYm4l}Q*4f&3BIHd&iZE(cVE%-y@Wm7 zKCmBHVRKL))xnR@dA0NBE}AJ11zXW9)mhw%%mp`L4;V|5K?80cdj-L=k!%9}kFH^f zN+!|M-s~lv3!hs0;1wn99rX(8DwO{!lOK_I1WjXob>GYP7v`nEq8;fWQ&jmg@hVB- z9)W)71PC(yPfX`Kf^zjXf$lGQfNn|#rj`5En@3hlM)wU{zU#dsO8Lw4zG%;mKv`&j z+6j5KB1=i|OOe{U4~y5y8!z>Vtblrow>6oTNHU$a=90AQTGVDw^jAe+N+3& zidcwo@kX-!0y5sky4Oa!$8!Dm~ijT+(atC>dGZ^YBIk>l2XV7Y===szhIIn6i0W;7GM+uCgX2roiUHcr7xq&eJc%#)}<3;9xLmT*&^f(1UC z!{5QSGe@8z+>MwZO_W9gP9qe4A$P)-i}wU0$g}()2sHcSp!1+@7zPhwS4c*r2{Hjf zt7*<2bhY#h&Vey_r>uqDpiT5#Bmq$1N+^vf;53LN4H93Nd?MznZgOkYpWBrBzH>}z zoQK3Q8m6xpu6z$a5xc@Sp>xnU{v0%2{$1`5_z`cUpIjkLkjKDU$S!#u_Jr3#Uh+dZ z4Ot7=t}Hl7Dpmxc-I#S^x>U{%hHj&e0OiuvX_rQ_WBGCvQ|m|%2y5&Kc&U;nW!xLP zr?nZrp}8q>tQp>K+eJL0$C`L25ntN)j_@FVw+yi);Z7n&nj<7APJuQ$ge+$I!dGl2 z;u?9S_I8^QfsgQ;F}qmb%5`U1OJ!D3Z5)0#0nTUgPSJyHebOCIFm6I+)6z~ zM;+`8sB0h54St2-@(*D=zXWb8j{|4vi`WmjC)QE0BlG3e?0V#@cwGwQ_5y0*m~afn zi$-{zw9ORmt& z$r^2MCrnblu+I`2N<-0k&^fh|KO?$gI_(SeiuBIukTQsqW-oLz)kcT~-SXp(>5vUi zk5RHD>i71Vday+zn9(mm{Vo46*P(XAlrAV~tfKQx)uyT*y5(QIT5a)(QUy?KY20d@L@pOV58B&n#5`#%ir^8lw=i8mpe@2>WT&_ud&}*7B|om?5n(R0f&VP` z5SxkJz)G`(qlj(tMmR@Ec6brnP#1WU=`&v-HStYQ0=fyl2K5s%r8!`lTnmkdCc+0$ zM%sgt@EYhK;QqdWCM1}op_1)WWh0s=`N2onD(>{RLmpEC9@^91eN-;tJCZF}jwm5d z72Dza=n+vZK9X{ntJnuFRq7!ufbZAF@o^!0|IaWBjllXbiWm)zCd~2_&_k7_FMu)W zM3w^zXo;{5oUxbjE$kt96(DV+C*G0oLH(ov>H)eP$)_%;E5Qw+YpbeI+Uw*`e<;Ul zhiAHVv|LDMcI&J(A~f?fCcND=85!k_zMqcp7LQyNf;K zl-~le_fVjG5&9Qd3s}8Ta2-Ay*$Mt;g8+S+5Aom|Y!O!fF&ug?c9Ak9FL<|{4_L)< zQXt?;5YT4Jf!@I9;GyD5Riko0be)(j){$YbmP>UMKFI)vt)8sIF7lTM0a`1T!taIg zXc}_~>q?qsB^&^OPVLN{&^IvaX8~g3uv9E&0w!%EdV(RK7?!Hlh97eT+GbpcPfweAnVq&psPUusQX zCWpPu1;~+NzPJ!eC66P(0VKO2chRT3D^f$mz`4+x{aH{qv=&+@4n!Wp1<)w|3A0wR z37fG@WC_oUv7ob?EtNxY!VPG>^j0hfzw8oOL@m-w&^T^&@(Lg@eWBCP72zO?aZX+V zh{q1VxiSU%RVtGLJBa^0qgZjy7h zoMrA~2?m_3kt666@D*J{7}d~g{p9}}-(bNMrF?~(hm3dSI5 z`W|TpJP00yt%OeiKh1XRtS|y_d=;RDyb<4p_Jmf#5MBb`M)F}N6mM+ua!4mtB@GRA z+YP5p`PSn^e|#stzykWo?f2O`6BY7W+9LfT#IobadvXuSAXE#*A=%3D=xDeS{UODn zU**kMTka$Bz95WkAtwkJzXDm;{0=rtYq1Jxlxu|8iyMe4p;~Doc$a^XX2EB`%!NRk zK*zlZNtD+^Zmf*LO1!v$~SW@VYG#aRb+vfe_k76Na5fx7k;ff0sWf?(F$j3*9g& zTj}o{qnrq4v4zrZ%L^&I-AwRJItMM4BHuXVIm{NJ=_PHBHwEGkMN0O;_rvx4pHLXZ zGxPb!(r>~`36j>zBZ%IJ4fbX>LRu(OPOUe=e=Bz8me30vyP1KC&dx((i(?ZqPsI4k z=vuT2odMi}OC?O&iA8`Oe@BrJma<7=J|augl*hn*SFp3jaros9UgBR;4PtkAHS`;p zWh00(2M#?)=OKgHu>4?dKf8fHFR%F!48GqpooA&ffcsmn>_XKc%}5XDe&`!B))9<( zV|6MkG}MKL(%?g{A@r-@M+#j-@!ir^_)l&DcM|X-dGd4UxP2gIWrO)l_^JF+NW$A9 z{hY7a60{4qqfI*9&wuOlMm&m&=da7W{V2Gz8f{~Nw`iVniu|1m#a5%Y;2&H!+8fv5 z?}-?(H~rFBWsPunIbIr)JFt9z=`+5Uu4*~qvfdu6Y>O`g&Wa~alas)TEcx6FRUi8q z%PrgAavvm1>4M%d&Su_8Er!){o^2(QC(cFe1f?u=PLmgyC-L6!9`FlgbEg{BJu5gD z!WDjLU#mx4-<#GJ7ASpqSNSd8p4g2CIn!N(>iy8UQaRq4P)o^?tis~uCZr0-Mlnb=(OE=Z~UPE=A0;0MGk z%F)@Ioy~dI<%&<$ZxnTY8Hj*~<0tu0PZXaa)inL8`q#12v4$H7FB2!Dv&l}X_3&a~ zUK8L^_!lV;4La5Y7=9CY5;++atB`7W8?+boMH+;YAQKrRbpY?K1bG;CnXk|&Tb{sQ z#klHK+T9i_aTd>`20}3M%34Za;QrK|R2{*(HN18E*Ey&4RJS4gVD6D4TtpGI_zk|r z_oXo23J-;QNs%bWMts;{zY(Sq zmGU3R4WYrfkFQ5LX&ZSDiDbPT7+T=A3jFoYI9uZ@(82U4I8(KeYl$7o59Y6;qC5oc zh|U1XObr+GzDm3$W|{B9(V8XdV7!D$5Hp1@9FB#v*PsiEmBLnm&gYyr+Vx|?#Z7D} z^cA}aXvDMfQT&SFE{}yI89@%Q*FZ2510!eV*>;xLjP~GSkXG>0CK*j->d`!=qupPAiO|?c!BOOYsGkwOu0f6(Q0ZB zVgydLA5Y`(HsH?fs`N<{re4XeL;BPA0Tr@F8tneAF&ce{Yz9xD{Z3~(NI6Os1pUc> z!^cZa!WQN=`Ug~qHE{t*lQ|D`Ryx4d<}bnBkxVF`_{RPvQ2o_nE|RHSDW*`fpo`oa zkhc{9Vk(HQqX*&&_IKtoc+(_N=}rl{1n!5Aqr0&=aBuK02U{#pkqlTTc{MKcod+eu z-GPt6z;ncJ)O{pXy2%~~)u+GdYTIklgtN?Sd4qDcc#->Eh)ceX7C9>U&RC=Mo!p)K z1)QNaLSy9!Xd^m_GU7di9n5+(34M;8fup!J_(r*E#6+Zsm<5#xHA1l19mAz)sV92? z6QJ2}CX9++Xem-E#E={l=$TLRn9bhRybNEdtb(s~(ThctFD~&>WE`Yu(;gX*zeLi> z5OxdjF(lfSC_fY59XDL-_^FE8=c(96_&M^A^b)R@Qv?eXD5+sDMMuYCIi4vLzkwNe zTK#qPZtfGyAS&^Z^IXL`dzH}NTy6Wp^kO`a+2M1g!$Ec&SLi_LN>Q-_U|bx0Fc;AUy+h|Pq% zklv8LFas)qT=pzD1wur&g84_ZdRQzO(+&d@djwP zDn+K^k8%;%NvsfLAos;9ke6)|e~d1ZYx(zlja-O-<16_Rl@GHI^~Xxk^5$Sy&8wlh zEBGJAS8NJ8+_^$3mBX!)L$Nc^(QdiJcas^8`;~?0kj_$iT09Ci4h=2 zTqhrwmkW}7NukD<%R$JYte1R=^g{N9?@3i+2{(^g5Lyi0AMd5j_A}zOLU$yGllYGK zJ&!xmRJUhH854uuQ3NqBK$KC%$;aG6$rRQw`* zX8X|x#d$&|I?3&pa8^K&H0NSUC+0mjIJ0BlINFIV%1sr)&JXBU$7O1ySg(ju^B~z7 zrr-_Ru`0PQ=Sywij;Vu$r!H4)?$}#+LNf;K;{N8E2p{%>z{v?tJ3CVxghUD5omHHc zs1~!_JBwSP#wT%_U`fViBVn46#DijAIY50%UCTwQmLOXZhb0R5AS;yyq&N0b-q?_* zm<^o2&v94rAbZC-P}kYg1v$sB<)-48pp?%KoW^bBqq#9+wZI5@=pJ+oHx$0aKXD!q z4B`odLsPJ$u$eq7E))+mxTsGldS{FLU?|Xh51eV9uK$)JCGk?z1~0OVHWQddUdg7c^L=I1JcmB;ZOO z1pGOTz)reGTF)&L#_(eW6F7&QkmrgtaO^IJW+Af#-N{sWhWJ!G3-y++Lq_DZSR!na zW6+*Rl=9#ZJLFH6058l1l;+~aU~o5M1N8H1{s)YSy@4m>ptup-pcjaj#YJM1@Q@n} zH*x8(7CptU6VVHq&|A}i-OJqODHgN$t}`uXe!9- zMj*xFHqijuAG46pvQeHPKa(MRxHu1XB6cJ#^O!iBn#}(T4S-8=En3N~k_V#YV0xWs zFNB6dKJYl`nGALuLYw4gP;a=J170<>J@i;+At-s4NC4|ag8WXLBE7Vvz;-DGofA1! z&VXatddmVfQ+O@aiFe?uU1e@5{7{)F-sTYTsAin_Qs;u?HkN}4^A48ongAPkm0>5f zzRlL2pY+ z!YqMy7;sA2AU{ooF#KO>vA7W0gd~hxgd+W z?0uvwTp{+8(vbd8FW@-{m2ZRhRV$=MHoy|{4oU$T=_e?IU&@{Vu9vUmC%1|RWAH?f z7fg|Qv%Q$Zswqr3bQCH;K0tTGPpS!g5VNw1i#+Qr5l1rTAWHg)mZH34i`Yh3!#;$I zoin8dcqzW0pF++73CR2ID$$b1z zxhUU-&A?o986AzLvsdIFVgPm&nJN28v&_YEM<`#;btuSuDfP)0#)3vDqU@uEAAm=h zE02+c+BHHN9)gA;e>wW2KjB3pxGumx%8BR@Y_QE>$+b_V+cn2V?_`HqpD?Ekn_4F- zM$-;h;=X_xaE+$m|Na-23G++9{OcYYlEnzxoXkM`z7>LBLY_{T~Z~(%HkJ<%z7I;+t0g7jAIe%v@L=W`LMV^cmVtI`;jO-7!0dQ zbeFtEsu1i_EVKk0J<|zq68{l=u_(B|yb0VJj{(H@0^p9hhr9>&hXOHIo&XoI?$9H| zPdX*H2!}x`b%6~AlPQBjazF8RX_h=2(u+gHP--AYQ*+>~eo3M$?~X2kY={X-2H&c- z(npM@%djFT5{blCO%4%{BN*fl8aAwSL~4@M+%2dT?nB%GEdDDVgZE2i;B31UIR(YQ zlR$egSg1n!NnNl87MBk~4QMjRwS(k0lIw#uP%)GOv9O1o=jw%Mu^8zGhoE!O8(#gL zq^(?x4Lz>OG$orO!F|UnWg(x=L{NWV`-RrXNpN48$A=)-V{cH;1=;+_wSewO_cc#& zW^|#jL}4~b!C{=ysRPZ!Ah|)H(BV`BIH4~xJyfR<*Vvwb{QZc!GgneiIjddI67+PhkC>1CSLU#f}0=+Z#)Ua0y=$80JV2{G5Lh z8DuJl^0{BCq~nShMH_k~l!zFqDtIK};S&$;Fo9bQ@)A5GZ{aMMb0;IEP(5%5Et7i7 z69Mf%ReBC?5K84sz}XlLWuY5@p(h*-k@wI#*BPqGrWMfj&o?mp=biE|!DH2KiXGT8 z@ey^`G+c2Do zMfn%|<@&MCg&NwHN+m(l>6zF%@_I}hy_C5mg6l_7|vbR6M-Ffpvz!ckS$$f&_= zI`I_POcJ{C(n5LcmoL$~gn7;>a1O|gdNa*r5?8KHgZ|OfDmu6<@%XBBLhFS&>^a+9 zked!-65;9SLhvr$D}ZN7v1-Bsc7nJbzTixkj-p|-iv((6s$Swj>@RKub=kR7aPY_3 ziugBdRN6RhNLjcEG^G+n@dxS)Mom|h1K%w>JQa|9j zTO}UFmLXfwv+zKA3fwI8KsLynGtYSro=hlVt27tx1Ss(o8PQUFE}kpLW_RSfq6e@f z;E3G_GCLVRE~nX4iVARdHw@qNI9ND^8x>>t6l5g3L3vlX%4?DSO2aPEoyetVuORzY z`z~rTy9f)#FFCfOO6j~jn-ATzfUm*@?kMmUb%hRVCd-J*U#gNJ?kRRfI4do3@lE^} znWaAuPm?lybIpU>4T2)v(!iSTHI88xR<)Ch17^dt|5JAuDoWBi?MXZo#Epa+wUb4_ zB;N{;lLw)$%viLJxM*9&?-qN4J0T~LPR48Q+tJ3KM2s6H7bSMIXE6KhEaz_XVV^ou zIYQQGhZ}FBC>Me;@)tqmPT)gJHX*y=pX_7uxxDJjGccF;RO8HIY_WH=)f1Q|ueEID zt}COyN4kZ1=K;4(4v#@w#82E?yBaIPr_*DEQ}B1tK1=~EymW^$`MXje%BYU~L;Z=C zOITb>2cZsHXem&*YR_oKLQ!}B`|-P+o_&HgZfV=speGuTF4dY=s1q;gDZ)9EV61hnu@7` zJ@O6@3}Qrvl#C{eS)dU=k%Q>*+0w6S` zsAd6h6y4C~`;2yZ;%oj<3d7nDaCZIz&Ejrz7(Hzg`fEAt0h}V9HWhqF7+aayHoilji-OJdsoFg&2u6 z@n^L*y07=dm%ibn8yC2j*{boA+M{4I!3*e`qQb(ErF^hLmJFcroTZH3Q+Q9mR34MH$^zLR^_F)Cvx&A26PkcBo+F(cLRj9~ zr%K7lXlsJe{mEF^+uR0u(e#;I#!1?Z>?87v26Vj8G1R|=|BKC{AKYCt6Av79TC-dCC+wZ7k#p9xsN`Pz?@QpQ%2Q}I?d7jcokhW}NuN>$9w zrK*&>Xc`MtSj7VTSLqZb0LK?0^yREvijV;ZV>bG>Am6ykjD?0tYJLf{MQWnks+Dpe zw6kR!5=s?!eJkWCW-`3Nr~C&#l78-NMt+fUR2fYY*c>1$auvo7v3!sANq}7sQU+rZ ze3bLF*DB^n)7@)SSJVUKH04r@9_r7wA|dbYEm@F(XmlldpOIfFDt~NlR@=7KX5fk3 zZhbhs5`9Q7uis9$_ZUD8Q%%D=psj=_Y)*c@>VdVqUM0776Wm&;_x8hJUfWvhrQ6!D zyJb7LBkty$>=J=3V)iK?IJWVf-+$LGMyC-;9-U2_kolT-0Yi~G^c?c9Bh4qZ%{vEbhEUp3!|(?dM)8IO6NG zlWR|nhFK3%aO=J&jmEb4{o`|cmwy&JJ?0FLWWLM%D^q@=7wIT?`k?im_-F8i%f(*8H;}zZ1iK7v z5;h~3_&CMG=nqDaes(&gu46vwx-$>>1!#%(s8Yjq;=5pZXf<|Mo@^`pQK>Wr-IwNb zzpHB??mN?Zg}EL_y@5ai5_)?n$XNSSzIR{R(}x(OAlnoItk9=-o5Lpo$h`*02TtN$Le8? zM+AqiviXZ8RXWh(VAAVlr$R1KY$U(6*$=Y9MsY7Pi)gWJ#-`#u`H5~J@(QYc#SR00ldPt9eJ?S+r_f_G>E4JmvxD_If41g`g*lN zOIUAeI@AvtXzvQ#yY5Nt`HzOK*cSLNA&NZYyx|zf_9j0Tw5H~&htf(@+WS~-Z#5!_3{KCKcYtHCkMF-m@=JMPR^B>4u4OHB)5$UB7{S#gG02vXA) zIZ)p&Y8p~+n;kgKPCI?ArEp!t@CXC&k?vwEy>@V2l!vryEIUX)(=dLvkSGlRC&1lk z3w>6K0MCdkoQVGh#RI?oD?lXt1I<_a;istt;Vd;ftb3F&QN`(T67pjhu z*)m-xxoWX8eG_PiZUZN^>{3;IkGd`TG*y9OfgJ)Z0dFZDJt@(eQ_N`xEM8GQ;XUaD zYk>JT?>g)BxH=v7X|n6z=&goBO$$tRVE_$I>ZX{$p@^ltgiL?~O~3jzfoCY%R8Lxv zF*WDRr-aqsw;MZCEfq7M4=p=uZ|WN&r?s1dJ?iinU);2e-v=_}ZQ|aR8hH(8<2Rt; zd^a}RvBugI%Uw8kr&dL>IAH{?uWWW*ewQpwJS_@BM5*0mog6S-_n_Es7lF8u7HWV0ZGap z!WsJ~=3lt4X+8R${7XxsWBEyAhRIgEo4Aih-Fa~q`cpp;83gG6uAn_uuJE8c2?xJ_ z%u8~0fZq9>A4{+XWuhikbecX%@9+w2B4SVuwDd(D0@7tPlmTaA<6OLj)jc+8c3ID| z>zw~;4iYEPc-3R`RL`x*K2#}w7vm6~@J9W(BkVN6gWDxru^;eJ^MXHooUc3(%&I#t zW&>s@SeoHE#Q!dC!99UNdB32AOT}f{`|@zSO<)K3O5s++J04@6`DVeI%HwFgSdV)M z6oos(pE=>9{z8+WcH~_wk6WsW z$7pUK{=Ll>Y+c(}WR5kP{xhJo$zCv?Lgn>e|7JE&H<1$MXh(&3%~VT17ONGmma#Rj z(GaR9{~G#Jy;7?ee>i%J&mJt~qvTRWXZW5t2|LbYD|(ZS@?ynddj{DIooBCB_QuTQ zT=cc_F4Ge_NF<`W9N|Qr?Y4TUWupwdZ^B{aIdl%-LGGHD@pFj5xt$d`GK+N8(}D_k zQEv>|U^>aIWoNOF6dqh5H)zL;kCclQSEb&3wtk9}ksjIyxV{#G$cMF{l=?39%VpH6 z-zCpL2xzjrhwM!xNndrviX9YEt=G<=-|<_(xl#$15>THo<8oaM*2E zjD#zus5-h|Qrz2ITh@@!Nd~a z^4rCCMvjSU*oVoK`ioR?#T=73ftB zV%jT0#K-IezVCurvJ$!|C2P9iQ(0aZj`xuU+INe3_KM;FW#WGdp=1KoU!!3U+KY&3 ztW76$Z>9V5$3Zz1t^-8VUC+4!&8-sFp5!XVSC5n&6 zj!WIy-TV&F>$`=dNFT%*^lkeLy}Pi^sd1if8ULyoNoh)OoFYRV6+s*~Soj8Yp?k}_ zwKq9EKF&D@9USE5$gFL^CNL-L^B_1sl?-%MQlrugq~GcptJWuv*|jPG=art(@Zqb~6AgF{3^J z{QMKSDd>FmW$&S+te!^A#~LaJLTh}+5N}Ld4Oj40V)M^yF3;IyYM?FyiJ{gIW~2wd zK(Sw!^*NT>0NrR>g%mg45XCPcl)E#;Fs9`b*O}FL-xD^Kc3!m_iPqGByW0V(neOM&er!aG8htCTfC9igQ;1CC;-m-6h1^^wuxJal zq}Ib0jm)tJB8BulJl2{*x~ML5WvtWQsJYB0k~RD*-V>Ld^HV1BpH1<^>6Y%;LcWt? zJ817WIT}#XewL2ZhGP>^U*%QD`EG;MJKXYW^N3t$wOfC(lPSOc!Va5|?k31hG9e2eRxJ!TJ4Ii` z5$zV&N49^R9M#EjfGf73b5A2@C?o7dNANE4V`(ctPTVAx*n*H`VKKT3{sp^e+w5>6 zZN+8IYSE$?rS*pXAsQp1$w{EycvZ24%;h>la@})F1QM-ikN+BTUa{1JB7n)9)H!^D zX!MmcQ+vGC6=>DlYs4!0CUcuyNKG=V6nDs4)gZ+q{$k@A=#}a$@b*u^U-2LOwCa2P zFDPEA{}t=hvxIu*6gCX4BM&i4)cbI|afv+Cau;5N8#%D%h0Cy~iUcxWx`lRU;)S+& zvZCLIozz72d%z_o5S`dL@Ja+#&llB#677QcGk<|eVvO@Q`!ZM$dNF<3Ia09ms>1*p zhs()y>0jfo)!u?3;8$cs_fe{fm=8r8nBKb4&@keJKcT)&_`Al_338mRJJ@+Kf+3vm z6{W}^s4tjb;wi0uFL@y1oN_P|`}VP`R=vf3kGSN#A)Vk~qeo3uaHTcXJJBngY(z6v zN&0g8AZacaixo)o-bAX0fjxTBeh%eOYAky4`|%cn-zL{!-F4|cS!RFdQ)P)G*dCz| zS8jHSuCr+bTJ0zkUTUWB+u&KwS&BTgjQ{D_jxAP{Au(WC%SUK^w~x*N%qS?UxZW9U z|HS7L{psMa@zONMTzgyHH~Uc77bl%x$N;6R%7Y^Lm!$|amk+gn46l_DJ_D~zW|8yg zBlw(L4CTT1maT~geDeEA&imBEQ=W7GK&^+xM=ZlRou zy_L^vK>LsxR5?>W&uwTp7XA=4V+fJqrAbF$Jubhi5X~rYS zdMp7<;&+s4%QNJt@?KS*aPV<&ZU^0_2{=0$PWd~8u?Y21Q)a8Ezo&?!R>~99v6P>_ zP|D>c`Iw{6qe*xMeh$(hdysf%9I);A;FkiHHod|I5Z;#U)ON=zV~)7gZ7F*I%I~%u z;@frR?Wn4uoAaKzA704FqPE^mO!93+J_|pDqw2O$iZfh!TUE#=mMnP*$@h@o(KD9e zje zB5H*~<5;{CY!#-F_p-HER&g}F^zHM7|C=7!>6MK#yOPNC}nZx;u-mzJA<6+1k*?cx`4I5491 zt>QG}kB6uH+Ny`@*TEf)$KYn~Y2InB4%aro;u>JNK--~g=W8|Mo(WxbX#ks#4fUzY z-iB`GQy*^VMnxAmVuN7AbCRO3d2Lb871Nayu@0a6*>@nD0(ZT;54!5}g+HYXQRDhd zb>1V=BZqz#cDUv5K+)a{+2t~xTyUfqe^WCA`>4Qzx{(j7|7z||jc%qs0c)N0L`AZ( z_=igU-D}Isp%t5?Gl8RBbIq-SZ0awb@trb@o_P7h#8+>V{Oc#z-uA5`W`Za3KTQwDp!a-M-Iny*$a*#?+C1`|+8fl{y2@Z7$`88+kp`i3)a|MdX^+h%EHX78esyIz0A+>l%h_d{=iwQDHbPRuSVATkv&$ zhif!m*X)JbX|`3C98J9WVN0d=7_Pe`+g`2nuQ>{PSC3S`{WX`-`A&grt%&-d$2{&F z$<&@I>*Dg1Ef;KrTyxm3z-^h2kx$mlY8uNAMgnaDNTtr!4-dca))ViIAG6Y0rT&a( zQGFFu;#jO>izhYhu2hg?jGP8FU2B};7OFMi2Rv_hY_!0dn8;arfA=ukb7-u0E5AlA z_j3|?z=vT|?VVL$jjpwS|B+R+6tAV-&2cJ9`^iTEr?ezlZ`p|8Iw(o4=L1Pu@b-q- zzo{9@qmC3!vshybm6q^DUc2ql8n&TF>$$?gmJjTaN!56~VyE0f_LPRzJx4Q(n(SrT zTI&?`0{8iCyQ9O{aBH1EW`1a|M<`ZrIbik0JZ)!CmElQMJK}8X!WP2{;OpHn`;)8l%#^hql&x#k^Vg!yQi$XUJq73#kRubk<02%L+jk=i9v5< z+TCPq4R_T2Ynes%92IFVa}TY&r|8fBQ>(@=YU97BBX50=K`XJ5BI8qG{zN9Y#=A_` z@71k9{#Ie!Dzn*ff=#!qkZ%}z>i&T9eoH3zdm%c4qE3bM}2w6)zO?S$wnD# zJk~c~COWx{Xt`e5%hzD8iCR`Vwo>C9GvszaKl4wx$*@%U((s>`i^pkaH}41uBfF>w zYm2I!-fH{lSY(UBy@9ztU&?dc$AHfM`+qLvc#L()X37*ZP08FNw<8sHb4kNZp=-?q zYk2cYwhTY&QqGL@1bc9CyYne^UyN2ZyDyGQ>y(I(Q!2O!!#DOeG7n@Ym>|Flq29l`rKsyvE1*6w)@X6-Y+B*{Oxi@Gh}u@9XSA&kR#0~=znk?I|3$y$hB>hM zQ_$;+=v9}Y$|MT-2E@7HpUNAc3UK})xp<_n`le-jMVG>j-bQ0{W5jn&^{}sK-K*Fe z78k>}w+~%w#1j!CwM(rfejkiuphNFE%a5?d&TBC@9qF{C5mlwC>ol+GR%+)HM%y~m z{)UCn+Wtj9mr>pH7hE#=wd@vd_4fkrV)id!RGI@i2?13vKIpw$J3a??i@yJUORGQJ z&(xi;Ew(PSkNEf=jsh)|M{T=)Z8k0Ak25dnHpuSyEX@V3ow}ql!~QLPxw-&aM$LV7 zN;y}zOOZP6%0S8FWNSdBbgi#QzkY!>O80_|KlMw z)2eWT;)4*w#vvuF)_DcW0lT^;hvnC1i#dkB0EHDJ)VQ3$YOUi*h3UO(C2kHM{=LL7 zK@-!`(HZV*HlF_EXE^2Z(smTuLM}7b;U{uF)jmb{YnHnCKoK=ZaivG7`WItAY#ni( z!_?8=wcd7UI{#9bAS5*P@7pM5+Q%78T!Q_b=Ox5|%+aM0d6t_^`HuOh>|?ZtDIK*P z@iO_oagldD^2{q+oMzd|*@zF#Z(XuHcD2r|n;KBhj&`F3gJx&6R`}0$zW@_LlpSr& zlkt{61*O6R??_cOPSeGhyT}n5gTtXJ{<^*XLTyLgDH80#!*1}Y$UhV3iLl=Xq+jE7 z>Wy|bdkE2Z+^<-Vm1!Bj#qPi0`_2(%%!Sto>cv+j`2YfXgPc`pn_I(H?ACP@kWt=!}YmcsE<7&s~Er zF#`G1M7dqjb4=g5)&YO$x$qh0eooHTpIqAJ5o{G)JGW?054V6{90J|x7gV2g&_C>lHdolCewO8{W(m_AlHP}=dFZn0sJ7UzUEhnXFXBnh3-VIi9x_xk z9B1Z*{1)1!su1k$%(ad8zrln!Vxy+3p1WUZZgw=c@t4xj|+5a$3Msu|&6*pCJ~6<&`@X8%)J~l|>3V1?8#(TD8KHD$;8oBEP!$=RK=1H!)a#9c?hMUfK*`l-Dme7mU z&xyRid>^&ysC{(M+fJcnarn@t(8y2^PH~}Z4z}IA%*KOMWQALn#|&o>6>cf@iT>%Y zHMdlFi%h<5gm;ALgW*4CZTDEcD)+iprlyIkN42BE@j!9RHe0_Q!?-0s(<@r}oL24i z`mU<2zV2A(G4#jp^dt9kmiMia$$6EL&q4!Ff36Qsh#mYHGglyIBC?_;dRmDh&$YJB zrNzqO`pEm89$#+y(=fn)+w|T3Or7NQ@W&!9*z{PsZr`ijYa^_;KXl^{SL{WOnAPTJ zu^rqutTK#cN*yP;wC3Y2!(+yWU90wVTaO;}oFb7hmLDNRJ9Aahb(b`}a&)jRlq;sGn#;Eu?V3JP_ zLNx4pYb)`JI*iU?OkSJN7z}x4jI!HO!mj#13y$HIe)jriGEWVfS4_C!RKL z7D#!pe7eSL+z%tGk@$JgJgW(FjIeF@jJ8zevX=WgMW8v-@lVp4b=g0^gVJ2D{uXO>&n zcP~xuuDLJ&X!b-H{LJg8@`Eghzxvhsx%yk5`jQ{H*3)EU(E)B&Gt)Av{MF~qxVA}G zy0`k&*K;+Ls14kynlI@c`+KM@bG?E*z6NFY-uqKk8!Q{ybHabjRrH(%Gp)BBR1YQ& zx2|sWiHP~Rg*}f3>MBEO@y-U5JkxVP)qCY%wji4!SgjgQFQgs*-|ZFrY~!Hv7{fp) z$~N2_#3IU7T~=5VJaVlw6W7~A;Pv_=SYM}W?LSQpEKUz$~m_gQ)2G+lum*cqWdJ zh;lVU7Xb&`9QIW8`>!_D1hTKakxTj(710GB>H6I{^ywLD4p#WVt>zfN*5H=1qyDbj zCaO?q#m{eZLt5xLov2q-d%fWPs5Bb$^cNJ(s@JhM$`i~=B>4^p3FimOcuW&^y~>u|suELULopVeEGe79YAfwERK9RZdoJL%yCLh*FA(irrqjyA|u&iQS5w*K3PjySuvs8@nh`kX+c^ z(`V+L_YZ*2!p=D}^E|)j`!&p}F}yDSY45jXEkP8{e-Gd z-aoeVvi|U!Ml*1Y8iS~Z0@6CPjxh^V1JUZC&+-7d43FWN?nQ< z`CRfmj+4G#DcGD-@z8Knh~CiBs_>3su8+}HxwIbl!qu6{DSwo?Yzr@L;@b72Qs9GP z(SP^Dee#(2=Ec~4;oBR2J9D*Bp*`%+5RW>hB?_pBE*+v!A%fE&G!SU{?a09MwzN`6rXkJ^h_DA(l zGG#vUD4l0-D(&V*{TNzpQ+kR=WJ&+$na(Ef6j*$9dg;brffd%23}ch!HR@?;F%B&( zM3UN0^=Ge0r-aVNqotjK{oNnzsg0uE9tWiXo6&#FUGIdF*4i|&6&Y_`O^`lEbmYW| zpMtIzUkuD5DfWav!wZ{whw}q+E5cZJE1^cw)dC|K=EXPH8Yj;! z{mmOUX@~V+u8tuGmH%K*qF6`#{wF8R|5k{XyQ6(q`S#vT#C9O-TkGyFF}w7#>6-Tx z7s8jx{=97COPZZeHB6PSXFp8^=2|}&X=e)aT}R({kwpKSaJ)0Ter=zt!msoN;nSnz zqcC^jiQVh!*Rdaiv)SuAY<-;$ex4AMF~puM$*}|TyBCZL=o;|aZNKfuq<=m1dGnhQ z*`0HcR6puo`EF%Zq?@+qfsM&q=US5;%qb*jvd-(=k4WY5MA4 zryvfgqp-`1zlIE!4Q+z++BDhf+FIrja4WFo_eS+%l`EEoY<<%dN&l3VR=?m86YSf{ z{uf>H4d?_uFoXrZq z!w)Zxa4*41;d;3bZ@v~Krk<&|-{njn$7R{9pJUwpy-)p4tvNOm+S-^NQliW^pLD}P zkXx=BI33_`dF;Eoa37a$sOQALvbA~6B<`4A_m96Z%=`GwWH?^FSqQ8A^+tA{4jRYp z$XlL8(YEDh;6RsPIHz^i<${aGlO?^%ywO#Ccla&p7R|X|_xl97p`9;lZ+5`{Dog+s z+4WpUzZpSI@d=>@JQ4hpOLrFjd{_7v-W7MiQMaIq@BBky?*H7ej_A0hrMrS|{&{Hc z|NCBXkEn9dQ9;+MTz80j9+&Mr zQMA+h2mi~I;!&)d^-I1J6<6h0{YUU0$3W9&-yXCtT=?^{xeVW`@LdaA5MORvrKGZ_ zYEXv1@e58QPxH5f)230SUD@wk?}A~1JvTu3C4@Wo3wy!MAe*pKm?h4u815gK|Jj{r zJ`4)$H!<^{_`A)(d6?q2M2b|y&Cr>Z$ic80UL~IFy663T2RJS?BaZz*TpocWQxzd z;=5>{ZD5AGS{$;2u%cIvZrK}4_B+S333qrrgPRjrVBP8;W4dOo=SmK}%X*gI_<3io zvvlrog1j9p3kc4t@9{CG(znfD3LSF(ypmQ@ZHIUHMft;w^H7APP4Nrug6C85z0Y61 z|Ki9)#|^j1g7STVSLHKGozPwG{l3P+JW@+r-C~w?cm*n!@9-n+tA}-@eYUth`+g1o!bU&GslS}df|~rYdq1RJ^>@%((BJF0 zd9_ulZv#9#H%s&ojHs zwfT2!9%~$CyI=s$SH7neyCLpr@T=ni-^wcKzulo%jKQH*Q{|R0CTQpNQS~2xnQU)d z+?;Q0zpAfi-kZ3J4Ls63XVU)q2Tw+C{=16NRHcbR4W?DP{)w(Mn_M8UDtB=oW zgXSiAkCkd^&cHjR*Ybx8Q;MwG16$X!uU}iaHn}#sUkH`-3v?>#G2e;(o4+j2RIkgO zNQzv~mZCf8^wbzOj>%EC$?wrbskYo&UFh-9aEQBa*<~Cj50=v;lRlX+D3`gz9J zfK*40RmPLLe19&I71$x}U2-DmDP@ArTB6cMbE37Jr+bh{1zVDvlC&1%NyZ9>K+`Gt zjr>;X?blCE*UFP$P-gb>BZVQR9O;$ufCBY8;2w%&ZCsk%UKlEV6RL|R#gB54+5&Q+ zW5q!EvFHhgi4oKZ)>I3{WBJ9wR0kpVQAVrBwU@XTL)c^7CF=ymY-*}h(+DNW>|&;~ z>)FZfG3Mz)qB{#(tbLSc>`-ej(?zkRbYGbuZIl*yuhAZB!5-L+*^&6m1RmL zb9=oFNrMsW8Fqv8k5Vo$mv*zO(0rHxdhi1bVPFAu%@0L3B>SWsTIrEGyF@j zyfT}t=i2E{$V9FlbBswQ8L%eUC;BTlm~Tp?o(UJT^yDHq-ItVOQh%jN&><9WZDMU; zh%~HKW-4ZGk@i~O!j&-H*ykcEIr$aRMQI7Qg?YpFW$SS}+}kO!Z6BroWx_&kES)M% zMHB#HeGdclE?R4RMysOrqBrMrup{!7U%^s6g%TgPP*r_X{oEj4)EZrY3NU zs<0libVFJzH4$ftCes7^C(VE^8Iz@%at@!Y50d_(q%j+If}#8sVRp!JO4)p%bkuI) zcFYmJnD>#onodYdq^9z7?kAjQXom7xg%Wl589&JNL4CTi>-(7{p6E69Vy{W_~>s<9qADCRifmpBt-$Rj_fE{$2k&3COA)`~mX z8vJc;5wjev;4gD+#8b*pbrI*y-cn=9Yf7N_mnmZhDoeyE0xLF>Su63Az(2+wLMwTJ z&_f6lzDwmyotO<=E`LNAB^}Y?a9`*}r~3Ms<}p*5hgu%?)HkZXWQY2g9jE@}cd>ny zorXWs3wfuEmEYE7K!=OC1b4bHMQX=!$}4plYqt*Omh#wmOx`Bdm%MS5*{)krDI3TM zmUGGp<$)np8Lv$wpUGTgVsG*pYArBZRVaO~JUf~sg9~UCsjGH`|Kf(^2ANA5quby! zXeEBdM((~yWFPHsH32O3?8DCzc1p+OD?$lPlZGniKz;v8mQSwLqFq>E+$?+%Y9dyP z^uBI;QWjMi+m5b)@6tfZ4J)tGnG`OWozF~mj}+bs zP!Y`&=o*+ur==d#K9M5(h*3e;DzY)!#!OvWE;)qUD)lN9lr+rbXhKOfV+|-Z4y4 zqvW6Ds1gyN%k#8m^jSE`UzL}s_id?^saKntx<8O=z)Lt<`IhotP6vT_FsTL?z$$P> zRDIQ~u2N>yjrmP_AALKediM(%tuvH*a*(-$ zsw*qS(NcHiv*x3w;Bib`@Iix*TuA{+lDbtnAYGI1i>y<)%n&afhi}Y(f-+Vr8W3rBh+io z!=JFe(8<$HSY@de3~x}f!CAmSO$axg5%!1N2!yzxJ3#5XJ~s zH}RsB&F1b)!X=@W)K^)C8}Njk$qnPL3U8%8+`s$?xP;DqZ=hcIN}vJdw*9Sl(}Tb= z=%(|kt?0EW)m@GKApOK{(@T&|IS)-?1f6vrDo$6gX$u$ukHRxy3A>v~a~BBrC1BVF z+rrJHDQdw!XQBi;1;_1{{Ba%9nR$kj@TX6ZgSntrZc%rw1^mD=dQ7I;gG*ME=?o+C*Mb%g3o=@%aQV7N@a zMakmV^#B~j)-%83tIBT$LFl3EWR}oXGtQgS8KE~#G>Po<->Pc6oc)Il)8utlFw9Z>~5 zVC$3y72}wA+*mKh$!IM_qSKz7IQoSFjWQhj*KHk+5@d)IN z=E736pKIYdtUXulZyOO^Tdl6ulU?mF=kx_xvBL$k`h---=&buQzA%O+__xTv!6LCP znfv%SxW#|8oIpWjF|w16ls!FEX=7=v%vT#GM8J690K+}DhtJP$p$6C%1B=?1>_Ly} zh)PXdsoF~YDlWtsqyl)*Zan?IY-l;}FxDX>nDLYxIT|0L@4d+H@ydUU(bA5c>)b%L znGGL^Y8`q_wAFUEeJ2&g@^IyA2tEA@`Clk{3Ndi1cEKxNV#0QIh>!c3d`wp zwFxvyx*@Cp`}{~n-j?x}_PJ}A54zb$GXZG+YdG3#Mzk z!I7$u?bW}oF6pAFS)Ji3<9%frtW7NgL1ePFiYcXeVrblo8j!Jl4uk1nklY2f%Ai{j zKd!-V_BMzR_UYrP!+W~_D0QSZ$@+*S)D0C%!3+H!KAtU-WhD7*Ez0PcjMKr}TY1Y)-W4>{L zuv5+Upka>NyK*LwZhU|~*ZG+XHFQ(kxn_WIDE(X@Sr1lNYf%ov9@)ZH1$4@hT*#;e zKeu3A;34VSh*>M+hgz^ZIl`ll?1+%6FHpz zPZLkD%M=G+Xq(h7OhbJiGmw14+y77wOq$IvOp1mfq)2u8r0ECP>6G#KL(V}v3cKP- zxpsLrZxy>ep2zz9f<6$8Vy!%ppn)+Ss!xZc5InA90wGBlqAO#k1vXJO&)e z-vn1wwlOdHXJ7+PgKc7$(X()0I+^tC#%>=`dCNS`6?qO{q+HW1(#xGE*Hc?@N28YW zW%NARz_E?4ziA;(FpgUQN*F6wO0J?{O2&_1v3dur)aQ}JmziXU+#h?Aww$$k6g#G3 zm@1NYxPi++*5ZPQ0F-EiKl;NlcxJ{1=?(GBOgHa_o4C%Jul^T%SXoeI51B$*flS>9 zi{T1v16%bXaF6cUjbUHnn^V(dC2e2)Dk~NW^zK!a;CZ0EK3A*jehnsQ)rBc!Xr=yo zhze~2lM&EY)^JDko=-cx4|a#-I|BS!O8sO4?XCOs~2$N2cQSz*K(Qe z1Z$WgLo0m8y2rP(hJ*ObX4cBk z06Io((c%nez!KXF*o8kI^GNdqOCr*R~qyXQfC!b}M#xNZ|!v61mfSSx%(`sco83rS*hPSQMW9k+rKIo{_!B89C zCe012LA2&@b|;_6OuFxMVcs-e{(lB8noG$eqfgDmgW-L>i1|TN)LlRwl9d_k?D2wBy=!yC)c66D)%hiBP@}E z+1VBHL4N!}vP>MNPl_2$-|W2zTkOV%br0|uJ`dg@>OU6AjloA#J#7VZjUB0ci|>pI z!E>!Q+RqAE$-qY=SH~0DlVPqfTOlZ`2{OV~b3e7*vgW!Xg{f6wMYnJLBEt~k$)=Y` zmTUZJmkn04C2|1?ohgs(tKnKzG^P-Z1VMFXpb(IwAJ^t{HPD$KM$PteHh8ZO z@k!w+g_}HaTn3vB9hq(PE^DrNK^;l{Q_3k8%AT&neCfFfC+n@0?j)b-q&9)uV{VH_ zO#|fUfN_-I`_L4Sj{%+W&@Rb0GQWUzY6Ms9<7_%Tm#l5pedBaSNcChlTDzjtC=1f;99IVHQl*^K{2ct9iU@oO=%8L5^H`{}*DuQT<5)xTVI4M96TjAr&j2_9wY zv0iW^JbHaLmgU#EsazI{HAZSjzze1;tj1FAi@Z)UQMdYzhpWhIk0;zx#g4MCtkdHq zq)BoD469I{lxI#BY!p|(ei%Z{ejUz`{J{pgw#LFMq-o;}JV0rV`ZF7&JJX-B^HZ61 zr8C{DJ^IqgOmB~ZN+ioz^v>gxa!IcNY&Zo^(RbZ%3G(4)_gA=I$?|IiYTfv(^#PM$ zOH_%~m?XT1ZAtcjP*DeSFs$WF(MCUPiYJ3=4}Jn0TwB+m{^4p-*H%-QVamqbAJ2m3 zTCQ0x>!LN4W^1F~b*i)neGS+FCaK-kPx}0Fo;0uZ5=D}VhI!TQF*B-+GaRX2i~J;s zFzMGM@F=w#XDF)zFMIt*>lG7#1wDnukrgP_ZZUkuA+Wz;D6`OiAoKao4`m3SfNN?U zNrw9f`&U3FIa`6p$Ft5!aSykmhoH;ZJ09(S+JEc=`H*`v*IB8`eO8J{O|lOUqHe$w)U%eZ@1-85 zBls5>4^L~eP;a~gQ_=xsw7PT;+k@L+f3g?WC8Ix0;FIZ$Piy9m6pi|6ca^7>dA7#< za4rq@Ox>(K;EF(j5)yt^4*< z?zn3#6DS#_i}Zqt*WygORI=y^|Aa-)PMt^F8%GZVJotk)=QS^n{|cK z5tiz96~ghzp|*l6FCErv;nxa8Ys>@i5-HU<9{&UVm1OV_V8C%W2>HTV=r{R_laLix z#B)i4zEUj)EA&&qcl~gB2TCHPIFRy5?xVistacZj6pi#gvxjHDbtyhtP$0F3bC`>{4fI<1`-&!MV=Rqc zTT42_KT0_mqWh>hw$;{^X*-`V!Y{1=RYq-vM8hxm0d=)WAPo++tkDMLT!hu`_-WquEDme&kIcs)5%gz@Mb%qHlEo&48N*uK)LtD zP2qVx3r1j9@5$09?9Z)XkI{2q7i#Ki$aKen%x732KShUiFD)O(X-k~VA})$uV0(22 znw)9{Gv!W{-gw#7fB^=#Tv4jVcpKU=Y1(a8LYe9oI&ZZRM8K>1So(IKM+yOld((UO zaD5LX3%{Zsk!I}0l{nn=-87K=CEw&!S|@tU{q!{I>ova;*4*L4RZAUXE8!{`SnG=U zh&nZ+S#Y$e0RADL)NIP`ZY8BI-QL1oz+tr5Ke zwxjI*YP2RW7yLzukR3QD*sK-3jP-2-hjQy&n`)gRVWgsk`jo&B{(!-gKcx8le-Hne zN3h;3-#`r;2jE6^sQygasP?BkwN&r-aW845aSHbUHnCYjM={pmCF~YPyRK6|!wb6O z)p@tuSl(c;w*)gPpYdo%%JNz%OQHqKA`*u0n6A2x$Dc-@m1%ITR@G1}b%VRr!OB^f zV(6r9L$yEgCX7~r7G9iX#sB|vZ=}-Gh&R1tR~y3QpUPe?vGg^z@X=ouSnF_!rYzSB zhmM2gDa`MB-Q=sj!+Di}V`klr|ChYc~p0%})#~$ZT#Ct=NuWR)CGlAN)q& z4LwLQm#ziUQ~e#-zV%(agwk%NV#V)fK*WzH@MNttaS!N5JyIXJ+qs`~gWMMfxI!HR z)iC|3VUF~PYs?NldVpO41C;{w1eI==t<^xFg+ zW=h5WV85}vFbglxx_GqbF5+P&$EfKw411Z!t9K1%h>)hAGj#*?j16=zIG?NfINQIf zJyPojHA4!(;$i(dwHB0sJ>UVQY-+eR3|X23E|4rRiY!Izs7|0Fm=527>PPEhZ!`vA zAZwoLBYhbo<6G3!vcK^X(Yy~_u*o#30tN;R^#;X zdIivijl_=0RX=2DoR^z&zexWwOMIJ^2{?(eTy3!qha|M zGc3u@Mat8XM9&Ivpq9a|i}#}@kmJ;wJf1yE#^IySH==B%ADzXaRBPyh)Cx|Hao_Mt zGO_5jUjZmA*sF!$_l>&3`_d@V05_)nmN})dj%s`+Y{L!_7f`O%3;hjw$o%V`XIvmp z2I2a1P}%Nr-%=C{9;$g*^DrY059Sox88j1U$PR&ex}@^$gkMqBe~( zSr6)a^$a|la#Z(|+4v)+NREKlnJJR*>}zl}7)ecgqEG|XAx27R+71H@0QSJkw08Pb z_6juW_sH;|253ve8)Y>4M!j4RIB1{ar=E*-;)ECQDRdE@oxdE8rtDJy>i|zMM|+Pd zS)Q1>f?ep6^c#(A=>C!84#Q1w6@9t3lZ}w~%QO)OlE{D6T2Yq5d}^c2)N6#N=r3H8 z%lg6d-`3jOo3(;jSTxPl?MyKlO8&!Uf1=QP~r*p*GyMOA4?qQX|VQgWt>oe4cVohDity(zf&4 zz`oQ}M{O-hb8%y;)-=D3eW~p)hz&^A>EBQ?00-l%(knc}^qz9g^OVP;5swYt>^s8M zMctx=%01zV?m^lDFbO26b>(_6L2rWBlUcf_-jlQhGhuz2dvt#|AaxVlI5TOLWeO=$ z+SWF^R&zX2S#%FLGX^WT8$^064kv@i2p59QW&Q$b3A1@z(+hB+>#pf^UCiVE6 zS8v)YF7avpO|=?-*pQ&j0k@fE1&7d3$@=E8e1pBNJ~iaM@8Y_xl_=}f1SrUfB}Z64 z@Xovt)etg*@=>^9n`Jxy?ooUN#&a)O$EFF*sW~Ci@Ll|e$3A;yfebGA2i8<1ydJI< z>c)jDr`>T%1Lg)AAR5JXHPY$y_iJiGc>)#+9kq%09Q+67#x0|#<8R!2-2;t@e&&Ci zSz>L38(LPrgaTj)dKQ~Zy#SENR}Hy6nu%Dg;f3nOLDMhNmptu+;^ zwg?e@Ka&ijX1_=0NfS!OPbA6YoHkF5ff`J}&0%Bc%K=6#Kn|-P`9y8`2e+Gos{}md%`pPIN=%0GxcYK#eJp@&Kj7BeHir9&tCkT zbO*Qb_A^IuYn(zoOds_)aGjx*9*o7FsJ*tp-Lq~)>Q(PaOk32;^@RSWD|)H+K>6-G zE}u4?R$3^9a(BF$RMdxL1{ohRL-2C`b$K-42{lsuEQllIhaU7s?8@6-Myuxyo+ zj6KPG+Kt<(Kc}XjGW~(tOIxp2(iR%7@`;y+OULnQLvwhQdc#)ZI9#15)a0~;k|+nD zSbYv+DXIIQ_7ybg7Z_6qch(-lourd0NN3bk?8AhSBa{%Z8a=6#TKXB!q1^&X)zf+s z1AeB=p{H;+HU3?~6+27#C%+sJ5{v1cPAly$p5DR$`Y9KAYmqoucfnrezjKsXUmD3& zF=um2Ub6Phl#rFhH3uxHYa1=j6g-s6`M#yWaG>vgHdDJ{Do>-nM?-hm2{Tj#OwHPeyqAm>JE&|T&5*XXk%fJd)#G2TXU!K2RY+7O-j0U=6Lq6k=|L;Y@Wkr+mO6L~tA>Nug)$M5- z|2sf>%zoexd5pKjlzA5Z6oxC|<|e?ROSF5l6VzFnuX}RWP+!mw-l3h`?&LadKs@0d z@K#%<&rtVJ(tRk)Gky6V)OL55x`>7tJ0DKfw}H0c7csM~up3S>bW{95CD{FAfwo3i z;=YE%n5M2Z%v~mt`#?VHyNpYeDcbS(CHh#erzO`(e=B~~299MmbI&a_EdoMbKa(H0 zSmw52B|D?IpUtWq5|@De%!aUeS65=iBO31p)k!1jHQQJQXb0Tc zIT*vXol%Q+-Taww_!>Cmiuzs>K~l(hS|_SY*Kb3-0TDQYdg%U!8@XV08!o5LP||T{ z>cOmo0;$uy-XNt6CAR5*(y#U$TXM9>;$h2o#w)>myLV4B(4*X1VnXF`gYtKksrlt7;8(lUs zykpjm@7)|rwBF(uv`M=lO%>8S0`ace>D2W-4Nk8&oLNra5oyv?<1Drf0ca(qtY=%x zsf)mQHU@Q*j-pCv25IKCf?xDoiUHwbqc; z_I02Y$;Um&8+uzw)<2SD7>mvHuJDqjJi00O^#$x~GT*$#)D$$)#%e3%Hd0SAKtEpA zoLlB-Xql%>)!Vw95j~^ZiY%H`u_a;6W62u4f+@oNO`B8=9)*47?qcoI&4$ll_^Yd? zlgeVTKl@T^UTt8t$qLt#gcrmFT9u zmAY+Lkxi6fKhtOd4^8%v=?P(8L7vs@O?Y3#;R%djpAKhpo-ZUB+3xOKTZ+3j^Q( zjm@r>@}B%&XqllQoete7Cz*!}^VmL!<<`CEpl$hGh9b*{1uW(A^mdUQQ3On-Rry7l zCu1iskQ=@r&pm8_quh;OWyC;%$U*-dO$excV z@jl9Sf#aC1WJ^SKvxlF8CFAG3|C8jNnksRF*eGo&!HT|+?*rB{ z&6vW%1X|7WW)Bu`K{fcX?j%=8wJl!{S7_#cNU7>7D%%Xdg0}2D$`r0FcA;ko4?I`U z%ARWP!DB)4TAAhZZdzy|c&e;?c@JImidC{>ra2G0znjjxsaFWMw>_fHhDO3!<3n^G zHgL@&KiT=@p4LFGa6BEH6k9s;VZ7_0CeT#aCjE5j7=1p;Hb6_cw+@)1U;lZ-@zV7< zc#@$j;|j{Lr~Zj>te_@T`O|y#6}J~MBuNZr87ASEFB@5YmE~}DbAEI=yL?>!URISR zlFx#*<_rdyKkAH672ZET&b&3YU#ahxrf$jmhx=`QM73z<4BBNr`Q~(eC<)=`(EE3%A}^8^ z<%l$z zIQlW(e3kM%7+y0~wNoEL$JE7EUY}_GMOliQnVuv~Z*QKX*0)|J$I6F;tGRy62q-S3?;X$&dQ5^<12KR&~@oA{AJ*lN6LidH8wKc$M z_^tYvZB$0mD(+~0{D|MiNu~wH9bf^yOLs-t)MMhpl?|_OQ}LsDty4fvaGwgH=s<8+ zd0M@(Vi0tZ^ZG*dv)94WONLzqZz<(Lv)(iz*LiI&7^?082rZ) zuLh!F=on6CE7?y`hQ_S3Uubo>vbsSYZ}{nc?lKFjwdv|fsWyCS?_Ly!Tj_0#Hzl1L zR~T>lV>R0XpCa`(PBFC68b~QzsI6Z4-IZfwas)s{BP0^zTsAK4jjnW2oE!Q z0_n*X4x!=ZOr@srF*M1Nc+P7H+g!ZK>_%&q)2@Hvx>v4ON%|#yxvjqdz)9y+t5kB2 zPvKrk{qa1n9fpD0Fr|gQTJf{>Gz4j1#fa-&@k0+zoWS-4J;dJb-deCWkMyP;f2(n` z`UG!=zx53FZ^H)^%IAwoJ#*=Kap|*^CJ=N{ADZ+ETJ@s6FH1|hin3LiJGTG>&4(Wti(@~Aj z4ken+l+F~+v3eU9YYr{S)Iw@UD=aa!?vsk5)9xvknPw`*)+BGm`CY%9K9qO=axi1q zs?2p}4DB<2UG`S-XIhZT>|Av_=ODY_7H31|FSwbxNb_MK>>k-Ey)N0DYO_}mGxLo0 z$!rXHi5h#j3cg#8=x5`G@g1ut$F@p|YXXipb_u*rQrzdsP+KbMZ@i>LX^#yobDZXvdr7+) z>rob-z(3iKasU{@MYD^{OC8TpuHcGJT7pp3VaN6VH})=db;134zg3rR*4VwP;rH99z2XB zk#wn&@Xnb;4cWuh&#cj9GUaPsq3*c)ydO5#E~7NWOj6UF3#rW-tN@qIEH9{i8BZ|_ zD_SYcVDvCpN>aDa9NoR@#1eg@y?1*xAYbC4*(%6O1y-={iI zv{rycC6ngRYZ&g}8DxXD5dEa`oe^N#J5 zI{WHQXPBc48tYEV`&>L#*k((ioUM8uv)QA#6P#0HfV*AX3bj=FLk%(SU`q~NpCLic3myq2f5 zlt1#6jK?|QH9hFBM=EWcSnuYyClTyXwYv7mRHBbWyzvEGT41pZQ1%EZFEcsc47chk zI?Dfc@8?#<=83=1=h6#tC5A2dusyu6tF)P(+s8ZZX>&Z*!PbGJsP*e8>59jHjgPrc z?^^w(TjCB)^S$B>q5PNzj174RSkKijnarBTmPdWHG(29t0va+)2MuKp<0trud9a7z zj24r$`r2o16sYWO2~Vish+^9A`ppd1hDz&cRpE(zuVoAMlbURtq-MqV!=#GuxEJ~+ z_G85^Tm>~vJfZyZ2s12Z^4W%LhUajEQI_$G#{}A=tIE|r9frcB+Nd-8i`=pN&AwL= zx7>Baa+sd}W*P4C`*o{fXweIw6UrU04e;vI`?*npiQ-mvw-oJ+BMFxK?hk~G-cDJq z@1=RUACR~4pq>=n4F5*qmZ{oxO^^oLr{QA#?~n1O#Wk}j!AUMlu+BEt4H#pLu6L4V zdL@v+zbB8#YS#e6NNtMw9PL!?7aL`_i8`hC589S`k@*JF70KCPSID(X-! zS$^O-m_5y75k1G`4@od~VjtqEhH-pP7#}d+dPBQzDE@ez%ggb!Ut(`DG30DU2R_Yr zZ$WkO^&h9x54tnS#Y&v)Glbdt!>zS&N)cLDPxab zPn-q>(_*}qsR6^_K3vbdmt2#k8|ItMxLxT!n9dy586^rBxf&d9Mkg!O28Jv0LN4d0 zhiSEcEWdzF*2l_SxV6eKFd(QS-=W>7jVs z=b|aNQK~r4rwwp2MsrtAbp_gPzhB}`L@%I^!OvP5bo@R;4F>;euS^r!k4m<&nf6RW zxD}hmUFX_JWZ@-&(^lxe6+1!31a6Cag4l*S7+gllbGFb-v9SL>$&n5Pz7bX7oTg7T!jqU9I%?h~qD*2QhHZ6@ArY`M0qpbjfc`)oW}NYX4bH zrUqBEkrD};)#~h=FDFW$(i&Z3T2B;^Xb4}t#brfuxOYrT-v)HTO zTfm8>WzK7g(OFnB9WNvcoO8KDc&KR|b$a{o3GTXV7?Z9%>~+OxbdQwUFl%EwKUsu} z2r6OCA=k+-jJF{7Ff*N=z_lnsp8)XU{*Mpu< zHUvj%+DMWTnoZ*D)$sK18_8J5RqYe^QMiu(vRk?DIPAk{n}Sb(w_mDhEl>h92sLfX zGL~>@$}ZD;XFWDJWS{w!;j+1z_j5Vq$1*Zqze@f#4c9J|b}n_)zpk_q^Vys7F)$jG zu#+*PZv+WUA13qp0r{HYf~BXFq*o=!(z@s6X;szX$`5`wH?lOEIjYV7x=h&e?wPer zxR&9;E8_jqPS)4-%{Br@y8QXesI@v4U9~O<`Y!MPPJ(7RE83?Tn_E+;b^Gb(gY-tb zLtlg%NRRP?fTO|^u@7t?{8_mI_7d;1la{RK-{j5TPr?98+u#%G5%s*f#V3T@;aFkS z&_>rRHpF$$qpqP*(2bJDm4=27Y`lP4E9Zf+_)lCl<^!(AedF5GpLybZXRir53H|A$ z&rOe6{1)6*&XjjMYPeUXhA{EAac~vClHKoUWocB{jJe}I9!9!$e{@Q1ovnl~QZsf$ z)IqD!x6qR8)f0popMoIAIiA+DhH_d(nttpKsO6LOQB889yxDl3uRt0~n_+EpBmL*S zbehDd7q^-P%1zfyL!dfbJ4L5Bdb^#LTIxo=qQS^T5Rp2TTWa?4FQnPhd2J<4lXNP} zp^mKi^uAt1bF=gD%(r>ec03t*(*(~sW3`w6Nad&xw^z)gr-{MayU&Sjxg*CJ?=julydZ5rMYNZs*bn?=)rTC!v zpi%(&ydyYS9Hd^xr{703evj)L9q^sl9KSKlwWV?bs^J-j>N?(WldS*pecT;r8njJ= zAkdzPbC1+>IF`Ow$gC7xbH)O^@anT9tnQ`d{$YW~xg}4ymoD)w9sOTrVdi zi)%{%sQ=PrdAUxu*XXb)?h zE12En=xd7k`pMMHvbHowYRY(fjaK~^je(Kwp}IpVBTn_LvY0Z|PXa&w98+Rwp~oBk zN6}eFRki$Wd}hb#bLd7uR6s%OZp@2{?axl^?(Vqiwe{M4?Ybt$wG$N;u>b+-&Qm*Q z=AHLXU9KgZv-iw5p6Byir|RcOL$sP@cwO?G&nQU?Nc7t+%mhiIMR(2_h>p;dxJc9& zbPGKEG2hCeIBhaBMet^`!uHnGE$dS4;riLXu|A3Sw&*L~GdkCCzM})%6twclu{ZQ@ zSnCjq`#Mj2UB|bYD!+>l>gWEtZYPyLa|&(!tU5zt=`(aORR*hc$Et#=)*9kH7Z;z$ zCmQq|;~fXK zY{TmGK`i#2zwH^AP~F?{7qKO9nPj2N$vv)`B6>MgiB8y3e`x7W0@ zALkf(PFV){%i+V7RfN4>?Gl4KrMxIvf;A*j4$8~t$NDB&*7^4IZOM)|EDL@cG8+-c zvmA_o%<4HQwad>Azj%wWJ{0QR)@@Hq>Wh^-%SSx`qFsL|4+3 zZ}0l{Jdc;!9*zz*l|aPU);8rx-MFv`MSr<$w!d)M3b)ETD>v!v%r=;+yHOJde!zI! zWS2PU6|>S~uXc>%gIi2FR_6Ae0A~P?GJE9^hS~-l{z43%%J0CkVOx9yI%Jy|bH# zOL33#VxQvzQ}9A=#!YrM1&b;~+Zb&M9~j#hc(7abGw?>uR{4l-jZUmFX@)sKg$UPB z)#7Jmj823Vfa_Se;s!bs1pJhDwA z;i{^hkUHkgy^I?ff%@LpqB3di}F zovSm;U7r~aXiHgF+Xm0eWM|F+cAvAI$z*G!3$HAFIib|RxAUB9OgDDWTVPUdV>|Zm z&2KBxiE_jtUTrjqyJ$P__L2SKjFJA;CiAOdk$FPRS$ltVy>yw`%!-v~JmRamDeY`a zi<{S6taHn8L23tGOr314ex~KQS9i2+%{^Q;*z1}8$FEu>*<}C}f??pB(cdvmeX;o1;$LPio%(W&qh55{9eNOPLX7NYMM+Qm3eA5|(E$G9A* zTEK*+RSxwzTFG#AM~|DG;= zK=nz-_?7ydE+Lh()xlo-%I9ldIb)sMO^v(FEfVhp zE(r9sjd2?zwN`rA?XGUzSf(u=SvBp!0Odt>TjqxMC$EW`sG+|4fS00}V8$`I8{j$ZJY0Hh}lK z6wleDJoApt-MErVsa{OG**DcU>y70q!q?Joennn=Lq1nm->fFq{Vo{j)?9LRo5Su$ zSlg7U<|nExoz>RunbA~LsHaJ#vTU|@E1Om^+c86aZ#c>Jl@H``Up9yCbD6BaRXfo( z%`d2`9U14mWk?~X!Pu5bI-~A8n*_FU(H>Wr`c<`c3&pWq-{NLv{cE49m|dDyG}rs4 zH9%Zzm|%OTZ>*Z|SvbIR>-rSk*- zywXqXRny72RrF$8GOg78Rnsot0wwaYI6KLgS%Y8uj}sp-Tv^57W!5QxxX}p zsvEy2x1h<{I$>;-zJKzR~riw1t(}KlnTU$u`Ro z9UN91E3c7CIkt?p*7Z7d51s?d_ zvY*o2w~yDJHvcr}aJ$0AWf$`{;b3Jci8eK|{x+?)w$jbRH`|5MhUhBzqC2X6$&{L3 zmk8!D!eZ}6>@SyU;?HwQ?W8yI4C@-t31WWP2(&FYNfQcdw88FktBTQ?vdi*+dIx+> z)>dAJdH8j)8P$H<*}HMTY&Wys;augvP{U#?ux?_zM66SXP`yKhW2PChnN{uTWR-hc ze`FuValB40u_b#yEDAQH3%Yu1nFhvG@Uv#7_o@7Q%6DNN$##$Ny(OP;X^FbBqpJH` z9%)m#p+-!zTdzP>*j*JY|HCy?_FG1&2K9z}gI@abBIA4Fkdms;)^>;I`MOpiXE?sd z#aE90nUfiVAHhaN7hPiImYGYGbIxu0W4cqNA&)NT`=R;#y_yFCQCl15@e3S{tuYo# zAz_`?jg;Xr#C8*B)SY>+>>eEYA9mGiaX!gPL1aR0(`d7xKr`C`U9|EI12d&n5i z4H4|Rgz9f%K|vAU!Lg8Erq4R_PWORqQs+zl5+^y~&Z@6qOT?*#Cs!zq8OpeK z2Y=WxSg*Tc@2lA5frePyKKU&`l~qmJ&(bL8-HJipPl(RkzkDq-Kli+OYCs)f96$73W54~?W2KqZ;|qJ~ z|8#wAL)u-=oZ>_Ia4vDWoT8rc$A&%)qeF}-t(V)P*4oHSmq~Kx&6vBt1%)~@ratQ zJEsdNU*qJlvrf@r4YkY_?USP18@_=PwtB@ zMDj4rueI8;#!+q){HHkIn!frrm0zjvwR-C;mwBdWLvs1>=W8;ll399#5?eeyW})s`sa|_m2%)*V&)v7u{%;v_ zuV{jwqW9u=v_!<({vl0%N4vZzK2VkT$>_+Wx)s%@3%901Tj!Lvzj&vn#&00&Yjcw> zyL4?(t938*QSK&rkb)XJcx*(ju_V9hjQ*kFCFx||Ehkx`HGf(11I7zyYIZm{l9ZcL zH>v1|Dc2lZ)UE2h?~TfSp7$IboHw}b%ERhxzfoP<`Y?1m-(Pv9-Rw0$33Ao)Zy*w< z8n$|ba(37o-!Rq{>5i9muNYi-D0L*02Pag*PuI;lDZ#wG`hd^iItz-K!28ltu$OI3 zCc3OHN-~c0?dT9aCrS&8*TV+lbZxH`W10;;b7-|ut~X3?$*h_?mQP-Wnm*1-p@Ltj zzWEKa7aCS@!Tk3VN4DHP_Wx+I{v!odbr|Y~Y3mHO@@VS?l`7*}rD0WrF^i^&gwT zDN?`FE&QL_+Ize?s?sHVaD|sicI{Idulc1p^v0d0UA!VcTq5fi`n;&j)*$meb%|RE zxkFhNmnsJ)rO3;)`_Mt@iTz=I`=U(zI~WqOsSj+ zSBimfltU{t_tyyybeIS1Yov=r?_W&r|>Jh z*8KN~4WTNnffYJDx_X}aKPE*pId6gXjdpmeU!}TRvN(Ee8W<0$0p% zPUBMCQGZNZiNe_JhV71tj>Vo!pTAQ@Tr3$>9XeK%fKA>jC74>`um%2$_UPKkckHs| zXHCoGn@S%oDGPUbWZ11O)n>TOD6Ta5XC*bf>}hw_agAZ`R!?HvN?S^bxQ_LH*6bj~ z#T$sMYao03xZ?4S2!4vGz5PkG>^8L`w^(!(`<=)%mHhB+sQ(Oldfp8AR(!x<2_A0A zb_Da!Ld44RwR203aT9f(Tq{lA(w9<?cQYXPfLyuik9V)^~G-0qwS}$ zSG^$N#8?09_Icey+%-L%Zl9~z8erY)n(lJW`8t2I+iBB4Uw_{6 z^=6Ts4wl|gT7SH^Xn5egzx=9w9lOL?AbNP;$-kNEDs(FeQjW8YO%**EL%~rEZfN)>* zM`~%ZPojTwZWg;5ZPp&DnEjTw?RIpi^+-5d{Xo~&)&pMCZ3O@C%XtmW7S&l%3B3I* z0%h>zI6ikxwtaI9G3~_ubstI#3|FYbZyauHTSlGgm#LQXp=(!ljJ@1E5~Tj?Z_nls z7hxX5wW2PH)%-o@D0wUYqvirgEi{`KG4-6$Zljf4*L8TOHpq58Yo9LO6GLC6JpY&C z<+=0OUO5Z(ukjGas`14GtgT^C?Z?dN&>8M8wH^7T`~$MD%pq;cY^bl>w2f?bU*Pjk z!ERe-$xb_^Bbj31VE5L>#P7X-j^GZl5dy$q^f>hB&TyfxA;FZY4cv|=!JN};9k48=jtFo!%Mq=z>(^`(4{8E z^>Lk&!d?1x0Sk>+()#G$5JVC`{>o0`|6=ce>A`md&aJF!GUuKCL0IH+MO?s@2duEX zl#jc$SJK^fN{0$p2IT*|k9)WeN`B+4noy`fb@#=WF(|_ zv$l4bMXw(iz2X}-sMS0O(G zhB-o+?T)s>7u!YqEXQOqEXc0gr=RT_qa47axU*^y2v)bKrOM2jx`GEy${H-Zly*v~ z@-Xm`>!FL%AK>qa^MwQBAc*j4&4S9^#0yp3&?^2-~P0)U$ zY*EhRcdEC02-&Y);w%{TaV>v9St1|T$an=p=s)fbBvZH3E@aOZb5*>5DStNE=xV@ek$$-}{1O%FCq zU8eL>vPmp|N!TMS4BF!Ct?I-{NEHS2&yVQ$UWCr zN^5mvr2xwA*+K@ve5!XI8&xI^5xNRM$`D*sGix?eO1k!u_}%%R&{*6l*I1^5I)?eW z&Guf-X9CA&(nPA0Kw|gnbNSl*JI4U$2K!*4sj~qZ>u%LFGQYGPqB4Po4j+xL8ixmJ zLtU>JW9=&)rOqhLAHrj~hiifMFqfx)X8-NXbL8*^_EFAjI8)hfy6Bo}`_F#Q{+SJP z`U_u}=N^B%G&C35R@o0JErea#bH=B}&+Jnz(0#Qt!a8RkIZ8Ik{Z&tzGH=$La5NN> z4e`$5@(!awT|fo;Yx=GBX_Cfy$uUh{4EEuO2q(Y9>~v)4zBnHXfd+v*QAct^wH@^R zs4wlBw4TzH{iP7nhV7!8%x9o|4n~`i6w_O+}p9eW=I{GE& zz(}~*t3Q9&W_8q|Uj0+rQ27*jZ1&}~`W^NY!g@g!x-u7;wd_{IQ)UPs>iXRI*zv(O zLM^lXEp%76`keCkY}45v+b28!(=#&G&Xdl`Kx9Wp^$Ak6ZcE1y;N@fKqPb9>rB zZI#YSUih2tDW-WJ?02q%?F)OtcHg$x@lD>%ryCWMhq;;EXfMSAzoSSdB>DyQ-u|dZFZaJ zV;B!Bx$U*vyNq&agJ2xLj9kV0z-rRY>z=ex43&N;N0cm>$HsEU z`Bu_v`Mww~S`|ug!5yWMJXV>Y^iUq+ z5$quiaXd7KAP>!JvRK_j{s$%lcQ{+y0zWfGs2$KP{2IN)F=Pi$q5Oy#-a~G$97Ip_ z4=9hYGk9hi>JqHT(nzYaF;ItKcThl`#qQ{U=%qaHcS=?2GjgA^@D{nL^sjh893ZC# zxS|BjVtyhQ>saMpE%kMd5!@*8WE|!F3Cvi>W8t_sPTHlENG{53bQ29^yQ4}j4dp1a z*l~2q)tS`BkChfQTj@XGX+DiI+N{FY;@$g#I7iAi|O6OcdI%dh|}sg{!z4t}U}r z$`TXB3ZFf4lG+LPVPhE|=B<5*^NZu7BVF{vGc>z35jun6gELrNWa=c}GWS)A)B{X1 zoIpE`0U9FC6AR@35j|MMrZPvkF!70eTJBCV&~rm$e2@gQ1a1~KI@bu{vahZ^`v9u! zG`5(k#d!IFI6(B2pD709Py95*Z-c-~cBz(hSuQ3k&>jCoeuH+HI@f`3gM0iPQBXMcQ*bgPf&OihW;ft(Kuz97|hIdd!SHtHsu=?!oB#O@<#fB zYRJF1zo{YW2~x>ANF_&VD7>O(DT9?V=^C12nZ_l+=bAjZ1$}}>fNgvQS3-`+wMmWC z3Y9Cn+{TgPYM64CI|-J8KczoZpczkc<-XiZO1ikKDJBo3NWD%sP5doaQHo9|IL%Lh zFNA+Z6~%F@b%S((GIzsK2QULzDL3L1bplgz0y#^GBWFN&{*Lpb5KjpapQ#JCH&v09 zS%R>YLUR|WYtdchFbXD~n&ZZ8s0Zjlo=Zu}Ft^QW9JoUibV)rUy2!E0T4kkLLs=ME znl<`0&fk(%rrHy_d!0;V0GV3)B(;NR7Gi{p;tuJQBI8VLV3^rqbtE_f9Puzk><)|F zfF(h1k_T%4#iF=LIso_T^Eo4tmFL<8I8XXW_5(rNO$kTckb`Vtw=y1#n{Y_NG#&X0 zcqPr?7n#PP7Pydd?OLJ^#E(1x6G1PvwXj(jL33tq@uA=-w?e;9vspT4DHa=xT4OzB znf#8K!S<$}f#=}gmx)wQJ@)BO@&`Ps4khQ+bA~kV6t>fqkX1PK=Q{ihZ-Co7-Xv|* zMDtyt2yH~c(p@$lRFN3WL-IeG9}6y#ro<#nRz{Jb%s#M;o%U9;1Lc@l8`P3=*thOI z)lIrPs2xbf>7WigM5^E;<-RWQb$#`)J%D}ph!w9IhcNelQm4BRQ__$1<&Ee-#Z1zP z4W<3J>Y7CTOD&nbhEa?s&67{0ijuWd7f1ct;NXs2*ar-k=aaFRC69ui-^yZNxS7=1 z*_*%}se{nGCPZ_`KA1fqO|zB|PpT=jDH3S+_B-hUham$Pi`S3b0r!(;+B+aIdO`Yl zc;B)f(9*{>9Smkdh(nz#Me~P13zbbjj*~rG;Q5_m@d-A@cc~V#9Sk#xtI9J&ptGi( zx+Lm=`r+{|?z?rX6w9n62VAg9$*6!~MvzdHxR@FsQ8}&GY|!rLsB?vV`4zy=_zdTe zZrF%_f*)iMGZW-fkNPF{7ralN{6|Hv2*aPylh-}t>av}2Hs>)wRpz%D&i2s95 zwM3KWSc7VHgW4Nt3}u)`_|7#0Jl*k0UPn5F4gzNK8o#Da@I%}{r3rpd`BRA~KxNdE z07M1=_hvSJxXoYRx+2e~S=uFjnl8;|r_QrwV3*n`QNS&k@qk=o)Cj!wRp&| zK)zA#g{Aa)cQO$h*6I2>G7i^&;WiyQ~Nsi&_eImp~!HvFOlCjY8~HERLo>Z;*b3R*#q>VFeTO1;Dh6F^UE9Mrpa zB6%`Ya+&UUEI0u7Go7d}E{z0EVGwnjIr|0mL;qECkGg<1+M8^hj??*m__^Aw=w@}C z_Ec~y__FOa&1=emo=~ekXw%8PFRk5l3aY4eM*+YhA+L-DLC``MVBeGMEc4 zSJemP1z1lCG+9z2OK>($U`NcjjpxG|axECmR75T#Ef`l`!7s=#N(#KmH)kiozRD$# z*Lj0F1r|{XR3`O1`ny2fx~LhUP6TrM*)=H*WLeu5)ks?zPx^hoBbULrm~*5lj0Dk+ z9!ztoFW9M?AVObBvtml4DvhlZ2>&w0v75Ow%2|Zba^8c|qm!zwfD%>sI6NI6As0zx z%4wisQrLW61a@T&zYy1>#K=i<6>Jvb32v)w**>PDK4abZ(aJ(?e|)90j(ReWwVyy1pn96oV5sAg@`SZYYZNyyfibh&@gZq9 zSVm?kD~Arjh16-At%l3ra7VArFe0j6-B|9Cmq1)yUbER+_R~SlK6Z*FfO)2W!hDk- zkVzjyYPq}LP)n%(Yl^NWsF!^OIL9@Tv%oBm-P)EQ=SKr&g|d(dX|-K=!-uPK)e7p7 zeuqyYz1k2e@Cv0VJ_M<#4LbYyi%hw4%n~UFz3bH*t^t=R!{#;*OSHBWcfnLJbOdg04I8R4qc&fUGV9bQ z&=c+f1pP&t;;Z;3WxYNHz`u>f5Onf4#Ov49S?yS!^Yxm>O0sN{%_P4N{!2cACMj7p#^$H9mIu` zNR3U&fG0^F+oH#5FtBqRX^I|7x7oMabX^X&-*6o5=I4_Slp}*+qsep0B>0PXlio}# z$l}A&9eiC{kE3CutVbl5)Mm0io&YDP|6>+&0v}di!dF}lW&0la(4Nx2HsV^$Hxj|@ zrIlP$+yVHKCoem|8_alak+CXZ7-^Cb?kr)74UK=cVccpKGnEym$vE7eWnnLH1*~8+ z^!^`;rw|SzwJj_I{=jebC0xafmb<~hl*{~HF4P8rCfpHch%SIuFxl~>Aw1}6yqeCSz6h+N0@-Ct4E~Wm*ya)ouZOovr%((x%*K2bgL09mABPg>amFV zJ76XF>U{$I5gRW&%O9;ND(TBT7U#$rXus08yeTEBwI{Q+H-|M>et<#9L>-u~@od$L zNe5lI9jHn>q2*LSc_eNYd=Q@)H;3W5P5R?XVEMGd1bD0S5}1S0l zOKBb0DL;^1=i-qZs=4X9(viwtv9sa~=R!D%$v{T(FT+4Jqps{G2dn>dJBs(Saa7k< zTUU&B+0vCidw*g4(*h|kS)?iLiEx_cZ{Q$*8C${wwq*%5u!Y*a@R&RnP6yw~SY~#` zcj~`_UKuLu9LTnz4(^70!s|lS^W9i+1sh`f12XuCGMr1(Orp+)Yp^Hb)ED3Y`4n{% zRpaxNnq*?8(|5iZ*h2gQL)o>=Lh^%T&f?Tsun}Hi>JD;YPgMhTxqsm>PsyvhJ&aL2 zZC+Ca8gi)q2|W42niA3vKW&~3cClC98t`FZm9#+YWh}#Wm^x~tDVydljUsi~W3VHo zLB-J7PLJ=0@I}&_?FALpfj52{#-{RSl7Ob7>CKpG-v`m=e+v z?gx`NSMZwol>*#P^Dp?0M^gsnZo&+iLfzI~I3NB!F)|x)w%izOQ$3YK z@Fbl0`$NDTAgg!GEmTN4(7S)9qmg2Kar8D&QV?gmYhMj>k#;7U7W6idzE%)w%FK7i8_C+TD68Z>pT!-*xLd z>Pv;}yPM~54xbL@lc8`eaiH;}H)u%7m@CM9lE~~sSK-|4W}33r1}_1%@OZ8ne#VBg zDWpEswauh7o=ot#?a~U~`4ldu9)mgjM!8Q3V5*!)!mL0eETL7!UfZp@8>ugFIKNbN z$9`lu*NIa;0Gfx`_{EAq` zd!QiiDN4`{&7END0&WkV12)5~fR#0Eh zs^De4FlGV_B_1Gzq^Yyu0Lllxrsk9SOeF}W+G`*9v}aQs1k>CX5Ia2CZ=fcJa`^f< zAK*7xozNlGow226kO5d{oM*bBd4cQK`!{tmqsNolCBN^ni zMqzrACpR)+H4X;rX_xtuWY7xo7QJVC;@kKTmMCEe;Fz%bC^7URSBCA(1S(~DhpWLs zG#a&3?aXl2jdpftnB}Y!b*FFZ0hBL`?~0jdueAmbW+%+x2Z@cyc|3{IsJn-6lOKcq zRm{oY+FWzE2{niN)HwAJY6fDsv=625qZ-$4Ej|jf5alA!UZ@Z7g3+3d z>}h2tE;6{{+s%0+Vi!|3G4g`>7@K44%e4xIF z2ZL}plTLC?JcO;eBy`T%UkSv?G#O|ec2F&E^G7q4FtQRnpwC(_c!QqhZNVREW5$S= z;?7GF$!c16epd+C@Dhm*8UhZlA?3pbyRf zt-&;I1Brnb=?M`7f8j8gPI|!|;0|-0K22clLLy16xIivmeM`4&2B{JIf=QS6TceDZ z8Krm1LTQl(MB zbAGNA4{+m{3HnYZDOcj z>mcQCT^QDuyPIcIb*)>?G-VPr*KfgLWM{)bJ8+yPi;RY)%0&1K(1|`69UX(x!jnKl za0+#!{cMWz3Tt@TQL0@>Zjv7AXdud|sdt%$p?mRF;$5^?vjeS%7zl7Gefz?|6}*V{ zQJuLV(h^`HR`8G}`^*A8z)s5jD4|5(~t>ne@ezXipRd7lLv0WWww+{0C7%TQ-~2gBRq@J!g|DIy(rZ^=W5h!OKWK z_=uv(1bVBsBCpXEJQ&AdR&` z5JOa63ks>q;emPu{8O1AdC9-Xd$uXurMgp!=o=CMZo~7S9qo(nsBUSU$pN(mM)EY- zRg+Ez(wpHm^C@~AUavh%UJ>eGQ75wD;0ez&v7|K~0T`|`;li)eirI_(&c=d12+2RW z;hK|5E@f+m!K=-_v8`!x+S7)?^xRscz5_RynQ$LB4$!JVHINzXDSVEZ$1cDlni?p* z^cbD}CPNR{2<4M@WGZl{=?~SI63zLSZ2zPYiZ^?jc6Rf*&CC><12cmTENyYN-h3+tERhtAU9VYB>mwytAfZ#`l%k3 zztW1aP@YH0UBmEN(30!GU14-heA!-<=kyT#p!qv3;axI@T?R`bAlcGJ^80&#*^ayv zo=Fn-vXH$=X+e2PUv!f`e<{is(g9sZ6Vs-ES1=T9D{!Ir*)WiS-+^*e1d4E9)L8MA zT+lq|saZshG1pif+!$dBOJ;xSFOqBQ6S$fT(rrcEVJ(_vZIjW=*MV^X#$|B;(= ziPA*9Ox`u##<4gQe`GK+;CfQ)NPDfpun?>xDg1MCk@-nUiDxzM^eo^-0*snAOkZav zvsRtQUUk=LR)1*B@6n#BT#GB1Yak);7-bMP2Q?^*Dv}0KE^IYrp@)M8;DGw=O*)*2 z50D+SR&5DVXeAJZ=fS_hBT}M<@soAkY0km0Se9}@Q^{yJ46LJxEsJmnkr1Gq+1r36 zJHDa@U9{`z9=0(&L~}B_Q3~!4ey`k6@1vYoB1uMYrQjZ>FgMiEP$FNMw(57f!K52$ zzAGg!j^YQYGwGz~H_?Ls;eNP`gi=0a+NKHWB+5vShN&nUv}Ue5wMh~Gc&7bK>wxLb)#x8$rwN5kG?r|m zs-1i~8Cwl9Db-{)SU_*3816jtFW3uIc8xllT|#(ViuN++840@3v*S?9T^N<@H|`FO`#UGbyAU!$5ipM4;oeW7@~u!*$^S5>WRlp7_Or zhrqY$96THE1UAa;k48J_$@V`~Nt2kUVt{`q|87`}`)k6#HU}NxW}1rDhW4UkD4Q>q z_9O#96VioA$~}n>usP&!a+l^Nq!3rM2rg8s#hEmzAfL}9Ir*J|YqNRiAMl#nDv6F5 zJO}@Pdr^P&l%*y909JuY(8tpYoNm;U>&jKAE0id8wGt4NN2Y`K+IJhL<6L_<=KwR2i zbk{Tu&O(vENx22}$WyWfj=$X)e*?{FdPObr88(FLDZ_X@oUP0RO-j#0p7PAI=;qxM zOnWEs9XT(6o$;Ku~|Ej4}kDB1bj$d42IG(pt>~*O=zuFKlK$($qayrU`sb36b#( zL#g~nq>H+>t_p2z__3`d#yB%pCD`f1@oEDpy*aXX-tCXz%@OyAaVw0cNm`cuw- zOSBz7{Zy9hPV*Hlq!1irR-g%hWmua3gJCj>;Rca$<-W`cW*&LMTm|jPSxNw(N?F5| zbl!6hKc&0mahNo8#i!|Kl*`^n6V(n>wbK%ZnA(bo>~y)1orb&5xdR)}Ixd>-(Pxly zGzM%(59vO?63gHfKKnH8>u21aK(tjLbT2bi@CK9gH&~67t{!LZQyg$->gKG=6@F&< zQgGC{fC*x=lvdE&G0E`91FIsT8WeC?Bb0)l77Daly)zup@Jr) zCo|oJk=JWPWoguV5Cq;Bv=};SxXyHEe+aK+Hq*3D7EWbNdrK*c<1(p*T7hS@i=0cd za6T!CZckKE*IfS!Z4mPsv@#_Tm$Vx6UVC10<0?%x&ilGPUr#wX$zR#yx!QCi;If;E z??SB4^9lM*i=NwAbUgfo$jH(qK(Si-6xej~y(bi~XZq;u~2V;o#0;HKM_%^L5GMd>#;!uCo zk$GcJMUUK0u#Za@F^edhM)8?3D1#}R@IRCva7vO_)#n}`}p)L&gSRIb2-z;3Rk#zP*8=gNn` zS>|n2YxbLPU2*?f;w;7W3=ZPQZX;V^H^z+pXkO$HJe6ivIdy%xzm zPzvu~gYCNa7a5~Pr|GC~Nz>-L!V!>eso`ZqLZdUvudh+||9@8UHIGnzCeBNwSuAnN zCN^K4@H^0LFx`u-<*de;)&k;e8VUw}{VD6@yUpf<6n!%L8Vysha9nDyo}y_TuW5Q3 zS(AaHm`+L}O@{O3=8*TGnvbH>)7|hm`c?b262&EQ@QX!%MX_@Jd>8jxuvV#u<`~IT z_Q6OxV_&M?j_S^=ZL}V>fKSOe)|Ybq1{z$o`ruSyAUhblv31lGZiQUJsNWB2dyzY) zQ?w_aiq1Fd7qfcgt|n)P_qJQH|v?b!$< z*Zsp8@M)uVxsnW;&@R)bQ3G&P-ioa$S`wqlr*na}=&(D)b6%XMyu!|Ou5^$rXV0Wt zbU@w&dXiO?2)~}r!mG&+If$973#N&fMO6Rcf8!z3n=B)7c!#DpJ%fW#y0li~{cZ^J zdY2HuM^LIyi4 zA%^btA-kSdIjy(`0S8<|ge+QnhVVNf(DXsE^v;V@kCAlo2S_?Png1sCqBWKV$Kof> z)u1WU-RflHY9ExkI@`HvGCJz!G4nxJsxF$Mzs!8rHvV-(-yM7x{`+#QW)QwCO`{1J zJ-}tYgH_`h>pevN!_b^l|)Nk)dZBng_rfF$s z868^f@g6_?waGcX^%$I`9;S&J9gNW=UJld5Dtb7H1k+j6NSFl{D2d=0JBPcgJ|UOz zExe0-0T#N4e8R0&cd`+3xOPg;JvH)Ycg>TmI&^yGLil`vGFetLOu8@|E@kp(olyEIu<=>{XEm`+JM zIftVGRI&4(*0S4jOW1Na4oApx#?Y_`X$;EJXQQk3bXvE%(;dXM$RC=$w&u(mJBp$obi*?H@zP^x4)=PNbFo%kF2O`c$mzLN*Y zW2!!VOZ$xXRKJeoJnl2M{T@Lf_zyII0j7)E7#M>plx(!fX96EjpQ;-w&10~(XFoYQ z+7H(IET7dTD6?zkajP18Du?xFzhCt4RJ8!5;OCXw7|NUW*@+jTLAG#A_iy%IT5shP zd)K+3^;S|!+4)^fll`(>&+E=ftHB7|gVu^ESY2huiS+zYaclKY=t5^K`I@Ugc405r z1N@tGp625v!*tzLdn(ged7|;;hQXw#-kRyAG&G8NNYh~_)N8NFL(7G9X0d9e*%jOA zE;-{wHl@Fh2XoapWiOgV`Pm2P+vP+Pq$4;Abu-+9Js#vr#m0KB4V1C}N6~qPWpT7^ zcxJXfjSf;25fD)jI~sdI<+bLEw)%ti3PEDW3Q-)9RbCHq9`a;;OX0D z=bP^j2fsKt;Mv{T`@XL8wC_@HIpUoHYgapf!R{CJeU!6rw{d|?k+c-LwU!Q*D^f?> z+OdNuhiD7U`?>WQ@MlUkkD%#+Sl~@PAba?5anhh<*o-p9W9+RfvgM(uoF*xLLCb5H z>4r9xV5<`NJ;{@sTxb;k`x1r* zu+wokB2iz!QgDsgO>OCqjYhQ};Vl=w*>HLE-*{hWefJ0W0c~Ou!@BYvNs8}G!!LdV zQCGIUp-6jMhh??@-!dvS9m(XoRJ(WxN#j3%SiszKAJ*5ZeZ|QQcNTOs9TWfMp*w{i z&l+swsZDu@kYkvVGmziG$mA;4;76soW@O@`F1kA!9+S4g+t_Q?Or>?*)mf?Rm{$k% z3(T+58~#4?j|v43!#U?*_6QTn$n=eEm)zN1;wqzLq;KRJ!-8>KidOU5N6F;XnldT- zsLR>2XoBRaFU#EuN9Y;+Q}S<&uN?*bqrr=_^=W(%x6+ksUkF=!`U&03`)HSW6IRU2 zK{<*QzD3Ozwj+B}i+mV8M{V@|=%bti80B|5OAAL8ha75%zL6x7t<(ziyEcItj}ECd zfdVXaqPUlx%dErePCZoiGi4H_oxGl81sslZ)I#5-tdSij)^&zjuX$hK%Nb+yrlwi; z=Y|;X0y-x<22}Kk(n#+sH>pjhHYH}y)c#Z+N^eIYrln5wEcF809X%vnjJG+Ntj!6u z_-hJDX!t~5=345`avcNYhr4%|B(&Mma09Kk3<)^^1aM>k~{SMn=}N`cRlcqQt-#&Z*pxE z?6%r-wH`u0kb8Lu-PgRw2z?CRU#mOQsk$W-WvEb+**hrl-AL&hy`N1b8Lyk^B`?~j zkZX!R3O(RwJxFgt;%F)>83aivccZQmA2PT;^(m`4T7BfnMYum3drBuz?WhqRv*nXn z>B=ovfj(BeMw2SkEg}@qNyH}R$*Ue9FL1wVnc}*W?&xHE3W< ze7in!4cyAA5-U8ZDt1v@joyd$>?E*GUHpE!+?m|0^`fd5F7tcn8jtQ*j4{WF!h^L?#aKNx*te2WX4lsF?8COlBT>(-m zjQB3<_v@y^KlOuBAX?8hbBssdD}u-n&;A-&u?NS($xJXl1K*H+Ad+3G9ifxga`@IN zD0k~!1bV?VeH6b-A5_>^FNLj83JOFw9Kj{kG`({L!FA(E}d?4L+o)Qy`bHw%HOv9e= zDqUh;h;i&jW)@8rwMU-pXmAn`>TZof6LD=AAuR6g05hyCm_Kk8nF#+t1wx)VkBtN2 zn0He?>i2hgcV!zItmMMiKrmUHC$kST^nD#g^R0x>Z?JK`s_E@WT8H&Eg?f7br;oRp zIb=z~54q{W#_;~&qINs@5ZOu-$E!fMkRu@1o@A&NPBgk{+($iyb0lx_n8|A!>n@kB z!A+uCt+R{B4rR!frutM_wuf^(-fxqb=Wr zctbPI3koyd!I}DeZalRG@oGONA9Q!N#=Y<_bQ-=H3_!Kmldnp(s~&auT4-C`TAJbN zrLAzTq=ts0Z09=3oXiYGUu`L#>zaimP_l=e{~RId)1bwODjP=<6Ps*w(8BcgV8NJyjT|1Ss|= zGIQJKA$;Z@@ogV-9oSGy@}z1xD5huflZHE9>i1)wJ7g2ie4cDLD_xc@tKZ94ndXX@ zE0gJt{UiTO>kLx$Y~c-Q#lxi#59%Rb-%<(|I7jkt;I zP27dj#II}$fRr1|U1eq)Ho>#hM062Wn1OSI|7V|Pj$8EH-x~P6$N|%(NY`(yCKQk- z%tnz#U6EWnOgsbt!o7`ROALR+CbFCZZJg@D>9Z!Ffw+Wrl4l>U;k{eEW6oai;mUDE87{ zZC>~qQ_Wn@K-@`oN}t(#Sf!c&nh4VE&U7W|@s;wi%s0lDP1kauJF~Ue3OvON*ln;M z=VO?UPB0rxd*3-I>33zR37t=0N+;|`z(wawb~}pm-mNT^_OZLn^RyLeN;f-`EO=|< zASK#=FC#T6v-5v+Uwm1-sl2UmE2krhvz(U;LVK9s(e27nxxV?R^%-bO^Qgh%R6}!> zFKFr<5!0TJ`&5U%!}j30!Wrdj*&x$4?-jKw-The^ISn=CcvBP4*2*H`F=d25U|bnp zs84vIqXoajGgS$+$DqXt@ z7PDQu!JKk`_%=8`!F`bW7S`I6QCq2-yPd(vUSN|+5*J$;6WkgbDBt#VU`rHO3tqJXKgT* zCYs~gFQTafvoznD-XLGvVU7klAWwg#y>hj~kC^LBCu7c2Z>2JFNW;Zi6J~Vafc$YJ zP`(9O=UCZ8YpcZzmregOE|r`xQJG+f($=e<=rB80yV?H*_GW_hLE3P>h|Ua0(Fx5d zt^?cL-Pd)BS;91T{ij@#e&alfLr;1bSL(O)#L!Eo6}ZlqEv3t=&Q`st92wc!vlj8v zpL_RYZ)hH_qil9mlNjD}BDnw`Icms}V4it{x3~8+pQ}I2PLtAGYgKW&>Xx!bxvHM6 zPNS{;TTh+xPX3sj^XZo18aWbm)Nl_?1*QJq%KFe8Q9pc;-5kh}E3%*ElY4FWudaNh zA!V?_%A@X?Wub4U3mm`F`JUz;e#=MP6vDR-9I@hWzWb z+c^94G|$^g8hEZ<(^slK{3PbKZ+Tr%+PbQ;y4sc$wiLhNHR)Hf)*6(tl_s~wxK<(` z_esYHQ!IEzZ7zZH-{`SoKio<16o$$h%_rz4ekC}@4v-q)Fh`d47JJgP-LE|x?V*{D z!hGhy*q0tX-7Bn@T}KsJx?=2V|EFRzt`chm>_*eHoMr<;cd9oGFYGN$7d3}tA$Z=Z z!aK~l!fJ8N^_XvtwWOB~V?w=adiAlK*XL*p$!V|Cm7)ALwz(rYehkSdG`eVZ$5o(S z##Q<#tu8rLa9{oAG<&{c%g86%bIg#}gAS6l-df*OY8O<4hPsQtJU8^NH?FdQ+Z?#v zvb_rqO)Y8F-RTry`OQ2@hCh^mX>_U86YpQ z?Q(u?WxGptEZ9FEXmhVJ zL44_%5FKS6#yRC<4L&mG$b7A%T%r@S#+&*m zVF5+N;^{3MGHyo`(nCCUn+MW&&L-tOTsCP88sdso-%`6_>(9x;K*1(WE6&mU@gecK zVia?f^8v$Id+s%y;kkw@vITgB#BGgp5pRBrhKFV_ZtKOOr!Jilxidzr=j#^@ z^`Tjv5M79FNLOF{;bMZDc*nbU@I{=1f26v|nvxaFO_#U2jHYYW`OpSjVN*lWt3TKu zUuG*awF~&TAsFrEt}`69Oubhb+NF5K>}4k6@jL?SsR1dS8O5x>k|g{kUQ~YL=BTn? z8{22Jz}dF`7Il90FI+R}*BYIIc!QIFqBpkGuG!tWPQFn(-TcJ#wzL&)oo^H~=)Sy2 ztmV1sLt()*wu8tA)KXTOqWGy=ZzWzE9215XIcAbeKeFj2s=vBc8|Pdhx5}Ll7xTx3 zT}lkpD*IPD!gFfI^8Vb=lCQOb3Zr}i<#eO0f2A|0;asKG&)SNKedb^BvwTD^lpYIf zEq`;7zD@NX&(6s?F1u${zE~RRJI+)NRz;^PB9rG7TSZtOz<2Gy$H170+3yo*6qeJVbEO!qzXeT4;6 z^0iAz;EL6SnJ>xA?ma;bCQ7KN0?`iALO)|Db5`5#%Ws%lbZ+*0Rne!}F%v;b@g}yD zL36voTy#V%7H>Q2P?Pjl^}E!fZ5L!@dw*;5>Ca3TeeUN}wxGO*ikpIY2!-NH+yG;P?7eXqF)%Iok=9oeHPr* z_Jcz1lu)JXTwB(^j%Zxaq^4UkvZC_!BE0AEnMp#a#<6^swHakY#dQUy@v<%kF>DmYlW@z;Zx2B?C~P~S5HmE*J(`o?jC%PJd@Kg|cre+A40 zk~3aO)zfpz9JkpM_=!B*#(irPILvdRPaGGlTnsdLR#zE9ht&wR&x2RW#<^32aM2cK zk=J&<7T)iE2FB3j+gO-kYvpM3@LKL$yt{%reBnAiONuakYPZ1DS2&I%?Eh(toL9LQ zDy0#tx;)G9PtBToYxX{+_5P=Idh@y@qY`*dgZDvL<(GPqwpFALZIOjjcVkQV)Xp*+ zTpQIlFVmRXJTUbG_bXl69>f|(>AgslI$WRDXbxzj3^cs~qu_Xr#lc{Y>g5J21Go)v zEuGNxp}vGUyxF~lDd-%(N_xl zwInu#{T+VY)YQO|t@1?uBX#wzqFdj)%rd5#e1*Fty@4IY15$!}sZ1{+XAiDkU~H~$ zK%VL{oGWfmcJnsMYdb}ZGzmI|b>lngZ_*aq0%xhIbLp)98OWbGFSTZ))K*@@_?QO! z+)GFYmO7&gTKny@?aldYt@!#_TWh(E?`t+D#D22Tjj~$QCL4$uy#boXmNm*!Vtopj z`BGcllznRa%`|~p&ac$FUbR@;fl8PVU{_hCCik+=iijSL$59KcukmvqmuVP+Ts_aZ zps1|3uw0A~x8=Oji>(_Cnn-+ZXoX~fSdVKj{>p{mmTCt%>{;VNFXdPCq$1bgQMFnA z03Sm???5KWd`ig2rS35zA{M^$x8;U|WKHjZ=nQ*8DHJ|YAABe47&R(yf$pm6C_B_u zCJa+r?vpyZ5~zWwo}6H8AGO4?Nxq|Z51Z||!+oFn1xnZ;{$<4)TMtlfdKR8#J4ie_ zHAEskA4j|T$-ju}T^Brh+lpaJ(ZGz;F?&dxQ!a^g+->J?|QH~#W)D; z0-s9UrpsaLvVT{7+$Q;O&1T$1>agD^SED}CF*4US*YH%S?eVqACUQpDDL>}=x;wv_ zruv}f)PeRAiY56gM$U!mM(icW+DEZQy>NO7Gh;eVb#~IL@-qLo*Cl@HMEFPjh{6W@x1~?Z(I6^X$7!oyvNlGzTm-$RW&d|`m_Q)NF_R$zdX!_LtIhYxgb#_{-!K1lsZ zKTn>Z<$NBja9J_u_4SSWhZenFt;_V|UVEHnPNPU;9j*nRfhYQZBWz@h(%pFD+c-!4 z$Lr}8Tu0hYliLG9xuL0gkuPv>M}J>QF%>a6wj%OG*#)MF4cXILU04J8X|=T-R9boefhC1RwBuSEG6pnD|eCvaFU&<~((Bs6*^lLUIeKy3vA>QJ`CeSnM9>!S&d zy?8Yrr$@wXQTBq_s5?Fn2C))UKwG4cG~@;TLhIF4$|U{Xs1EeWFL^qwx51OPNO;*af`Vmzt;|8}!2Wg_P ztG-w9f;E_$+;cryJ`RTDE(9agpV`;kNlK#&lQPVq+H}U@>gVX+WTHNvtn%B+W$D!H zNSgqs^_Tdg{+bUXm_MkmhU@5?X)VsC&pU+a+irJigd9k!nVxunUPQT=?OslKHQCgX z@1q*!CrS_Q7?1S3UMICx>{mg-9knKLp4tDUZsi|xWU~hxMfb;X`W#S< zU3xT~0w~bUJi{t}!@YXF((@;IyX7Zo$>)uf3p=S=R*;Kl_j~NZ@0qaE1LL_5tgoQIy-{3 z@OIZ7)SPWZ?VOE3v^{_vR5DF_h*^G)X2#uV@V)Fw*=cqw^=r(-{p>wJZ+!sX3kvIC zvqe6oH%Gr~ExA?rsHI2>hpD96e#|G8I;AsEbp7@Zi+{>c%W1y)6S9I5b)@D5+nBka zGgKrOh+#*;B$@(^#(%#!gPh!c{wf$o4m2^Vz4;QikuOHg4MW8|{0nJBr$dh#zqiL2 zy3s6m2XaJD3$q$A{YWptP5d0w!Cb(?|HZCwE+rUw(-!@I z$o>9r9Hn1sbXFYv)tf+}i`WdEbp0faFdatw=oYfvn#**NM}bV->P%xuT_gHmS_6C@ zjZs65Ij|c|f;NXXZHD~;lR<551Yc*CC~3NbS)(3eo8Pihe{g4Rt@w*;J2zS02Zo2w z<#gEC*n+G#jzi6j!Ot#$aG%H8VBwmyjd!arIbS>xItd}$_4-8R^2lUut^Q8WXG!l< zt`_<%>u7Q@Xaek{JfK_tdct9BaqrRpW8Q}?x2$Zu+VHO>nx1y1@L$ot?~gHqNk44` zH%D)SoW|$Ry_lnDk|7a})l=DYc_F^2>{18Ar(lvRCN|#P*;XMLEfckvdbdn>Q6g>M ze+E0`XNCV+mez~qChC9dsU*!X(`*E_qJuRLZ2~GVXG*)_E_hY$N%o4<@DQaRm&L`B ze69h>rI{#Sn!4(tJvQIgllqmD4l)-rNxc7|Z}2(Xv~YkP?W|`=QK%KHq75_9)m!?) zo=&ZlC|?n;6&LV#VW8eloerOo)p~@s7ksAuD3O|#f9ZT-~PeR_1q03Pzf0Wsu72V(7snVn}(+A%k*hr9qqfRY#ZWDxkA6l z;@ka#Ng7gPU3C;-xd;>E{7>F4U#hnO%yXoJ4Wy<%idjm#4WVF|vJ%vW-D$6X-L$`8 zC_W_D)`OG*;6AR6_u@|U2^0x`&~&;^Vz&39ZITznF?mIK;%_S zydKi)tx_V+L}9R*yN1?So1!n!*8rXj(#z;`u{QNaaEm|a3(JKd35Voc%H5*X`f$F6bAA2m0+Bktgdk6- z0gk~w>`EzIZy`ubHgusdMw1i$1K)O`46Uf*E|K#gaP2KSEBk@xI8!b6tgmCd2bQ~k zffd^RoR5Z`%tNCcbg>&lmIhw3o1Ld^BdWGZzHFVWF{C|T4Kv_k?q7L$=2+a(Qp|Ry z`GvQ7rTd;~8Ow3slw{at##QhW3gp`3R?MGxFMTo;ku>Ed<3V!}7E(b5XLsXn)J_L| z-?j7YWnIS4(zgLj+gh1uFW!f3w4*b&Y7kZ*et&ZVK|V~{z^-w=kwuzYpKI^pd@GMu z=YYP{ao7h1fu*>FS#G!_-)XkSxl4ZcqcL+qUHWx#z=Y}yMbbt{z49dLlAc{v(+LZP z^Sa>;H6y+!kLd0KH#eK-YZu^ms*bN|d$mt2vZZ{8vR?Om_<2N)H8kT{Vr(7tk+p$|(%~P~ zC0CjDwMN()gH4tHx}Mf}@48Ucit}(4>tQ%tPLx~6Ow+C?4Lv`TimFd6rL+_vJTLSM zSA%b>(Fus2D)Tsxa<12Dae05#WnHaJ=gSn+?Ju{O=~$Ql&_(=;k3cH!j+ZHWp^m3l z*ClbykGV?pPci+BAVo)ddrMPO#f- z7XBD>5==(Pbnk8?31pDAnx>J%@O6ZAy5r_;PlMQsw)@BfG~XDCT$F5cA3UPuB{M1@ zgU_QFl+MDHP+4lh9#UvmCJlei1OF#S&)uV;h1 z*p;=_>z~{v)Ye%?+e&}uM&e6JXH#fmk9T?wtTQjHd%(4NU;Ql1!5 zN2RsvuJdP_>#HL7wL>TpJX9PHjp**Pfy@c|iFr+u;10dJwn%R%L>XSQvnUs3s`j24 zUGJ^hSXe{SJ>=KV!DV<~YZaU*hrv2pH`X(tTJdvF<4c%)nvKt*h}g@NF7?_S&Wt9W zmbSEUzZ~>ZZD_!a46VKQ#xR|JUIy8=@|~C+q!P~6h7?yjWW&kgzu86}J>`i8Y5_xe zrZ!|-` zLRrXR!@E|53#&NHI~dL~(bFX!VH>+^>i+g;N)~*n2jUXqb-ou&GBt+_X>NF?{*<*k zYtya&pIkly+7$E`P2+R{V@X@Af=qaI_i=Tfa*Ixqy0E*@n|2A!iq#V7U!CquwE@&) z_LM&NDcKn(>(S~z>QZ{|8wq*}FAbS`khw#vhj@#a>Xo2enb({2du9bYNOMmQd z(i?7IlZyMid`j<*V_o#gCRX{N7(!FCGw2pt!Xrlc!3g#m_=(+sD#cFZH)b+D z)pVq}pD<=KvxppKZ!+cwjhg!7X^aAw;FUrL%5z!Cw&UjWgJA*L$Q(lcY(8tzkG$>a zb3jeC$6IjV1BGZQ>^E>li7(s-Ity0+@iqgoYOj$7U&L4Ac0wedfZEa|(`F?vyh4mZ zW^-qGv^@cT42iY1BJa%E+HdYGcDf;2{7-G%B#M$iUhoz$kRJ;}y3wx8qm8z%Nb#5} zH`4N0Q7QqM@22w}?qM9w0z0;F>CQlp3%S|)75S{WDH`RMMth|bxHk?HS+OJ^B-Dc&op)4I|GTPpWSBWey;QGB4aam z(feq91Whx(MLodv$6ZKkc>5(i+iqbJ-HX`p`6kxY2(Nzs$OB{+moN4z$WJZ(eBh(Yo+oB zE|Ow(ku0Kfmp@1kjcs^KI!Sp3%bJ{)Cy?R1KMR;U#6iE)wMHl&^hax2ZEsx$YolE4 z7EL^@Vfv89(g(`GxWY`MOyFtMQ2*h7lcY=93-FCSL(U4CxWqY#*>2cLlT8ZVs$O+< zg)3PC=P+GPtY+Gy8`!O%RT%P)wn+L*x$rrcsZG%CFypD3^NQXB9^iiEd(+;=L~=hX z!{czNgiqr7hKrV5zdQQRw9A@9Q}3%{H(A!HlR{=&OGA=4A0e3Lz?Of1qL%Yx!7pZ!|9A*gFh&n2yKn$(K%4DX!E()mo;6F6;yxiq zF}fD6wx%hin^!BiM26C)AVSyK9Hu!c#^InpebYS2Sf!54QF3$Bay*}VP6-MN^>>u? zVgUE(XSt`wfJAZ*OhWzf6g>o-&<1ozTravU>1J5N*RQO{GLjPa0wQxT%TjON@@Er~ zFQ_G*LFu$383W^CscRIhPbTm!$y_o0ZEE9Rt)uio1|Dgyam0)Fwan%7&8Jmw@k*v2 zWri)oPeG-kg6oC`Tx-KzkItkYYWs4i7AUG*9Q=j0iA8Ox-j|J^@6TM7KjHwbHai-1 z)%^K%xQ&u42cty1rv5Z_3`#J*#e&-${LV>9PnI&P+p{LSCa~St{*W`;X`gTn$zc0z zzd#M>^H3>g67nCcP)LTcwZYTnyDRPzc5P*K^ydC=9B0hJg$r{;IqH@z$ganDuq+XLOxjIW1xwG`jnG@SVK5Mwg^n+pSd*8NExwz2tU7c~x9!k1tYvDuY3U}y7Cyz+6D^~O* zNLfDOF!#@uVc4pA{dn=YtY8qyQ^wT&$tS{c+}eyt6=&)_aS;|~R+uHB{#lev`Hu)-EX^EDlDC1tZE zX@ydcruTgP#Z3M|ajlYza-Mz@94*h_yD6L9QSRk= ze7QC!xSI(n`f<%yJj-6f9#+!kO%A-wvSu?==`sdA}MOetM&Sg1A29^kMmb(kf2sk9SZz@GI?@F;tg<8Gj5 zDmPo5cKyk%tX_o{nGS)evY&c`?qXwM%+}(U;1OO35HDd4QyVMr4TcZsyz2E((t&4mQt>oE0ZE$jMW-R z(Mke}uwSt+bf<7@VSsel-H|x17^HxzeLPQ2aR(e;rdazxlgzEtzQg}qy_G#qAJhzs zq>oIuKtkB73iX32%yYHt7;46Tfahq&roOxrYOaYQO}jg9Lod?kTWj&*tNqC3wHMs_ zVwX7oD>Nn0hR!KG^qv0G+cc0etERh#QGRxi6wGb+-@z1Ezv#c=-tdaff~Wg`M+?Ev z(jUx6@_|e+{!YBaGW-EIl5fzgStoWM^)jEpYt{RBn7$Y;qTGQ#=pkGnP*N9a485=y z?VG+K{%hCbdvG~w&#qR|*>Gl}c2|EpF=h3B6Y=Qi*w3vrQjsRd=IP!x(nIE^|L~0UB$!&yaDO)@Xe^D2(d$nFnANCp>ue4|0By@1{;4G-)eMX-_ebBck!{}$V z7C=&}I|N*2#tV07FSS*tmn6`>P^vHN_VCtQs&#T2x_@WJNMR;X-^6xzjb^%_Z#h}a z8}g7_<0_VCgC1b4)1%QM#Be*L3}L9+jX$ce&O&9r;`6eDWn;s#+b>n={{Q zEM@iwx*feBbQFuHJ+6Zo#{`2DP+Pk0O*s?C@mE;EHPtr?JL%`_sUC(#=-FDT8o}(w zNwQZ}{hUOPDe89iZt+MlU-lL4%-pB|<|yBZY++s*84}EtRUejo^Z;?KlVwzt<@NUd zOm|bMowm2UKW%)4fr0gUVbK(&KQ={Wzo0Yng@(qav-)?R>*`xDo}y*bP&K-rF^?;P z&Cv!*alK62t4?(pZ_-lKdoZ3k)3V3&boGq7NG_sG;@e`Pp2D7I)7(3ho9cEc23^x* z6c2iWI_O@ir(fW>32Yu(#=oO9^|_}0@D6Fo|ETkmVLKSX1%Q#rQQ z+EkB#pbPZfWhHHEB{D-8Bg|lHGI_Wj?xLO`W)#P^A6n>YPifv;@k{v9(~r!h4cK0| z9^GU9Z2tsARK&Cri^|Hcol_IZXZ2nEX0Do4A>V@gV!8_6vpv6<9Z8%4OjTYve=&N~ z89QQX;+WvRxep7cg5lJMG>K0v3I2YBF)G{XEDrh~p|qHOzS*Y3#(mmm5Lth9R1*Ts znNC2Rv+?XO(M1!qhnW@nTZUt&1Doitx0}*}lDDSe<7k3AUvq0bX{b*CD^1eNl&Yp~ zKV0NK?StqPeg{`s{HJkDVCQNh+!T~y2=ROS!%VH=r)-Z5W5uOXE$avmr`K0C!|tc1 z;e|}|Nh*E6h(swk5ZBV8IZm$uO~MSGmr-6JB;iGJ>4)llCMrKpROaVk8(o6 zXsF8baqyAyiJai}aw*~t*vx*sU?4aA>$-@#ACuTQg<;4iza@T5IvDfGP(D?B$hV^O z>@G% zW2c#hGQsL&r>+ge$>c7+S5cxpbpKtKF_!p}8kcN6J|%dWSKRu4@(<~bn=;o)fMG6) z&;pgov|;kn;~pLj3Mf71Kb5Tboozur3ol?Y{1hy4)iTHnp02 zf_|YXr6_f|5I~6ZTDIzJS(MZ_OQh}@v-5>Ll4fMH15dc#xf2+p%YXvZUCcu7YW$Da z9=y!*?VH30Fk745qUYOe?NE(R`a$M^$|>8m)#_5NE3Cx5bwoaDfv(=j9d=J$m-Yu1 zl_oURyc!KYHlNhvdLh{!#+mE$(Y)r;oDU_c3QxjruvR2XZh*^`FKom~CthZ1twRx)v?h5L7J{h_6=S@sFowb!pjR*GB1}sKw841((lE0^aOLMqyhkd(>#Io4(Z2 zlQN0p^kiyoaKR7k4YG>4!{i$iTz*Um`uK7vo0!v956267y&~7}8P|PnBw7l6nVAk< z_-OdobrWS(HRIc%UX+V=oYV$olwb3!S_AJx3FINWMOSsYd2(+=6TxeD8yLV3LR0mb zBu?f3x=t3;R>55*MA$-~3Iml2=t-S+4*nM1BfbTW3vPVL4#+*QgLw#tP;S63_KYHMBL1)&}8fQxiN)Tgd!puVBuE40ZJV5a9P~-Y$B^Xp0ivOY~mcLGU^^ zOS~i6zzY5w9MSkSdmg1a+OjoRo6j|}94GKe;HDI9h5Oz`|3YXEJzR@ruJ<8mp7?v_+t z{1Z86uzIIEhC2Lc*5kEyExNnwidvI#C}r+Mc8YYsT~_JM8ns>#Degr0?sF0-dDhpx zqs2Bo2Tzj@foT1_=!ZX9-cpCh|HK@YWrF=K8v@)*YK>Le@b4lz2Aa9!{7TPArH9nX z=5p)=i!}*$rE}rMpg!4yi9SZU!x-pn%{Z_Dt|RK~TK=SV(%8135?3%D#$8;X>)+fN z^bRqP%oLv*KYJKGXIr~zdtW_7fBl5e6?B3OX9O}@pNhul>(m0W#C=^m!DXpclwH%g z#pA}4VJE$Tdp|>%-?d}Z#=$Gyl%E}I-3`Q8&?|K$rSKl39mE7j1FqVx(9LWrQ+g>peeq3B z1N)%|^TD3P?W>A6bgkpXl(1)&C8i^<(#o&AeNTV8X|ffxBY~v2I1^k34fJZ}1ZC3X zqg&cKw19+)Kf&2!BWVNmD19Soucndac#7)*HE9!dycErifh8!)7_CjYHWO*&qr8l% z<*-+-0EC2+adLC+yfQI3(iqZcF5G3c!vCRxyi0o%fuy72Yhec4kp2H%(GPin)&wQJ zu&Or-2GN;Qs``uI;&*wRR$Fr`6p=XF_fe9;9cM?-UyZii^tx}Gu5ah&YmJ=_?Gp*R z`buEX&*tB-f=XGA^nx%Ve}_Zz?r!FQoxh@hR3nucFqz2xuEd=E7-8U{Fdyh?RRJ3e^( z0K*tHnGN;bg(ekEVkRM@Q0z0va=I)<+f|hw`dOuRF69CLF}EW-)zSbA*3KD%f<7~+ zeCsGWM{*0 zUeXM@58s4K#3Js13`%kJrLas}%Ys&)=h*H`<{!KK*5Yx z7(4(>O|#G}H*g$_GKB!LR@;!bA{_=i(vDVJn z25+i(13EkB;YxKccSlXeHmAadaw6WuZ6)uF{y$!~zFV=k`dDcyO>Vw4O;VO{Hf9$3 z$=1<$4SZxKfI%>_laIPUon>zP<2+WG)ye=@7lWTR#WRAb6Aa=6}dA*Q6*Pk={8C|VO`-cTIC-WVB1UmvR)R|z7@!D77 zUA6)Tk(-)1u%TC$#|9rqlt?`nUED+5gTJa@+W$+_hikLEvvFPcHl(L-Hk#-N)fa;$&JcGp{MzK?|Fdn(F1V%eg&vJu zA@9vyD`xtQRkKV3wA;!zean-^#LKuqYbCS|SnfIp{tfLXBv#sOU9<;3-IpgsqtpIonskMt$VQ-oZ`4FxAW*+kSMagC(C+2Ut{Z1^4Ry0{I~L_>uRaRW^Rh94$ROm(0qf3T&*CI3p;*T&GvyBSuPbC+rfiyxU9x^;+LaX zcQfs=222YaIp(F-&DwgK&GhP9HhTf6mP?j~HtU;#wXW4#BwaK#!QaJ3eiNg5)qi2_ z?CfjVME9XdwrtxQ<}YTrJweZt|I`1jyH={eLxqc^_QOs0&q)^c)H?Q-*zfi)(D z@Q>XzBN>>uUuvW=g$$XK~0xIZstxg9b=7A0@i`q5J-8og4xtF~g7cY4Cv(EONO#;%NiWmy{N0CF$SrlWddM)uU4uD@ zIdd?$rcRVo%*~5(r8VW7;huUokRsaPj*!rxIb4OI7$Rkf^rL*d<+ArP-%>nLJITnB z)ZQt~u|CsInv8}zqz|2RtT)=EL0XRWg%nL4g$Zb`{JWu#I7ixK>d&<9z8npKW|nS- z$R65JUP3ljhD(*jX&3LJOyU-e?*D{+tc&SpXr+{L3lPt58kcFAY1&0wyl$MTZ>L$C zzx8H(s4z@m>4u~~{W?+e3u@rgwDu`D6`uaw7%t8(RzjuQ0Kx9e0PQn8Y9Fj_Rs;DA zDY1O|yAN;5mCN>Fl!uk-)$rR5<%YVOvMY2lP)qjk4?UrknCDskuCze5x)=I0{;OQW zwp9S8qb9Sk%Xk=`LG!#zU{+oq=UPwx{VaL2E7H&mFVo&Tg5UD&8&~f#VptD&3Kajze2akEfrTzaI7JD#xuszkTNyDkCxToD$vY%r8LH)u~c|<15$S;|Kf6l>%E=)bd?r`a>At=v_HEKifF6Vy|ehysZBmRr)V^c;EHD zEC{TSp|^uF^nWlfdJS916Z<$;A^35t^f4Z>?0|IT5r$l-1mO2WWJR+ji*10d1U-5?Qqs}b6R-* zOPT^GNk8Vlp=xQ-UX&hkR-ESg!`I>agu5@!3JB64)~yF$S&Dp$p(?jxGD;$Yx9Z!K z`X%?gXBoY+hM6T);C^7~=v?DyiuZ~$${HA&m(8h22>e=h`jy05{6h@CdW=(vb$aCy zoJU5M|G*VKuIeeCe|$eu>UP!BW-*=7EPJ&TIg_}?4SOoJWm}b0wTC#Ro_=j;8{}8e z-t#Vd-*U;eA;Om=fN&7$lCs_x_YmK}8tMobNV>>DHB5?UX}pm1%9q9JRIifi)>XYi zTM9{5vZAru3rrVHa0)w@x=aG~U-e^pEZZ3saKqGJDWh%~`;S)=FtaXxtnpduC7O<( z05h0Mc_%wYt%B2#m6_yx0f*E$#S~Z?az9xTv{hmYaTW>G0t_hz-jvzyCT@x2yxTH; z?R%?fLsu&hN5P2>E7;&XCgmSL1TW)OFc3z%dKqHiNY9I4jLFNDtXFE`=qgFks=-E? z=klvd+-;PDoz|$$#I5Fdzg6N_Q<1hG^7?N~L*W$H*ff9{X_%m2G0&2?v_;jc#SY4D zpET`8xMucsOx1a%zuuPi=4RVoGtI%8jC6jZu;IHX?|wbkyM%1}G!;ztuc#X7?(BHV zAFir2d*a?g0@|o~n{#TfuJ|lDaHNM+Gy}a;gM31iexOZmN9RYFZ2e&AFGX6qo9ba} z=(?%{)^m>*RC92xnymh=85mDSr}L~Fd57oJ&|1ZDZZFFOSlY~FY5RW^opn@|+1rNq z+o$OiDG?D-v2zp~JAQVzjy)J-i|yDwb|*S^2X-SSiim)Sbe?#7@BQuXuUWI!%v!GF zIq$po^W67!QJWp<(ipiZl?~%yI*#+0k0j00cN~awF0R^Y>{lg4V0kG%%TEXxD(y3S ze{D=ZEc^wl8&2VS0biW0l%L;EqeG5`UIA9U^lbQFU~fqvKLRI+yUI7_^kbK#9c3ew z$+)KFI+(7G3*8^HwxFY-4hr_}&fNe((9GQU*+bY0M!P*FebxXxlUdh3L>ejNLy6&q zwWQ-dPe=p}3n$81N^Mwh(@xG%_si$=C3qiLYAmpQ#nW8Rl{`?X&k1Uc>gC>hTWTHS z6QSKS1c9IK@#F-2MSW!0N?IE0*!N-!+hFJ~ybt_>U2Gw8(|}wKW<#b)xSIpj4oNnI zYvs~v&m=y{`ac>Qn~|KtHoga62efu=Hmx-d5x?qVg>~)A^!SP`>_T}*={T*i>s7^e z^BijrX0!2rQ)C&SeU}^azxjKPgs{^uUb=k}f}yP09371dx{wYo!E! zi<;qm`9XhkA8`@?4fq#Dy6yDNWM$Y(`@-G;1zJ~fg6;FWvT&^Vr7O_XFs-xWwOmlv z!Fbg|*}IsME54f#nI_ZS%&7ph{lsKjV}DO|D8AEdH~3qFmh zyZ@`dU!B*<_V)G+$ zA`_S|OBcF2dQv!Gx8>%4zW5ssaWKC2P7v0h&0zV6WThB&r( zt}U_RAGq8x8(#J-(cY1_`)0!&919prvie2O5eS7^ECF8%PY6G$R^1L&4hi_jbkB3D zHMyE-zQ%PcI&K=^zNs{j%oyk6T=&Q|X3Hypaj7IeYY!KY07q34>Cl&6AIf6di? z8>}2whgBX0M>6t5q6qoqeEwx7v%Ed)gx(~j6Gzd^K>f{+4@_%zN?wkYw57}Zq;!~; ze%k#%b~O2P`un<7^(%MrT_VSN+!wAo;xg)6KH5&=rh)Oy4Xs|x2B!z(aFx<#VXf*? ziYxju_uwiO@I$}fP(qA5sMXFE&Oud!awqei)-2bFoasKB3}5Xn4T`tJ1>se$f3-Mn z5jvbVJnEMIt8z8-F8{MQj%Yl;=uXL8wgp9GVK13VBk5?B`AA7BU z;X*nw09+-`$cAi%Mx$?-rJs6SH`Phc5uLWWhLnn4nOoe`jj{HysvG8BlI?fCr)>0> zn-mY_?$m9X8_fS;?vy@IZxkMPU&AI=O>sH2Kf(W8G3;1doSQD(BGcRL_9JQ!YGv~!g=*m6ro<#bd-2yn?<mL zxMXEPKhskdm{G;-%Gi_y^e6S+)T<0Lhw&DAHX3J4SC$gyygxHQGs1k53_svx^@;z> z$AWza?V*k3tQCWWV$X4~rxxoM%M8!%Vf%+429w1(JRcsYRr8Pey;?u=dl3FuG(5Mj z1&P;Yx@x{tnW{>T=W2UgreMNZ> zlhZIjm1)WV2B-k%s0Z{2XMOQBIVtKvHhQUHjyc6COYzcd{*y{_eYlR{HI>K3YgctA z=z{8z{d7loN}Y>7GY^nIVcXTD{*404c-d1e(CPpuS0yYJ>r;>U?%HH^jMfbvWvh!v zT+Jo-dQT%GX^Uwlprw6YqO=k>nS0Ejg$w1r+71(&u;M%6r_}D_uy%=KVQb?6N_?# z>aDdDEfsTYOCiJh&SIB`Xq7ODUPp4InNE&>ExwZ-;%)UO^Otdx>x$7KeU--863A>f zP&nY^%)P|*(o^j(_NY&+`47>gOfw+kacvn`M6B3kBIOn(JLDnoZ$iqg#m#bEk|UJ6 zfq&`kiDl}b@q}xbd`pc*wL#o@esXMev>5 z!i%o%;W6?_<(fVOT;j(VoR;d!ZiO+Qg+{QRS-`nTeWXLi&&qZEnXwQDb6%GE%1EQT zRuldO+A^`6)pboYxUP#f>4@r!9~(YcPfJMh*4mjbgEj0{F2M2D@!avr`CG~{reTui zaBOw)Vr}8M-VD_9(k*-45~T$3rChFiTAT8AVVFxo^{K{eTe+vrn|~l|cT9HmcNREP z)c2mg0fXJUNugSzWS1{0+x2U<>YTp>sk%6c;+S#77dwY|MxKILNt739pXnvsB(9Hf z5*iI#p+@*LNpe<_&QE{on_jG5Q>LOB>;&#ET`2FBPRfVPM;M8#&I`GcMf4R}F&-`uil{`y#*`gS`&{6zL4AsKOM#G;Q$LwIcI$5!air-j%BqmEIWFA~2-~X-rY_?LkEH02b zC^Phjptrl(u-iG_xyLzD`bTRioG|tlk{t)}NmoO08KLlP;#UiSjuc0NO70Ccyc(tCMTFEGaXpe`hnTw`D)=e-zXfg8lHBaGQyj!j#%d zGyRpaM7WC?lc{U2i~J<| zmRzCU(9+3?hvgPACxR?eu6S6Up$!+F!^U7Cdx`lW%_8RJ4U(#~QHxO{_groTFEVSD z-clWDe%LV81vlXWW+>g%RY!88H2JVnOgM@g7+)m0b3$<#IO1t-X}s4r2B)|ik;^Wjgz#`4DxnMc|Lahfzt>no=!Rr-E! z&16+uDR;$*}ln6rQp2BPd^| zZn=bP#EGj?Kb1IXrE84bkg(^Ls29RLjQe@THA8f|JSCItk~7t3=sop-RXALK)j!wJ-CW(SCp+FH(9u4uE7Q>{fD5R0j0R1>uq$q@`PEQDdibn6GoQD;<7 zkJIMM!-GPI+ocez;0BclD&6*gxu)xI0%5sLf!>7P-Un`y%k=7&RcbwrMMbtV)HXte zSR$Q;BMd{;SF+1JThGTYa5^}xWa;UAiQ2*>DHzT~#b7(_#Ze@Sov3cp(n(`vJu#J@ zr>)jOda680+birK{LvQJ^`y zkx}Sk>9&$@q|`KSvgs>WNdH0k;o)r(T8JWWkg?AjRcgRq1K*`~YRyQWA-wRXHG zTbD~^mk_jZuGZbQQt~D~?w8tr{GF*uW{+MlP@QdEqxNu*hu4X{;5+E+nkr^VE!__4 zcVIM}!MFUd@6XWH&YIWk6V7Xet3-&$ktzMTh)V?I8dd*lD`Or`3QPe5Q z0cVo@a|BuqhQQwXLp?zl=KSRPNA?oK>b_IF_??D6{0`Sw@gMS>j!>FwT3b8Kjrv6pMS%6q%Ne5>opibv3LMu-Aa`OdPh zwpHUe3HPTrff3S1CY*^z`?akWUpyW$AVzlsMViX(q#p~R$Vw>9HDDR6$K6)En5~*G zv0P513TQ~EV@Xy?Gik+o0Il;)i0`VF)<7OZpEP5QuxEA7t(DeBZ>3*Tn#tLCtJa47 zi1)G8h~Z%s>0ORirW!RSM{7*dWC3U{O2ufR*^)CB#Np&ROIo(iU+Dw5Ek^}AA2 zCCz|QsU8YG@#opiOcWy_evWX$G=pEJi!_;( z(u35QAd^`3M&d52MXrQF+&9TX&Qouab8=U!v_F;UN`UI} za@V(LE8yQS30;BV=m9*A?n9@s0cvGW%xE+fqEpsq*hZ3bmD#ox$qGl zhB7@3+-D_Ao=cv8HE^oF13$r4><+>p7W3_hr zWVW9BBzd!Wu|8RiR}QF4s7K@k63KpNRJ;R5;DzE6R0NCgP||W(TiTZXMRgB)tL6h_u`K+UVu^)^Is?t_gUx+7|9!gn;7V>RsPk{(dff&OY)rNCk|AuR+ zVMZmoj=nE?I%>wuXwG+(<%A8UQYJ;@9;^Mm;}i;dN1|2 zu@ikkeFygIS7DarF>)`DKq9jMU%uT2*J74B!*L8i@Kt$lZ6)hNXajvbl2AY6Law7; z-FjNM;W-x%wZ~Ung@M^qiC-s?-h({!YucNfq||cemU2W7#?y6oS!Mgv@j@N;4?cye zE5{d~&uM5}L|t~ofLYZ#!*kAAUWb_%>~VY^+y@l_Z3?5I6SB_8DtAz&{fny`kD*kw znmn&)t~q#RZAhPl?foK2@@;y^l*&PPHU7iVn%<@d@}sm6W<$om)D_qchSHjO53)D_rgt0pDnp{#tNJHZa z?)~j=G?Qu$YsquS?_xEsPuwE+Q9S^|O4Nrx(r}>gnK)nTl*Cp-&(W+h?F?-DNg zUzRt&QpwwA8aS^1rs5GGIggL10TuPSt9dy-hPQzrt{^x*dkH)bdvbmC2Hbi47|-U{ zQby@g@qPr$`f>~0zM&O#XLu^CCvS)Aa3kyinq1CfHRMM}Xu|<9L^F%2gJ7G*3u!tj zsG+EsB_t8HnX(n^p#AjTE{~KaBq`Sx-=|KCgQ)_17UnqTkQSp0rx5b|r^u%ERH~o; zXRYSU74vu01>CIF485RR>zAZl;}JlMJB;&qOO-!AlcDsH+5cm%64vjW9vQ+L?VU>M zfUFKo#YWGTz(rUNA>>c=ln#NM;|B2IXA+({$xn2f&R;@gt|LeKt@pek_j4;Zz4R8q z7pfcc8@wX3A794~dN28AksG6aT>T#n;FUg?m=xBJ;?&*nPpW6-S#%T?RI5o12a{Y5 z@;thRpj$eby}X703VrklsWYfg+D&O(dsIU0MgibDx=g)O{v)Z#+$vvu+I5g!21ny9 zwwrpAv{7AAWXIE}w6bOFW3ahI^u4F?Q9MdeGmgx%Ort+v`8`VrmBy?n*G$is{By zF~hlOMIQ*&GKGgYM-i^WPR`X|ZFIb>VQiHWy+B0KCagzHD zZ5Go`Yru3uooYRzd&7TR-L*i+SAB}^r7s3I(KKT7>QXX-G#;Df?BG^XKDgMG4E~1| zZI-E)US|1LcsQsk3*jAp1#}c`$M@hpy!}HaNy_bHD`12^iIMedXieWlYIg9Iv`_Rt zUV)F9e`#;7J|VyG_U7P^97VX6RiwW4pDEn=y^0MbR;0J$S^GD}ga(QYKs8rR)c~c2 zbq+qoFPG_0(@+~wk~c!@6}<`sQOjW`uC4JE+6;^6Am7P&E#6o{{KS498ke1o&oHN{ z4R|K_sqMuNh@UNX2_Og;}$ec_Gdy3gvpaVSJ~m zpWaTKM1KU^@6SOU&{C=q-BcL`re|_q!znkqx$jIoKzk&5!A`h#U^Os|s@C8kamQS@ zHD}^9Vkq_NM$aH;C3if7?~MC!2dQWIlsexb!yWKsSU0u|x4_*#&4h>1dO}a>du;__ z)UKl6v3sRJvIV(^=e=w1dc)mUF1tRPCz|Hq>ONETKhZmIDdGh@&aA>0aIXIk%Kv>Q zcAPbW5S9wTeLRNl%{M?@Xm{Z|$DnOT3cxKKhp(cgxk>0+=6kdboO;rPTdl>aqt))9 zEg|~XrZ^l7KB00s35U`Rzj||dQ5j%}m`q$f`Q|g)Ot=SMto;!;OM6nlY1f3a%yr^B zs(>Y~eD1V-LhYcuZT_B|%daqR(U8)4!R<*Gz{OPurPkDJ^6Zd8nRwg3e!|4jVa=*l8D)MFz^9`z!e+-6LF5{L;iWC@+yjB|G-1B zjrj++a}1}a8W2M2GF%7fB~j= zbh;hhVVUOr8)xZRq^%@a~F8LVuQi1)L-vv^Ml^(r>y5rlP6N_gWg?L7#!X zM*PK3LN%z>zERBBz_0XoOk@mY@a zs;9&WV)5HyaMy9O5zY21Q`mv5gYs6LR4nvFHr<`HOs8|7!T1mhGnyWQjx(RoJn6lm z4Lsj)k$qcLfFYKUfH&oKL2fYB!zZVImcHJU+ z40VT&KYinVOS_nfBHKaEh`Rmn$dG0{RlG z^9Qs|M>c{9OfH>Gd;~-3%T#N;SDPts(_f<$h?uw`~5}+}Q8KPVt?qu3IlxNA3fBtnQBR=ilr5*nw1E z@??H)-d0-#%`F)L@6f*Jul{M}Yq_T&u}&!;;HSLV*n~Xf#6kH?t zirZ>9HMxAR|$$!o8d(bl!#LO-WG6=-AXE&tO*%dLAC){a6 z1CAwkr+aEs+NQ1H=NURQiUzZcYb5Ui!haystr+4&-A+Z|Ud#%8k=j#A5`23Me_p%! z9YUDvjNNs2wH_gewJ|j#X2~3?8g12Ml!y9B!pNJzIG>$?Z47yotw`rGEaCWZSvJns z9nvV`-0Mp*^ieqwwCddg{nQ^5GZryrD=&yk^-roj8;oCa%^I(O=gB_FD_~b)8>U76 zGmrZG*UUaFR>_+f_hIv-jr3Q;ZLRJ+Rt(W+>^xtm-2<9c%)k1TpBe_x! zRDGteXZC{f{@nJEcFGdsq#keCM%8uQpfj2WO3iK8J|AE%LR@L9_yx-8L*{a4HD!Q- z^jf{k>;6~oqjkNp%5<4~t)H|H7axFyuz_yW;uv>}2g*nf5NdH-^)}pK)luc?Xb?UM zPs!iRB|;YY)-6H9a3|(RP(Pija~NCr^;`$k!q7_(%G&3>K0J=zsy0(tZMIKyD#|9B zrW*?2d_GwyRc8>lVkNbw-5gw#d{3@Rf1#_s?O}KG|7Q@1bB!=`Y@}rpyTl(31sl-? z>LERe*#KDP7NPo=9d)htS@z$3Z>mha_^L!!}X(k{gXjR;Qfd@ ztu1v>|AOtbow|cl;ZFMN$EKhLbC%?>1iiVIlo~C3B{#cg+BNGJzP1t%j3@&?8K{%@ z+z)Vt?gyT#I_WgWF}YMD;2E;nG+A33{t6Wu;|t$bBzTuoe;h&?m^d?MLr&5JiP`v{=HLGwVeCg| z%gfOj_rHbDl*$Z;8(r6aK5~7iz1x(KGr#0GpCTPZ8B&kvakM9Rtbb(ARm5-!CASeP zy!#f&CCI@)VrxDX$5n=;cPmKX!jJdNe?Kr)beuAo}xQKVy`cc*Hf{e;i?u>C0$(e{{q*PiTZbV2z)j~>&_RbA2@d*b6)7-J|x{KFc*Nh2ksXroT|atO!T1;8N3~x+8Qm`d9CW9;?@0necC9Rq~k(br1O* z8lrQxOXOZ)>4V9XmwbU)&z~d4S|>Qnex_x5EI*0~V3rc&`)6hYd^7NGsIqVA?%Wd@ zD1!b{0))ze3=NEj>y+0%Z;zC^gFW~xwUuy8=9x$8Hfp;#j%?q3p*KFSv|wVm{dn3n zm)ez{Yv^w7WqSY(B<0#roeD-#k5C`>9a4P4B>2D#zEqfQluo62B&K>A_n`39gNBo?HeVufH+s5vIA{eP^RL;KhBIzS^81V=b&B@? z_lqg~N45b)X-nZm_OFy*Bq=h>yj9Rq4?3xC`-m)iS}j2OxmSg7WPOJ z`2U~D57ioCAM{dNMXw=~jMkk$C<%t$%v#(B%?2FdhhGvrqzvU|#`-#+ttZMLY+e2r z)0_5YA=z}%pb(gtmiTXN4f+qCqynj@ld|;_N;}dTJ za{TvH>et(ab(VzmrT?-WgvGEkT&1<)YZ4w-XBbAvq|=DkDGe8cmFGy39fqQNOfKU^ zPt)ho?`c-Ll`)T`3i=sdi3g1Tp%PS^zfixY9cbHyNz8NktDb4+s}XaESI6*Xh7aFX zsX^Y+s+IrAf7UnC2VqmD8csyHQ5Vr+!%9G#cQ`-VFZ|e(c}c~1_Yh~}=wP8A*edieK5Y2AXsx{gw^%WA?Ui+*Evd__m4@H&MR$=sv1}F5C_pk z;$N;BauecYW{xfmGu1~cY!&=#(jOr>~MP|oTOr?#xRL6ibvyIaF(#LAIM$g`-n1@y-KMV z>1^tA%)VJWBw6?=DxuV)-Cjxk~}VtG~hD!EAOsY)W`} zMlOupawh9pMlV-lV_s7 zPxN~7JC3UFJqw&RW!4$Y#S8zj9%>HvqEiEK!Z40zl{w}OR4B36EHJu#KT02>jkqtL zm72(`Y*jGbU)`vjQ)Ff*_s8c2?qa^lWYFW4YncnlY@&wt$xM+O zcrVgWJfg41Qy2@S6R-GKJsoz_o{_WmSigWPq9n|q$1UcxTECSqyd0-E#DY2D2;onzge z3(5TQ5@hL{A5WfmUCZ%F^0-M)%@-Xs5PHOBCc<*YSGzIjtYxhh@Z*u!G?_)3a)u z<3D}3$1kNh zKwoq;ho_isd_6XY-Bmlnco9tNca)kGhjxcO!zPelL~6uFdUeKfC575i!{rp1 zsqA9U5g?OVN#SLqu!$nxI{G;MKX8?FTrfsN6elgHyT`GB#Vu^jLr+I&~6CL6M%O& zUV8X-s1~U2QJa1Ocy;+*x5oAe;ir1qey*|xj+*w{&_wehOmoV?(98Kf@PsJ~0?&tV zFW!@h)wfWuT55QyH?qDI$5K6*#d${QjceBDawc8dcK-mok^Tf2wlp?n zo_NdyJ3o%5W>W3-1@9i+tp2Kt)s7(+;Q)IIIK zIlX+hy?(h#&&s%|glaE{)6oCxLrbt!)dVpAUnKw$Z3U zDiGYHtN37M5Sar9X&b0X%yxD)+^^I#ye*agh%bdn1(P6g$lI$noCVs9FwaZCekJzXD- zr!G<|VWV7tfVKnG;AD^z^fBA&U%WzECH_(SFS?ldHti}js+GzC@R#7h9;?s|9rzeM zNXetT_&u&A)PcIQepsBx>4h+drZg|DwH!j9k(US?q+s))dO?OwQEw6L(G>)_MvG6G zNJ6=5DkO95=nF87?lr#-*`T&jS+eKc%WcLwGoS1j&&m(5A2Wj*7j~TKz^crxwkODw z^oF*RoHLf_@0|apd%!60S{&{atv|_}P^wXmuiUVs9whvJ!(@9bb@rVT4XrZ;pAiGJ@s?x2jWhZgLRR`w)^K@~`EKbm&rH+R;`yeX zmK@V}*!oIKEs~D02Mcz$QO1tH#~6|bm17|&#q*w>S8DO3-A;`v`2X|oaMOG8Vng&X+Emep`p|7PcqTT)4nb`|4ZHRJ&j@XH9^id=@|4*q+=_;?!Fodc#K6 z1N>Po$lN2$^GRRAd@is&S1jUXkIU3Dc@I;Q9j811G2lLPT->MC26GH=mFD!kd%Zn% zZ93Y<^m+;A4Bj1r_)7}k+Id59yQj~_W=%KN#ja{f{!qz*5 z+gmHCCdB?$f!*0QBzYJ~ZPTuexkue#zo4z0lba(w#8y{XoJMKz?T@gG z_^M#lJ0}@&d3_65!yK@yyiim;CD#V-0h7Qktd{4wz?u{|uJKAejd4mVs{XVHaE})5 zu^dMSjwNQNCxnl?or~6{wH^uPQdV1{*h)UBS7t6WOZr}_A-?jnxwRHmkK6)X!N72g zkqsZyyHU4-z4c|NpJ5fn*b>YA`OwslE_(>Ww6nifF2SvaecDyLtFnhssE(^+Wk&l) zy4xK8QeK6z-bOUl5Uy_l-$D4dk=jsoy#O;Ul}ur*z84&R-I#9MWIb@8MN|{6pVD8a zP%@h!b>KFrU)7O7lz#;Ta?jpnn(k|2`Ax6(XqNqwUn7?EJeZasoM}jZQclc#3|ex3 z&}r~bdJ@^p$#^<@i&=-C8y|VUViJ`ie#rZaJ~I&Vd~U(ZUgJNxh9se2q9ZKN&b@z!4vB=rQS<5oYO5& zcug2>y`do?jJ7Ew=o3sFlOjf{f3m)H{|2_S`Bj8jA*uD~WBG%YP#P>W>|65tdh%ug$ z_qUzqbw$?=o=gk1&5bfH5qz{91WU z@h1CYm&rAXWKfO7xbmTXh^rsT)B9A$q&?K@kvw zt4MZ?6twccse?jS!e3uYa^8`o0baqXmOF5K$6lH*?`O@Ux}s-rGrCl7UESsCQgyVm z3ED*66OO5A>@}}^X%{u|OF!&P9VmbEaH!33xMdJkN-q^!vtuCxK9ZE=61Vcm!|;2} z#bl~M8DAEXU97s4ZU^tcgjz0WVC<~!*~$MP2|x1mff|d;?$-VRtJITZ(~;)rs8ryi zf*-s=Jge#T&%==r5+>GWkL#@FyH6QkIT?y!mf}RWMzG7*U+78dEb3up_gGoYU~8$L z9K($f_yiy1QVH*C3LZk8r9b15;v&@0(41-tE|}_{jn!;QEjCp_zXy}NAzQJ(Dn+t@ znhMUJiob-k{o)Oeb0F~;f1OJQBRJY65+8ka{7c;fgZT}F58I!q!}rZ-ucgynsi26f zAR_3VzPa)YI90R<+;OH;bD`=L9DW;bCY#>=>M3?0>Dqd=&||G?YffVFxmcVE!Z}to z;dzezN-O*ffW$LgI~=dn!jO5(yp@`Rk#sGPt#sFJi#w%c&zHt|A5JpM3&)s_I^UG^ zm!tTd-ly2(^kAl&;$3kHc=LaBlZ6ZH8Yxt`XkP%@Ff1W#hEc?p>J#hkayW|e=r}t5lb9>P(nmn+2x>a|rL%Z`AF-N^rX>sU%$yvQm(P(kK z$nmbqX#NECFWi-XN^$ZlZKJ*N$5P=lTG8#elFe*n67`#`r>#xd z5hv?D-~3R0Lm7TIg%!+xexb2*zkW(W_YI8%-#3p252x!v#c^gH02$wN=E zT!$-312f)`0(YV^^4!ZIU1BC;+NaK9IXl`F&o_41xS>Kve5KkZzikygUGd;;`h4X# zw+e4jPEg;fK54Z++u&m4%lz%Qfo{2GeV9TD>j9>Q?t6q*u618B!ONF34CN?8*p2?j zoUjMZnnvgz3-z%R-*TSpd~Gz<8~8I%1({v4v@QD0=H1_r#^MP)ZRO*Ii`UOU<>~j-p~$kb>tP5 zhg=5#-FjXb75>_u{{9&CNzO>M5wpS+ZJOaN$;f0;>j?S$gsL#xy zK@aKDaEoy_TV!N?G~%dFF&9>>s5T=bNs+Dp8o!_?RIidZL0QW9x51H7cmd<(Q`6PD z@+E&+w#Y}dX2Mp+Y3Rpf0&nh`VGDKFIo~zPIMuSye*|Bnkw0!)GM9@XE}{szm2EyZ z+;#RgPi~5l+*#u@<~p3o&ev&Fm9|Z|32)*R%3E`Ps?)m*3dU>Xr8_&Cx`{p{r~W}a zY1%=iQC+mIXui1~5Sc>R&z}0Cwq^8JthG19a>eKnnS{=oTv+*WJfK^vjd45c?V5Ygdh* zDgw*{t-V6-I{u6<4rp&#W_gGrK$4nWF~AaSy6nD09AHW^Css|UJWzbDEK#ZSZ~Hll zTW9br9qi0j?n!=XO0#~ScQ|XpuWHSLH{4pQg{zSEqn$N=`2#oMcl3{;<~53oP8IIK z)^N9>yYP@n@|Y~lQ!baTHH{K;rD~DpvM;Xn))sE>s+xLXX}hhxygz-Z{e~P01}bs3 z6x2^Yraa~W?cHLKHI)%8kY3K%QHji`BU!VnG5PJOvfbmc<0-TGvd#2(=|QzIm`DZV z83ILp(B{Fv&`K0w;Ei(()kF7k8{iRcG@E75Dtj+1q;9ciTsJ&QEL$68nu08A9NWL7 zeVkjKWSCYygAOCf*SqFj>c`5T3MktVz2f2>2ROl z-+AqR^-;^Hr*$6SHBw^9OGB~No33fdb2`BadnZDv{$-A(cEVkh{}qa9%=S^cK@wfk zJ`yuPLw-}*4HL(T}<%x65k&`2ih!vF}20exE?5QdUupIT6Ttx zbL2Yjm1WBvO&`!z7)!e1`IYa>+u)Q>Hs4jY@1BL=Hu>#+mH#v}7C#b#*rts4CU@@} zoUeD&kR$dwY-II5USr93GNBAKox%niFGtKW4k@n&-U~;W#)JzM;hJCNAnj(QxB;=x zBvdT;UYUEX(Bwbhca-IgYdG%6|6o(`xv<8SF`mKZ)1g1Tlbn*_k>}*n6$L%b=S|)0 zZ(L73{0k0wbgtb&u(2Jovq*#XFmP$39o?#8_*l5Ayr^=repYIVMpNfpY391rS}h#S zvi11*I#LN(7}V0(t-~pc%I~J%Frjb({J`@_(ywq6iD{Ync|||w>cdW1P(De=jK@j0sfmw=<&Jt&C^EDL zgXo7!xuK~sI`G?rOSXOVFEv@sHMKUL;fAsiox7JTHSS}F;~j=UZfkG|yvH@7Zp+R2 zte>mIWb({u1%gO+bW5EBVZWrFWx?g~>=IM2fQ6w~3sB_}LmD~LG!$!EO2veV{bi#Z z2Q0}ki;eAR3v)}02S-lNR^^IZ@SbX~^pw2~^Vn6~DlVA$r+6L`)rsu4;^uz_> zhv=1TVPG@qtjSZ@;D4SrXH-`v>A~d_+~oX!xo)nL_@i`3D*RSuYAfylj>0J=35`@! z6#tLI8nwdxsk+D5jD@j!$?$A{{Uf{vilsAhQc+*nq;@o$3Eoz8g>kmU_S=rL%0xr- zXVt|Oyj|6YiW6Mkv#ap2 zF@Ot1!})`HEZ>lzq z%O@gYlzK>Q!8Vc~R!)0h1pErTG-J3g79+){m~0@WHq8kBljTFTke))?~*+s!UwVDBd* zQ$1xlx+)$oJQJP#ZWjD(=;OUnt}b13-^~u!OQE}Y2<^t(vTszl@;B57{QbnxfG!s7 zRr|Fy^u3bhe(NC1>~+Rf)%$kPxCSSJ`6{Chq9VD0uMKK>et)vf$IHCnaXCZ(MJLN` z+&H!ebwf&Lx0(8J$sn9vrM_gx5(aiMcqm*~5ApJU7CpgeCYg8QN;WveR#bdLgA}Ot zVOz(n(RjTcIlG(zYw1jxu1YOBZ}P+o@%qN${Cr~`Gt@r6D$L8_y9ImU@r3= z%`b)S;D1gFHIzyfl0DsP6qa=nepVcSH#{FlSE^k@ZmZ*ozqSPh4Ut?z$UXWon`PK3 zbpRB?mA|<}pgpDC^3H-2b;}xB zsph}g!5`2*sVf%}YKpL-+meP8JE4-w%EBE2Ygm|f7A(Cp!{WM!#E;6 z(IX8f46kty4B*2h4;hhP^9$H*wpN5{v=K3C3B|)UhS}S&qG&;$f8cD@LS&wLTjRkv z;2cZ&@+gL}lf1?ipVt|HA?~KCttB2wSJonweb2i2{P*U2^ml*uN1mHXpyp@yn+SL3 zs)g1=STuG+ScEONv~lQJd)m?9Jk9YZcTc+-wUbJT(b{pG{#}%sm!cdW5>e6s(@M#| z@~XO(RH|F0>mjMbpXHr#En`-5hnuB0`wa|Jfw)PJ+a4&7#3_JM?L~YQ*IMUe^BxMS zt6WFbTjaia7BHTKadVKrRL3=rVtajq=8K=JEv{xy^~oPK4IFn)d|_?G)q5_~s(8Pm zfyfw{EiI@B={T8~Q@O}+puQ(_fOre%%}y9;BG6No!1~1%73$UU1nx@vmHJlLa-9bk zWxA(BU~f(-60fXd7LzEwHGE}{-GOZUI0Z{3J{zgJmQrDDf$oxJx?0UWW54NB`P))C0!VIL zG!mmVv)^tHvpm_KO45W z;9~t|K+GFwoX$*l{z-H;gxBsX>tS(Y?rDz6qV(G3pz&*^yXr$#PN<7=HrQL|t$m;x zZ=B>b04iU@oJ&+aIBnGeH$upePnWidJEa^TJ@JVSUA0|_l}HPA3ty>}OAc?H z_z4zw@piFXveSQ@YrUZ!PC^E$FXWXGnVM5&Ifla)MD_DWwEMQuTW{?UnqZXcni=Sv zhDXR-eU9pH)RDbp@w3Ge&!Yyqd{Lrp33=TO{k6^Q_S>D+FHr4vueXF%pGUPn2CFJ- z{WQ<4PaH=u%hZ5!pXn{%#tq1v>YF7MWtDGQ7~Z0#HSKGgH|Vij^%IDJ$`Q7{+C#P1 zPV`c0=8Td8+j4gs)ChQhR$rHqO8X1`T z#;GKzcUZ5vm$UH7Tv^Uu*nn`S>T4!f-TR@d`AyFsnXetwoM4xf(vV80nm z=(N^JrX<{=)N7Z!?Ny)0y1BQs0y?}x88e6*+H<jH|>9lr_^jhyI zQ6;9DActrn#?_NawTu+AGmfLOroMJbL{IA&sg=^%Bl(vc;;r)I20P^lvy?(KgY$Hp zRQbA=)mj|BN`F~W7*ZUEJafFkK7G|mHKCzr!D4hVP+4g0A zHM5W{a3T;#&=xJGMGBF9z+0$A?pk{_SnFnBEwC^CE8>nL(|*>}41d@ghbTu^ZZ9)O zusf=1o2(v%o6#%MCS5jjl}TnkvR0undP3)C&9PopwlM*s#ZYUwVAyH9U|(;TD=7Q} zc|LYm`x9--Y$f{eyQN>iR610}TejG8tx4 z-3lti?kH}^86^?DEqL-CzyOGd8L&Gnz@CRZWv;Oj*I8iXLOelthe=i%RMVj@bg7Un zk5sj@?6&^2*mL~_ccBS!K4_Vxxh)fIY#YypNeo(O=Vlvf8^oN^xab=xsYI6cP{R?c zhjp3tHG#+x*dqJkmi4y#nkCFlwvF7y>9=FFZ67BHy}9G)eQ}?Bml*1Djk(3X;B%z= zN&@hf`7^h;E#5bwcD*@d$!6#V*qt`MVc+n{q7m(j?^7GBt%+!+i1B032${%L{b=hv z{XVF=>}c48<`X@2K9(fyZ0mbl3LC3*a6INXpE=2;Ya8jV3T+iYxK}S@8cgrmRvZC* zQ~ObZ@UX38(wJh;I59&`R@qE@Z4cRn8XLD)-v-%+KU8065Ug9RiB>q^)?7CdUGAFN(8(HP%_kZJFRYuhuOnjT!qnK_vYt|Zqh8%gmmwWi?19A^ z6>n-vh!LvWfJb6)iMPgaC+*5yW#_%j3T`N8LhV^#d-VS=f8b4>IFJ zF%(;ED`EEwBw|xJYL;n#@K)hAa4(l39}z!{P*QD!*i&3FKMBr^;#D5_bF0O6p4+QA zi+#kes4t;r+e6zMW-x!rFa>|Cdx|z;#xYA(o8Yv0hiZx1q`YL-%VW{As`=<*^c`-L z?5r(p`OI}>6uL~;T8HyftPZvt!YMStm`?1|Bv@N$*4Un~62HiPw0gWD)8cPUXB44@ zdK2D}Sgek;jJF0_2QtBiv-ZWhZFT|HceZ4vowk<{U^+z1(64H6v97mvvdz{sk;|O> zJ5FU@3uU&`=o(3n%vASPxoeu(p4(P4efgh?kHZ3!lVzc$r?u2}gd>Ru+Wy*_hTifv zYm{xUQii2!QQe$|g_a8q^$i`Zy#*(e#$~l&ke`D8m$WnGEm)Wev3#)BSXwiCc@JM_ z%_!%AwqMqMh)J#ypCJCKld5snRopkI`%mH%HQVL+s>y*SW}2-%dlTxjPodr6e1{}@ zA$ysjEY!UbWk?3_V&T|oEF0UWQ{yT|&)13vZ z)jp<|Jk~amspW<%amoezr|Nm?|7=%Xdhx5o1Eyw>9i0X7$5Cv8O((da?U`rnXK@j( zB?9nTT$YQaSnfNsm1`ng(Ta*aJ_r8+=;g2Ye*7c#R_PzWu*gFmBW?^Yh56J%-D(@~ z@a@n;=wz%|+g<*_{LM!2z!{BsK}42^mm+6`7uExejj!Tc$v*(?&ecRSKGqf1rc7fY z7RPnI>b>d|^$x>D#@oiT2ZZ+m;cCULstu~n>`Sy*n#iZ|Zis{I4fz!x(Z88{Yy{&; zH09e0UDeZpn|v5?&K4q7*mu%R5ax-iWvB)CyZ!C{vg%IH~*UW8!Fa>RkjmG=q zm!VShq(eS;%`jPLj+}pF11y9inRk~;fjMad zG6G$M5^@T^(=bX{EV&Dh4Vz^HWO%(~vy@@_J6sy~#aIe;`%8e4E8ivvKQNqcPyu(V z)C-kSHIBkAeGB3Rxa9HTCK*G1A!=-{(FlyUjf4}1YKcOhDi-7@YR8xW?I(^u$-gvS zP&%Mz&?KzEwuDKAlihsanHdLsmwxy@Je(iP%qIRqeiGA7M{ytI6#59YnSOJnu4~wS-ts zbYU~Z6)ewqaGMMT(nWMI-jAq4eb{TrI<{7Lhn-QrVH+?l{?hgfJJ0wc%bQVvD#pwXBfUkmun*=%<%SR5x4fEIQE?SPpX+1?~9gPWZUX*3dx zx?-a-H{6Ijv*X#1u#;Di!6&RGiwyGW~?~AyR_yBP? zFv9rb0{*}j>x46pnb};T^cr;m*6BG!l{Ue78f5w`7P`w-kii;>PD4A|=4%_VrAz_b zUz`HA$kUh~zSnkK69%}t&dgVcRsO=AiF%?tGT6A1S;=(ct_rTiA@mz|2@h26g0`_%8)IE-8^N8Ix)T|8VWwr;pPE&`g&Zicy6JMNGDCKdhKb#v zMkfKA0NjIVQV^P=_E#NKJ1IRlXV$=f5ckT6;T*C@i)vQkF9cpr=e>!hU^^XD40;#o zjxo$^aW3o5okOgEip^x}r#2|!-b@*k~ z7NWI!503GKoQFK)_6c)Tjle>j#%hQvxbcfqpFn^|Sh~VbV2{B5Do~l|+*23;+Ivm8 zDs_-Y$PHpC=ZEZdTF56tz1m~snOrW95m$+b*j=8jf1!~PZ>W{F@=sOMz&_t++DUp%0Z_=y+CS$MJ6V zN2SSd;-bNiV#ic}YKMHFcITN?qwH0#A*+#i`+cTdX(~TSxF)O<0s!ggiy+Gb^xxJ0 z$@t?AUM@akT{Rsg85xMV0jsE0NY{-( zKBJ4cg}~~54znsBg*WVT;gNg;sxcF!H*n982n>&3fOWpPbXt9md%&O6*Z~gF2IUqq zQkp9kYIpN`Z2;d4ct~QD6o`K}N?jz04;EiYg(4$uL!AsKG((uPf9w)s2l?!mksQdl z8pxed-<4yy&HPGjmC_n&EDmGu1uHv^dx+)o2F-44C%zfi5$)MSfFF5@%fKRlp*9rR z43_eSez6b--nW1YK&GOfROjH1_O5D#t&`9l*sZ^7Rv}~1dFV1!V4&&)^7U@l&Sc-2$8l)<%1v6Q&KPTB>&_C3-GNmLIOEb60p9t@AUY3aCs_WX5x~AwEowu|InPu#uJwc3VFsqkvXYyBk zU!nXCyu~*Ue2O8;V&xnl@!HhZ%H8OEU>)fK^|mv!U2W|N1LoMMl`tf%T=o=2s1iPe zHI*YvSq*}^U}k;=+NXKzuRWO%Ay)kbkb#}-K0st!fc6Kx+rjA5ilZejtx?*SjZ$n6 z_#iY%J|WhnU1XP_>0$@$Cl)C?Fj`=_n1*1=bSIww%aDyfH@?<@Q3VB@c zXgQkk5848J%d`|J)?$}~&gTt*6Ov=1Gn0Y_vIW*@#w&zg?{Dh)yT*7AyQPf=zM{^J z<^g;1{;=0VEb>;0sSH!6i#|}5(v7J7G*4OxJZzJH4b*4BN#QDGhC9U*7}n=Qk-ScIO~38*_yV6pChv(P0g6;hC79ptdP(_=Z5JLB)@EiYNsd!K z)s%~=$bq8c`7$;GO+^JjHE7R2RZbvN>Z%O6nmg!R%!r+I4Z#}A3Cw$cRmp#D{UCd8 zRwS=nm3slUSx?B@km@GuBTVURCsBc1u$NiESVy8I_D^CK(hRCRpFma8esp^AEB_2c zl74X^$~E?dYB~BsT2L7vd{(?Al=JM6C~)At&TvzlQ(Qj*?)??Ck=qvJ0#T+~M11F) zVkH&zfC;t(+g$t26v&0+ncO6Dz5;iy@=s}mtToIn9swRAFX|#%r;MsF;<$#bLj1Gj zX2AU3PB&j3So5Kwjq)A;MvOvBk%8ddj-rn8CcYkF%iF8`+$Gk zFi6Znnxoz7?-M>K|TeGREs5x2Q?R@ zp7Ly@2ez_)0G8_hH<215sywv|lo*K@e(|%hxY`tA+U<3j z7O{(~e?xl7B*w3tmitP(+$Q6RH5F20l$5urhUlIe@6~chMcw9xyTWE0aQU*u_RXLY zYK3O0R3#s328_t61J+Ao>#Cl_CfNm9sva*~B_fgV^7F!LY5(Un%0V$1xl8C!PMRuj z(Crt3G=`jU0r$COXaaCL1*#Uy9&9|G@}{jaN1@fI=^tbiU<*ZIpE@TXE4@9k;-u3= z7)~SkXauGO?|4+o6uAOd#l7e|7p7Vx>wmpfdq}f^H_23VoVh9;!A{8i>&hz1*-$(L zs=ZY5%G@o|Ate9zRpDfl9`Z`mARQxq*ttsU0TrgU@f?`>`D_dRzMGRYE?ceiz~;gZ zZxZr1g z5)Z>7B@{rV9r6}ytZ10>7R%7T5=(S#(Q5UV`U=DXUZt&c9qaA&R>?-%=XaD3;BBzt zN;sXAE~)+Gc~75MdPrW_8s#c50POna6tjcB5BPp&Btv%9J>Mqc&IE;`)>CkoU+^URMk|nLU0}u<3GNBIU&fq6ip?IxB{o zcVt&!gnX}B!rc@9Q?`k2U-K-bimUXqZntK-YAwP5TK)l4D=dpVi0sh^@E4FY@8(GL z>uK@_c@B08DQ6`q4efyqgd61u%!UkA;x6As82Pl&NFGoS$G-WxL+rz6Jk#oWb5><9 zJ4=?8wvfGAD$kHIg;FaHryiX@)~GH7eniJM=rpI{#8HF5{Wyb0Jr=jW8BnrQpb3A# zGIJ6apsg#n5HsWqr3XJJ1j9!2tEKVEpo*z}N2Fg^0`W{)iaX)F@>*!Bji|U_az|#0 z?y59APpK}Rp|lil=<`DoxoCD19>Gl&mmo{g6uFIDjI_ZQD%a)X$|z+$nu9&HDy6$? zom@KMe+v(k$GEn-iLR4+mJKhyChb$qg~j3s;cJFf>CN~l7c6d2xq0?CtSOqTIrhWH zw#4?IvH*Y1Uc>u;OEI+4tkC?@WT8*d?y^ywc-r2D4)3P zRR6x`C`0fgYH?X6<@lnU+OH6F!2>6{CeDXW>l;pgEon=Ct8GEPi@!pqPba9ehg(qp zd>H$`_M0s{N>wG_q#mDtOD$>ji|XJlP}hIzXk8;W`maubbcs(4edB06eY-(2H-9#p z44Gd@I@bqK>A8PVXL`<}8YOR|OtVi@*B_?B^Ep)V2##vET2GHT;YMrCLG;K2vGnlV zwshb$)*L@;8|mH|p+*(OQd;v+s<3Pw_2$G;YHGx7%E{$D)%ZySgY9 zx0gY*J}ZVUh)SS)tTmAigAc;J{HrY;-qwj6aeou3YxIC@*w#QcJs3_^6i$FS+(9wwtJFwM zIu&)}D|IHVj0(Si(`%C*>CsR9=x8O19^Jn!%wafryWuF=CbNjl*yu!ET-_AbZZP#d zV<8of?xkLIy8~;NMSU%)rv|@P(;F?$w2t$K=c4KLf5+3;@DlT+|2C6_WmfWnb1bws zg8KYpBUKr5in2eFLf!TKN^P`Mz+7N--@A6uz9;SL7D{)x+?1ZbJAsyLR`YZJS){4p z9XX{(5Y=qqa4I)(4Hc8OhdOld0yWU?In}Q27o~PWKz59DN@I6=Tzn8+H#U~O@+}_b zaSfRm@|DbT!l*4$2=({4p;Y&?o2fYVBz1n!4Qki0bgJ{uLKufa4WDkJ2ma$m7mW^} zvD7H~{e(8On_wXCi5tk6yx(Nat03z5rryx*DynqKVJhI-4QgKS3#v&~9#s~~fjk=M zac@0oDm|FKSQkw*zuVBwpItXko*7GS-M@|O`4OdN*8Y*7mDG;o2PjYCHf6Y#0kT{| z%^ImtJ;xYnbL9Wa|4U6%I{03~|JE<>)>?AHgmiLBstc?eP4#G)0rR*GWau)r+3yW? z_v$ZLy9Ubrj*1TL=Sr{m9sqJ2P0y@tLzjM^MixYUfHjn04PB`X=Q>fBwoIkIF4{@0 ze|3qfUH6#MWc;L7OtDaVzo_WTyaPRGs1F^J7fC<0#=-mkBJFxzCCl#Akoercg zDsub~O4n#THEO{*>g3HAAlKih|H^++fzuF>cLzEuz>jWO6G^Xm)RtaFJU7Fb$&pRo zkZpH0q8?TDq|hI$sXZG&{tw-uu5|iHbvar}^=*vM0e(h$?|2XTYDh3WxJ@iwe=UKw zOmib+!#9EL$R>ZCX+-T@-VN-)G|GF~CTechNh&w%F_qM{kZRl%p-r=m^r#{a7gN(I z{m%zydZtqleR@_?dZ#@JGUP`N&s|T>;og&5!+fX(y?RpX;}%ep0+XovYv-xRFR!WR z+ke8EvQ(!zIy%3XEA723fc`WyhE5DI)8mHcnkVg?P7XZw25gWEb)frSRFh#VsO3Hf zsFI{>RN%IEppV612NWuOx{*GS=|NwA7));*+mz1mG}HS!7|4~KSCH-Mo|5a9IZ!V( zW{{mp)J&%>RAR^(s^y3$V1sh0_M@zn-#QI#NOYwmzXZ|)kHx@TCcvCTk{jF(lKuAm z1RLy18L@b(#AhOPm);C|bc(_krBKeJKf^f6sg%YzjU95J`Q^TJo12mJ)QGn5?{c#d zn@XlMzDnNth`?`~Q`Ve`)PrN2sTIOWDq_O}nAdNhOZ6bf8ai&G3+PS&-6%Plp3)

`v>nSRAUJ7*}?=#r%VrpxcL_Hd6q)U=KXlvIH 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

gQ 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

)++t!_L_c8kJnum63Wr>9nOAC7#nQyUt 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 z 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%0AJ;C8{B^lY{@6;V#b4RRL$S_-Q|IBDHa>o@ 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

6kuTvjrUZ=?# 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≦_?P|n9#q685gxHZd3Z_djd+{ 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⪕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%0AD>lpg0qVBTz%X`pNi#QnMs}?!z@MTHrafp;c~q{ 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≤R_ZjIKUT!le*U)nJ!3_T3e*{l74dcO_y4w75#?QDMfBCju=6}}Qn1~DGxT-A z-y!FbbM$wJOY(h+6+yc@V@1U2u_7J~v_18-|99zGzo&)#4viI2cuCiD_y5s1z^{MD zSP_c?bq4u$T*x>D&)wf1xb{yOD?<1jc^`}wQLOhxC!hcLto~~c{tn^u@<9KMuy>wk z{>+&mxCxf8teM%jco#t~L{ABp)G1=EcQDwIj(_;Yp=k1c)_586B zTya+|MpkZQ{&FYMQ+3{}Us8NGR`{PmNZw>mk*)wau^W(=L!-vE;m#eD$-K%kv^_OMaflo5-22nF?Z<>lWs*|9)=GwBag2a!nj& ze);pn&L&5!ZR0HaBYJ+=dBOa!+^>9G{n`Am#pH*zsPK;bunQzVEWR9)Lt{lCKkW4( z`C;!4S!tO~UFAe$UJMzLRe_q)1 zw9dS+i-UP#$pImGVfWMbp?P8D{(kbMhEr!~e%Qt8+w;S2rv07yVW0Tc{IEyaBlYKp z?T!`E9V?-$_`*$$aRW~9+%_z_^ z%y#nETF9X)IB{IK8o!&oX)XLOxujS>{#!G<{Jm)O{)t`?iC?h3G$)bl~QzaGiiC-smo)>)y~ zqulDX3TtDa9z{Lnn$qiu(=3*K)Z-@qTT4vWdg251NF8c_*f1TXEwc zSKZgh#II9bZGsv_#)|j_JSWfot+67m)XVwnVny`V={HB-eil__J89c{) zZ=#=u;5pnWgM>YBZB2~%)eo1S)emwWc}3vb_bOHd?e2^fF+z_O@pYi>si*zFkDm2= zPss1kSP_3r?0W8gNRVIuj7y^kp7c1&BEs=1J}Mcu_C0+A+aKob^84>w(+8_Jo{*%{eRC`5tGmAb3c9l zSO-C#bq4zUpE6d2j30aP!B`Qa^}guj*}iA>-@C!zA@NQACCIbz{^T$<$q}x+e>T3! zBdiAoHR&=#yeHnQyeCYq($B+Or6&X6K84+?0-F{4<<8fp++F(wHmjN`_tgFno0ZtDX0uQJ zQ~OryAT8Fj3>(o&KEKKM&?rdDUk}a@%`|xLQ);N#1EP5M25fE%Bh>hnD&7)rQ0AxddfJYC zdN1Y2yN^-6!WOac^!0VmwOwBqp0?GhI4^0R?8d`WM>Y7N_dkjD4J+r?0V| zHui9SMzt1-TALQZC(A} zW!p|bgPNA&%g5)dTr)R2q2*&}5&KJudvdl?Jv^z<(h4mz4JkS;Ul^^<#gS^pES@!E zM=GH12Hwf1em9@|fe|(jb?0jtzI^ONh1iL{;r({@{>@r{v$Q1_x}8Edw1!j0e&}At z|GKRRnm$shpx)TSy+lRWRS>bxpdR5pp>>V26j%mC*y@d%`^8nWtZDSsEb4(~y`DQXvt^yM zjsBREWcSVCe67r*{j?|E5T@57wy37Kii?^?8gkM!Rg{p%do|@e>(~#3NQp@?q*wgtW*Yl0Wjrq*Qro`~tJ!{pK@zC4^z0Jw4y8Re+k6>)0k4Qnh%?3Bf`LX~b-YT@uW8D&1X=`3_6Sp3>ka1S_bK;2&6VTU zjGkwT)3Q~V^0ra#%g|oIvr?wJIK!v#mz>kk-y^&#V>BlTzsKW+*>2h+V=aTl!j`a)ry55lNZs2+<@~VegWL<1b;`bbDJ7fLphgX}E)bm#OC{tv^ zGTJNGMb_;w%(cpyZ5Q&Sop(8XdL<9_ z<-oJ0XWFwA@}LiMTgpauIOkGcK5{-EEYA43cSov8&r()0a_?rxcIzpF!SbbZyLAU; z^}IF0w*6oG`?fn>InPF@O!_zBg!B*f%R4&nQjSXBZq4W2d@aJ}V(gmWJ)v7A4fQE_ zx+0Qyss9x9E0M9#t)N*w6k!ve%*o94*1nspDMo`OCF6a*l_iBX1nnfWJ3(x~`;E!Y z{meTl`xLzUPFU-ki;xc~{X*VVDIM=Fg8y3$VV+)*uAE**l`{vvnRBN7jTHK0zfn2g zF{sP~lvhD{G8f(mQ^(!toNrR*BHDKfnr?A?toO+&=f_r&UBe0^Y^QEd^PQqko}>J^ zD%|sCm@DT^rE(4!dseqd|BTGdk^PURf63M7qRh#SjBgly;DYC5Zp@{>=OB0Vw!o*$ zSYyhyu;%&HU&8o2PyH#ZKPefXSnJY1v8LP=Vf!R7zA1P4`^Misi$^7@+A!+djee`* znP(3%PvPam(DF1iq9bSaMc19eGct#pwnf!G*501gG&?Ux|D9;A&5Kr<>3n4U42RAN zXq)=p&t*<+9mPA<&^z}cHGZM+5BykRXnpey#!_MiY&V!J+nqbCH#v4#xBqK|O?XH6 zaQnYz`gYJyzhLg(4-N0^O|6xFd1r57_8e$b#2$d($2Sl&z#?^0mRoq!(SV*|vbgyc z*+13MRpw8ntfu?(a-?53(67xi^N=mbNcvUy>osVX@s#;(g4bkx3$=visr2n!>X^jb z>VeO|LU?_ybDi~%)Um8*gl*XkX})Ff>s-p8tIVF4{{osTkaIEy z6~$Atg->XYJ_b#UK@IKF<2KNrI^EDHw2y0p&fqoHk*6e1!^B+wGprR&+|y$;(C4!D zh`j$H{C01gTA2UdjcqP%#C9`vPUH6|QGfSV#Itcwu z&>#PGd)6PhA20WB3b{{Pg3oN>K5K29_D!@qfkd+j45(Z7?SCk48C zL7x>mZRp>&MUdi2j{uf7f~#8F@SNr9s7+m+?87sM_vzZqoH|>G!ed;g$V2Su4@Q z??ewj6{Qk#(8GVHpC8(4y^(W69|!!!h%MaK!(#MYwe#n-DGwI4CZT_e?)?nkzcf7a z!j1HYUoVbEH;yyM8Mp zKHr0$j{L@F%-^11TU?acihionH(KZ7(qa_tAD-x{yN>#HQ=jYs3BO7^Ugooay4|!VRmHet zRxYqg|JKlNsalM#zfWV0S|@Fn@$8Y-rOp=3U#IBrjp*-Sg z<#J?lBf9$rcX4*(s<52K*@m27acu+oxCuOs3~FsgZ;ylCMrb{ZzZ3euHym2#X{Le? zcrFG#dR{osK5cGY-iPx>?-gec;68J$dWniDI6%8hWft3lH3M}WxIUn_FQ3xCmi1Sc zopOHZ@YSw5DO2PEa;SO}`uk$LUw>bMo?U~U?J6FST^Z2d!wShf6D@PW=4!iw zdUuNquq&_h)q*Ue@0B!_AUs*4rFd%4-xDLi1%_x{e_s_SH?jDNY-EqFzt{9u3Gsn) zrk4!##T&v46#9ESbqHPR63Rw@uc1wgwRl~Bk0~BdTNzjf1dD6n@E7gu>(R&J3-*dJ z&dK>KXC}zq$e(!UyVgYNO<7sVenzr;KmDy%KE?l5_q5k5 zt?lsgB5jdXydx)<+bKYt-@+zj6}99qrGxnHDp|pZ6-SWOxFLWLv;AYzVBM)9i4wEN8zVz;$4%LWK)b) zBXUQlJ88&yboh7C;pLqT=|fwI(&E+9X?Ul;YD{7JxTO6nUgX% zH!;4VXU4;KB9p@D?+W@#`soxrzf470>IF}tXVx)3pHhF0(M*4QYW?^0PpvubB-^Kf z@y&7j`^MkC7|#^}9sZah#)C~YC;nlJttOzuKT99&}BE+4OI ze}rz?xNTI9T$6jty=fHL(4>o&IO zgm>oscl$Yf^X7T@Mr6=TXpJvU*D*+ZadEcrIeo8}+X&ChVhr?k5ga6aaENi2ei?y1 zCjHCyNu!G$wT^(CA7iYTV4kYRTbydVLyKoGRLvL*J$`?(_=0kN=fCE$cKDRp)r^f_ zv`=b20e`K{%Q>{v=xv%Q=Yw3Yvq$!N^FCwFM&3WXO3OJ+`#oCgu5(l>17!=*6)X{HIwf4HL(XNzXQ+mu#TiJw|i&UhKc+ z^o@R&m_AvI?)Lt{_DO{y>)ub{lO~Z@+#f@q!Gk$s$1)vhpEQO(7akX!^rSrZ+pfcs%|v+icPM}KH!v0+TYAR;C5^m3;75>5zHj}#tYHoQotoY zpD@&ys=!Pu7g?X}+uQf^h(u3skJ~Yd> z+@9jwWav?FA2bB@{Wk*GZ3)k?SE^&BPFjkyOW`I7y3kzdj`L5w8zH_!$X zbxZxGtVG)a`og3QJQpL;7Lnb8kEBhrXhX5If%l|8M^TpSJI|s2#TN84Lrj6#8+IAO z-E%S%ZR=k5?->g=N>zS)#sbdQd`$gvzNY53p}rb$S+Eb|p zO`Xj*x#|Rqi9C_<7Hl+K=%D`FsJC3x+_$|p%W9$Cplu@+{U@I>n+`U5N7@WFs!6bS zsk24%*D3Y=Iec^*ayf{RmWN;@_Chk3gMF0NFg#6F3>S>F1zk{ZObyq=kRwaN8-_1e zCLRAM=JoDG&o!oNRKgr=8Oy;)N2q@e{Z#WqrRz;gux->U_F$1=rs5E6G|W}USQp4V z7rk!@xTqc(7;4uTRXi{oY@^#X6!Ul?^Weykys8cG^L}KA2|p~sK+%JZJ`=tRg1tZ6?V;3IwvHjOlo@UM)|oKchyCK6pn zbRua(Wr)mg1ltKuYH5BCRcD?BN7jpx}b z>%>G2)?S)mBLBOB8G0GRIxx|9+BGN-dxmb;z(_D&Fi{FL2_}+05&ME*qMM5nZ7Fx9 z={6U!D~MgA7Q05RZr4cuPD~_r4Z#vJH|Emca{~R;3a|Pxk>9RyeoXZL5%=!lQB_yt z|2Z>BI5R^+t`H`KNkB9+-0wLmW)eU{!li^%1+@gQHOX)>&`Sbh5}<9upyk-KTCgR6 z+9Zm#E!K?Hai&9&y*7qfV+JsO90m-P4-)Ehffq>Tfe&6?bet*of=bU|Cd+oK? zZLgEmLni7uzgT}pSSC`ev0=N$Wtr%2>BLhSsEnJIsEoru>ynHk@>oR1QQ%Rd7*|gj zN9-04b3XnZIGjg@5W7yQ*mxEur3r2bo(XPr!K*%p9<~x#yc?Er-ZkwO4%2QSGLG0S zzF5XdGVeNmo{aM{G*;vs;jv}^HZrC^b1uHiddVKPgMXrLx>~-u^(y)14}Fu6Z+hA- zF3UF?K1aUU35`6L2A#Z0E*Zr>cn_J!)H5-zi0rYSaf)ug1pVV5qLEY3;k8-QTeL&B z21Rxl!I?WA8K~pT6kTKT;!5l@ptG2fD(D zOmpOu?qV5-szJZPV_0X}5(aoQYzYp=A@ag88+Sxnf+vz$UM*UYMJA#TscxWp2Y;Mb9B}$-lrMkvj!96wWiz?+FgIw{;iC_BhL~kb&O2QU)6J zc`^`i%KA=qdpYrtE1y;0=d|rHvu?nsn=e_iQNq(Yk{y)2mZw}Y}j4Xto z;X>-a9=DurWQ4jp_H$+k@~T!5%V_$V2P+ z{Q((i1TvE7fZt29x_`$xxfy$t@H{66$G9JVW|Q+Uyj1&Si;;_cX)9-mDIejt^?CA< z1Nlf~qn+@CKaI#n4h3JlfgX{KE{5f#)~jSBk&i@9`Z6-oLC!9bkq(Asq{HxJCrueC z?vheB1SZ{CNTbnud#6z7Y3 z=0RsfPTEbGh@5nJJRvzLGM;BGq4Ahk1Wg)YSpq|J`CxB^0Mv{H^bxT~K_*&rO_%&&@cWA1p&}Et1G_8aq7~SVCR_A~Ttpc@^AyU)`jFEW%r2Bm5WNjO_7P9Bc@Dr7+QFx zOf(|<;8ilwNn|47-QR^~XvCkpBooy{WTH6#2*!y1!L|FyFZ55hA?WFpxcSI9)*s>no#!@gc`aSlCC|5w_H{+&z|*Fz?X zyCf6w-4)Z<>se%?Zz2=9k%#R3PSTg@%f)`!7q_ZDL;eBqUgO%ogS-LUOqpoK6g@616YZ8WT4W;D>q?m@&b0YFP9I|P z`M;2f{+7u&paF~rpRCY$Oqpn6h~9TFt`63>346@Gt7Rg5!%dm!ZhsW^P)iM#|{#gusF8zv3>};>1uh1d!42YC@U-v^~9mS|3At@ z_lrElTA1>Xz@0s0+JG*=t6wD#$KY6m=iEP@N`S_z9rtQf0RsX!|bfqE-_;#*9hB`9^Ut^oY7v1~H zd}0rXUxI^JFdbu6y?v}jmpBAohf@4Nic<6-XW)+Ewlwi++_5@l&Wy5Q*(bQ8B)<1D zFQE~KS)VLZ9vaaq`&s0nll0dX#veJ04~jfQIqgVyaooR=hmKz*4}Aqc#N$Gn=);t0 z*k>-rmXAD?5WxlJeuDXRF5>$|jNJ!p_Vq$8TolE7@Yj?Jv#^7eWW=>&gR(3l)@HyHPnY0h-74jTy z=MdXKWEf~Y>aQdyu)ri z41e7j=mci+j<{Jxqwvd|&AV4t_f9)8IyP!Tui74cC4~EuchXl)kG{w=`{Lba`T`F&u>ZcOFE{j4;ONf$ zz0ywTJ5HNJ!JDDPH}jG207v-Vo9Rns=g!4Y%2iX&&N!x*`po+m z!x+D5XI2%xfd0F}IMi*m96ED@5|q2f8`-Q{xI> zTOFVFnl~XWo>&I)#4`BGX;=2CSn?_JnLOrs3SW=Yr-fk^ zfs?@KDO+#9z-c&n0-p`JceO^~^`BrRv;_DVAy_FbLQh0TE9)M&+Mf0raN`_V?qz?B z+B3?$7i$2s_pPxl-Et>~_q{BA{2x%ByR|xZYxUQ$TUYlyt-t?0~?`;eFMbhnuo)8fJB(6QQb1)dgy^Ma={IA3Is zZW*GS-pjk;Ws6%mhfSZsOY7qZ+4pu)<|z0*qHIa)%(9SvQp(7l$PVv`NKB6R!+lFk z4#8pB=Yq!$}%t^`dG?^$|R*-$^)*~;yX5${Lkb8-)sAN z_0i-@UV<~>QVfvO!1*xqJE>YX{{lRJRaF8zW_w%z9IXTd*FWIQ{4@EF!7oYNjs>EF zXY4NKhfUeU^`BWTYJ z%o<{)d>%fA_66|@!f?*}95_3`$6U^K+R$cqz1^547SmcnOXz-wpgn?-}if zuW5Ng?NjKw37!=Frrg078gZ6AEBEhTpProdP5l4x^)psLdsjevfB2y*`wV;a9OXh~ zQqnHvK_AY*)0`v!GkG!OB}0G6m%KmqxZD4Idk8Oo5FV3^N7mqU*}biY%0{(H|FSRT z{-2zoFMl46GS>)>o-@}iM2}^i@Fz864n<&h#>C-J><8J)pTSYu`qDTmF#g}rSgHR% z#nDNZar6($WgI;_E5G^N4c;JlYWnwezoZ_j&j^lG&G<2n0If!3qC?0r50x1WsnzWX3gZMuK zT06W4trZ?T0^gpvIlmT}sZR(mXTm>4&M?8t$Qkxap_lO4f|n}i*C6oi8t`)OYD?N6 zdsN!pVS1Sdz08ANu7O?-0`G=UE>tEu?NT1}au9eog#6FsK`#e^mzm^CUZ!15%cRXr z+N=%J%Ll{fs*FeQ@-^<$$Crk9y9i#&omat2fy)ta4qsJpPHh>{)%}}g@Jb(yk4yUi zo@mzoW!WRkLb}bF-QCXxs3UOdgT8)!B$fef#KJF}v}!GJYS(XORrxN}|G`!DBXJE1 z+2g_^C;Dj4ec=z5(uUBg52(M3z65t)D_dgv#GHcn`hfi@cYYOUk?;rLpoxnu@Qxdp z-v)Tc^>fQxdkf!)&2{?d5Z@?rO$1k;3gc=$_^E-PV!P`Ytc31`g<&+Dx&`o6(oO;V zRL^$Y*u#gOnx8!#e#C>1O@ZntTpzvOQMlTbG+&LXC>ZUZ=b()ENtQEa4}9h@%Fm#D zf!e#Ug|gExmEAC}9KO*5ula>#;2+)aoStyM@bZQA(e(}w?c~s>d-VEw=vs7{=deBV zD~Gquuay30@@-}Og9=}X-T!FgY0whfq(j~rIjP9hE^g=m~cHiYbtjMr*NlmGItB}xMP^xEbtbeSh-UucMBu- zUaQ2O$KLxYw%(K2d{1KUJ%x=|%FB7>NL37p3-?ribWZr*iG4)&q`7`mvivjWmR90( z3~qU=uJ$<|HaDvh*><+s*5S!jCtl61%Ey=aIPv7K@MV78QiY6LC3+nxJ7bE+|AV>Z zmH0?k;UisjwU6|Yxt>aR4YS?Oe@v;G&b((_($8p@^)r>8%Hz;HX>%xZmzX9$Fy(Ra z2Uc48=aUMqN;&c6Uyoml-}GyVy5!d) zc^$NUoHm3HH{%X#@*ADDrD0t54cpwI&l}Pu#|SR)lGJ( zZNM{knC(3G+41xoi}_Y#F> zB|v+mj_`to=-z~82rkOIe|Mik@*?*N2m5{=`+hF_{&sWUAG4;lgzopGd!&sr=Hg~9qGxi4 zc_TNx(Xbvo)-ing6xH=cGxJ?cdEv+E=az-|G3xa!d*%jY32R7}h}Ff71zaG$_LDqC7u{068jFROO-A>*=x;N&P#u_hBhWmBNvq?+(TJ%|@rG068l2T!L zIkAv*^S z`E^D4cQkF*%F41!2LgNg-w<9Gt-mW#Qx%WAlXW2mNkbNPL>u#WZO!lvo}?s}C8|}( z-NhzcKfTsyCl16|+LyM=Sljia`FCiWgTPYa#<*429D(UO^n2?a_RSZpim`HoEluz! zjs38%{J!iQtJYZu&Pcyy;jsvgG#;3ktyQHb%2+a4Psv}I#R3i9i?wiY?ZsLdN0K|CUVRgrD8jE2E7CP8gDXw!#s|OuQ<3Na1}hE zKhHVdUs#n#9E;Gt`3|^J3BJ84b}!1q-xwaw^G<70%L)FAUcZgCUAnTob!1t2ww#}* ztd5r1YOFseMmg=L&jgD%a9B<7z04SEcprDO;#N7+kQsFq`4wI4A-Rt!F?&SUBXmS! zWpwatcPWYU@edVUsNkRM)#LOla-zs?g{-SDbH7vM#ZvrXM0OK=5!`u&|2CI8N6ur~ zJp_+xF}i3P-FaHMkgB)!+19F;IIkJmeG2}(fd$i+SbyUxy1n>Fg%sC$OG zcIs+2??djg@-BDm?zgit_ifTHl)MfOj!90~J@1G$*^_{-rynPa>Jp(*8(FJvt9D4}QY~xp5p*g@KlRA&e><4r&%Dmte4hQ@WZ{0b zs&Y?X*=gIqCQxm$b#4WA%7WbBQTqAhTUtW~cLcac{LG@Z1VfpJ9fr2s;M;4kZFJEl z`|g>%YgFT5-e*|7LE=5MBpt8>p81Z}pe#~@HBrjWGvHC1wSP-4V_5+{^|LC0Z!i{D z?~w1Fu*p3_NmJ3`BRnA?7!l*#O;yxtAWdY)^Ql)JqquW!d&X|^7Xo) zYvL;Q{i8{W@hK3H+7Rq-~$}sj&641hUvuTGE<;hrKauWL}wzI|T)9Z8NgQ zf%&SVb2#~H-swJ-w=vFmmUgW4xlo?t`x;Ns)^^?rEfD{0`y9J&pQQ$^)KRew_Lej{ zw9fYctB=7$S&xs|iyEo9{^9rX{};5!{_;3$oh@3wJkxLF0CTe?RIoP=g7i!@zq7xM0BGEbMqgzskgKREP1K2r9FnqEVj50NJ@*M?dGKal_QhaJG9 zjI;y<*Eo|x_*FUHSWJEy^L&Z*EkUoNZdhBi9XKm#YS4SKd*>(2=Tm;^yw^sq32b3q zk2Ciw>JiXw=S`$XXxqY^GX>w%a)VazL&j@S)BNL@&!eo>Dr>r5&e1H&bhx-raYoa% z8!UmQTloJk+i4lM%@?9i;&Y)nLOy{Hptl@CA71zfEAOhgdmv>^7~)5=hyQDYC-{9b z_zO=ET~l;3W2t6O%DHBFhrF}b8)InWdftn_&d0r!pum2coV6w6jG^Qmvud6(1rBY*RFfDu#EfZJ0S_bR zhMeDvvaJn*@4&Cn+)Jr_j5isFhrZ1A-|2o<=u)di3ASDA?l+imS_^^8q_J3Qwj zj5!&&xmep;c)}@+m9dPIJtg=zV6xq)PEt;{nd1-|<@7-78)|$vRIYM_?CX!xrx$q1 zyai_3&+U4_#qNhAZG5^2zROV)FzFKWd>(w4a@Wz92D}A-g|5~4ZpaqeBEBi#r%n1C zCph5-542b%f%Dau6~=>V@|E*8UD|mMA0FxJ2KtvZm3MM~Z#rxjid7aZD`P6Cm1Jb|L-fbh6fnSpJ_h>n8-eczMsn5d4o~NdwE_c zXV+f`8n>8h(!XUR^}t=T>|Vj~J9`=b;N42{Z68e2?PsRx0w)`Mg+23S;sx3~9lgB4 zoIRe-tn^Sl?ewRVF& zoNw*G=F5DZ$-8fYF^&4a z56__izn>cBV3Bh7#v3yzS3$mVTXfYjN$-fRVlOw~+hwlf9R6zqltksXc3t*3d}VPz zDYwh6KO=b=p*0acLVL-sbDyli`ci=|@1u}Ov_IMPYOhkU23Z4oTwINOvIm=LjI;r7 zsQtD;?_iDGwKtl3{(AT+^I4r}+`#{@vp(8=Y1~f)_wI?VTF~>^7hQFi`RokkFN?04 z8-CVSL|6TbxDU!FHoa5QZktZrhlch=UcKWUuO3;8$U3;#yFydoT>=AY>$&SWzz6?S z{99nv4t*>oeT({D{6XZte`I}RTyOH;$@&-wc@r5KVS<7<=7310a zV+@zIZ>Pw*O_siX&6uCv#Jqk+A4jeITDt7aix?VB<=@V3=e^8D#?N;K%>EWqu8lFi z!Fh3>_C(f|xJkk%Ei~6^pdtKZp6u~gTt*J%k0D=gUJm~OeK|X83hWF>EG(+$$72ChvXD&W8)$+ipVDp)?VZjJ90`p zxFK?iJM-mDc4-e;1-{UiHDsT2+GxMiMjLW22;bWVe-M&;26T1JR~eUub+&jk%T#RP;WQ4pQ`^lIK)( zhdf`a=)EQNC_3?f(Sy*=2t}8@9V73@AXiE{LD9RV-t~%pLDHKP{W;>;%K9Orw{%-l zJ2T)N50F=C@#?mWzdOcMzZvWYUz$fr}3s~=_r|$`J zKJB!|!ovGQFl-5Jn+y|yTWHnuYkfxXCZZ^-zgx+c!y*~Qt09wWf_7tFRzdMms^ zSB&u;WZ4qRyjX#(Xzl0uPq9BQFpd}3-e`PGI?p=M_y>H+bIflvZPc*e?k4q;_Iu;u z&>S8~H2Qt@x#jorUVLQxvA5qR9nP~!-{Xm?6r%+AKC(HsLBh|*=NNBOru}yXde-ZT z=^K6wyvq?7ab}2opF({(^E1d7T+DjiD|>C+F52o#UdBB!fn-vVPcrVg8UD-VIfh)H z>5B=hXRbA#u8A>H?oDu3_?{S%U6Wf{eWls+`2Fbm z->)>wSgr6Ou4}-H^#cNfInT}Ym-F!MIO7rEaP0X4y}iY5yt@}ZWZu*&CE9zT{nn{f z+Zn@S)KMObADP8`-OR0VP3?`1Yxdk&m!ZsdB>>wsH8;Y$7NdWD&8?0z)+y2vQ4{ut$57}3%onSbDGLTfe+2#Aa> z@Dto(&!AsUHhJUcEH#PwjQ0+F@tfE)wjZr6YPQ(?Vk=^ucDBeKMORRmU^hze3(cr? zeOmB9UcmDQr8SFlw3az*#59++7XBrNelv*0vr68ZybbTulz`6r!N?3EJ7x@30%i9R zKVMZGIp0!74@LLU1gvFzYh*v)*T=|UOyT{#F>iWbV>Rt10K>aTGma^Gqp6#8dD3~e zJ;uv=-x+v`{e_*($9@apiqML)iN;duh`#7u)<*XAzI(L>2kpE25t9tP#ddhwOSsh) zXDl?!+sv{G<(eKG5U7w;XbSp}diWA2I-c{if4(T&uzl6NS!-BZbOC)#w#xea?9sq3 zbOJ5RNvEyX_-W{Qx;{q7)k_HwOr7VDp2r5yDr>X`-MqCIbPyTX&sv%L0p3S=ibol5 zDLNi4I(4E(8PWeg#eQHc3DPdSs*#Ef+I_A|Qv?%LL_xL)-Dr;I${k%Q@wyez# z#`zTMTkv7`PNmHEspv>+Sku_DvepM!({k3-PdlQ2&C8s;QuN1{)+IUK#PiqTCFPyy zhD^CEe!Q`hcO}g0SyDLH!^b6ziMAl^k&)}?n zO+WYqrJv(*aLkRavRaAqmDa4|o~7n12*byO!#m@R*J)pHY$R*8T;K#O?j`+&jODPR zKTGOT)QZNLLjwE5@G$+gPtp2dm9Z*o%Y*aDiJ3 zO&qyAcj85P=8du#GlJa@OP`_}tU->RO?wYX-=CO!ruawvx61hdUtGPe#~KMuXvi`0 zC~vdZ7j+TeLhL)*0PjQ3)4%JMp@D9T*13j$w{E&KUAPFemyrsM%do1PE6FWNZtjJ~`{OQL3yd2-8W5=Ir;JP6vex7sL_fXNlIBl* z{=&meiFXCS@o`PgyUaVqP0+>mesXJa=hQ9UMJh$-KIkZ~{-qxct3hDWgqsq!#-N;es`H8jTnB!8XRES+?p`70@ zq=wEp_VuoU^uQCe)mU&>K=}RZq)*<}z%R?0iyZxo8#!8F^&IDJHfK{iYpZdN%DbkS z>4A59J{K`w^SNIr|JL-tJ3PnS*DvjfdFg>S;78=_t&_8N=3RluitY*so;`l+T>Ya3(%_i_LfrUE2A)@kST%B^tk$ z9`G`Dk#~;b?_kP2(Q1WxCP8;gdnprS++$>(3k9~xEhFXsH_`(ah?DTx!n;g;tV#E< z%?sW88e=#jZI`D9O4#r3%m1a!OVZ`(f!(~@4o%*+O)=plyx)Jpd;eAPznvc7>m+*Zj7~-OCMw1FvSXW3^=*=lRP{zlxvM7S=TSByt9p9n>KPMN9iO}_e`DS?HyT^WTP^w5 zsk)gC4dsK|r}74*7!Q+|H8NLkVqGF*e42M6LuZZUJ@|1uFh~_VLEf%I-fkt| zDI@&r5}qS@z1bJoDH3Gf<~_;r^-gK)T3`?YvH=Lf7(6X zoUiwK!$*GBM8<`V^cMbS+@R`anxmSw@=|$6tif+cN(@A=qnfEZ;XC$| zZW}di9K;!&D@?3xH1PUQ_t zF_IXI=ypQ9cg>9%4(|mGIY%APIMbpv#;NJOXXdWk8aJ3RWhN;XLmWn$yyc@K<^l= zRz2l|bF3FKZ?Rq&G}(G#_;+Fgz55fpQs6lfJ`TFk!T+N&w@(woj%5YQzoo;^4-mQ@llw?JF!PB z6dbMWXH4U{DN%V%3rr41^nzhKx2X^8sS7N)aNFw|HgnM-HB+Y=oN&K5IarF$-=dki zpq7r8qJCvpQVj>X2A3LhT4Bv3hOwrqM*R?_8D3v6?9Y8ZZ1#e`_!&K;rHnI>*>+fB zb9aQE#~aZJxjU4o-aC5r=Y8*3{>PE_A&n$lNc0H_uAsG|4mqg< zzq@_3nKeV(Y(oy7D0Tuh-EUJ z{^@?Te~Q0+i6*rFwCs8DN6RYvR(4j|q-?48qE++11)lVS&wD;mIrUq9FYuf99dB^e zGH>uvpO^3Kd4uAE^P`L1JG;P^pQqdv#34An`gOP3-!J@LDepUkCpmXN@4TF& zeOr?8%fWx7K?Ar4;lV}!5b>dj zp^r9fMe=O!-^vst2RbFbHD_l{V~z7!>swg!n_2s*d^2VWzN;Z$n|AyvA~6$GcuDbF zDYL{HtmWz5>>&^GByyfn$hfDgx%v!svR)+!>@X7E(zKFrym+8on>)88#xVbEeLbaEyk3%3jsnhsr-^IUXX z$g1?ymwx(r-sgP(r?tO_a=~qjwT5rTrTFXO^1JfIZ-;SP%9>lt=FAGrS8P7vkCeyn z3FiL%o}h!hvzxst{PGdn8;H$E)_W5+Wet4%7Cte8my*g^FFNiv?7c4ttW3PT88}Y` z-cx}4!>d(frk;h&!)v<_et;i=r)!0 zvNR{Zl4*{;&LZ}672A)irLPiY?6PR5z2Ne`@^5wR6C1k32;p0d3z*MtON#$t`g(Sd zV#qynfzjDnd5lf;+LOCBj9aVKS}gugA=`u4oi=~e{jm5ynrqN? zS;n~qSRb~i6@wX<@Z#p#nH6gsgC+*lR++--)nj(+jAifn|^mwd6OATe==~`OH#0S0xel+&g zf*G;O&i1v+75=Wm;A0AnZ7x@;cD=9YyDs)}H+{Rm{u^}F_b?yP7l`g!^usSP zhP{IC=&ZlWSii%1-%i>-bFjZJJ`3N*M{6IxctZ0&Sy|dO7g#qA)PjEI+4vhpub1>` z(e);`Nc@$?c`<=?@(%k8I;n<6>@L41b&=PE{`L&|lI?NcKoq?1WANhDH{y%>_gO2~ z0!Mh1jd=qUL*j6J;L{p}?-0MqNXouEm8ala!aFS`WG8qVT>29}Z;gH7v!%ah=zGZy@GIKX#woLzN5EC4jBWx> zQg@r^qE3x5^|2Sq9tc@3#OEYQPU}71Kl>O7svx(;mt8y>x znTb3%Zc}u=&D7BNgrbj?w1qoplKx83M@ss~S_`6_(E@KTukEKlVKGd{OscQa)QZ*YK z{F?M}{Fb2LLgUF^!TgWAcV_U5=Y8W}xX(p>hx~s-(QT5x9Zvt7Jm3^1?~W?EnSy^c z@CW#HH8duwx&nL}`>MuT@L(IM@CWRdmi;_8+PWs5;|_Y`&HeRHNb~XUkny`%qiNJ* zk8RAWbQs)6@Ap;eybj-~}>Qg1IiY#ss#Uqs`_0^`p|}%Kkbwy<*9` z4ZF@Gl6QZ9{VmB`(_ep6((m;*@fb&yOEU7y<=@F}T;Kl+8JTzl6(UDk;jfzRpR40P zG_L6zA$waF?P!ca_S;@*^TBZXP=CFK*a@fP-H-e0CrMrK;EkL5>(k(iOnj-FWK^nr z&yxAbnsIJ7v=2lc)s@kLS0?V=H`aKWy5fh6uGQ2JN}3?>5IMXq-jIG>;N0E3hxeLo z!jLxVSR1pSlIz8W-LHM6Yff3EYfjS>z1+f&u+L2Xv1uW9KG5rmzE0w5JVJYd4>s_H zxXON8mFXvJ(%Wfwe9xq1YtTEiP)7XPq#d`KS~#sLs};DIZQ;Mt`EmmBzoo5{p|<#z z4{hDpD!h`=Zn3Y5zVJLYo%7F6F!hw}^v`#b8(zTHDLRgtE&X*b^N@GD`I+yY3%%PT zZEu>Z3x9Q*_V{*FL*v2Fn*I&F&OYR?=7V$f#=o$hZup5k@U_TLLy5Pu??I8xBJUKR zpLj)0Yv$^uNy@mdNIP%z*Uj{8){*`Nk7O>5|J`3-N?MAaNaNA|x=YRQ?I5PBz(D3A z27#N>F-(UC zFz51s*qr}4R~LP;(lOlJ2X$Ax8=({UtwGAzuz{I-jIy?lk@_n3Zsfhxw{?utn~u)a z@r5vUvkotw4e6&EkB`>d!1Y1W4!C54Pi{InTF(h875jn1LZQJW1C8g{$Jq5w&TOaDzL zD|C?;GvwXzG3LAk28}1j=n5(4TSL=_WAp;%utNTSG)BLL|M$xOkH_d!_`ihzxzNd` zi(~X0WRphAShF36lsUd!mwnM3Ggg-vTymzvi#0Ub$LbP4L-HHr#_DeB%NXIcTCPRj z3fWCv@Nq8qIG3kL%6@OIuJLV{o&4VoA0XxNmp5s_f02rhQffv`QDfp*UELZ z{7KbJB|+B6rJ+y3?_JvAPJ-#XAbA(zA>_>Y)SB+uh3-v!IWkzkRO!pAjIp7Am9cB^ z^_l3oKcu{@x5k+yG>I(n{n|C-@*d!RaK*#D<4g~ zGsY)0qG|nH;->IDapu?9cdTxv&arw8wz6-?yMbf%=Sj8XFpdryE8l~-{Cw?L{kJ?f z4_cvPcbwhiVQoeuYdmhPuri0{Yk8lpBt_n7?!xPp=IJX%KetfmtJ2qyd+WqpX=ofV zR^QDUEag8ok>!nJ#_C?4tD`JtTWjRJT9;sS2}=d0(OWhN zE&c8FV~rPX8f(0mH^^$H44fp1UCP38Ejet1i; z@#9`W&86&Y{wTy#?0>F%XCuGnzaVdeyK=TP!Phs+xxhS|X?qB1Bk8TQd%g5S8R13t z;qTGNPs+$0xg6ErS;D#%!t==8+a<)J@e%i9N9=y5kKdCj-zl&1w94IEkws*@QV$(( zs2)7gmG$;fZ(pchWsiEy!;Sneb%_(Y z3)nxydYlF}55~Ug{PQpS@ZG!wGd5Twa8tAdzZ!+z9z2p547>0tvvd=qkGppwTS~oW zfRp$dxh#rVZ!0j%)D-_9>Z!z45TByMs>Q6A8Lo#6-!k~4`(GD1UgFhd+~<90^!?t4 zsufG80!};zY#(P`)>W3YK3=-8HIMH>KI4r_6I{+b8>*K>+1;$)cFHaam$}#5C+%a( z{DLuTrGBg>*6~4ANoz)BMe9MePvI|^Q|!37w3Ag8tvl4X!q}=|t<&Ec-YR#HeoMV4 z!#Dn`OZfAdy;X-Kz)zgq2WuE7q*IFq%N`R=GHYyF^X zaqFKa#im7KO9?#|{1Y33$O`+=2|t;bADmYGy@2eK>G1C}@Hdb+o2526i~sXgn{PV0#jgxG z-~?|xITo951Mu`R&dh5MIMMT_Z3Txj{$A25IvyqC6{p}^BQV^{x1Emho074|IbTUA zUqlKnCA@20$FsfssCBK=ORQ`~iE_xjGVUuRxTo6FMgw1kG0NEFZVcm0_;1pPj{H6F zM|9&B;a|Se8(hT~37f`ErQDH%UM?GEKhxA%g#5edFO7e1y+bLJF zFvqx6(lt3ov83B_j3P<*<``d*^k|MTQ_>i(F`ZPitSK5neNA0cG)&ScbOn+|ueqdO z$t%^8ZSkRdXj%Aail1&i-^NPa=) zD||z@-YM-Auzu+N5>HqqPDw$5m;R*Pi?{s_U66`CTfzU6m}VBs=|W(R#wCvRA+_%ru5{Wa$E-XmuY?+X-r;n3Iv_{nmY4|ziD#6r_VmsjS6ufT7< zeQcdmQ7z{DY#CvH-UVt!Ic+QK4RhW-^kCC7Cn@}VH^B&jYZL~m-`tpqHDpw zf&541J-(rPMGn4GHMV1$S=6Y3e<>#Z{p=p@X#%Go#}Pk*y1Uk36JXrC%g1Lw%XwRe ze`%@s(Q*d=h<4Cjn{rsqg95~39)aQZI$i>vD*+f1v@DcW5isb)H(UT-a ze~}<5`inl2qQ8ih6#bAxQuG)$Nzohik`#T0%;nigyXZ8;_hJwCle*DIX2M6->JzHSsNa+evnr$lV|*? z(PQJ><*t5c1`D1o>S&BO5k$@jQlnp6e$Nk3-($=TyQv*5OZF zhaI>S9<~e~R^|mCdC9I`3jex_c`lGSG4BJ=52?Fb`oLGWUit)Ayz)$2HhBidyQNPj z`O+7#@yauEvdJ@J+NBU^ zXQ@xUy0g@0PWhy{j8X3CE#ThQR?>@ouJq47gI-;5Q}mJI7kwUG?d|AkyDcHVc5n;7 z!}!);n`x?~e2ZP)DS@XYU8?|}l$MFI?v_0G**Bcx&z{QNL-viQ&SEj|aDSeU^2I)` zt_jrB6zoRGFzA8{6zK8AUb$VekI+G5Bl~>aZdUtpT|cp0kK8A~P8M*nm;Z(DoX9KZ ztTCRCtkLMp#9!Is=|exXJuaWU#vR$f^KryK1>a=dM2^M&70@!@a&~aWX{%GxZivoz zMDllYwqhqU-_NDK_`wW_eajhu)=GO8P{&_I2Q&{V?{V z*)LjC909(Oj2&L&wS?oWMLT+iAbLxAmNN+Wd-h%Xma~-js&dA3C$grThl6R;iyucN zeWj9K$8+h2%fbESI_u^sx2({8F)Jjdj04+Dq0lYW4Zh+#?E{~;QC{en?5`#Z_kmf% zI&fR=I7}l?^k3pDar=et@yG`W;ycJ1CP@6NMdbI?Z3=8(I3;-G>XQFl{x|(qB5Nk^ z_K@Gk-IHILX;RBGq>AB3=- ze@e?E=Gc;3^18xxur1y|o~bv9(fm?>59KHD4jmqQ-|iFJmAud8{V21Y{w?359hE)y zwD}CLK;L5-mnlmfzbrqU&AEqdV&Sq*9mTMbTQ@1E}gh!LJH@)uDhfD0(p}zs|Wl@c4rxN(YZG}%mPLp(yYMhsJ zuVPdeDS@-{e<9`iDnYSvopM_li#KRX&kt%BkRcPihUeLQ?%B)=6lT5b^zbWl+tReR znp?4-1~aNkO*$5d1#p=U8h3g(`?3T+XAg6D9U9TFO*OyCDEIv%cl|%ZKiP?m$C;l3 zzU^8wF3bz1_*;=6^3twm z_=tMe(>)1aXl!yN&^>J{FfsR63i>X5_Mitf!~|#pW{pqu4Z76i&YCqb!CftVg9_!F zAG$e+{%5N5}%YQy$xAc?iqN>zK%^4JS_!3#Q_D~gE#1TQ3(p&D@C3WSjZiv2%mUy*>A!9EAOaft-CqcVOdwy?#R5Sbn6$Un7UlQS{Hd8!s}5U2>rhwz?Jo3SJKqSe1H63@z30Zf zl8MG`tk1oSL*D&}y(4o|eT4p$>y+Sbo3gXC z{5!2RZ`>Tz<|u)0lBeJ&qVT@v?VE%5@?0ln`-g1j0$-6W3&8P0@Vg)y97nD!M|N}Q z@cgS+zmELYS;P6{=r`UGUzaJd@~T zPjGq$b8N(ig-1Ve?SAKCt1@B3$};(OG_l<6W*o~#_TH=L{$9oB^tC8)Ou$#AaNqJy%=wcfN(vF*MKZ zLdTK6B5SkkUH6c;oyWQBl~Su1|G0JR=DDiPj$cg05!P0_ZS3Zn*JlK6{o#djB}NOn zPix&KRmC6Xv7Z*@v+wGBrCnM1O7O?SK7ANins@TBPa!j;wPdmmYq-mGr=@G6wDqan z)#jdA2m8-Gb)q4D7B#%XFCUxZL?asdRthcB$`Xyi33Z#^g;%@zZmmK1<4~Ie@YTs@ z{cd3$Z)QEGvaVC`)tSt<=R>|a-7m$k-YLBAOMXAfrBc2>>+NjT9^*TYB|8EV4@Kgj z*k)s!25z1K#BjK~IB5TCY2YmQ&|9ww#O5KZa+Y|iT3T)Ilm=uy539XR9bum#-e5d? zOW?R{((uiFR*vWry^yI>S-&u_;h{x=2ey4Z@ZhiR3G|_yAG!M}HO}$C^QD2~Rpnh0 z`@dR^9coWOSHYUqf!kWj3Z456;{?XK;BW4_B6q)^I5$D}wZiWf3E#Py|5?~`x(2Jp zr>`qU`sj5!top>aCD&ep>paTpNv0& zMe{8Lr$qlWKP80!KUme$DzSb4l|sDnSY`Huak2gxePaEu)NczM#P>|}T_w-YTFJeU z;%A6En{Z&PzZ+R>)EXslsLI!Ms<1YYuxeCSDeyS7av5P4Or51C-VyKj0o#PV#Iq{Q z4J5(;o+(rVC%_4GL?-^P2Yv;>ui%sJan&~w;{=)111>q}qr6rL9H(uE!|u1O@^n@0 z;XVuPtYF_sJAbB~^U&LeEf&8wYWrrJ@4H1m;MY-JmhFb8FW_A#{&ceUhbj(#ff{Ax zGvu6ny&IpU(;13(0f&BS5x`2 z*2PuOW5zBz{-fVlnvbwfvPKdk=)px=!_n`1n+5jk8Hezlf)AXzt>(U!F{-)n0d^m; zU!68p4Mgxq!`DcoPJ4N2b`$q3>R3Zrt7+`zY1CWKx;W0W%T&VGAV zSLqV)ED1j<>I)93;d*sTebDk;lg2D$eKh%oJ$ywwa1ps=6)~x_Ouq914wf*d8t6A? zEb)DY8TX@ui0n6s@gsSro#sSe<2&TZItz{=N3gf&u~+A^XK!ck-o_rjmA(B{{5N9E zcyOP`8>Ife7{9OYf~TST>!v@G<~91k8}EV#Xk)x3_%8|nnXjZym_wh!lZpPn4tRw0 zv>{%r99#K(bhb6rDKv6*-?!2e3k_9whj}fH{q_^~VEg+u4{>gpJekZpXOBD3#GS0a zbAF01c^Ye{rRC}Ku>)-rUTrP(6FN(s3B-Rf-?vZP;*`0|S!ntCZ#UP?TN1FXTG=W* zw8#omct03l-XWxu;O)f6vE)Mc1Z2)+u{${z5zk^>P0_xhGF|LVM_H?Ou4iHyEknbgwLj%_QcMV!QCUVv+es8@dA;VYvCPplq6GkUI)LJ58q@3 zSF|_QnYP9?%w5JMW8(bg>}r@gxu)plg<8XV{Ju!XaK>uJEHL#WoZ+TV?k;SD8fWrW)~*8{$^8?2 z4e%Xrw`LI=O?2_#0x&vWUe;C4ypFTh1Zht*8$c-bd9cphO6vQDzbUG%jNTx;XpDdF6a z^+F~quCuVG!uJHbEXuQDM-m^$9N9sRL&CdlT_hP-d^|V!)MTGoW&klXQ>U?aztN-9?y>N0Q+A1VXj`!dkq|a zWTi=u5;Qf*Q*VJ^qs`BgX?yA$O5oi^{%8l*HUr%*Ivnxy-E_FVXfyFGZv;ou`Jcp{ zSQ}$-S5NMmrid3=1)--r}s2d}OYK_ZXx24a@f_Bwmn= z@p{^C2#-^vPo-={SIN2Voq{(S{>aGC0Z-XCTZi)B&3Jr_^SISs$Q)-ExDPmU2k&?0 zU(nJl*nK9j&N@1^6@x-H8qvSl?(_zmu>*Nh@^rCd3ePC`B(!LloDb;bInxq0pqsB_ zj|(jt+8??=8L>l!$`Ie?sxs1!E&gWRzA@U^5B(`j@n$ooL)GvMT6CSW9vWo37ri5U z*-e~LH}a7?caYz`wLphYtvE{mz%#*}yh0axpin2GAByb9?fAhi>e38&?1t~=*A%_K zKx%KV-y|)V-b$Lu30{hL5t>x-?7iJ!^yIH#?&;9O1_-xJ%^R8Z|GJ5zVrPvN`OUyjc(QC0UJKtIpZJfO$b&Q+;cH~C~ z`n22jWcl-V+l>2E{CRgr8+qb4aASX?{pTw3B)WNc%jXz7^w{%LYrjH?-9?;4_Lj9m z&NcC=$lG4LvNRjK1CHF=nLUs1^a>BhzV%3XDSHH%xvc3v&&12+X7YaV1m0H< zm}6g&KBr%9w!eKOG6Asd05<0b$27YW);o{y+EUbA2p`h@i{)}|AHPm~qLkB}@L<)d zz1*FEO(S8;CJ*1|8k$MG<6qd^cGV7FW^F#s_XFquRH+cTX+C^;+b~Hj6<+v{`GYML zZAqjrSt?4PC-bdQ6&dWKW5agW|*9HY$=V0$-t``Alu^w-Y(o}s+> zyl!KR@(!C9I@gdN>>A#^$&7f3@UklhWF@WJmNdG`!~`0 zZlP(s|6`>5^U?YqPw3sA$h+S~>zTaECnjYCw6FhNCyEk0RH=<|y@BK0Z}6^Fs@~=K(mk90qHlEg@>e_O zxVgX4!JPSSTm|~K?2KzU6YxEkHi*IMaIXdj#>%}PY*XB+SJirFt+WkIF0nYX>)Tf`H;~=FtCnaY2{^zHfzH(v< z)96#qn=Iyj1bdi_g*8H_HZWWMKgxfBYYBEPvDHTA`6Tc0%QNjLGFQ1jATfqyO$%1{ zos+L>v-2lgs_=U{G>^Dt5=ZTq;J=1kEBwwha6n*@M*Q!8?2W>2%Gv4d$5|VmUpwu{!;ov@;_iJ-c^G*M!B?Swfv**u*zb zXG7+nolDF*vAzvv9lvvlw40lrJ&bQHNm*Y?s7)#F0A^+#%51;}JH6s^Imv&3_73TcYrw=Y-tRP@52a_%>-nq>%w8;g4N($2WlLLS4j~+Q#W{U-zd3gL z9ooz3pGjMba|c$2=DqaNyqDlVEOVE6OWmQ&+s^!#jCN%Yb97CZPQ4klU%>i{3@`Jy z!|Pvy0dd$jfD>E(rSMIH2b?pcpREH;7)ZUy+@^=;_B8$UrhWW#JWCh2vSYQb3G1oj zr>qBmnh1XT>2EP@oAaT4fuF#4KK&H@a)Wai<6M7eV74a=YpFK_7?zv;*nQHE9hg06 zxU&Bh)it3Xxab$$rQM}wyUa!A%3P{x)A!2<&9VC#`%v2KIcLEUDd(eo!FwO=MC$k% zLnm>v1+E3Gw~sLjoTPjNzkJ}=3Ct21A^c5PvUv-&vrH<^k!f+c>U+&mwv>|&> za6gN&W>R0>bBj;kqs_R>YAHSJBkOl7V8=(d=nd^Q}Z9rn4PmAT=Qm!{x z4-e;_dRJf?d!4-!ID9RGZuEy{!f?%Ne)PB02dedu>a#|)j zM$xmBqW9yQDhD_(PyY)#kG;WIVBu~IbVbI04!x9>vCF&h%tLg(6G>AU@8P|~RfLB9 z2wtZYez*pG;ltRmxyyLKm8+cY|I0@<4XP$C0%MSVxR&LYcHYPf`7K{z_q^x#rruC^ zH!VIC7g%BibmDIkiMe%kye;vabc=r_zLn@(eVOcmf?w7HO*i2NFw(G;X6M9M? zYXyAM*4LZ=)xq!^>AQ99ny!h$muJG){GK+wgVA-OKQAM0lFO}DWMwL|g*TD0ESaek zm&c(Gq#tBb54_i@ylWDS>Fmo5(_BUYI{F9rzoTk`F*7%d@8;QCPO0`nmm2SzHjVEg zseKM`$LF+q$a8r<;2RvW?@yD;9&&w(jDX+l ztCZ`GR!$e9zZ*&YuSyy2AEL7}Mq6x-5+!@W=sa)5;Hli7f57Wrbf21bjgsJ4r^Gw9 zC|2LXDN6A*YCNhV)se&VAf6S=sEICgi{krHVna6?qs&(GE3(ymcXmm%H?V+r#P4!2 zP6zTz!r=Tx+2ZdtI6ou%L*b*TD?S(t)ZAvNt57#1Tz64)Zu2!g>SpHOZPr~7uFE$N zJu*kpi^Sg-Gsk7eHV+JdQ^nRCrTE@juUokGxjhm~*E6KKY|ClGhYTpB<{r z@qsm=C7!->Sik+JyNllhM{=P1^_|_t1paDhOTb1Xc*46sBlnbn8~E?d#z#AdAEQUc zA^weSeEMbxUVtM*!3%T^=*uSy{+-+ESQ()Aab(6Ie{36qpUsZa2|#FMRupoZ03=0Uqadz+CMrX8^|pVwyvwt!RkLq*0}j_y?Yl(Bt4e0s)Z`uZG_ zG1C6Mg7b;W>GCjMN6OjAGsgqYA4e97j6-Zur^9nCk-Ds%jJGX3UeSR_KYLaWoHK&E zIVQf{nK~v@aV3tvZ#JOnJ@jrjzM$a#XuFcI0Q|Rt|JC@2Zp*^w!-DRf|Ki7<$9m>6 zZ*Y0`;L?(8=)5tQ`HQ}HHh%s;0S2dscq=pRx6YxhBeqMpz!QzmZ<#g~yYTKonqU(*_Hr>xvvx|LLDjnEm1&FqHO2n{)b>{{ImQ8CWgGCFbGh9W&F?6%CoflQ$)gpM*#Tbv zI?FwCl&)avGym##eh_0dA6yihIiQR4Wb0lOy$0y#?0RHG~+t}9eB9vM+FZ92YG*38R9?48WOzu zO>9Hx;h4B>2emYJ;ov;C0+)l#O&KtMxU{ffixTS>y)DYtdg1S~vztE1?sDDLF+BPkZmhLVboKMoFofVOGq>Yct3Jb)iaKn+fDQ;EuuOUn zuJ(cp)*tym*CTE_g`Pn*#)>mPJGvlc0t z#iSQ0im#hCv%nEq3(%|@;U}VWU1dFp3_7e&hD4`r@|i#W`#L{(bbPBeY3q$WQn#_$_&-@}E1FmaSuoLmlw$ zlfgBWvz4x)q5Rz?$fi~M#I2lhwo%6`I^+tGa!$&~_$3Y%w)FhQYx4DIALjD?`#j!3 zb&G5wTK8L0H}QU??pLT=iR-vZ&Tr`6g%r1Pw-VQI)dTFuVPB$ye78o<2m7IELYMEs zwy1zM{*5}O@EhWHGQY3!3qMZGJ?>07s~F)8;*H4fxce+&-mkB-CnsG=Pkaf5<-c;qoArHkz?gFdA0H~dL1f;4NSf?bx9}Uj%Nj=P zFS~2<;0#-9}M~?_pebsEW=IikmzE`o`B6|Y@McSa_y| z++W5hQ>%Z19`G3STaXufu&)unA@d(mLd{Pq&L$o9=*Z_wC{y+88D9AKesm=s*Z!k7 zh7P6JANM!dIBz1WM;}&kkHk}F>0HvLG7H}A?M_j;MJe}l`yO9g@#n5w0VV*>vZ3_LF{iG6@EWewSz(jtfJ<(&+=5~;dI_DDYj!Wd= zr-93GaP05sEQ!wr*?$N7br9P{WDqUyM!w7X82tS`(&6b^wnx5;uhhZc-yxkkTmBgN zE_-^_qNhx9cUH>z(S?3hJdab=`8~)oM26v4kq?67&9SU2_#Ns0LH#Actx|_RF8BoJ zD|vrA^8Rz)PjbfgLMyA;7p^Dnnv*$_^HcAil!-?+$4$Hu`aGl2xVDLPIsF;k+Cv{G z6Ny6~5PjhF>>K%tJ2cATZkPRZw9ah0);QC2o$+c@Krx%1Ruaqsc(sp|A@KToUl1G` zjlI#BD&p$G%l(Etdw8xfUSqmb7iYfKc&+IK`SX|PD&E9z*3;Oe|_C*Cm**ru}?fiuqFNWRGF5)m1!5eV=SqlAqz7vxQd2 z-@tW;lE{{ioep$W^wUp9bgHAU-in;bRpo6L_?oKF^8wzCgJ4?|f#q!x*e-~?f0y@T z;0ZA)L#`N||L6#JJ8%uYNX)m5Zz{=h-rUXq9sKVFrca}flK8%oEHIzI?_uB{0Dh`2 z(L95BIYzq{#$2T8ebvBmzskKa`|Z`oXSJ8m#)C?{=~|xK8N0x4uCc`QQUsPI!0~GG z7js4wc;=ICt;%U%8i8LvuBaw6{;yywQa3xQRki!qMRa~I?RvwInzhp`LX z1YU{EZGtYzEHHovtGqD+1MJBPu_r4$1}{57XE7gB8J}YCCjz@8YJz!(z?=u$p~6Qf zgYLI~>=21{tnhcW_q?i_H>xq_U7V?3P?O9SaPb&rCs1}gW%fnJ zJb0~MOc#bhbKV#IH|RnN`3L6}IY%n%dPn5D@N|Q}?m@#uKa&?jSq(F#d9dM{f-EXFQ)B3B0ZPy5|2yf zIOn1{`XT9JdvJ5)`>2b)LmOH~^8JR$_bk49q3wd_hyJEa^dgg#xYc<)2G;%ESGk?5 zpz(6w{i2#!hW(}Mrr4WI8&!+vE@=KrX#OfSscfa1gin+kOcM8bK6^k9b_&rw;5umw z{E$0B!H?;Ycg|Vp%fHbU-2-kIyazy+gbp2rCgBGnaO2>8fPNl}>;vdyR*r&}jD{8q zk1Mp~PH4yi==#(Ae^W`+X!#w`<0AHfL!9Ntun$~Xb#J?z>GzQ5Q=T6|zaN8c-)X$g zbh|FbyaKxO3G_OSx`n2#*sdhYp75X&SGGclb6pdAjcJ7v>lv*iX!`-O-E(`xZz%H& z{rQM`U*VBDSJ00;=+g=%)%=)}Vtz)6)9PNp8vixzEO=W<-a`5w>fb{B6|og2-Vx1( z>)p*-b|^{b_6v9m__Q#e5T${Q?9C?ji`>YbF<&*6RjVe~%EfAh|3mIaRI?|#k8H)x zB|1NQxzCdM!S+m>pM8<{4Bn5kkBnnHvX3NP65dCmdxy})ebA?4vX3w)Z$h)ivwz5( z<-f~5!W+P{un;c4vM`eF`Ix+`Ksp~g9E5Hf% zTeH;b0QO_3Tjq0gbyfQo>R!ekvqjruhM2FVPTF$)DE3-Yi892Kt?fBUery0P*mENA zt_9xOzVi>@t?fmF;f?Pl4c;F{=;wox_xE`Jf74!c2z}p4GB)VcL2O3`)4a)~{}wuw z8~OgiMRY2U^qqVk8Tr2bqVJ^BV5Q+Tc~2dA2S3wTZsJ zk_VpMz;gh)#(H61^&)GB78v}woY%ggTpi`=q@4MDxw^sSgjOD7jIuWW!FWvCc#y|` z!+6f;xoA96{|Ax!pTpnTV0i6+u-E zr)?3u5I8;(fukD1!=?WmuIJ|EzX8`lWxg4%(x-bOeGosA|9qcS{{MZJed(L_*^X=_ zuz_bkax1Zoipog@k1yuoB+Uz*2=e%OwnHzv!R@j5#F)X8#3Ok=(d&_C=z{qF34Fx= zk9jUgr%!{^1!un&Un96FWkokUXUTwt*u2M`0X2X;^my5vn1ErF($>v?gH)03ua)4rq6Y|PPz|92X~^~^Mq786bj7{h71B`r3bR+A7;Qxi!W5>6{l z45uxXw75u`HJoXWCEVAU=>bz#N;pl;h_sOr zFlHGdX|`~_r8e>zBV{wg`SOR8&lFCp86L^!AfGvsmK|v~n|$$+vf1H$#g~#VA)J<< z6V6wYL%zgt+Dkd%d^Ne`OA4ns^1}Hx^t+g=yg@Syk-qPru-pYhW|>vVcWVSVtZ2Ods^RyyK1?k zy7hY^(@JNpR5G3l##PSvW-`v3&?C7KJ(5^$9jwEDvMbV`Cq=jL6*VB`qkX!Ldc;QJ zb7Y3z>)h?GAHdJPchk&SH)qty*m4%%x@Y7Ux9pMo(*wv?yU_C}=KjYqd>HFh@0vvU zg;x9#PrDR*0DS&Ao6B7}zrL?XHTmY89jJ8bGq(vWie6G`q}^QZ^u?a*?Q~+c!{_#3 zd+{gANxj_l95;Xi+MQFDEudnzZyT!jUm|0TRg#M1++RpO1F}f`I%zUb!%AJKQRL6= zxU*Tum?C}TA5>L2q>dh$)AvuRFM^~liBP_3~ z6T)|DVVN>98tD)6x5Dd@KlrY)RQMe6=s|H8!krp+MJ}IJnVE}EK;%c7eM#Gpq2}j^ ztwwpxcI|8l>9jMJn4n^lIqvo7WcN%>Xj|Et ztHn6#&gCu;d3G1~7TpKX&BU*C7rID2y>bq97apF3eJT1SoJ$LjFF+<4(G4+J!#a)s zde`uZ!Fr9)^4?9KdtWm-Z(BUP;(mBBY;Uxft@R_r@nq}q%`I*0!zcBD$JgOY&Zha1 z`w4l`gT$}DF0dZ^iE+$F-}l_1v*>XiEQtxkYU?1Kyd$9N8TcC*9%OyA==CEeeo~?f z94r|UILmty`MUqb9r~oiK$?lQmc}|87Ayf@(t&TZ`~lWcJNZ8;i6>v;xqM=0D&M}~ z+u;YUZId}YzQ7$igFW0aYr4>vC7gim8E2${5j!5gob97F#Ne8A>2WZ`_7l zR?{^QJ?s7}lz!2p$l=brhyUUO$3|XhNBkcP4F6sl)6#+dW9xUY7bkss5x%kVhbKFE zbfUXfl^ifUokToFY-m_NTZsoFYwgrLC3I#Qa%R?0G5tGrg~R|Jx{bSn6UZbgpW+Tx z>Z?cpcpmS_ae2@`5dB4MEqYmt$SuUzk-!|Es8e&O zyH&4*ewpnK{f;w|#9xrLqRAaupND8e*3Hoo%IY1(LjuEmPOqzK zFS<*q+00#RJnOZrZhrgWOr<}%X7!{;*Q-HrAAG_l)g^lN-NY=H^(bpLx*lcSdRT|o zvo1f!Ci&3I!<~ocxkI^}k$T3n=S_2m-cX4#A--5+6U;qVxI;&Xxgk2oBaFk7-_XbV zO7K_Ped+g|_`LFsC0`F~RMVkjjSkjJBW9(|iB9EP)17`-Y)4(8+EHgvP1r*kd=jfb z)}?{_BYSbW7N4L8SphPs0QaREvs9Hw$D`jUdiv3P4YD^@=hR9*iNT$L&t6%(OW=ib zQZih|_2}})Dfjh{clV2)x!8!IqfI?QYQ^8Us|U=03LUHYCa2b*1d z8=u(E8j<>h4(tPOMlpZ)Q@7x;`12`*7Kk3x=h#{cPRUw01x@&b_Jk%x*Y;e>9e^$z zr|eUM=)vIcJ$wt(g!sUJ@?Y|QbS}S1qXCC`-^&xKS1Ud#v5=O0t_`6d!XwBT?~{^L zzR8_kn6`vzMuuw_-(-GY*Xyi;dr>@lgfSeU-?H{M7Asbv69=9uX%pOx;^ZvS&e0C? zYC0;ZS8D4_Xx0hw7r`3K*62x=mVWcink|&;mhOQmhxxut{Emk8M_&~E(c49T^rE}P zQp(KZiRuvkSL5Nf0sm;3|Bl|_U^#`r9k(g? zX|s;nZIk_ylac<{3@Gs{Lz@KvlaXMUxP1Nd=)3~it5Ij@#E%RoR%Uyayb5g&Gl!- zCbp1ccn08621fD_M^SthfqS6=v(jJL6~mar>rd{nWxVz9R)b?Uhk471#IV4B%g~|z zp|?uB)>-chZ>p31*D{1P9Oly{J<1#Wmi8k$%l*oON}uLm5*+FRUz7<$FyB#DJMO(a z@L*-+jydYTNlz>X_6ymEw7l*ifl*!9cdefqxRl?6=$xtO<2}iDJ+$~w;AZK$yoPYz ztb)LGT?4BRZq*0WmWJ|d_UmasXej>!dB24J7|^R4kAFJiYfkpI>02KuFUwK_+gcmT z4=-pgzu_i7wg$QrBF~>8_hk4O*vX!-Yv115-5d7SZcgZ^`(x+c+Bc0Ib)Rtekc3S6 zUDaK8sZQ^?mpjGBki{QBrn_ZPe5S~C=Pfd3#_E!^d<&K&WNulMlyYK`IrC3TXVpHl zC?WISMV6E;_u7*eEJ;i`#Wrox4e{hJv7|iAJ;5`J5>qVbqb>N!CCQ&qSANNI&pcg> z=b8I2Nw!euyXZhIP=+GIw|L%NYOj5YKHSe*dC6ckzq`R+dp~mOkCYhCJo4kdB+k{<|i?~@EnZ!1@|6FDJjVI zknfpKATNJ-Nm7cy?-k&+;(mMblp)K_2W!!f9J1WAh3_kX%Ym5Xo<9v)ZC-)?*DJtq z0cGABvf6VHU9iEff9GrCZL$} zYS>?)CQmsuVBx&gAEr@Xjh)UO5uC?4UF_RGg;t4AiF)E=JqJHhBInr-v-kvVNr7gx zquVRz^(P|db+K<0+hv0u{a@(8Qu=DZXGbGvbsK!xEWO@`eL*Gr>+zCZ_Q3npBXMh& zRTx@|sjr(exts;jLx(n`LMIKu%>Ov^xMAAmerf9|cuOPp3k4(H0k48>m|g8J>QQQp z({!OUv)bQCAD0Pj*=p2cJs3Gh6*<(JPVV~ATPiHNMy;8{e-md*(E%x299L1MD&?k0 zx{#!ydzWk)$$!?pIl*069ji<-U8)P2IU@+~I~%@V$>lu(-}Fw-rlidw&0o5@JXde_ ztK)ScVl$pt4<8-ReRu-*;)$2J3szobsaWYqaINId5x+H>uU^rgn=5vTIYR>|k+l>9 z1Lz_9$k)eNpXCVq2-kF&TCWT|Oc_1>lygv6mnbz@Kppzrl90rXF^n$>d9TDCE54yT zcX3RL^RD5^rmGa|@+T9WrIfp#v@+5fAJK)Hf=SL`c0``Lvh<9>&{O zZfJRp^i5)`Ge0kIEon8pi*2RA;hXI14KYj0GqT))sjR6hl$^CWlS8MhJ{0U-bJS>V1ESni8((%0TR91Nr3a9p>W( z*CqahVmHV0UC!L8K?m?2{9W`aKIIu~6aQa<>7+q06?kHA;yM7o(2CxV!1NU7dH5a; zrr0~V@C(pV1x%yxWd8aWgOfJkni7TUqzGJruLf8Bh~_9<|4ezq%*%mmivM%!{yMmx zG`mBCVJmPIxa|j~Vb~3G1*zxBuYqlV^b6rBzImhY9Ev}IXgSk4SPIX)ob=eu7Sd7& z!FQ-@G3jsd2)q~ayO!qy80*EKlMY$pSAFCOj@ZCk;ooz>+ovgObhtyGK^xVz!TXY*Xc)8OaB`6LrusOYS>RI2kgXszx406Mtqb^ zqJ32z=D#O`FLJ&;!8lLtEODMr!8ay8o6w>93O>wX&Jsuuud6T~MDZx@T>kTTAm3Ed zU%g;W3Qov*_B;;t(T`a0WXNVY%SPAYP}hHwjy)atL0l~QDEloDgo59gw&U8u;q#1>TWLu3|SWEQ#LM*;YOUIqAJ0zaB0Vl3<7+r!3KaI@)Q06~FXz;YKe4`QhgF(%_VE$Vp^Zzn+tLjj{ z+(Qe!h{`u){$=jh@cm+1Aanl+>0dYZjpy=TIQPp)KTkW((*mInLVIL=h~2-uKfrJ7 z=5%mi_yssnLwdL`HojeQ?wgNv>E{Kwv0QND>tj2b(9dmxH;KjzEPX56Kf~b;9O9gW ze8``p!lxbKo`E@YqW>gvt|tD!U0lL{ldp$$wVD6>WxrjWsL4IjW(uG3&*KY~_-ejxd z>;%sf%0-6Py}WTv9{l60Gr0R^XkIy`*k9U>AGaY#f zI*2cXdg7IIpx4`tf0{RR!+at;`y3i*c&5=doOmkT>`kxh4CZxun@>S^D4I`vUMer$ zwy+zSlkoXDip?CRk5>f@2}*JfHq+vd!El$6K7VL)El$tO*^rUhlPUW6DL&)NO~@hB zGR=%}KEG8PjF~+zOmnV7Hrn&sCYz*7npZWM4=pcg8_AdrYP`7&A3Qq#yWzpQFLj5o z1IPcB!7Or)&!LUT1FaGt<}IO@jHN-=KlZ*Rbo4n3{Fm)uqhsurK>&1VP#G5qW)1XoOg+coa z(7tWRlFE>c2;RG(f8yt0BX+wpD7z7wxe>eFXYp|ZUYh-stD=mLvgoCmqjX)$ivO}^ z=u;E)vkiTZ9P&?B^&TVb!ViU@ivkbbP=k@+-m3*W71x)VW>zlrSa z^!G}*6ULt|b~O#i-=aL`L3pC~SugVYF2AzBu|KR9p1**-O>jr{nZbOiK3? z$f>ll(f7@~PrI}v^zi~YBg;7}J@}D6BUm*GpXM_strdPj>J)nw`7b`NL_Rq<=4RBF z^GNCu{`})fq6?BnJ?UCK;d0kS%6-+Bv$VUEKF8CSLU?~UM+wg_>ru*z{7&kXJbLh4 z#ta=>Eqq?oH}_A$TEYO}6fWl=`v_v+I! z*DOiOMAqebADL9klElovRwZVhR)(3k++@kDLmnpbuFCqPl#Dy$HMwERjpoeuC9#=( zbM=`m-+97Q$hR$5KIVCqH6XICQ{RorOe5|6@BGrU207v__14UmAsOa9F)8K`hNPLV zjl&M)%Ab>;Jh~LmXS!5mUe?Tv`oxsJf?s+*9g=E37&FwoXGn^97_zKXb$IQ&$RIx{ zc*rv}F2kIHjO$M^spfQKTtktE#UVc%QmoXa%~9$M$OB!-yfm3A^3*b5o(s(5fq4Qj ze;$}W3d|<}^BQ2j8JK?r%th9UooeOih^+P3U3+VP6W>wyN=!%H@7C|Fea+BO*WR$V zcF!VHW=H{+$W>1vH%-@PAlFOEd~Aj}^C6ol^WEi8b@D^c$F_ zyt*U?StGL5?*fa2PO<)xsQygP@jIn+gV>1i94i@~}BQW|vE0>s(dc`k1->tV~ z_9?WbqyQ^RCb0^vj{{4AlfdLd^0r+53(v56eZ@hGV*QK2>+*+WPAX0U_m*VEx`p(| znTHnAUhT5iF5vgQm~`{+(BC`F|1FF36)!i~YhUL7LH@rIqtyMb!(RJqgHreMdOPso zowX{kb@tW&?9c$`FJy^w-zz#4^~GWRfa|MzYgegR)^%!D{^6IKZEwW7Yo5zrXAx`fxe7IUv5}9qijWH~#I(o24i3_g07NcV|ZO<(|*i z&``ded|lif8E#u$uI|u*?@Rf%guV^x{JuLh-@D9&e zbR1t3*aa0GR%^PTo5hpmT%Qswgx>yD{4i60D*rVfJIGocXR`v!sDI{-#0|stxi#5c zXz0NgkWlZPl+9^yhb(;0#kQ!GxUXK?$zJLXl_V>ZXW?&0!Jnbb!#?g# zJL#vRBQMa8-Sr~o#SAa7wb~|`D^WbKOtav zbDgb`ycy^&%XnJo+X3)zKV#@RISReHj9`(>5qm=SPs{6iKEGXCe_DBByz7dMuF~O# ziQOfJ_Alt8^i|gUY3Z+`oH!fTu;vdZ2VVV@IqXGF@>3Z%{T+lmyBs;m8txpS%s%YX zdudbfyc;|;2!21v9ogdaiXPUK;GvUuwFLXFZacjPnqqrsgmA(D}a7^%8)^d)fOOh6RfO6D3`9{Xl z!GAf!N`A31mv-i$)8@!C1wwq2u@D!++{->C>#G}I0^+;-&*<0uIJ?;S2KtiX6Z$8d z!9HaSEf2*7Uc*-oc1V@2CS|6`PlQ%64s|*k1#m-gpiB?bYnN)7XDY*oTYJ>)oQ+uP=-EhMPxU=k*x_AAw6NCRjOth5ZJM z&S3w$-q13i$1tkcDR-Z9=~F4=HX?@rpJuwIR~5{H-fn=-8i?aiG(D%lV1SlH?4Zvw zo?ks2r^$Pze@pQ#n9W##UwHmyeI8HL&S`Qkl02fv>Ervr@_#G?{G4-{=uUUpmHyg# z_hSlt(HYKbe}m=-52ZlM|H6OS$K15{9{;)P(*BD-Q}m*Ob-=A6L3!meo;035Xok1` z-%N+m50(81|HH0B;#*cVXz?GLy*UL7p`qIrR`vPWBXU{ShQAfof*TT>T#FS~N?Sc9 zW%pI}AyW>qtgfVQr=d;Vn$i+9M+kaF$xbZa>6EbCG2X3Zw~vf%!7>Uj7O8v2K%&Ma9{gP4}Pls zW^l(m9b7L3*RKQDuLaky0oSi?1CPS@4bzm}rTES{gwHDn@SYC59sTt$i`?gJ**n?O zT=cbUas6YthZpVP-rQ=g^7UQ6c+q3=RrC8q2fKLbQk&6Y^qY1${JAPIb9f~EE#Q!) zc3f4=<5nB4g6F>K6UH)tyg=~!AM(JK%-S>EqP*I)J=|zSzJ4qcM zJsi{KbSS$I{0sW*_$ZDUt+f3lNtwJAIoL4fsVaGxKf~*8E5cr&gni*(Mk>3D^qIX+ z#FRp$J$+KV47rifgP%d!lB7F$>;^fX((gb#;{Kto8zd@r%8Nn~X zANkhHSyu8j@-*>XW|jD4LC}k={%CBlsuCE2h3fOenf8;va%|z4t&v! zR055B^YX0Ijp*IV9Lldj>zmvsX9lHS@x9r?Iuo3Ho$*PY#xI389dRy?)_=y|$Qo#) z{?>=>eN7K3ed4P~Ymf9s)`PS)ls%|1n|k!Ay(>~m&xk(AS>W_JV?p-ayNNL@qHhvc z<=-RY$JVe?Y%;QlFIcKi-PWYb*w##+e83;N+ABPJ&dbef+OXNU^`$4)R54Gtz5K6h z*3iEA)0A^=bS}=p3O{u@5m*VFoIFkBL;qrR$^AnE70kgWNmrvsPK+Dy2xEpnZ^h2{ z?M1Wq%#R=9H!}Zs#T)%^U=Mzze)eyXOZNsjJKcL?@t&G^vtNAn?9&ekT6Bwln~!bE zy^6)J$S-GQk$-mKudGP1^l~n%yryGT`+!cl?<3AHMY>quM=2{rC$|zFaO%gL@f^e` zR

      dgZJ>=n}j|Y*6kgXW!r8--2ybnVRGmd`?u9I%|v)GIQ1^rcO}&a7<$SG5Cs? zxbWT~512mTw+r0fw>&nmf4LesxIhgI%p%qp|9d!FX94qlW{pwAV`z4RGhOTh=((>hnV+ED5j|3dA0qgvf#oB< zabFePf-m8T&)%bh4(XvsG0>%0&b&j~&MXkWIie#u#MQ5lWzFj~S-6g&*e&Q7M&APfx($3sDt?k`~&f3;$ zXMxC9t90z=lw&^#iQJX(X*5l2jf|eiKF*xTzVrKqIqgF4WDi&LcJ6q^ZpzB|lNo7nn3&;vLmdn|k_^lta|g+8$pwr*dT+g>fc z^WiUhS!0JOS54gS9$>TTR&RTmnqV%|DO1a^2W3B+DQmumd{x*2SHr&rrOvwQ_W9J6 zM~r3cO=WDmkwT@duW^C?=ze|%tLJ!Hbi5%n}a_waBoF?2`!FPG}d4a?TTNj zldKu;lED)-Scm|YyFhz3AqM&q8ECQ{*mN zVp)sckd~%TW1qd5aaA(D3dUK^cxM8Ko7iW=a1h^CM*R49`|J~i|L!4ffB`>v-Lz$Y zSgFaQkM=th;&~{QTe*L+zpAg<2hBv5(r>``n^8^Y4tG|&;dW)RJ(9a(fjhByFWIn_suyuP&tYF<9d9@dEvdYHr#S%`+p8p_UNx5 z&JsT7f!EJ-jhWMd@!TaPdmNmhvVe1yF3lr%Slv_I@aVvTdtw9k#Q%XlA#(TRzu*f? zWGBX)#_~6yKW)nT`%0~iTI_)~pO-!7h5PK>xgEL`TB?R)51_+P-8+>&5`O@F7r&YN z<9P0liAS)e^<|w?>_6JZD{XHd8JOJ0U1wv7JM{UDN`D*cqM_vKvqo&V6z-3uU-B;J z`@Y{Kw6$@@!fvL4y0qM_wkL9l`LYea z`kURMNou35btLwWCiX+-CmZ>Nk_hj>BYfm3_!Ws$lHNIKTi1XRTBpzOH6!;b)vw?j zEcIw7JLpfIzy)U$(bsGN6^yj}xy*lWP%s+YWQSJ{fYpTqo<}?7SP=girY2sQYGM zA#3u-{7M~zVPHT%wEJ`Rbk^}QzC8sDK0b*|_<$Z-HiG-GG*@xQB!3t63v5$>=^MHX zp9%k+PthlVslZXnNZDvPb@XLxrEIp6;@?eKxjz?MnwL3)WN^-@{~f14VsEg4@d>=8 zes3D_W#DaO4qG26E|j(n_`!^}SJ0=x(=LQQ?$F(=oq!Sp%Di* z0}J{YEu*zTercl%7#w14bmewjCG(IA3`Mpryt}E>wav&H?Db&d#TnNmIv=DNI-T3P zbJe!~JE5ie;l3d7ZUz4KeDr8VZYX$u4}NZq;c*&?ncNHd=S{Y?-;vwIpw5Z(pRlL#wc^6^)WIZ zrxz&w{S``ol`dzh@WcIl{|vpIQy%(B*-Mxo?wqx8X>~CN@*bTB*#nWAP$omGSLQ&* zf12~Mj9+56$okxiOy(Wd?*-$hKhg0Eer#29ruGPIDxh!DKL1tjjb!en&pl?oF~9O2 z{T78C>)86J@FwWh2wVi8o$63?8onkc3;dX~)6l&7W%vT`oa*mnUX%o-P{aEHeW8?b zMe=FugEKq0TliW$KJ2|y3c60}3*n_xB~8A+M7qSuk#ADBd`I5vH&SP73N)BH4eTe# zc|)z-X&A;TleKjNOd7dInZ&(|Hh=mQSEJw-b$A)y0cb=Rw}|g9eZYP)i?IvMpY++1 zJ)fZyG>kR!0C!a3^69SH2yV9P(#*2PwKYgRf}hIhg0)rDtIfHrTbUD~$%5m^ncU#y z0DYA?l6YarE%A?Q@R@+m;B~Flqs<3>qCb82Xz}l6e)jpml+zdB>u{Iw&M(EH|92yM z*}QAu8Ln>o>`r$`Y={37|Dna4-IfDC>8s$Bwzk1h!Obk_h1OT_0a=qP2fP%z&^U2+1onFj`M7-?I27>4J+w1J|)vJc}NfjImL>Tax`P-SuzuQTosf{W<{7 zYxqq+_JfyM@GgVQ2y2#s6DyU;#uuIamiZb}wo zmUSe3ZI$&59c-k(BI^`dn@eAe&^@Ko>30i!_%8j8e&4{_mUS(>N*DA$r!$9r+Mv;4 zfupo7{E74j{;u#c=A!!~_FljX_pFXwztq{& ztAqxR<)b~c$v8fKD%_@w#X&t@%GvVbXJmEcXzdFhE^SKPl71Sy=gXK=Y)iIvLle98 zwryv?$L@L1N5(gx8}56%8yt%64XmLG&Wy4S>UC+p1m2_T@z?Cn(Y13S3}ih{U0X$8 zR3*HQB!;BO0=4=-9=M41r@8jRb7}R`PLjZOZmGBFK6l#z*0#X*G3HO&h}QcAxGC_C z)-U+b2reiKE?+BiCv6Ly1?B>4@IE-{Ms(z%vx1{N^TK%s!%_AQq0^FA@|^XBV_%9K zGbA*ZI^|4^d?F-g5+i3xgB3hlj69b!*=Ht$c?+@9a_~)+S3IlTJPrSz@8l70(%ifK zX9JaoC{uQ;J5>F%fyNXy<(cBW~~KxH%a2p*=r|9H93 z;k27yyHDu2!07kDO1??D&}m6~bx_(*%;E1Pvd)I*KqDm2u%O&ANPS(b!zbl_FsC3O z_1;DPU(z1&b$5S>Z-T&$+J$E)~g^tntQD~ zRL6N~-&3p~y)Ga!WCi*!>9cji{0`F2e2(v3?vQ80TmQAh9mt$V+=N{*E#W-r{*mPQ z5qXyao2b5n$Zdu(M(Awl`gdZG;b(G2w&5!yEvTFwm?C#DGWR94hsB)@Za2>_oJU!_y)3VIrrf2!&6V5T-IGK>pPe4LKg(iZHr?o%&HN)dYvzi zyav{MnN>+{;_T++Oku*eG&-u6$-U8j@Rxg=)g=W5nq1p}o5ZS=xN_*_^GTxQvW0C^|DDhXhWcZuqX# z5jo_~x5u;yOeOAXVTwEOt7+~)$EkrScQC&qi@`QM)#qvmRh1M6;+YGp$j=zN_*AGz zUQm6x+3zbc`;Q`v?IC|2eYorLME~6-iT+2a*J4>+UPD?@F?Ye7p&i7jMrVsi(j^Zd{5p#Fn;J|5ms{`uADa!}?& z-XBaymxK3Y-Y<^9C4EB%h-^g(j*s7JGh8V$C7ny;6Gs=nV0sQ;9=_}nr_lh7wlFw>6Fk%Xe^0UinUc{T^b~1m95Od)GT9riHA9Hm$wxJLGcOT=+Ez9-aO?y82H-r8iqkmoG-$#C>`n=x- zWz-IvSuvX>|LjP9>EF>v|Bk7No}-jYtiHSbIAxeoLjlF6@ZwK*{j_Z?L^BMaI`XYWOvKag7LB1!fOHwN=rTN5k>8P{glVKxso5$SN z$Q*tL_~Pq2zUpvo19Q6)TAWoqwpPC3OWmJ0M5#mnA$5Y+*Qc1Qerrreoq{fE4e(H| zRFWkYgurnh@YqlLOTBa29r&+sKxZBJui&1>tdwQ>)kwLek#Z-%cbRK^b$d=k$_Bhq zUH(nz@}tjBoGB}THnVhY&G*F|txx#3l`&S0t<6IJ|55Kf?P2`rupMKLm9p{vq)1!$ z&{lk;kNFdc-9ou+%3RpTomwAN`j|yI2V)byB9C&%BJ-V(zX54;C2ftTd^qmoPTNZ6 zdnNwDlgje^hgEmoF>poZTl|k(fL%PW+sOIi7tHr|)}zetI_4}ZL8-iZm^-wCHM|#o z;aT?F|7+Lh*vR@!_?E2CvETCbnc$DEPkg`!9%sHjbtzM-m?NRHBA@UPGfsFjFY7Fb z%*FuD#2NnsSo)bocFD-$$N-2$uF@2q(2?-7*%6RG{01L@n8C7 zq+e$GHQnoNkJ@-jznogXoc^Xrzr2xtrPBukG$(;_iIltH0vNt!!v}!*uIYLH=P0+4 z@kIOIL;pp#p}~x@(q5(k-3IOx#g-IazRpP*v3q**qOtw#YsU66Y5&giHe-7w6MTt` z>xN8V&bY+i*0bP>;EBX_wIc)dfiLm&Ic)2E9#?$eNtrfYm%o`l{9JIw);C4Q8BaY4 zlo=d%cO|&85?Nw&oUf8UFI{jY-t{NOc$D)gymHXOUNWF2_8NX)yzp7*&I!KDKG{Hh z`Oq{6dxf<+N_RVKS?m@0rCI)b_KKp&USauk$)4Fld)X^iLfa-(9j{fF7%GTAmZCz3 z<(u65Te#1cy&|8z!eLU*(Nozw9T7UblJP8KJj-ccS3S4AguS99YqPCnREJICQ#i^T z{_F@HUKT0W1urCf1-^|u4Uw|v_v_6zWz;5{LfI_YXB2mxLixE`pW@B&*mxDwM|7Z* zRsw4WbUQE7)_mHU5b2{bfwM8?^pv@O8rg_BPWSk!Ab9PSl=bW$?_^_3;YV&FIG*O3vzBf^a0X|P`91Yki z8d#Ilp-DNwO4ejGb>y+G%if&qFGVj3zg*}kd^IK%_q!fhchav>tWA-(%i6w-F}SFw zl)j1lpctOJiaN@XBUDkh(J<6(pl%~|i#`zN0Cco;#L`lOrmN7ugBLe(C%>ID>0ER* zu6a{z>5SZk#JJWg_V*3N?$9-Fh12HoUG51bJzS6eEA_;~gI(9@?q5z`>+@Y z8~hkuoUTZH*S#wBg}>>kPtu*=N4F{l{e3<9C*1jedZWJ0lqdQodYArocc|EX_1SL9 zh&|gZ?u&Z$*nx3Itj>Ac=1z!7EOTQ&xLBW=^{e%XhdApra~|rNrkq8;Q?q}s_qy7V zOK3h4?!bQ$`oYK`RAkeJ;O)RHOD%f;u^)wD|0OcEs9&k5eXNXkuulgk{E^X$Z$su* zVwm^pRgatb75x!8_lW+qi!)C`RtYxC3E?x%O~rv(oM)=J_bOW)L|4R)?yfy3vN;8x zsE64P6VXk50i0RMTw9j9`?sHqNxsweD0m+aA1G^V9cP)lfb~)K%%sVzH*i??2YC0| zUGTfdz0QK90y#tE7L~|M0o7y`#}BDYq)p-VO9`2mRYk{!a3rxS)UUd~N@ZMEbV_c)vrrBdq?~Uqf&!g4DUyHi91s)5^C;zH4y3<>=Kvq}TDfpL;W^krpWdNAM;ZSG^YDXj$vgljeC(TL zE`014PWaW!p;scql{F$~e*6&hDy*HOtP>f-i!yFtU}c?r)0tn^iJbW@;G&%QrJeI< z{@el!IFQ8IU)G70IlB0~FY9Cj?L0|)`z|;K?y`-GocBAKBasixVVw}yB(hE{o);-6 z=Y8qx`SX6~SI+yghGnfLG3Uf2=s!X^?Yz%ANvIygOM`=B!HMT1I1xSXN6)Eh_26^r z4%=8I!7TYVMDk1jj-ETC{-g7Lr%iC^d^^O71V#zK=pD}bUx7dC5U%z-9z`5&BvV=A&oS+^I@1MB2lF%Q5gIu9#ZC%(u!k-Y;wv{bpj$<<_J z2`+pe^p?T1C!|Uol6cP>ocFfbl*+HrIo8iN(Ye91SJ!=K3hkBnVg zPZQa91GHIU>me^GG=S@pCV3^@F8dX0P}Z8C`aAK;g4|+TLbn51n88C_La!>{KLO;ty@7??PLXpsl?|?o%iql^4tY zCi~P&v^iM5YQgV_8ToTB=cRii`R~>C4@+c!OY}TXxs}M6U$~txk0kt?z-k+?!hS}RXA9pU{6~>$?p@D(B|=MuzZChVnfI^kh0NFg znY}Q2{~&wh1@{mCgL`54{^25ig#LUh_Q43865t(#ClQ`e?jS@aoe)`roauw5?1wJa znApLUp$lcEoVL!H=X&N@-Z>i<$b5fBS<|R%oCy|u^DNq6k~La12OR_EzdBW!yzf%( zt5|DtZz*e5WT7(uVtdk16y0YNwSCsi`!RhYOWfVR3tT@29$LYT7tYD`x%Xi$PvAVE z-CrOJ@xiAaiJa%;{$dCB7h|h8)+QJd{2RgHBh#JjN6=H|q9WDGzBZn-#BtWiG5Aio zmy+{RC+%#ay$u)fspIi0Jf61pMe+~kQ)$Pui*g%TThiC?d1)8trA`}XJ&g~1k#aAf z6JP~i+<99q#2`&X&NjXb8Myc>Vw|erDtAZc&LWI&TtUO<`X8Tsz@D9tU>PFGty3 z1z{fDSs;CsKCAF@7x!~K<&Q>SBRus#?&l8MjRMQk@&5gh{L;^(5m_E^@kkp|zw|Q< zi`|@!H`#Uo%k%Ao`;gFt909k=!0U~%?%z6*T?}}~7Tf`j z&dK{K9tsYwpLQXA%H{o^(Wf064vxD32X_p@LE@j8kArjLs-Le-G$i_WfQLuH!ygL{ zYP2cwg1gcGWoM=7$Tu$L(Z4NcCFU-lHL{cWmNQ&JS$=_>=j2>x{g#{~WF6lGzB$0Z zv1JbJTqnH3G4@WuxnmKW+v^=);05QZ!3i^TPvo!2uzKAS@TbgPC^75S$+=>D7}tb% z(PTn0Ug+H;=kDT>4}oh*+;Jac-3-Xx6ZB4S?HGJZ{*RaZOlVCacqV&b7}tF5iPib- zLhnRglxRx4fR+rFU!A{W4a={_34Nli-4R+cSaw1?n*3^IM1FPt-g7sy?8I~Ot4E-B z(w98u@)*2<%wb|#UV+T1HkaR`y)cSv*0T8pVY!jBASy@rw&0w=65W1lJbjciOFZjB z_HMx$p;Ll47S@NzbS}mlnajcZ$p4DD7oK$jczJ}r3jJNFTKtco|LA5t9AR(At|j&2 zbK}Mq?yjQu`(|%lZ60;AUzp8&FNFumrJeA-+SlLpNA*a>=dI`m zh;9Ivb_req< zV2tH1kG{#bXuDzk^srsu<)_2(Q@XB*K?iz7&`0^G?zCoi!a1aCYWUmjk#Es@(C=L> zF^ooH%RTRxDS=UcBYsNGR84+unJ)qd{((65)Y z6l2(i;AYY`prd}^HMb_W5ZlzAk@~h%pOPN2Q4kw2u~CqEu@}?Ea5?3~j-u~!L#he5 zp1&vEuHAu&{_d9}#g04{UG5>++s0vcYrvk^*e3db;vZ7E-yNE>(2f0u<~u)lEyt%0_|ts3 zf~`$VP4@@*1sbD-reo9TYc2`Zb7wdkegj!eaxQ6{>s_4dU1KSe03DUMWzjUzr6{t7 z^@n|9kgH&S;UA++mi%JVdl%2$=vl9tsDu)-8p=D4T>HhUYq@irp@bSX>CbYPIysy2 zW$1-Q{XB1_&MNw06j*WRDR!&f+_@gY2WMGvZosc7mg~JP z$~Yw-cE-sK=w*xUeN%R2{h=2 zYWn(;=O(^4p_4B<+75Jzd&I}-&13O{9&=(n@OF8t3S70}xRv5Fy=hrEuQm@i=i`$^ zcP_7oywMn!lD82ZbI~gYe<~X(r)$9Wf&5p1x6+5D^j-QemG?&aAazTgVdQDtqo7!SVPf{!Z=Zw!eIj^5REGYH{XNZxGj&Eo}XAE&ChvQQr9h-y9p!OE9vHy8MqvNM$$`h$OU#go=<%Yr|6}y_ z#WwYN^r8he#(ZU_!Pt~yABqkrFw$V(mK$gWw{wAInbC|blpR}s{HM^r`bU(I@GxR~ zHrRjpmm}T%gZ!o+$C1pJJp&FYys`>*=rQ^`R$$78U-J4b~U-ijUA}HIJrjj{Oz5| z;qS#MH4Wggy)z|}e`t*&<%@0M-)n3&4d~z7Z?@HRNIjjrV|#9YlXtBhTa8=Ni!;ON z*JRdo;Cs=2b7qZ#%-`ObS>u-a-y|JfHv4;#@0}xR-17a+5j723`iO8j^^$PD*h^{} zq@JO?OTOYu!u4FkFY-wH&6m_DCVo5Z;qq_VYdW-d{1o87Wh=Thi-Eb&g&TNsdEUX7 zm$s&6<_6wAIbbnEhh(lA`6lz#%J03DX}sKxU7j*I3xA8E=h8UE9ctp69XYhjXIAVw z+id2v5t?C&o8yQ=8RF6I{C&+t3L-{y<8)-97 z-p$DO`OP6FM~?gw*Jq6Ul7EzZCttR_b8bdoIJKL0FOhf34d=ItbfMF&^h0$2sz@Iu z@1&z}m70TXSF)s2pGDs3kJ!bwl27g@wlXe(a~1U(_%+a;*jIH^UTp5F$S-=0t^5is znzEr^z&6WRve3c$tOCAv=z0fqkvOKiO0G7s=2Lb|Eyc`m(-P@dKpb)8xn4NF;^JxDxn1$G5<*%!`@&6~5);0``CcLrVGWFu+2lX8 zDW;`m?nOSOBk{JTFH$Rdmn*-mwkR{@u2lAk!|)@{#pbm~&~`cLV#{l)t*XuC5kK^0s?KDp zCH4j~74db|0T0!RF5lZcO^cp3_2Bm;ca*!9SSud*g547DqfFIncSP5BHrmh)@~wQy z&#%FE!%N}!GV*Wi^xLpC@-+rl!N;1+Cd!l|M=_03Y7dD%?-v8Fwkq%iJksWD#r=Be z*(aMtmaRN(7@vbr85d_;IoHy+-Hxj2KPVQ*I5o$Ss8+fDki(oR{GY8TuS2Xz|{`xz&aZ1p$2LX*}n}_8(RFeo5EnR2N*373T9!Yd(X*{(=nfswvnG zU3cr*$KAv@-3Z^O;Fn@0e5K6GQT7Ss>>8gY{6c)p`umb<8$w4Gk6lZw$lhl3Y>%M7 zm2`hYC`nE7zo91e!Ut9EWL^`uA=8|i?#Ue*P-AM$?4@S>E}F0#=g!R+ zAH%;}3*1m32^jFz^4!0N zWpy3k9np+EpQRq zB6fI>GdEALR@cA-WisYBbTKFJxlx&}*$3N$_E`8I`tVkDZGqU7;iIqJK>x(=aMP5b z_@lH3C(XpSsnLBx`dZ|}hacZ1KJQt427G~yC2d=Ut`Vo~aeSrauitEM&tl%A>BK1u zr^74F23D<`*R>lLEqY9Rp%{)V+T*SEwpUeGwTu2|>oj}&>(dnCCbO@YhWf=f?`I}= zpwR3N+{QE9dqw+BzCll4EcumL!-0{?`ts+ehW&2|4haAAO};I&o>p#@abc%fBXg%# zbzdoC(oLRo_sGWCcVErAoX6uBo;}0C@7&?H^Z&_2hoXGpP;`EoJ6W??qt4fp#kz1P z?k{wax*X7eX-`{jEP2|JG|w{U?qbWFak|M*-5oP|!`*i@uD^Q>k0X8BjAiL1Gya%< z&5UW0_EyL*&$8k3E@)GHa!H#}S{^|ElyM}rq9-mmS){5pZpJdF+I!X+9?Lk!GH%ZB z{o|y*r8?zxi4Aa?dOjr%z?Ttv9jyw(oA zU^OQKt2yUkHK@(7uk^3B`7gBDME_+jFkB9Z4+n)dee_f2V?O78xkF!dm6CFIB=+M* zetqgAx2=QLc+d&<=dZfW^MBCx?(tDp*W&knW)hf7NHP#im_RZKsF?|g6|GKf|d`&wtHfd)b z_Z2RHc9+tQ*!-nk@nMv6Ymd~Xj*@onC2gXeI{tenKe}ih?MB-C>e%Mu+s%4rGuIkN znJAY{nT*Mei{RxmWd7v4nOL%tCu2mT)l8mL@|Y&CyPOAjxbht8u$Hi661d zuXRF4O_esLu#P)anhv+nC&T2vmz(UF;rlRUelt1$&YEK@(=2}BsnRZc0DOrhp1Sz> zYHhE+L`>Qt@BYcVDZC5Og{JcaXL$L+mJFcmes_1&Na=} z^*yql{B)WrAwm-wf65I`ZOX+*I&^omoO9kxUt~{KO8xL}JtmC4PB&Ns`r4gi2{c}z z`sZ>ljR`*^kx%vSXJbR(3r2kLJwP0X$oCvu=zC}U7vF#E?icxV+f|%xrp{*atu z3z!~q_gAjX4SLtP`%C0(;Z>^DZ(%)w*USEtI2diOI!(=c((v^tk#-{eG_~Rru!BDBA_foRDW|>E0%GomVOR!Czm)%10f}OBq{y*Bdu5e+`xsZOhI4D#5w;@Y9ri;zU#1a?yP~>e{yav5f7@FH+wIgS|`6 zad>4uCV7=}_` zyn(pw+kft_uL@d~fWHpF^m|D0`z^UD6%W>6#LF7ZO@NZqQcm)xxt z2k28aaoRHB0d8c5?oj(Pu9ZBNnCiKAX~j1DE6U~&)4_vH%JQbYjM(bcoIhxgvh-2L zA^KJ6pUhj1)jcD3xO+z0toWidhryMb<(|%3>q;Yb_~c>guy(U*pG^Ekp@*-l0~$-n zF@B{E>Rc430$;7iMm_P2OU|PRECsJwAG;R6$~_D7)Y-J1>o*oSY%b0Qp>tAQ)i)q# z#eV_&%P>U_6qw@o5R|*5vMs_FCR--khZPy9{}|^dO0!fj-e9m+4EIzj2W<-Y<2m1ux5Kznr#2mO4gE0MXli`&*ZuQj7YtO4++FoyMN*cJ6Hi z@3xIoQ!e~>RBJgg`o3elqU)V~v;4X)aKKnyaXWWjFt-&c?x1V`xlSM zO=`4u)_+75@BeOpmU)c|>@=FYcJjZ{?+&(+-U}ZbfegHucyihb_v6i#a+{<-^(cs_8 zJmwbmXMN0bf^nGtIb%ZCFrIU3+>igB-|Gg0pF7U|$5ldCiAkM3NINAls(J)^DT#x9 zj@Yq6OHXm`nSNG(xb@~04rrNR_ksRl9g8C6g!Uvxf#eq+vid4_jhv^uePw)63wY9m zZYZ62Kz~(NblqWk(?0Xs*yMEoh~zOAd-7kRYO-2}CwkHI7iSwS-t#xAQI}W`(z!cF z;x8P3d9__)4fS`X`|Tz*Wgm4&U!_gK=g&B&ByH{sx0y?uH^TFN%HC;~8q-C5tFxKl zX>L@0jUQfX#V~Wc@FgR6oLJ}9N3wc8N^f~Rw z8Z|TAr;9Idv`fAHw7s2vyi40NtR0JPtcx$|7rt#w^!$Bz$D+S5md`q8`Y*2fjm3^0 zPGU+D(|&4tcnnth_4li!PmF0upN=pum%@FLJ1G`@J~;I=Vj6v7h_U_{x)!^@y`&XI z#8SnEkd54MlDeJI>(DWny>HN`2wj%(UuaV1QRKf*x`}BG&7xJUZs30zv9E+b%pK>eSz$`MGDI|wAObrMv0qgioUwKVLAACKrvQ!E@SyGEu>|D355T}4I zD{m|u#{aZwTJa&`=tPZ~yQ0&j6+g{?!L1KT4gaZ%U6LcGY({=tG z$jwdMN7)VS?eL|Je35%A52J7Bw5ftRbTr++QpE;?QKz%x#DMm&F5U(G9cNwsFjh@j z10H8<#=b|;{YD#&{%4HQT_4Qs&sqZg)Iqz?D5HNh{T6%ON0brz{RQP8q})B+UH>|I zrla#F^lg7h72m_%mp8|#Dco(}HR#|>9P8m=nEr*nBjul`{0Yk6N4}Qu8ZB^&e1C=S z&8!bkTHdh#=?^i<&4yvtBZaZaM-3M5pI%yTKgxO8b1ygB&vj1m50Ac(^?i+=T56|%0HrX*pWxqPJuZbAwQtxNv>xTyBfX966Dk1h% zANZRE-rWICmyA+p1)rb1RkbJbebAuw&FFXv8rHnc*gejJ&%{U}R%@bbIQaY^|K)yi zy>9A#cyMrv-cMu`iC-S+ui(ni{`S)kY4b_iyn=R)GA^O-Y0#gvt-qt~X&p}j2Wk6? zNZU5((shD+XpYgY(9j3SU3G$M;9M{KI`dgIWjkv{9cu;ui~A<^XVno?>EtA>*nCZY z7H27J@vI%C4XR*AZPX}P1C&AeC4Q>JOn!^`jlC(;zl*z0PZI;T7u*&8*Rhp5U^PRR z;EV9B4=8us7^~yTP0Ya(<~mBnceU`nEsRTN;PubI>np&gs9Qt$^eVVhmovU^{$}oA z%9+qNg7gD9ZwX#LXEb(QHK9N2Lt~UH!5HO#9$tT9e1FzM^yzhQ^#nh`(RTDNzedG;d z%X~U&de-^xj!70;l`@e$QlI3J`eY8}+r<#xoNeNp+=&!fFE+wI7cqZ};Gc`&n@?XF zoHB?Ud5Qa0iSu54>E)l2n!RH?XZdebW4rdhpL@|m9UG0xcis?Z1!oJM2B(h5TqdiL zPhSj`@1;FyCsNPn)Kg;Sju_Ud?UY|nyO)sFkVJDa}K-Q4AzL>(iS*udy$lLJ+_BPg;#Bh)ux_@mri;j#H%dh`m-|l4dqqBrvzUf zfk!lPYvvmC(t>+SSTpYiPoA-=DYvSq zuA@oB7lSt)4X?Apn<8b_Qs#Ba{GKv;-Y`y!{33Z|zSq(($@3@E8}_vuxi=9!T5E?t zDU0_Uw0>kKJPLX0!X?ET<>i6W;q4(rdVkTs5Vw}Ss(*0>mC&ZXdm4S7`b z>w-I+9kJPrHveXLk9Wiy_NrIsIKA+kdu!v9m(^~!#IM?kO(Ndgy$U_zWxTPqd57SQ zk@ZdR2EAq94)7)#y!i#|+XSsY>!w<3@`LaUk+FWEqWmR_{Ts61TGkTcF6#W^xiEc) zWY?&+Im&2#o%=Ve;7&97THq^P%+D+2dj(!`U-a~>-;YbsdBsP@sJ2KRp)<)NxD#6E zqS~I6cEWt=*L)MbhTw#hOXUBcGJDVOgg<~s=U;xx{u|=fPGlXE_s6Mkj7rpbm4`VA z=6!$q4C58~Vr!H4k|*Q+oQue6E)RM84aD!lm%W)-;>FOm=!2W>YUC^Z@DcKU7H;P= z@b%Z7)BG{vcJ@&g9@#ZWKl^CsH}o@(HX`q2T=GuF6w zl#@Q6H;l>u%aFdk@~^?E+vuCb82c$HejqyT$X-uyC*z+NF5`}w|AITq*q6kDH&x(| z;7+VD)-Skomc5JIso;g@Y!DoR=Pcz;?$gBiD$(M+j-{%&L({raq3>?iDi3p?4qeL` z{NwP6935}8zDJnrD5Hj46xH?2=?hu8;El*evKL>2Y;-p?y*IqK*eiPr)*QK8;{>vj zjD0P3wY}^uUfW!-g7~(@ze7%c*rWo_&5AEtOU%Z*)bOsBFdqu>7^AL#_z*f58EY+k z=tKBi8p`3J4ZCzQeZ?AQ^>dzriEnY+E<$cdL9CN+B>>b%-NoPAf%JGmD# ziF^Ax?Xjow$=Y!@ZAo8+r$`?^q>rNOcqq#4dyu{Pv$Xdt?WN6H>q)~Nc_sL9kMOLo z^iOzegimr`X%Tlj+peZ>=jdBAd-oH!jYt-}Iv2((k=5k+VdS+0!|<-g_d;ur^zCE% z_AI>OcgQU}!gGEM+2ASuS1`Y(jQYYCnfvgb*ORS9SDWx7GVN-yU-Qw0EEjWag?~85 ziB7c3Zbe?c3!GRAk9iBch{u-wD0a;_W1Qc~_k4JW7hIWF8MeKjU9;)=55h}C4|2g6*R~8;MBWQrBku*Sw&8AH z68a|5bxelGcGDhp>hKqviF+ty0p6LDA5Mu$7Jeq{izB?Iokz|-icZXpeW#zcj;b-<)rVxi zorvzr=$eUqeTnxi@B!f;V-rLC<5IXU*~Srlxwom}YWQhwg>U*#jpOoHR?L`=3>1(( z>`ak^h)sCjV6lD-j=IV9en@)nvbEd zj?9MzzFv5b8P-9+F#3^q?lxxw?X#yqFX3h;jaG;w$-V0tC;J>Sp^+dOV4ykVvbe5p6*$G`yuU*Jm zLp_l-`$2=O+3~vW^&#Zhyf4Sw<^|d^hEHQ>P&d_!;~3JKnDU( z7J4{A8Ihl!q|6Cq<|E+WpOA^pp}%>3Oagd5T)$(fS@?BWE)(3Baym`GuVv5L44pqo zo`~!wa}de%Sy*<9$Xi(k%>({c_qcLbSh+9aC_J(go_Q30e(dE2QnOdb8vBQLEU7U<_fgQybtaotsVFNtZ~Y9QbKv@13NImvA4t)N>0l5Qo;aL_KJ~i*f8#QQn)W=b2a5*q5w)#xmJpv_8Z9I}S{k z&bnyRWm#ed$6J&w8(o2wb@eE=Ey3MGj9+-Y*bl}3rP3wmD^gwY(jV?z7n=Dw@aTSo zv(@N~eEfH;VTIb zBZc^<(7lw+>uoH|+uyoebZn|h73Qqv-07 z;?LztXYVp1w9W}EPD4*33oXR9a2nnH0_+aAVY@gqJHF^pTD<*kcbZs!iiS6cW zAAP@w--qb=@spWxdW>4W1zu;M4zVRXMmvMip?tToE{Hv6A$2~+oLyw^Xd$22dmh8S zBl+G$FKp>s^Q~;B++cSjU;JU&dZ~!<8AEV&9w8jt`A(FZ@a9BQl@dg^N!Q zW5Dm`E%@Z`!?2S18wPySo&*Pg=P`8o@2+o@SkA7Wu`ip^*tWbJIYjRM*hh>Q{A0VY zhlX_n32kC)V$YD^K|UyFZYuB@@8ex1^EZ#*Ma~Mh$eoS&f;JhfT`e}s?)uqAVqg39 zXBihfV+H4gWn5m)4CrU_+2^Bcu6_nzPk~b%vhF#&p49+sJ4L4r@63mv z3jNC6s>O^cz&9x?b~Sk~W0mNsm%9>fmReKL3dQ(5?sV@Q3P-E%__@ zxUX5pD}0MP-P-mspJ$CWPvpA`-Q545{ScW&#yAmt7MURen^FG*Y&O7;g(g1vN`8Tt z0azX%0!vMYrQ8pQycr(vL1ezIz%Bxpp)k=7q}Pc5!*%RO1SV>S?lENgWUJB9=s7=vW5-&ZrXZBVWROYRX)AMrj=OchbbPKiQ@4f*;fPe|*)dCl=A>{#C!W zh%bnrJQiXTmuTib#WB^%FQwe%?rv?-4_I$ zX6E8j*hBpTu@nyD)pR3I8 z4CZJ(_sh|iZhLu%G?((FR_>Am2Sf8a#+AqXma`tRm#`%fUtVy(lDy&vC3x32O7;8i zyO7n&Z#y!r*g}P8da-~0vX(fg_{wnqfj>&^GZAPmfd@MMf%3WpHwfoRL?87$Ghb}(;{uEsn?&e;ROhZCf9sFJ7iF4RU zTcK?~I`KYYJe;OZ;p>CM`&f#9zmYn(qYLj^M*KVO$d-2Yq6ZV&D^phgW1{28RKdsS z&*$84*N4vbsKM&R+FN`Y+ppy9Ll1Zqe}&VDE%tlxwTx36@Vhs5ePnycetPh+!Vhf^ z+ND41>5uF+K7c=qj>n69{(bt=2cCBkhsDczv}Ia~hrL6!*p;M?I_%+n=-{OMMaqeO zO3JbKYhzuXB4er3qP^+p+n3FbO@{8;1pb-I-u1dt)9TP)yC@_3F)1%{gVc3!$h#4| z^RSPSx|XosNm(f;ZAIRDd2f|`bFe>+*Z%9Mw)-bF28sF43Ya#tVZ}q;HAT&lq(1-OK$zQs4P- z{i6RHgZ^(Qd?I5Q3ZKZkq3{tnPD)R3K z7YC<`ZC3cTmsHlz+erQ2y`bBW)_s?IsrgU*Vx4Ym*pc#w(2dZM0ou70IzIv32+hm~ zM}=N0u{R0LxD5E;4OhWep%I~vGvW(^oYMQMYVCz~dco^n=&5%+Y1sDEeTelOI=7%# zDhbc8++A^k^+@Ko7u;LOSkAEiSPZtyc|`wmHk`)=t+~l_E%a8Gb8X-JH@IIo$I&-} zv=^W11f#|OOYBXjza?>hm1_*oJGsw!r#ugL2fLxG)1qs_uR`c>qan_}zSfeAU$gf{ z>Ml>+w3J|mN;baY-BYTdtdY?)xF|}z;k@3 z%YTcC@A?IO+Qyz##x)jOmC)0+cS7`(h`)In`(csKPovwGy(#;Jk;~49>Xb1Jtv8W6 zhmKM7PD96-&zdCrQh8?^GRE&P#(dGa)31o_Y(2KKUi$OZu?tam4z`= z=8HZ)EU_~t$%5dn6arY_QVB;*em^oaoool zoj-ARrfH>dl+Z@=s*Ft$8Bu&9j_>4NEymT#_+*_PbLF&6x<8Ya&}Z1yyiw${;S-U! zWbavlUIZKznL*^3O6tzmh$+ZBi<})nE|9Y^F7VI88QH24V@LXJ9+!t03IC)oNyY@f z@Gm(ZQAVFcPHZ5?*+l+}4fg@k#V-u%J{uGGAMx3k$^S3;Y#?{GA}^HcGFlS82^(M)G{Hb+9;%RAkSekQ#3I?!~RZ?I!+D;Oy{sv?VveQQ$N zH1=&rxGQRaviqsK2fn%2c!l>3@kNH8oCJqV+Bi=t^Ej5Z<|Mu{jSr+0Ikhoe*_|1E z)?aWxZ-@u=C&82DF64Eq%;=Sq+VYU!^U3Rgo?009Mx)(YVodZ3j`hH^WGpT01A4a% z7E9l^8OK^@7?b?tz#GxkW+0axK&NCzciBrDeW~1?x5|=SNquwQo!Kt>iAa6I14H#$ zyp=7X`j~559yr!RpOX?*pp!b~{{{N^U;O7BQ%Hw`%p~yp7VFM0dAIrHZ(q#&*1#{0^r2aBI16?}W2RL2GISL9M1r&!A(@@fRHxS;Jz za;xl1c2ibl2=R{+zb9mLeVq66KL5$V;tFU(=t}kwrO1%K0gux0Bf6q?%BDHYm*^?V zZwl!r(rG_HImst_BH6Er-28Xim3^5$j;nK9`|vfXWSlYh=E2XaC;F<|t8P*44eXg^ zyyABv<84HTdpq^Xm^tv*d@wLrTuUl=AZ;#TtR?70ga)?relaOFgl6$$FSF)wx9OO+ zYTA}MMK+W=do1XM$s={nCUrfApBL%Z)hY0mI@gm9t@ArysZ;tX`>dH^{n||QYgbVw zziF_TyNmTX;*eDHKH!r_`h|YYuItyH;N4~Y+8X^{KG$`$A^QuNqawcRb0q!8pI7=G z%R9kA=eoh-4g8lqir~!{@Nf;!<;N148S{ym(Kufa+#V(b61}93@()zG~7{q{~QGk}f4(LFy%~A*~>-C;dL@ zeWZ7jE+<_=D*4Jt?%xirhfu1a#p2FWJJX}HG=jhao2%!z!-Rud+844jBpXR(^5ll=~Dp2E9Xo_`t8+%Q>ZG$4cZ}}z1k5cwi{MuVq z!M_mdJUV&JS01oCq5aUgJ@&%GdLb4m|p z_*b)Uk~1j(N!cD_f~)8A!B;9c!+_4@u=BfWWW}wjy^*uDLiZIb%JFwdb?NU{WV8!C z)H$$;!8`Rc?#&}ZG{_nDtxi)yIli8pU)td8oEpfO#NGAyeprZKge|Dr?5nsytb;c5 zgX%&K>w)wqFUlRvV9s5f-Mu*}gtmhlD zb1=WWvfcA-Z+jl!oSZ{4M-kV)2i8UJf})7O-bp?o~$6aEk7piUJ`C97rX71gv6X+v(k^)gNTjdmmD zq#o=Ydfw9+ri9#ZoTQsr%j6!^sJ{{?>B1FyS;_k>u^-<2KjiypWPRbQ`*we{O-(i418%uV|{h=?PPR-Q(t3=cYzKl~lfjW=?~S3YMg)6^@Cx$b_6J2IF54u0jpBo+Qh zJda{sX5OC|c$BmKZ(VI_&V={K`RxqsRC4YtAKQCAwsv@w7n!VhJ$Taw-pI4u7q5TE zHZRX&k7^{w%S+H$BWv?c($q41)o4fRMAuL}m-lVFe}H*7X&@dP^4NIfv4osFPaS@3 zuTsY=#0jqZg{oc+uO$9~>#y{Qb$>(dPi=v_=;w#X55J(Vk=ROq;(Jdlat!s3MlLxf za!RS}14gxtMn?HDd669w?jMQ2hs8ZZFKZPS%I~fLqr!icDF#3x9R`@C^3omI>Ip z84LXO?c9vnfob$xV(GNt;}t0llJT^foZgZQQk+3XWo@($6EaRu#7(^E|^k zv?fYT6?nGX3~qvxOZaAhZ|B}8d^<#cat~Dr?S`vg|;X@N1c`Rg!Dc=vYh+o^#B z-U&>K$-9=k`wjI$)5#zGQE2Z0-gS&*&52X5><8EK=%dJgQcnlxj~%>!jrZbzFK}yo zkn_wBsmUhr!XSI24<+8-7ybDL^@+da{`JUPz~q2|dkEoGk$H3C>*z!uEo)~vey)G! z&giL}wI~<(&@U%xqh-I{nf7OUKe&<)kNyvE(oJ85ev;4)aak+ zg5M^1OfmO~ZG+F8L?>OxI@OrY-2&9R*>dv=r`BSZ`^JvJPdhkM>@cZUqz}SB+S%97 zC7+Y?5i%wdeUSBW2J>uySB<4zQ(e2oWlZ!}a3(h&TxdkT_aKkYLmr1l56?%=7n$6P zjPK2fae3Jvc#*|3A5!i6k?}4EP4~W+*}m*Omu~+Q+ot2HKihwR&xjnakJvy<-%D#x!}cjQPqBB>S6lUa zj&|(NHU~D+()T8F2c@!|WUhoygkp^Sd)yU)ufVnJgTdl;t6s5)zEkX@vL1FEA1v+y zH>!}`#V#s)4zY_0uc}&+*)DV;+nJC3SoT(*FWlQIaga*WRp575v0uzpfmbCZMoOoot5smH zq+3;BkEF-7z;7jG{}hxo*AVy(sq8a8U)ZV3QU6n{mcg4Who!C0kUh_{j}-q5!G+b_ z>0Cp*zF2qg9Ck!mBmen9bl}I-+nCO}Q#-cEQa!GyG1lFmt?6e4M>=im?Y(yBVX|R4XR(?^WHtGsPZb_RaCXV zz&uc -H;BwB+>dgnA=GBfVa#3G)5wbINRk@UJ9&s40L++iZnt5&DldF-5k*()~ zGnKU|Mcs^9XqfmI_R8lpUyol4{sH^-TlgW#yFpS9?Z!}-X$-z<K66aAOEWDH-fmhl6P#?SiO%cS1aEOJdgXqIQ_YHt@6Qln@xO&uljCH!{ zD=G(e57M6o>X7m5BDD(4Am)6%TnNT8UL7Ws%ctGq5#vS*%zj8&dw8q@r)r*8QAY&k zUkj(vDLS0)A@5K)E#_I^BrrmM)mGknP2m3JS^!;rfA$*fY&UD0%=@>=XSy$?Xn*Al z&f;=D8QSdm5BNj@zUizB|H^`Hct!`;cJW$wzwaN0z#H_bC7<&Re3!Br-YNK~;x9&7 zX=^2Uz`?T))U(VPvct+m$^-^Ceby-I!m&|7mb$Y=Gjk+u{@622@1(!^;Fz~IsVEiP)ax@RkMvdoFYqpt?@jPBFZvK2*LnZjA?;SJ7WfGb zrxf{#C#mNF)-Mgsvvx?H=x`q3-#R2ur2k%M-3zS?{B^ovPNm;Y`j7$a%YprW;xi+3 ztIy*`<@>cfhv~Zf=d?Za`*X_oBF|R7M_?#0jo_x>rMC?{zd=9C+*Spie@cAM1+>dr zso!y!s>OOIRYdNWJ7~8|e$-yqshyQ^cR&k|R(NaP^v!oYQjv-O2ewRb*}E~vceGGd zdwK8OsQJpUy@`Kp`AoNO72_!fA13lFXG9u!&YQdrdE^cIMCMWF3($7?jmlRpb3i|w z%=ZJ~e4mltm#cg@aWo4KuEXa^XrY345qgNBo(jt9d>7txhB6_#;N05%ZkiXN|?;-x|gnw16QodsPGU#sOkIEv5jztNbN@p{)Q-+vGJR;BY1E$IKD zCqx6_@7eJ8dDL~D{}oSC2EHNdtKhDawKam{LVL0wGBIx9UEZJP=yOy7+$(;r`3A%u z2=07S`UUPt`O9ztW`7O0CAj4UZ!Uj>w*MUdwvunM4#|3Tnbui9yx@({`gMHw*N(eE zXi?tDS{vanf-{2em&XUr1c!bHPbNs)E0k|H?*$*;rq3t%KT+_Pe*B*Qf)BIEXQB@! z$niSf(}!|!!OVL}FXKGp`p<9~Stl>k1vo)~RAO7YecSn7UZ{L`P}Vt`v%%r~<9SYz zc5KuQPW(gikzTGFyutr8Om~sGlZwj0k*!kq_uRf_Df7KhnaCKP441h<+G9-7(grsD z^2N$0?;2~z-XJtA&qLd4{JOU8QND+ztxC7gCv8ZD`uCX>b)DF*f$-{V-U2bD2A7M<(hx7&dzWZ`M@C+IdxR(3oy2@88A9jc4a`0c~ zUhrS=Onez5cp$hD;`bpMxPHjDucLwM!r%R*SBL)}CG|oJI_?9*T6x~+_El7a>l>9X zSNiaC!ME_bZ2n?ho-aItF?fHje1gM*x6-!;slzufM08TD6 zaoV5D@gaj1-~%za-sN8Ln#H~168q7PnfN3i@A#IhK*i(4&BITu1DS}}+clnDs-SLw z{XT0;zNXP#c*ZWRpl*KT-I(iL6~s$rtr43}`NwYY!NJy)>JtC?h@PH!-8=ISCk9sh z!5HYnM&dm@HGpmFtemI5wxVkKZF461IcJK`SzMcq{j2t)PipYdKAfiFlJVcNmAzY5 zqg|zH3b4)GMt-?_rindW?98}iIZqu!OurVh zUB~bx)oAMj-zPO`QR?s#lPy`!?JRkh^D~_5!A|olx89a5)Yf#H-j=C$oA?>KDj#bq z^bqS;>{X@cN5Z~GZF|{=Zl)iP;`4^@SlhkagEN>%d|bx*wif4Cr#gMM-cFyUY@X~3 zQPrOS+f>jfZMC65bp-5_U&8CA-e6OwG#_`}k2(!( z$Lwv#-4~AWO?35}jrFs)eV{J%@a_Kpj1Jt+9_<2im-InmVDNfmVd^n@&(}y@$EfEx zHpR8%-3Xo%_aJZtc+0*R-?+95#MDem9v3J-(%>63aGx7EW&Ba7Y@{C#P!@;bW_(Na zvf_tSLH{eCYw&fU&t3MoHSnY3^}#Cooy|D%Fo!MpVdkbs3>!C|{)W=+_Y3D|ZrZGM z%yzQJ-C@J$_t$P;d|w9d6o!T{}+oe_Am-aH`K7NWCKz zxA>PImDIcy#$$tG_)gUvnq*2oRC~p!7q3(`^YBTlr)|Tk zh4>q#y6(@ed&0gdZqylkv!71Kril!>ca>^A&e%fn^%C2busxahCu8Y8Y zZV~sm4F0J{p0R~ zn)&bt=>9PJ$HT;4Es!{uRrGNdeJp1V=Hko0)4`hA9f4gDMszbW}tRqwm%3t0Kp7qEH(KgNHD z)u_v``W16ox^V(^k83*)Y+j+x&*16jxI^Qgv@7jL+Lm?&W*-5gyU4c{+S_cEdp8o= zp5ys`aI*YJj!)$EOWE$=Kr*^x<1`m>p7fYxQ{h2-Iak8^Qe0|r&?e{gi0v(YAJ;Qx z!Ku>p^nf9uzHtBIj7?gOb~uUm&FND;_tTH5&|0Hmv{iIlLTB5yW?5Trtb1Y!b=`%X zE1I*~CbP-v+%nbA-3vu&!_EGE!_0nx)pYvD-2v$5JAI{##|I3w)oL(V6NxeHG@GqL z8`|%k{!3}5=3ikK($5(%76b5=c26=^_(#Ds#=u^#8hM#Bw}~DLZCa(>NtR@(=K=a5 z@Ra(nIgFAzQ|BA16Lvj?tuev%9s1E@Nbp3)Z$Q*1yl%wz}j( zX>Tg+CF;Db?mgmh8|r88Kdvs6AD?c|&EM;aT=@ zw8dO{ke_2g@cq3ypMJM>xG3~I{U^py( z4dufU{4(}6#H&{)Cj_*-34wZSsis+K)ar|Me=MV{v|s*r6?~AkOBZy^F3-&g3J*TX z*nhY$DsUg`!Dr-g(B}-B3J>!uOBq_T7XwBXj)`b?f{X_%_4Og(sKOUm1&;xp8#< zeU`Jcqxy6v#Y;5M7~4GK4O(vKZr6~*Tlpm-^E?( zby4w??^f})2UjK+4d3^e{T}w-E%;DJp}TxmJ#4RI-F@77k{xF{Ka0^b-fY(pE-o5#T@=Ro@Tqu)9ShZ zVenOrn4=nX8K~1p-BGj=jc>v*d=s>`xwG7lcMn(nozR(wv)z?fjqehf#S4vlXS*M_ zBKOR@vZIFQ!!789o4(nE{x!zy>};}okb8PL=aMb^z+LO@mg?1oC23CYNp!^1m}}t~ z;;UT4dHhT0qH{^bHX(jB9}rVz3~k&P;zzn)?!U>!FO=NOT;9Z-=C-N=WgGZWPAl`Q`xI7i?z(UA=X#ud*KO)> z-{9uuF>0^aZ~GK$MM&PZaHhAu@GYfYxvl(k&0*#j+41nCY4ORAF{cYuhcB+Cr-pk< zJ?vWopH7YC42IRaW0#C2#=C>L-=R5dJ8EN!CWY@n=%Jrt_cq64&r)(uUA1Mh@5-<6 zP8Z#Z=*6u`*uusQFB1K|^I3ej;4e~U(8!%qw+{m+hquaoMiuZYv1#RR8SfFsnccRg+SsD1uuLX0rIa~Inf#LG!ajKAC&*h(6-j|l zNq1D(1E>BYRG;i!uC3^)IgL&4Ol{Jr)88dl$>*v%{w2RX@a~zKo$vmDZ?@#P>la!h zGN0^Sx+#C`Rrnq0Inpfn;AV>oG+@h_BK#KK80qgi12M&I>ac54t#jg3w-cL*bvyXx z>P%_Rj8;MEuUV}wL>~~~d`_T(y~{fAG`kadlm3ZM9((pcRm1n%@dF4pMZ0Z}XjUt6 zr9Cgyjwtf-tD=ncqtqJlu|BtO4l&kmZ3U(}KH&4@n+vZIxSEyn>H92Ok}l6G>d$2S z6M?7SX-)PLk#GiYDa!P$C>q=kh1()l_sA@NRnrrvF z{4wCn{MyndPBoOYpVCzD6n=Y0+4FeV&zxbu_5trdWDK@LCGGI+0^0|7ybrODnb`Y{a_s>hIgj1E&C=l;&Hr5Tg}#k;;T+bS&Uq1RY_9HC z4S_af;eV0dF7Jt3)4fIuJj=UFq%2^~=~mv|qyo%s^Jk>RZ<0{A-g3`?*cU_Y>apapxi)1`Se_U`xq zz-uJFv7&!tz%%KO^h5e1eTm$^RiUChvL?$nd`~^neriMNg-F|xzC^~3PfkF}OJAfP zQqMBxb?_$b@aJFge>4*-hS*@$jlgs2YmP4QhfLbpXcriK7NS4b7?tD+$pxd^p5k7H zzonR(g%--6o8dR(vyk68z3YY7r+0a{E76-~#@1nOJB=R^{Dm{v>Xi-Pq4+1uI(FTv z_~iIiaYbj4%jScR*e?nW4zu{3z|i}rlPWDDL>i2##Dr8Pwa=n?@NazvPT{b%o9A~3no6u;tyup zMSNBK!#>9^%urkR1TYFbn_@~3dKBLR6aBYL=n$GboJm^AT9og6)$Ww@JM_P2P1#G> zjQcV=8#kJfd-Zi3-$9{+%ldM3ucB8J8}*moqjMbke&~N)k4ZTvx=4Ai>+r*NTG8c; zeMIUyi9R!8v!t&s(G!bKN4^QpicMJlN9>BFzh;dI+c(9w7{l5hvFCcQ9Y|i$VSb^L zP14(u@`=dYVw)UV{sDCJ$Pn#T>XEYLw~Frf>-$uGYe;7-`9xn8(N%TiHqH{=)&6wz zg;~hNCr7d88o9af^4=4f%TT-Ui6Z7jx9u|~>0=E27kj$*CFPSk|0h^Q##HsVJ7jP0 zh4r%7{p4E}Fcy7v6ZJNwy=ia6ULkOlZ=#ouypKHl!{z1KN?G(jx{WD&$Q)nRGczXw zOR-5wei>6)ep+Ck9Unr*6M>!BnIpajk}u>ND))z8;gV+)wp5u<;kWwp5WC(a+86!4 zy!T?ah~Ql)U&IbErYHe_2ze*?v1(v2u|zZJ_91yEu&iJ%#by_o%P-@>7#$CWz7xH< z-sYF^C4`ql?T*qv$@f(_%R8}WObma&d=_J6&KG`{PjiMq^r{E2|C8=V_Oimq8_^XX7Fn&>d1S3FN6WVZFVe}W2_3kGtSiPh*EJ*^mM}O(*AkNK>6oa zwC2OJa_`O=u%y)MGL-o5l&v1UbRBzp(Nl__mt#a!tdvW8XwHBcoll;I{gFEI@#!?N ze^_@4pZDVIxb;UgU*jJ%pW3!L);+fDn)>BxK)(Ycd~PA)3nF^S)8F{@(ob*DmiA>D zmU8dw(t#gEArnNmevJNq@Kw`c@jLww?wY_x*H-SpPjh2Rzxl45VCon%re)47;1okL_CS=~Y z57o7apRW8z{)pk56&kVK3^r!PuI?eUF)1;thGg>A&#>%DBZn zAg~a>ik@p@oIRXn2ZlS*r}j4*ZVXJyyLF)FChj>Q|AMmld&~!N2QtY26N4q74$m3j z{m$g;*A#yCYE!5-6xYtfsT{N1;!Jw51lw|&1se3|?5pT{?d zwQt?WcZT$u=y%QKdqj7M2^un7vtYB9h(rifdBX0+MFl8%bl>_7;W8+hU z7aGrl)|URrd!ey{F~RS|Uvb?_4+KrMiACGEli3>0ega)g7k889Unx8(L;&_?{%$KmFJ`&M)P}Cn@z7{8NGVw$(8~q2Dydv2FFd zAZwLX-t8f-)t`Z%%)u7MiJw$+{Xf3Joh3>7xCIVz+kUo%30wFvD8)X zo!ZXjANn1IJqyumfm@sr9!SOK-&A1Ul*}E4iCUBnSI!$}nN0Cn1LzoKE@d7!<0rZf z|9DqJQ?LY`!zak~4lQSoXPhcX*W7!`w8bg9o$Ks%0o9S7QfapM9V#z1C(XUb=w6)S zFr}xA*R(yNOR4vk?{+k(J%SVB`#5)wyZvYX_)(C!AfafDSvufcE@oey^wjP4V=+U?Y%ZSbb_7!y5;{wPyfibg$Z z!-SN-k2N(PGb~OKdQ+y16hlSMK%;TAKkd5QR7GFX$fwaifl;sY30=jjU+ItZ1wGdu zBmIfMrki`gQqO8t#W=hTP4;=f zt%Q7)=pZ6+%c0Me2V5bz&35lGnA7zB&viRe9Q@KB3c)NbTH7P`uYTrnw9Mn}?mZ^- z?sjm%Q8aoJ_hIRNV#n?_#0jhg&dQONf*e_F!@usBF}ck^{;9x3=&0PFvh;lnx>oZU z@hf$l-OOHiz0vH?*KP?)Kg$>oa->VnuUXI~T91{~a4yfY-s{w349PxLbP69)pRTu% zb79o?D)(D0>7Eey1vo2sRLYs@_25w^bxfoVH#k(HjR;B~iDl-&wh~YojucPB@SqhQ z;%P7h-3{6vIiF@?tg<(fxz8vvZBpM|Gh5xk@0{X z(<&==%eW+OSw)53A7x5Q$$2PuPa5-*^N?YW=*I4(7a1mx{Ohy}S!uN8A{LhPA0vXlY}d*?(toX@ za<}wft8ne^r4OQOxW!`10#{wF#7@Z{zMgZ5o0khe7W;$~Ja7)oA)W-f+2}@MDW@(+ zA8V8IDJI%n$9iFbhDxBd4*Fm3t=z4{IL(n_def02K9w`!`6hShF3Dug?h$+x7%T4& zcbgoJl#1`G;zV%s6T@x0PbG7fWQHR}aI)Kwv|C^-c&XxDDeK2QRw#JcHhTARfv++< zQiyFZV5v0(4?~kH~#J;Ao2$>;1&ovZ(3La<^tI z_qIM}Z{ZHj?j^tHb6_8h05(l_`;oSYko(o8{>6EzUE&J^rHzR1S6Lj7~F7#mBLi+uTJcuK=Oou~8~ zAGFJQ&_=mTzIpjpNqKKgMUCKW6=@y&+vA)|d<0dY=mF4~1=<=+L4of{Xtq_ErmX`$ zt-uEPbAf88pDjF1@Iw3(#8zYG-n$;=Jk>{RXW+lyiY}9Sgl=;gYZ-J2tgH@YNEN!N zx>HRNK3!&9oboVr8{$`{2=5bI>Ekzv{vLxz>;oRT@V4>XO{}68r#8U9Co+zkS!1q5 zmb;bo`Oz;d&yw#+WhpHK!-Mla7+x@wZwk796#S@TE$w*vwiT_|A2r$(9};QjH2qC; zm!%BWscUT=SsxPV)E_o*@7 zm6nvAA~f_D%E{ayR|Tq=pFHLS=YX0f%>m9?`}TqRkDv>E)QWzWJa0zk2HjdVeRp!! zle3xLN^Bnyp3yCH0A6~uxk1sp%Gy%8|JDKVwK<7BWXoN-0|I}QQI;Zba+HVoqO1Wj zuln4OUpdNBTG`LkXDrwwJcs&S!gIQ*FTJL6w;TL*zu`#9>*Tx&eG?srfqLDP+W}t^ zd^E&gmy-5Qg^tgj15SV1JI>ve^lKh4aiQC3p?_82q^#!=Jag8#+Vi6<{ybnx zu4Vi(W(P2+0tV}_%U3Y=9L9e2*Ni!eF)t;4ri{5NG}dY_c^Q9!j9Fly+cD^8Ml>=8 zbCk;b)H7$&uFRLm%sz^Ibqyne_iEDuby{rDt4$Bg<9_P-;2CzPwn1$~-*M`V&_Mj^ zxk0nRY(0QZUFP%}>e^2|vD*A#4|sQqxJ29FeOmmol!zQ?QZ*@}H<0fc!JHLc#O%$0 zj?1Y--n~aXrZWwkUvi&yaL?M%y@~KQ-EYK!JzAR?_}3Ucc12qWdk4n|&MWg>hV)aA?-1+4`v@G`%l`m zIdXCadJHO9@11d}9JyBT(*#aQKH2Nb^OwF;201slhjRrp&>M>H#5(pW;(sjr4auAR zP+agRy8lw}wZ%K5UDhjsCuarP<*wbHIr!yp?sQbU*TI_$;L{FZCGsh7)8$i<<2=lzTQlzQ1J{VWI$v7| zeqtNdMtD2G$U$0@=c!qz!0B>h}{f zROqCMZ-UEy*6t?8EAM3OO9ytc_PyA!F!(6rdl5R@3vKOZ?U1!l_)31m0``d(kH9^` zQ{4JEzRY9Q!CMDp-us4IJvpp!>Z|7z4F z{PzH~>~JmE!@Ag37v{akecsEwx3ZHn9Q1Q2@0B>kvZe^{J@&51WvsvKdyc*9+UOhyQ@D0S{>j>)cjw?GYJI8})y&p)@DEvAWFB-r@PpO(+~8wYFT8>~m6N{U6{2U5JeCNrXqX=?A2yU%Si(GE ze()q?I2q<4&H~FOC-m=xhn&R6OvhvR#Tac$zzNUz2C$e4EKc6!=Ca3Re;s^bE9+aM zHQ66cKcnFVLKo%WkI-Qw_xCg+znZjYe6LKLXTw(#eVB$EjjrrW?i;fM;t%(sG1;|^ z{)?`!+YlARwjVf;d@6Fc37&Hd8)H3ss5i06h@D|5{k|qJhVNU(qGJ@gJA6anBKm4< zZ*8V%t;lj^+orq*VgRD;+ADYiY=n=$Mc&hl?GxY9n(e^#ZSx5KDaQ4w&s%fI9OI8O zObNsrVgfC!2?lU6V2$yovmRuxHU>+GhhYUDJCH{@IJ@hBA8C$#_73glAoe-0+#jGu zT*w+v{Pz-UIdbMXm3tHN!2yR-9{0PYyJMh_JHukXFHKk@Umg$?Mpwi;psYZ#M4hu8RbzWw9Q z{^WnGE;Qe@ws4Cf*}s}RrqS;HHS7_i*qcZ`(~S=oZswc8%^7v(YC84ypcj<&ir7bi ze;#$Wik^{}8Uf0X~_MIS@I%7 z1-E@4Tg=_|qIW36ov$vbJ6CkU-4pR21K;Vx1AqC=^3#c?=B;ve`<=AQ?>{h(ah>G- z0m}BorC$0R-6Q(hohEl_iuSu(21K4$rqYyevv1@5+nOzRKr@%2w<<+fQ<_r9d+oNn zQ$EMnN7qAbAitKA+A}=olIZgz{w1FnHGD%Z`oEg0AYjWiq#6~fDE3j#p z!@eew@Ei^7V)dpZGddH9) zRi1KRlIh>p52;7wg7?XH@%zKD$qvW1Y{FN;tjCb}Hyu7Y+|SYBBQrcTxF+VX34fZ= z=<&tAZH|Aw(DF@p!O3ON^HO{=pv^q?=1%tJ*bMbE`%4z(1T(rH1t&HyuTv&(A2gXj z`~mQ2LvHssm_zK`%xwba?Q59B6X2EDH@5I!Ow9a8=-%KU}$;zJ;7hVbr8%EzFa`V>1UebRj#;=XCw#NMr~uOSh+D5Mv8q2ii$ zp>DGdCP#lE@|;+75!>lX0 zssTsAoB{aufV+a!s0N6gbymS+HzIfKUvXc}u{ig@ffXxi#CA_#3Z#D-(2U9{P03{L z&Ctm??8dGc%Tl_n?g6*CH07_r``B>zfPsBqx6wWDTT6mJ2fA8(!>m0H%KnM(vJWc# z<*YrK&ZQ~WQdiH4DVHpy?zF0u-vNhw-n)4oNgK-H)%BjHw9*vIkEUFj1YDiYds9sO zq#tHIPen=v*&%7_sbqA3XMqb0XHvb*_ z%y9LJ>EhZ#^S{;>e)RGPJ?|FU6rY~){Gz}c?geZ6oU)3$7fct{>TP8G{Nht4^ev_1 z)K29d8PJs4kf!W`^6zQE-;-B-vabY>1!qn&m+Ki%AM@G77(QiwWnZ=#8Oq@+zjPWo zKz!=9_?BG~84tOk7~R8R@u@52yWsgw#=tvUT%~LJQOb6ZXN&J%J-_S$k-7A9#lIvU z{|f{cPgP8uE_;dlh;<-)+R)jZ1Q$F&Upofi^%0*ASwB8!{rKbmd)m%`^&0ZHbm9#I`44P#Kz*3T*@E zsmUNMR&AN~oEor~0D`yH-U}k_2?0VirZ7o?u2^;rBMN6C}gSM)G}RCD}=)Y$Q{5k?&`ZA9(8~6W;2;?$wFimjhc& zlY60!sDW;053#GcPhxrvFx|}<)*|l-*Nl7M*cIFlfvx{**sXJJ7~9D{R{Ti$db5!a zSu@|bu^is57;^Im68LjqhnCJ-K8!Uz19&XHyJ+9trSn#;sait{ze-$$YmB7@jDhxv zz{UL!W|X)+QAfj-hz6r!-auO$sSPd%YSmVgk8Ku(u z=ubZ}8~Taa&@>UdYrebcxI+PdWZB~vqQk1C9>oumEoR>ZVmf3I#~~HhA@o?9ADfr( zsw>Q{s#0S{HRDoGyU!5YWyf|SR$Uw{mH&&6HK)oSEM3mK!FVsPL`Mfcm*?Q8z_;Ze zGa8!tKjxF@f00ED(#BRaFU|(fUxc=wG>!b-f4jl&;lJ_-|6?v~UOaYE^J3YzkD1Fm z={g&*(>YTo9!-OrxE3|gQ2-lctzYt0t*75rYZK>-R$XX7XN7e(F1r8VeXr)_N3{pP zk$6dzQ<<&&@0qlAaZNSy&w}lDDfW|Sp?4}W-n2*T|7G-PANNv-Cj7*U+s7Rg(%lNS z9?~m$x45gKhjh)SC^4$`aaYB1bBrD5w2N3W^SFyfYjZDqV_RO^J%%-Nq`mHL8EMC@ z%r8SmEZ%jsosJJyAVT_R*6Go#tM%ZhhO>tr(o_yRj=)i5u2IlN@X~?Voy53y(I3v> zbE^1RS;UXw=fkGB{*ncL*>_1E$SlFu0hkkYjEXwgTl~wcbDN3+1G9TJE-39at=WyV z!~Q4Ui*5M76N?DG6K}nw(tn(oH!k$UmWgdodYh+>7*|@SYnO#;%nAlH0qB2WD^gU?)SI{1to?zPKl@{YcTkY{i@|pYM!RUKNbT z;SJ;YUudVLN8Y0Ro^pI4<_BZt^D`nn*flAibX$4k8ENNpMK}*`-*YX#C)LX5iS!U_ z?@gsuHOG3~#Dtum6*ED6nCxc}#BM;8lOaCU$2TuCthfdVDilP}?>Lw8jk9_;-O9^tk z(%t?!TS}(P*;1AM>2QeOO7_&6gXnr@_Rv>HkzQmE-!$Ih zF`_GtJAR6RpR#u{a*+?3(w2Df;XOw`kKzB78hg#hrzm@5#K3HgZ=AJP{U2CT)+LyI zMWtI@;G(768EGe<;sq=1PM&st=G0@!wDml{ntcDPzC#D^z?WOf6Lg?@5_Mj=#Q%$={^fMg$?&G}{$9}fP9PfNSu8JMklG=Arj z@M|3X$@VIW<}!wJZI}g5Y8>A{AD9@ID;dixKQxxpfo14erpECEuzsiv>xk~&(pZZI zCML@*;whXBB30897EO0IR`j6qOk+98I>{4TFF#dn? zt^Cx!^#9L&ts7qr555}58H+6TlG+o?mN10PoNNwdPbz!7=a7xppS?IDTgY%_NqA-Y z-o}u*x3P+|KjO+(KLdS5Szl$#?Z;kCXJq}zHzDL3H~a3IClWS=gYzX5Il)63_(%sY z!@y4lGLh9a7F=Ls7C3^;Ie`3Q>vd|-PrzUQnqd&*ERDN0oPoYPtGz>ay~Csa4sUzU znOEJ*oPH8Ie`BK4|K@1c33Lt}1<2*xrNbPYDW5l!K0d~t#pf(9^%sr{yRkJbJm(~C zpcQsC zvuj|skF`>8j>X2^J3V6w7f|PhfwvHxwhn8*c_ehD?_VQLd`s_p=<{9tPr)G{1i>Nu zN*fm7O2C5e4QmDZ*pLrDmr7!0sohFvo@d^BM#DnnoPKzm6_rEDADxUmA7xenU778?2(w6uUZHJ_O3i8-ZxjjdBAzOaj*8(Am-Zar(451?;e zRDxZ*hxu-qPHbrm?A;w*!Ui_)MP}hEsWsfk zI>$W`=hH7V{`-^Tuev`dH+zd=^P$35#LKjHw3MeuQhZ8zKS+0dDBS=K!Js`6`-9ll z@22Go4g)xpo+_t06oXdzi}`Vv%cdUqqW`+Y8k>s4sx|L*_KCV9>aWN~W59Duc|ukh z3XkjunmEI##okqGNTU8kT=P`?QrkCo^E;cG@dcGH!S#O{-1HE0wb^T+TQr{9s{Qqm zizD{_dP9EXOm1QiDt=jm>_60w_58kduMzngb<`Zi9zU7CsoaRA;@{c+2FWpU^t@8T_%}UDzMTOOpGx9%SV!(}S_<+jMqj^;ht}lo-+_ z?B(W_B-&AQdM0u}<@88F~X_|)o311LBJW%0iZ_Z#p zfsVi`bw;eRs}7ipt_ru(_MADyoaCOBO6M4l?m;oijED~&)l6K=)(J-JQ;fIr>^o zE&Rza{0qc=@G zx2eW4Fgx*obo7^ZytApB|2+@FAAwylO1sN{HMgexU*~q0@8j7vx95B8>%V8jda(cQ zau~61v9{MbcQ(}^ ztB9VXE8nrtf#pMjeRb5@;E2^s2y#|vymz|(ozWlGUl`F*jPb8;`o`iKbWZud{pnr5 zIuYO0%sx$egOe9I+PjIxjZFL$_G+89V&AoOWb@*mk*9_<NQgEYhKMRbhIm;aWH7w*gZ;hiNlPBqC zcVH863LEW%Bf0Zy&9EgqM;f`rryUWgyK~M6cMj)Lg|Do_79s8&9z8`}hm-e>O-_?|9y6%5}$ZBBM5x_huV$UMOhQo289c6dZ6u=`Z;h|Dys$2!S z-<^z;@Uj#A$4Bmxa0##L>9@`=Ri9|=Ao9@^tL{|)c<{KzO9uz7YW7VOu81D~+J$tRxptj!x1ix*7KA%;A8(4lXr zV?9tTS7Y+E@443F2NKLU7o&`1b-v{y9}?ra!&}RIPpyj=x`$wNat_{$&&S=Y4bm}c zF22e9foIYF$mkC)KeuVCo4p~jd+lDMp%M8#6M8!Wt~vk1W)J;1ypGu7fiokxqlH+11OsQyC7HUin`6%k#>Nv#&un#EpKTeCbH|EHb>^wl|>rk^Jewjelfb z-{zU7QV#j`l#Wm$26@;@&Rnu^asNPV|N!VZZli6?Z}_onO$& z-Jd+i^E-k+!YKN)iT7sK29@b!|C}mw??iX_1m7Ogclhb6JfZ9MBHmMUbra*V6gZCAtF}s48>Ms0H z5_)O}KFLN@`aJif5A=9bG(NO-q1X}cXIyL3+Z)bwe4W$qYj#EzW5LTAH?|I;DC@K_ z--v7huHL;@g$oUbZPQSfVR-y;=c0M$$k3(CJ=wNZ?YZi}I@SvBNMjCi^o#pB(|DJ7 z2C{W2#D1WkGZ5F8nqI!oW8|!>ubbm&=qZP@MsHo;W_Z)*iE3%Ck_YbEzFyMgQY-nrqD zXXl2i_RKx7ANVeXe+a%4^(Avc@P>83c@95roy!W&9o)g(3JikP&HZd)V716sAF4kO zGxqtOD$}v3dQD*-cFGM^)5AB{ADBDm+w@Ik)F0*NUKRGgjzt0T%_AQ==9}w6zBvbJ z3wx}bx19yiU-JHU`nZYbh2~{yy!Q+PDea?j*-(DmLq9BdYz@4$ z2L4uqe5AcgxArb)h9~we!HmeB><{l<&huUNT((Z9*ob_R@+~6U?+Se z4L*_%A4$Z~xECJ(j(=eGeeiqvT*E``SO?4VjD{~cz2O#UL^9I5&T&!ks9Jo0+MERk zWOvRymyPZDZ*_cI$2ZP#>~FGZOO>nVTbOT6$#1grPJIjUjq`>oY}2dsba%BauG-&u zm-LY)^Vx2XyG}K?k2?#Zfyu$u%hx92Fn^OXgf^$^z&yV9yl%$o?L3m}#ziID=={tf z8GNgEu&>1N&ZgHm3TOkQ)>D zaB(-EpIDyC<7b^(j(oE3En)_P8+TGhN!YfJi?UWV?C;AcUCXy7c>de08_3k7tL7Vv z!jxBk6(6UGIEM9%b3J$GsIKv>d#%p#2hf|?c-8$t?VJ5)QD-CCJN5kK*+$MpLaaYa?K&AN2HhTi)tLuA=Vcgo z6_eKo%!PYg4aSy_-}?yp3-8acV>((HMlL$B8RfEHs<=Ah0H?C`IY#>@hgFSA@AfzP3|W7Cb$jJ2WWdk`HZ4S z74MQa611&&T=~dxV;TQ3fw%F`l1^G>iIE3gj0ub|IWs;pI7>R|t0~*_`uxUT!4ItJHXV6)aQ3r~viQ%v<*~hcv5BD{f?x6K zrm;o{#^$4gGoN*nX99VMnRPpTQhN8Rqz@zgBGSv+~ z70$GlP+u!gee0&4?W_}zT-zM0rQG>+>e-G=_y}hKw~{U%j2s;sK_47{z?Kd<-wAG# za{h*o%K6j4OBFwxw_{gO%N^ON^}H}Wt-%R?4Fmn2?DAg7O3KbwpqMhqrulASQnZag zCkcPJjWs-k9DM@WS$fzL$j>L8_iwg(%^0@2p~7QE{BO?mKxlf0_ZV~ItH{E&$kK(o ziO1hfEL_7Ku7^)q(>peM{@skBXAVnmWOaJGYPh!O8t$fZi*F@dofy}2DT#oBY&b$$PK`oD^^1lhFcUXY!?&&a*L_R`(>hTC?(e4C?m(&os%Q{|p1 zyR={XN!@LBgW(J#%jIwn$pP*vJfL%)t9^PWL}E_wO^;A=LzuWq%1@wc7Bu=~)OXhfTkjgENmeIiDu!5BC*u<_08Zd{iZ zY;Oy=%u&Mx&p-2IuX0h3r+`$Y|Q*wrIZQ z>uf(i`g39vCS>$#;Hv`8O5m*k?(5K9D^^qDKG5Fk?#4pyb;B;0J9S2fdVkyDJwBnw z3(SquwY6H^7lw(pu@$Qh6YELwZI4$QjjUJrptwA(7BF^|-P>jujgrxKa|gZdpzHcs zS*-IX*t5a=SYsPJe50>-X^rUI&o^}V+YXh*wr(F5339IX%-_%_@m|4uA@?5L%GkaJ ztsJ{QaVDPNL!*$v#svPxn)@(1r6c&0>}9O>P-pKWk|T|o=uYGDM~u=Vq#q|uZ5?-T zKNanD_ThI=KXs3D*C}+BrmKH1_+;-8>FP7$U43OS3%OPH^mU|ny&jB5fl>9v_G5Fw zSxzN$qU(?u(|G=hHY%_Oub{ry=65%~1Acqh;~%>YdD7|h%yU(Q+MtWS-3Z=kSFl)& zW#`drONEPVz@5UuAaf&ygA8z>z6%e}!q*w=7s}5SN3N!wK$g}1RodNa&-uJaGw&1h z{om(A*6^;j_Fo)~JxBb(4p&tO-JHI3 zuS5FLMGP(V!=LQOILbc69Tf*gpvW8SiRwcd4&DvOt5pU~BJ zU1=cO$eoz8%(DQx9Zh??oZY3T%@H1SL({9Fw+8z4gN*Ld>5gpAi>z~*?o7{dVvTmd zKPN;g?(M>cQhFhW@cqV|$OPI|y>aKbfRj3paemm#ujy0V)%C4U-uo=@-zxmxo*g*^ ztUm?*QIv6^Q|%jJyijFMi-dh$TRP@4mw5JV;!Y;s`!7lBI?j7xvC+_XiQDgF43Dx; zsN^1Ro&WjP{KQ>(5&N5*?1+E7JKP7a>1A(f@448UhQK6iu7}4Q^bVsgM?7I9Ng0~c6>(vSkVZ%fJ3nJ_#MwBqV zRqW-0X5lM}lTohmsm+T>?(8&!FV$T=qM&CuzNM@!`xqw&ccOouaUkD@@{do63@4vG zpMv?3&jRx?WSejBU3J-G-Ci0=;~p#aZSB}vN>+NIe4Ia`7_;M&`H0PYp!em$*D)ci#JV}uHvPZ4hntD5+9$-6}D zb*mM6a+}@gRk}-^;3ws4RN?X{F7R{@G_lIj-8j#cRf3(((v`!z8y{ruwwfMK1+jq( zkx`+^rM1MgdkCI593Age*Kp5aWY&G;PtK!Vnn(HIF{J~&ke(?Oqx3=O<_GYcZ*ebJ z47<#qY&RkYW_k)97>*AvnLp7ylLhN&i{HJ{(Z~H=_I!D+wg!piwuM=jq>3 z(RE@z{yDC!>KluGfuFq5u(ass-m|o&ec(=XTe?e-ICHtD{%Bl&ntjmUof|ekMBMq4 z%)6aDwT}ORco8>WQV_w@AVzxZG-s3Zw);cw%M!Y^v*;K)9`S|xE=8tr8Vx7G=V5$! z9=`;A5Ol@*`1JoN!Dk8^2k;U-9x!H{tgqGmY>TGU5`Tts@;1)L7h!jZU6>8q`?l_Q zbo3eQsTNYtGt^rP{(kB-a!1P?%x|otly_s-#IYFndPqITzwR4_~E}e z8+w7|Y#DbNI&wnW8FTi@{pEi0gzsaj_Yd^eLbj{ zI?28&KXOoh@5h3rZR3pGobg8Pbk~dCw#NH*OTX>gNPJe({Ek-dC^KUBcPIS&un%60 z4pVsT%*8gCGt-0D1^w2tI_l2y9CSMIa~Q9t!@hqlk;o*KU2h#X5ht1UA-k)BTc zu95Ht`fl;9B3JhYvZjY_+burUlU`xNw>4S+L8r>sQ6Biwo2YK!x9d*So9vg;GZN`f zn29o7={%G0(2pTy=o|UzN8{IMN8{dt{o&AYuVoBmo8lvVT8@!>dWP$KiN_+^ zngXBIxNidvo4(w}(>Kz->|;-IC*w(AQ2RTJv!ar-!}xt`ZXE;;!Jt@OuHs*KrTdVt zjQp5yB(ACQJRd@bk)+A1fk)$%m2S*BDcboCwztJrpv$H$m&aw(l{4&uUMkaqG3BBE zxjUgT`X2Bzetz<}pdA#WkH$vWG-e%#PENwt*o(}7R_*$zKL>y6nbJ3&#+FJlFnHg% z&(7IT($L?(M&0k<^fUJIW|wS?dgzDjSfrmf<)ib$WMcT{N4I{>7zh%n%0P$yN0-&U zf-^wbXg~MF;HFz2yuqK)Ln#(3z8N>|?bO~XbuRl2@HSLOuk{bPeS_q7H~uSC+lXh! zGlZ=Pvi@0vxqf|J=bSr`XQk`NMyBh)XH9bYF7y&3hClBe!96pV;jbfohR%!G^F}x$ zvhP=`pl&NGC$bM8ru~N=T+Cc8ZF}gU#qP64W8d@Xm%GkpuXerZi3BuD0NL9 zRw}&6ALqY{c-`Ms>v$w zIgQKL@Ek11SC8|%L5FenI6g4D@p-IpZt;H8`5kYagL~nonZ)aR*sJk%Epf!Gn;fw) z<6{(<_L#TwZWWXfI|~1sLNhKKF!;e!E`E+_W#qAJyRAD^rm!roG}&a;s~qpHo62K9 zqD?n-*tVkFE$t#-5I!Pa(mes)>cwXKmLd6-ulr)^BJU?je|s-J#f%aApIy>vA7TEB zHg&$OJDX>dCnfi4u8CGsaoAJ-MT)^bH2!*uW<{&=kt#f4#yY?iI+UfKXU=a$NBJ@8 z-FnoD%;!m*fIHiPW9!D|s}*x0MW^t=HtrUa-9oIidN=+?aIfh2s>*##pMmjoB~lD*uWfrs9gM(plsU&dw^G!IS!CDBlF-TTmKN`OB1!&(wu@K#EtX zkCVvP3=g$=2YcTGz$y5f%X4Fr|B+LcY8^faZpMB?J1`8Q`9jqhGzG_EHfa#sSEqRBb)BFHGCdxjI^pP%x}|IA_z zcQrYd;BV7-yu@hyHsxe@HV*g(zld(_ZlkoDJ}dt>_%;?9_6X^sVXZN@KB)OMI)EK} z;91(2F5s`uyy$W_e!lodcCc^i#pa4Lp$1oahqr?>!(L~rx9!^8n8i7@()XZ$Yu$Uh z?rRFYDw_M{?Tv?dx9M;H?Tv-5Plt+?e(3f_@rOcJWoR4p*80-zjZMjOsn%C+Z+u4O zfwkhv%F;q}ob4x7@nhauzqi7>M&8h}_~?A;81tfQ9V5dNf%h%`ADhZq2Wz!Gcb8rh zX{VpdpLCU8Lmx$pE%IqzJv<`ZXgyM#TdkY+H__?s6C%Qm)*a~+M6*{x^Gm?DYhlac zK73I6Zz~&+4TIJNcye5}#3d_?0oRQ!iwilEszH`mpKFB`!$b1hq05cP^RrkhOyle! z^P$a$*ynH-)Q@gxX)F8n2Z8+|e$o#=cV|RH?|&y_^kBf^YBldy?mVa)O=bCyl=C2Z=RJK zt4gM8?%d3~=7(@08d2Y+zq4*q3=Zl4^P~4;7oc;+W8i&^54z->1w})<2as%=KRIw_^zRQ@gsZx85x>%^+B>tp7K%$eCmbrmBo=9{;QqSv~d=h z>Am}Yiu_?Bhd7W&oX8YuoPlJ#m^c?VqDLlTKUgYWYDRySVYLsV{9E8*4A0(6%CJWn z6)G}=_a1>x-vDP0oq@hFJ8}TN;7K zyiiqnW#j<9ZK2A{h*eiN$M$opyh!$mXV&lIY;Qca7{pc$@oeRJc!K!J$Y`b6wt28= zTvx5xy7~CTf-a1T+Iw$AUSq9n9`>=FuL8gNt3DjLf8E?>_q97;y+2Hh`}K2=-v7Yd zHu@yruYBM$u;DZB$+VYQ!GV^Xo?JK|Q74XMO49DI25}@Uf#0!Jpu1Yk9YV4^rpe&B!9N?6DS2 z?Ybr+oqmM!M`^2Yfzi+dUM$wD$}e?p=^cSwXI>R?F^65~X_xc8g1Q3q)APCJ#Z|?7 zz175A!2hDYnSE8h&RnUt_|hVquPI)_81VTxZRp#p;H>zQndiUd@J;rVg6CGjgU{#+ z{&S`h6K!tuaK1wP??E>{wf>5Gx6<|!V6Dk8X58Q6pq`P@Vqn3BqTL`(^@w)4uVJ*x zl=~|0Z3C|5?2ph@2YSJ|bfYJm@zDZyV#d@5l{PP{)I*<@@A$6_+pnvlc*mA?>L+7y z8~!YZ9nR2e-2aa5CT`_$ciZ#mkRLH)Ciq%F`&uJ~XB)SgN1vM$(b@8OT;DS=1^0cXuieYdVhntM*2Q@brO~h$3dxvl|Fema?%G-`lY%KVvg7RRm~7mP*G+dpGqTLnDT?Axo%G>?B|hc}e<3-57! zthj%(!Ou7UNaEj-R>fJ;a&uT{#YF6OkVjl|E8`_K!PqBOmUqd{+rKJ^yqUOngMCtf zwK4D-`_H-TExWjn>pR(Btv-&vtI`+r-!$1%u;WY4yaDd7?k~ZgoIP?sy3Tcm+f(Rt zht^HTN1U{Gur)k+MVg7hSFdBb1%xL7?B=p;1M(kjb z9R8uPTK=-uC}YOEBhe$`cUe2FyR^gUvSXjtT@frD0gqK4AF|0$(KXgg z43AuU2QtVLk1vBT64YxAh z+IuL@&#TB%>X!+8uTBfbx+fs-@&7&cvYlV%|HZ%wtgZCnUpSMhEeV!N?vdj?07bfWOCEWsdPIM8~#&YIo_%HJMwkCvB(c^>pl+vSR_fTH~Dw4C_gs z;!OAG{*x@=SWlS{`5!0!`egdf@2yqr&PAa;mxdqbtP|Uneq_L<^~mf^PUCDF{ch#H zL!H^Y>s+__$Hr*SPYkceqdp%F`cGc5z`u_9_?6-46pS&P!+1R6oh{=1pYp=%oXI`9 z6}U0oYR^L#CmUC%-&;T|oVe_7(k727II6S5*4ehrjqE=bkXLh4-&^$UD-$DD^8ZoE zDC;wA`zL)*tg&MwDyKRnm&~9%^NjuMf9HRg7hS|$)cK+vvuN((mjDR-lJT%)OMAWiKPMkzTuqOBd2M^z$p=}-;hE57jp=gBFIVk+^t@7c zWpHQ69NpDcMf@zq2hm+^L1;Y{Lo0QUMj5;T>RvBT&FS8m{uPI)=9Y6X6X)`$fB zweX-icu>Oc6`NsvaO>em{>cY6SHX)y@E-A@O88KKdFyB1E*x(ysiHqRV>#}0SL5>* z@_%N1mD-gYtvCuck7e9{lxF2?eU?v*p6bVT`#que>`1<^AYJn|RZewDM`2-)l9I0z z^^dgoKllOK^{u7cgUNRj87j>C1k$wc`pG2eDnIOJ84tksbBtZhEk>lgyk&9mbHR8d z&1&zVOvkOc__KAtB!9L-Vi8z(43231zDs_48?5Q+k=7q3-_5a+)*mI`i>F0ef0BG( zbXlbJXD(a!-ulhFSZftO=&-HcH&9Fctv}3-d6@^jjCmdVO>Ab)wjOfDHE!}jc|SRJ z|Li*&)`Ax@+^W>$_~W>?&mg zAs8%lprebsy@SKj8cLX3>aRm`@=7D}B;Td$5Kb&`atr6AF_lR(JR_w80>1^EQ>-pD za^FQq^f`SaU1wEMhlL%V{P&AI@1XlBMCbFUH+b(X^1p@dsF-zt{U*Nj=wTS6D<~^j zejDeV-{bvFaPlb6Il$S$(|31eY0b^Kz+W_5xDqZ_r_$Niw;H}#s!MtU<#nNZFio!w z<8A0%61s={XnZ3382oYUd9L|{o;o$3YQfR}rM&cmUt`_~7x3;g((R~k3Ej>p8y`P+ zTJ2u&Avo_#<^^wO%6m(RuLKODJ80-0zS(>B@slIgFN(rCgGN3morz6@!B1oPCVD}1 z293Srtl6F1>70o^aTU5S7qG44hfchq1RdQC{5l<*yu^oW>_=DUF*a#06*`5^t{;7$ z$-1}_y;(=`%+NMyd?k7_*@TtxUXR{vIXbgf8RI&1Kl6%9LTmMo4rpGnFC-r8vvp=y zg{0r~p)-^I&8FFwC9%#+INv?5J3|+YK1Y7uqu?LL82p>iaUExE>qEy?%Qu~u--~|F zB|R59E}adWW6d7SFyic6&K4CIOV{L%4lBkE{wPuG9wKeC`HueILO&rKEhk3I_B`kW z{g}q~r=i+`-?9(-f^$r``wPTs;9dBCm*-8`9R%}r28k`A!&tl@8AE${7x%?ThI*Ag z)l;sjL3>=c-7k%^=J>ulm>YZ(%)SOA_Mg<(oNLVN2w$=nU+Ww!e z$+j(0c&IHBvCR4u&+PZXxa!ysU#(hJ28-ovJ^Af^+OWd0o8DEQ?#rusk?+a8)^8|BUVXF3>!V)9)Xp4Q_p3wd z{_Bvs;|Vxa=fpM>KSpDN`d&p}CM9szZ^HoWX*pHzC`Lw;krwhjY{s^sSM9w!SlUJ3 zq-X8jwAq^+M{iRRa~k@SoUvVJ+T2HJ>#iQ2obaQ4cv?bFh0RnedMX>Y50^$lw7ouy zdkD69yX^VXcvZyW|H?lbarH-O?qyd;1f%`^_g6;(sl2gk68f=a*F*y3S02$%na1~3 z&P~Dnn28w?{E8yM6YSZk&$lNSpV(FwlU1VdrsK?R`B2EEiHMmPgBMrS+lt`qV(4|tNpISY9ERGX2(|kB7Sn{ z@T@gmit!$m{p%6Q&evAPLpM|skHSUl9PAW|Ga|wC;Cl->pIl1}zLh*{(vA0md#*jV zmV3JwzRLeS!_GD98}HYDp19^pf4D5R>htIaDueNr(7{4*xC)xPeqS(N1uj=Ym#d)1 zdgw_$mT$6$eD#W8_25$kS}cke2%_1b41;uCwNr>~t8i2}~RAF%T08>4s^ZfdyzS`-pl4&a>rK$3u|?2bql_gMxeI7cTTVE zH&GaneVE2eYgTK$f!{E3zt#5ewBZ*1xXlwdfBw$3?{zvZ%581IA9q~w@aAib_dbs= zgvzzzQ`~XXh<$@~Z=~b0+0uh&Q^${}Bc*3*=KDePZAX6(?Vw}Q8L9Rd1<*q3yis)e zE6OzA%6xT<%}wa>@}ddZa8&e)3Gi{&#ZKkfZpMUTh_7?T0$c7D-~ZM|XQUQ=*5F=We;P#eDH8-@m3Ze(&V0f;aI0Il~-3gpO%&(Bc0RI;G)jvI??z zekZ%N`XsueQ`lGSL}zp|&xmnPvZupAj6>G1uj3mepVfEJJ#nwHr^)FF)sNEtWMs6! zX*A|zzvSgxfc_StGwOs+d$2pwxE7WerB)tmeo|-Do75SJhB|GX(U@6&%1LL`iCiL` zkwuxpCymv%U)jCv_Zg#Q>DZkB!)F=aUea1gYvgRG2tASXG-^|6g2|#j?Tti>z2Cdu zZ%mY~$BvyFY6T_}9o>uUHG5kan@ebm_MnFuz372d$1?Okz9IS_gZ0q30E`xG_oA;7 zJQn?qqr;YsoG+={l1$-8|D(8!eb}k^{|9<3YZ|r-R~V&JC?g#7vc5}J?nM6WV!yV7 zJ=#v>IqlmrlX{~7dpGu+=k+WL*{fBVvLVa#Ji{KX6WnH!U-;EsoGRxhzxH=^?C(m* ztNoq!b(QSzR`OFh={`<4GpkkJpI%iJMn7YZ(T;NL>^#-z;Hp#b+CFFKNBrZByc6h0 zO8oo1Av52z3SEbXwAM9QTUL>_6Mxr2^dmn<{#DpGrZZ09!9>kTGM*@ z*7-X2MbKU?&lK&|o-Ld$yXTXkp#K2hopv&tU!|#D=?W5hl!UC9(4znYXH?Ro zD9<+5-&Wp->QO{X8mm@hkbk?_)~9S3s!zEZ8n6AHY{&AjOT$lqJzd)`CpEhDd}UH& z9s9c0z3gFMn$%dqyBpc4?a-t~*$u2EhIQ-yNsYdu=EW`SV_W|)sWCSec#(rNr!PeQ>?+sVjI-A7% zOj~EuL!UYp=f*nF+erU2RF{^rNwO|o7IXQQF&|vSfHiIXMtf%SV(FttPQ2g7$sWeT zFh+*8t`s&Cdx^b34K@dopPmzKGOvq=Xe+pl`(Y|)V0+72h0Swa zAO4u9kjcudbN^1+y1=qn?d8j2HRZ!%HP;S{v5C#mp0?gy9&^oX^VZQ1H#n0Wp3bja z#5h3jdH!ABYo{)Y>C92*e9AM0I2PLkH|zHIc-He>yd|X@5q}YWPH^7%y(A8V*MA`| zXF=!j#hBUnYLO1fH#&mf-e}Da(P(WnGxqzD+#AmvkiU)araf5|bp*lJmv}bw6HQpZ zDQBOK9lFuswedS@OzgACe0TBu0>2u{R8YPaJnFydz@NVTZhneUv6V5@*tLjmMvRT< zTZb1rHSWPvoogvuLKg%$527G1KfXcYO3a>shICHOb zjw5syYeliuZf^l!DgONb8q;%V%rEvS_~GeHH4z`2vkV&tMT}ohZn=NE@Nmpe``A%n z7bklzC+p0x!Ho9AJo|8b@)T_7GE;s^|Lr{(!nZxAYZAW9r{B-W7p`QRCqCYv{J)KH z+Cy3`bYBPEYi|Fu{etX!>x+nqPT$(fk&{hVpq6>8GnC2TK72Xy?6o>mR!kIwST<&K zB|L07=YUI|Snt(&aFvoNA3ofD_-}`E6bsdD$5)?+P1p(K4bBVe>vB507V*_f@YlYSIotL_ zr{80G!mZyoy4Iy*>vS{cbN^Sdx#b@}){fJpxIb;gqMNtJ*YA@YtLNS9Gp=ac+)7-! zm4)XvDb`-=EeYF5_NkF|6M`|#nYhQW`zf9vnWGgrH$y*h=8*Df?7qo=KY3;ArWhXn z;@^AakDxn2Dc293EnR<2FdnY+?M9~YNY^6!@|4`CHN^MkmtQ{aG^*>3=8YcH9d61o zp6CW|VanCjara-2@uJ@}sO7)_XlUOhLf%{xqq}XA1Z&g5%cM7_KcO>8Ra(CE}l2pX!zz0 zI^WvoeHaav0-pjw~75=^G$B#G*kOheAfiJ0SOj?`N z*RkB$>J9Y4$Jl%5KC49`czX%<+t{jw>yhhP?<-u=K@7wD!QXw=zVLUN%q2IIrg~N9 zQRn!8>cys{oxHi{`2Pm@dBri>_OERP_FjCzODQWHX0w zg^4bgvD28bZuT3r$GnNJr+lcfes{?KoY&JBSPhI3$>8Gg>=ls(niuPw%Ex{iUr6MF zF`>3w&`&UKUC?_Q^sX`Pm|(=EW7j;Ihn(%9{&mbr@zs(ii0{QbQY_%M36_5g`TmY> zOKZvhhHR~Q>sly1uq#wfyRHiMF>{H#dl~!}eKC8)m<8Ukv-i|5^V@goY0qrSiNIdN znyL5qm;VPkp~M{!K5SlG(z{{rG^@DBi;gHD9;>sKPH01Rt=I@H-3l$@+a5rc-P8## zyP##aG0L+8+-h9>zpvkoP9(>IU(_x0?N+>zC)s1azx-L-25u-1S6i%G@UX%F_h#&R z+B+}ON?X#~w?Ow@lsf_~J;pPLJfL}ijX`@4KdnLdLbj{_>wshbg#BKfsT?J(O*BmV zuKkFt@QC;-er&8%=1F^L`bhq z!p=F~(wgL){R()p^;|1C?6zB^f8nwzyH`>-wgVx1k2s~`4h#-fR|kB&tj zuudcWLO4v(gY=f8fa4Y5Q2n=pi;H=}JMFPi+f!-#Hquh#lgs;?)IEmhh3baSo*$p` zyd2^M={5m%esZO$?{T$68b#yMl6|waa%S%h_Wxf#-VuUuaB_S=%kXX-p(% z4;>Tap%=<0&56j~D7DY|hcOv4A5*x{{7cOZ8z+uZdu%ix%aOgAANGBnf8inkV*hBoHJ|#ROX>YnW&6nI z6JH@sb%$vu^=$|B+TR;PyHn$>IyLux10J3v@A>&Zq>sI%k7k_TrceF6YtBE;vj`eP zzObLEe*94V0OsSgC3@4lbkq8dY}Bs*`}k&|_mciaw&LI5dA{8t^!{_wwa0OwXWGCM z+MV$r&zdCuQvDLXqUtyOLcaVE-a1Ktnm!(&+%v*kk`G0}o8U^-VV4JQDZHqR@NxwB z@a4E5t$v&I$M`{OOVzh#=>A8^v=qI6g8y$*$ESE+h~8CqiXREDHQ-6~UIQL&ess)i zaD0^B(IJ14a-lu9?7oes&1=RlczG%B7HOhu@zSAm?a&_nDKqkA^88nH{ZZNae_~Tp zi%qk?VnVp;OKV=1{MBSSLeTZn>^VWde9ca>o}OgfPNxs|TvoeMv8@&k}&dr-7a>YR*zX-$-DguENK z7_+Vk`|L6HvzDmu`mQ;v{_Acd{TKc9P*&reno~W{hSnaB%2AJRS;_8o_S)bMsmx09 zet~vZa+iP)o4YpnzFjx#q4Y3X4`<>V_wzvP*X#puW@^puCxk%PQ(wReaEU zDfd~bA3Kxvq-am`a(|M3RVKC8Xx-6TqcunADPAMK`xg8CS6Zgn?G8=nKC2C{us$ol z*63&8KYEv}{KUH%_IymuKRXYwiRakug9D{~6dy_x{#HPjKf#ysyk6$x#GPf`(p`S` z{=SsGu)~Ol@Y!?TUWVU4af*l!unIfI+KY(=LHV`(uuX^sT+ec@>k3syI{pwKtxGYg z$D#+P&s|kUEF}4epG8^-IoEn`!OKSRzRjIcmw!i#+rRa4Blekd8SR~)XpZq7SH0T9 z){wS!mJu&9w%TodN_j3P&y_~Jm^?76$?NEJBbJ#K;a=8= zc*cj?S>cP!8+n0tNITz-zW=j!7JalG^B>!Ju_!WcN}^8nr-^sfnQ3}F3%UPSFbj4Y zR$#AsB2lO4k~>N8FTL=6Wui;jb<5{av4OrsOi9I;lr3f%OFFfpy$i9OKyk{O$Kozc*i9c=76YQ{LDTRLyPVcX-+D?nGt|K2R_ z)e`L-D~&{;qXjP3yUc;v+i16p_wI9pv*g>e)rrl(I~nckw03#0eI~YH^lxRcDr~*r z@n_0wrbgEC&ElJ1aSz4!7v@FKdFAtcSNXSfZcBVo_`z%JOZ%_GcAfeMS8#`yMV}5?$OAJ5X8-7K8mGeO?}%MA=8?R}Z#l2;z;?$V zc82!a=g=outJ$*wPd&KOJx|s>&Gy|+c05SOxbv|nWq);!_O<@D5O1=UeP122w)9Ja z+b3UObRN1JqjR_!x9+=#`zGeSvXwmlG0})f?k$~Y*h_e->@x0xVGU8vSoW{U6!uGAhCzksQ z!NEh|7hMc`hJSvaPuKQay7sf5-p2ST9z8U0ps*DCDB^vhX9{-$V+}EECPODHsMB}J zz--ZqpXW}-?s4>Mj8kI#UdxMopE8@U_gF_floQ<7brPKk_aU4uB9_TK&d*w)DaB8I z3mCN*{5JaMx8Py&xj5s@vd6lE{dqlSl%flbb%(?1N5{0Zllh3gI&PIUqpQddTaz!{ zqH*knM%v~Xd2hi7(OES-2d+D=GVUsaAND#%i9Q;3a1WT;<^60gZHLh@|LNl3YVCb{ z%n=7pl{mZf?ZhL$jUd}nyK?rR)K(UR!qRLT4<(as5c8i>;w|28_3 zcGk+5sq*4uEg;g*Ki&PlPvX{7Otucn7%lp-ZcS zZXe&C5xL&<9FRTCgDzrS5X+UAetBD4ny>D<*b)0au{T#D8;fVIGZVI5oxtLzZr8RO z{Qj){UW?zle=#CaXvMY0Rp3J>Bz{zRdT>VDFjsY;l)ESH9j)+N& z)vMzf?G|l2zg-qTs(ovx)7FU|bB@L@dQ@O0-)o%RSNC3``zrFH$FB><%%E|HVf^3k zy3nDma5i5(f;kPJY8bU^v-eHLH8nql_r4?_{U+n7v3P3lFnrC?XTgV~;8b&7IE63U zIIX2Gb>PM_$A*2ybCUDY9o=`0kw^S7dtR=m4~MTb?%HF|OSe5Q``;N{s`iG?%TEwf zS@Y6G-+IxZ)?s%k8tZkA$0jPl&$)BeKIfDl_&NB;0`@k-XPQD*3e!hHoNY+VC+@u_2&c^N#;zYnZE;;>A^*lGK_r5Mv^tFkW;Ko#j9{c z%Y*Pt%DPSWf$FTi-j!XB0{5}9SO~wl>)DsA&pPN`Z#wOG0Gxxg1E{2Ss#%?J7e@fZy{4Rw5Ta&o&2KVNl&|QOn z3%vVlgR!HGO&a?4`?tCZ_qT6L*hA9C*`%C=>uRZG@G4!Yb)x(RIes1Lx_ z3S6EfTy;a>S~UbNx9p~Y3%}u|6-l_XrlnvD09!A5Y8$4NI$ta3$Z+6yAL36I@C70>B5ooJA*W$6Iw7%v#~$ z(ObGw-?CEQ-bmn6w4?TvS8Kcd&NuAfxobFWiRRHn)|WJX(`eVd^%mx_8FevlI72wQ z1DdL2d|Z^7ZzkdxYJTJQ6Xi_LhG!>vSjQt4c_tK{wJc03f{8RXSnm(|8+i;c8riV8CjF0-JHN4-3 z%X8p3c5T9yV5=ven|!R*rLt3!?nbaB__Qa~KieohPQFy1C1oy9M9P}@}AC-mX9~iRzQ>ZDMT_Un>DEgxhm1d z+r)lPrQtUj4%Y?d=)ZJMVeW&_yV5vUi=5K9Q&uptSIMbQcZc1ypVAi(9V076-%~yq zBZtOlp&9u;ZT_6!_rY0;b~Lwz56$fq{q;FL_$Ijz^fE@`0~(_gjR`LrBh49&?Q!zT z4x=wQMzxY7i4`9}@1i`td@oCmk^Z+azY5EUp_7Ase7bR$$ymC9S^Q@uZFVGSXCZK9 zQoq_0Tq=8lx>g~>F11%^$(7GrTTnO!I{E;f7}V z*984bj+sUO+`De+(%2mb2M>VLXOIU{I1o;SgN4AB#IJp4@JiNxc!YibY$mjx#6^zo zEZ02v8~w4{W9+ul_ImK9GWbFz%77P@X#y`hDYFwiWKqt9{&!|&9!SANdPHzN2weIu z-OxXSjq%9QJo_*&`au54|Me}l&0wb^|A5Bi1h}Yi*nA1QsqDyEVijcoBRI+zU5fsW zFxI1?rjP~Q$=Jw4FmbRA9!v4h_s%7sZp3~)EEo2^Z-lw%I`gzia zQ`hmU$UiU0{BUC%o6JXFPRK8WaZ$b-$>-u8lRDlR>-f+ze)f~%VbtA#enj*cU0!UQ z4bsk=z-+x&{<8Rjc%t~g%Hc_V0PTn${f0b}No}6P*dJlO)v=eec^`BpoT~nM+SYip zz(n*8A8d59Hp16th%c$$DrmkWU3|&0#0vX4&T@mu56uz zaN~o1Qgydd_xFVx;Czgy+E_(hDgLSd;-6diCVk?1o~L<=c0MZ0e$>Aq|91&G>Jc4X z{Q(`d=v?&I`H|(+^?82(nxvy|h>noyM?dimn~sh`M~3KVB6M+y=xFwNI%0pbbYGH= z9%tOqnMc3CSiFIrUn9e2U|vaitqa}IlFeIy^(1xNp)rL%cMc0a`SkncFFy}` z5(A<1PTD>Qtk~ww)ExAK<4(hvwGvugMH%re^+!CRnQuD7TuGnwO=&3}B|3kV?~lWy zbf<#Ktoq?CUH!z!c+ku`a2T4_T+)~cM$M(i>95|OroWmK+Rr6u>>qtWhVIoqD(iRS zGx-?5l&r5hv_DIo&DnDsSX&eFPL%m@R?UoSPZwovnFpDpGCd*l{E5DHIur39tuyE;dTl+et-nAg zVatT<|A`Hj7THMO$cs%>LasgjtZ}*Iv}XFFwO=%@bs@}J(3D&oFVvTQXJ+&P({tdN zWPe4kTD!!jBpYa5(*K3X?^=WI;JF_ClE#L0JN6v!N`E}vhzTF|dvaYq+7P=QM)-%46btLCRnNvzj{YTGJ`X)GXBNN#2XOd^DPm(`JCHwThx+nQH zI(TB2p5JdI?{?BSp8z+SgPaH3G*H5NCS19Z3thn7&pj;5p{2(eJM}ZQk5HL)l##59 zOxGA%lfC2w_qFW6mqYT-NpQ8EyJRFsX&*5hnmi1>9i*Nc!A&;hZUA?E&TPAV-3ywk z`w)AH!|WxFkoS4~Wey=b{vbU&dYX2oO*U4`R?n|F2<~)dj9s5i@8Tqrmu^Cu`jmI)=oQJQSqow#`5E|eU^44yY5OK!Tl79g%@nR zjJQ6R9W7i<9GJ#4uNJO84WE;*r1lcnn}ucf@Tdb>CAGgx;#;t3zb4p9s7pL0ki<9V zVK%<|@aO7C;#=dRzUcfXa zkD}WY>?s_s1Rf9doPfTYlCTRGf;}}xJAhsF2_GHB!3O;J8e3RTv%t5`VO8%B&}k!s zFWL#N5B*}=fz#l<1DtnT+^ajJuZ!rb=;-VP`YPT*EbQ<$aI&91o?#8o0e(NcZr*Ut z1y~=?uzsExLf?W>x)9++c>WxH7oOosv3~H(8lR){tt{rE;1oUVgx))n`X%^QUd8aM{QnE_4s8B{4hQ;c#(u!QPpv<%yRn3O(fSLz8+Y&&57PXR%#-3nMfe&{6(360FP<~B{u`+) z$(N}AgFcE6y^tY|NcK;B2tPoZ4-v~g{Ga^i-mC*n@Q;P`1sq0IzZ=-? zbnv?nc~!Vo`sJioGPZiJ(tZZm#i!cvp$#)uT91UAd5l#MdV)Tq&rr9Ix^LjF+3fVJ za25NS2OIBLy%X3^5xX9rBHeN&SW)~ z)T=soHGXdOnYyX;b?R#IJ$o$SZ>c&fp@$^gwhUmeo#a#fsrFLs)Sl<9md#sR?RHYU zHGxyLaUs5H+c6~Dl}-N*Df)r8ihi_4op63YKg59g5dCOAOYimH(vP#dF~oUyW|EhR zcErmb`2RS2^Y|#MEaCrost&Lfh@Ay|AfdVI65rshIbBo~okJ>EAn_ z_xH#1se0~n*K^N3_uO;NJ%_dZUSa}1zF0rNtpS`rMr>|q#@+ki3*69CeJw=rH-+}I ztClQ(e^R!4Or>VEjs>MI}S(iNaiS+aexA=gp* z!_Ww!9m()C$?!DrTlF8n(;NclWW5PbBQgMyS7BcmrrnHR)}8c8cw!lUHgj1MIfv|{ z{UpvI8&qPgNA_T$wP)y`jQxGu6F%k;?LP{9&awv&Tmd6Fdq}>W>3#kW0Lud z&ZU$2i_RsouG!|u9DPUK(K!;iQ3>_z{{;OkaT!k{>zBBUPa_}xaa_iCF2tvMzCs7a znHl@jSt1KCl}+@E3_xTG-Xt|7x~x`%Gvqc6MXr{m+xDOjm$LJ*^{A10RrMhAabfU_ExL?gH*L$AjD1(P9TeT%Go%S0oCJJ; z->m5o8EsS^kj!~RV(`PidiBe>jD=CoSSg^Jv(t=ACjc+e0$$ePIKZm2!6 zTq9q#p2z%-O=1VMuP_AV44<25n(?o{{P(J1|M+jZ4sZx~w`E9U)mF|bKfSc~?n~LN zcXu=yf~^K+*YWtq8(R(PuJ*57!M3x8V0Nt8*MT35_K9VoB;rRnpu+`4<=&2|YG@?7 zV&BUAt<5V(ZQWIgECBnN%0%pIu)($S9Gd8|OTHa^leo9-Gt|&@&Oq(|?Fw2LQzi0? zIk9Uspyah{8q*$INWBaaz(C2$31ec1Pu^4r6&FV^hvnk|lYV2T`PeEGH52Xn6Q z3_qaT^2_~69d5+a)ZrF;75Co;b%@<>+g}Vp=sjyB{0>jk(nTyGc^6wyx%(RZ|BU`0 zd&XzGZaf~}b)(?A^3d@atI0_KeVHp_N}Sm(!Q3Es|gMCVVPnNWIb6GqR?UI|L;LjpUKI zG;&9f{hPb;H(!no{$tyH@r8-}Ahk00piO*YI)}wqm#Sf(n8^I~y&y^pP2;g&!3M}e ztlS>vQ)r>wD>GHt{pL(!lT0ZK-Fe6roZn;#oMb;RV0$OAd~>kHc!hcJ`~_Mn^L@gM zt8x7QE-(ko@S)v|x8ZlJQ*>uB?XDHb1$F;~4dj)xPmhMp)X!FPHyV8)`RpSUt7D}l ztB3Pt?MH^-z0@x-xSo2w%!8~&2W35D-4biz?pF9jSr5{_8ckS1rKd)Q^USV9l$i7Gnw~9Q*b?WZHM^FpP!8#Ci0|_ zj;;9>o?_{vS^9QD#-S|FiNK=_`=@fs2+yrx_i!cc_mKV$>Hjx+F7ss?S{72UPl0CZ zcTKq;qTg8;9>((p?LniuxyO4i@haDDboJ*)U^5@MSb@hZfyoeH@_vrrl zat|^=afT{@iyN4%6CcUI#SUKCS7uZv>Nw&I?f@>Y0GESm|HMk>QS<{2XvuWSHRFqT zI%S(F*UUW#|A>RSZyJGTI%Nc=9@V1BolLnS%w1>fN*YspUS6mBOP!#mYkTp@>gRmh zhF)YZzTZvkClbq4Rn2Z>6fJGQ+jJo}0DMzT755b*4{)1e8?kS(R3g*WwxQ>_cg7@t zAuwMFkMuSEmM(I?xR3qpzqnsJ0XPi7N2LpR)qd&>%|nLm`JF3RjxDB#bt$x{8{U;W z)XUe-#LndwXt8ze7Vk&UF{MfTZ+GU~O<86)J|OsBVO_UnJ#~6(y`7#3YqdU+TieZ9 zz084mr7_L4GCQqQjaklk=X#+JreW*@E48hT3Wt9kG(}_HD_Lhk=a?&Wi0Jd6jXRKO z9{F%hW(Qv@u&9;uBfB)FU`{ACKIV6rA$Sy{}*BmEcuA_yLcdx>o#K zgCC|`Y*xXm#TD#*(5((|<5h6vUGT~dUI{G`KNBM(cs240yjnlvU0bC(SgQqwx5*l% zEWEQOWlWSg`YL#nq67=se_xI5pLBGt#6xII?HJlxWm*NVN7=8yDRW|WD*jAuz4IHZ z97^lmli1gK?jBYxX~n9^QUvUd=Bdj~)N|l;a7RbM_m~-KymCNP42_sJ5*2WCr#de z!M!rEXZIL0HSww1Fo53m%)o5V&s;(80#{Jx$CR6ql>yv*_&wBtd~Q~QRVgxat}IU_o;-WaBFb-53u?RIxqRSX^XSH^X^E|O`@lDy zelRBu;B{9DJlTy(S_A8|kuz=sIIN;e*pa-tYSI2FC5g(WssduUHk>48P5q*}gJo{F z#(B^`2U`lm)DrpjgY-e9yZ&c-ftmECsU>#uC&oi7fWO|xvsbi1T-P7eC2j1U^7q?# z^?#=8ZTx16-o_cmuhCy`S%us8#s-_2KD&WqCGGnDw5nC zu}b-0$@iwI5<8$}(eI{|=ejKcN{L+M;WmA(45w;l(9BrO;pTXKFIr942_#wcdha z&(B@KZs>Tljh09oX6pB_4kl2)Ni|J+0>6)5>MpGxc6SZ?kmn0$NbZzMo^HPV?fcNX zYoNQH6VA|Vz6<~HzxkQa+lFt^VZ``W(T5s%JrBHs9a<`WV)N*S*sSmQdSHUsPTc;@ zz=XHhJJx;|KT%}bQU3G)ug@6MocaCb_-wfHj4nP0l;SeZr>aBt5Zc+icCIVfON{c$ zeaQjugKBj)yj}Nm+id0dbTthzhxwQJ@Go=6^*UAyvqM}#)W z_hZN#kJDxo`!I3!I>6!d1+*>xJlGdI6g69~gEE@X6Di~2dym9Vr*F}INqUseUP~PK zoZl-lo{p=}bFSvRGUB2kINX%QT~$-Zt!FsPU!#O*`;{73Od#t+?%OOV3)XCp4J>_i zVDs-!4s2?9Y;>T;r3My|CN>^5q~q5ru*zW2(|)SI8+kYC?{nnc5FfZ6n}8Z(_nlw( z&1Qu@D$X(C`;5-ff$M2k@Z|5w9tKvcN4|$o`sOYJaj1;=p@_jZX>5BN{!dJ~nE|<< zqi{cEkNAbiD-C=_-5>2wh3{>=QSNYwUR>^8^ka7u0&WAOIoUVG7xS0KAszFKs&0QJ z@XiI++o7`p?Ifs2f@Wq)#DuPZET(@tV?{WY+j4+p=dtE zia#0Y`^+ir-?LwSb^A@gc`|XoT{iMhV;meop1N zmS=!7(|}P4{;V#hMd~51UiKt+mBsfeI-hj;FK5nN-g|l95fk1+wW% zMZun53Fd5Cbpt%gF2P?pUwv*=CMCuwN6he>mK^G%jzh@ZcM`vTv~!gI5WMMWWPv-; z*Y8pde(`Z6{x47GDkYWpIx6MezK_@`_`msFHBCfDH$K5iOmJwjAAY#m&N*Ra;?@zg zQ}}|~UT9K6g{?|S2J0@`=AGXsPeMlBamHvkn4}mE4j{jjGt_(DrN!rv??&6avOUpr z#i}Wjy1>z#lvOuq)K@r0X)kmtCB8&WOXR&7-uoQ=XkMATwQ!T#{~qVS!W4eJi~9>x z4E+b8b$!OX4xhKCxPWr-;%+Z6vftq>ad^bfx>@sbe&Md1Ch!xO4H(rUBIgp=q4(+l zzjxsWYgZ|K?qW?8;NM$x3#XYUU!wDOXYj3h7W)>><16+p9$I}=P4s=RZ-Z@KuJYnB z#yCc`6d;R#4Ee~Bl-oAVJ$L4T4}rNg1sW)K>I2@Tb<0K^wv92QXq(U(iR@qO@Q_sn zOnevLBcgxP^%*w-EBet$KN64!aSi~c=mxp#g>8eQnf3>e3!UG$(bf=Yf0n8hptmJX zj&h{vw!qw!vk!a-%&kSVFLVEtcUfIv#1Y$auG7DWj$ZTy(mwqSh`dbhQ&zIR`)Eht zA+jhr_lxdmo1L}68cp;rDn5&!+;iOJS;n_r^y3BOrAHX|aC`=&5SOZmb{FDvK*s*m zh&ODXd6(C%R*c$7Z;`G~e&PFpJtFI;pW?4F&_lb-L5G<*1HH7(IqpI$@GS6piW87c z0-L}FWJt}NCk5`)XN~mxh##_Z7@plYU>cwtD>gb_-$6)v}cqW;*?6Rmn+T`D; zvi~sV=X24Q@JKB2E}nBEEmfAHv^q-34Tbz0A@OsU4Ff*!wD z^r5+m!7pR8ucBVw!AG4QgvXKHVF3sFfPE=-E3_BYo5*@fR1^H7d)hlexv+TE#x2v4 z9gd9DE$d0@*71rw=XsCNhz@gkxc|~u!LxZX7HD1pI9A}nuActLJ?_hW<6Zh1r7>pu z&r=Xbmy;|4QdAQ@H$(j;7Dv=p2Sy}es zA=Pwn6f)vb5qJyEM(0lC%A)VP66Q`|gDr?o?`qA?-w9nSrM(>5OYqbdCqmoM(`c+u ztE{)e2<)RcCG#x%dK4b-gmFRdZxo-TF7(n`!w_Y;k2AfdXa{{I&XOp8T~U{=Q;zme z<`B3nuZi?g>J!={eOv^M83~Ri(ZA`esSOj7vgqRxY<8@>@O3vbg1gwg?up`v=smBj z+d^H@`mvY8hAX>cx@vMaQ@_AmaBviGPWCJ+-n}v@E2$(o3;ikZHdaUBdnFD=>;E=6 ztN+I_Kt1`2HRlUuX^~0wOWgCr+)MA#)PoL_day5EJy_V^@S&O*Gh<|o>K}FS!4H?> z6W#D`*Nx|m>cI;}>%kcMdNr}&26?>r8FH4yDi(j7qWUu#{}9jO;-?JPUiBu=QzmEP zn>?{fg5Q{JnelWA|2@l!ug*@I@zl_y84o?3GI}A;!$WgsEaZ9ahJ>VNZ%9wNBPVvr zKl6Lf4MUUeCGC-WpIUOw4bRT_ZT|eEQ*FyeeWP4+)m%-P_*{;%#O7I2{Pxhi8E<#K zIOFE*p)>x-x99GCZpQt|O6s*YJU8PM-%jyO%G_nV_Nx1(EZTZ!MHb z!|{#HDM`JYcMToA+4OWW}58tKtHttJQXs z#F{!DA5J@NBFzv^Q!U}NB8@a-Bws=#Um|HS;j|;k;j~;UX|dt7S*hW)efW93I!^aP zH1GyIe8iWZ=!F$zpmw2ib_E@@5xt864>!aiO-FYEFF8+9LZ;)clF#r1`FT7tX;qoj z_P{e1pA;-8nU=)JzRFo{n#6J8^rk0-2`0Jvp$$Feg~Z zUG?T$hXzD`*#_-0eUcbhLoA;5$EM;t51A(Mf(uCZJ)9OO<^6g5HFi8!6+?+DDkiLZTSUgKav%RB{uVEcGq#_1E5W|WO7Kjnq5W)u+TMMw(q7erub`Pz z+rPhk3h)f`Vsbybo!C91zmdJ$ZoN5_JtS;nSG&L!EPw}OE_I&=*eppLE8WIU%Gd|p z9Lj}}gZF3mjECMDM!_{=#$BoM1ZbqbnL;V@UUlyvYl^ z#DA`xy{~kYviu-A8*lBs{o=Qs7Yez8S( zFDWnY!Vieg*OppsG~Jb*>$bJjXq2LgVl8R(YwJV#)i)UN4o(zAN|fp zH?fquyCdzj#yNLMoAi5^w7XE+B@T<+QImF&4dZ{Yf8ueYbJvsDElAz?1hL}RVb;Bj zN91MVM_ktAMRrP^y!CYbS`ZYoo(7GxbVe==vL{2`a;$o}Gb+XP@OHb;A}W6rQYEoMxO z1H`Ri9UQ<_hl~cqo0y@yW}k#qUWt8 zZw@|kKIJ#;hdnO1U-$bQqkk9K*L=Pyv?FtWHEqke{E+1T%k4q&L;fUdy#ahStyHqG z&&L;fI_5w47YEPLnIi*><9}7qJ41Ax*oDv!k87%~_dJ%iZLYvtbY;3s@b>)?AE!Tz zw_^g97GMbt)_tmq-0>s&fX(<}Un2KR&`T{sF1s$at9~>3rFG1)X@p{x*dCSWj1z!; zcpbfG6I~I0KQu4-Cz01q8JWK}`n(xfyhbddOy;50km^2{aR>bciiT=;=UUEV@dx;6W$+i0E8baW_wV{6E4xv=S>#@S_$wu#9&*I(fGnIXtla zMRY!fA%M{5!`G=@o{xi(`53HKkbmM8^C9$Qa2mS6D%SIN1G8_U-UAjx^~Z)`sUBh) zJdvI<$zwsro}-MvQ~JQ~?fkOGIgH5AJhwFkYdc&ak@fhVb%lPBjr_9;Jv3uWz_0XB z&R=3PRQV3_d>(&;^KqxQ@Vk|XN}yhKzQnoU(tVs0719*`3yl+e=N#t{`drCaifFHL zrLFp4rNdu4rK`TKtgF6PK_5Cqv0CLDad6+|+Z@s>`7Sz7SsTTs{z)HS8W_)ASA8sV z5^k9!y4yL*oQbn2_sewWB+q|Ol6^Q-mt8YyPM&At$$ON*XA2eNx1#^e)@6sOS6|xf z`F=WnwB`hlquYb-A)_W{mYO}*^L=8l-L8xWH(RCwj}GQFI)+MB>|f1}LdM}^9GchH z>4P?jO@)u~Ohf*xTDe9`SL%j($qsM4^#!nYw*p1Nn5EMxQHX zpQkKi9{(i2g4aST#YQ07$LmNh2hOG&mDG3Ql+^3ZCU8g@-$lCA1O6=E6ZbE+5as@v zH29>$uI|x+JD|s6N1Apjz9me1XG0UJp$%2gh*{8zTd-xC**-8iR^RV*`dx*7hwIQa8t?{3e-zIm)GX#d31DZZdYcHO}~jon*t9=c!IkMGNK zg(RQkF(wK*0SydR$h2e6R|hJhvfpdoFS7}m=mw6 z%2L6BsT9US8%@@K)B+#Q2;^qe&AS%V*viXmjjv)?ak(vF^(86^LKB7B6jo zDC5!o*513cBW=!uj$UnchTF4-+p9Y^Z;}yw&Y=EbSJWx^6kXF^`rtut+K1ghCH0H0 zPwyN3IGPHL1ipWR=U~Tr+Lyb^`aPHYN2)T_Oo!l~;7=y~zn41xn>;6E%^kima6j!+ zXGeWrao|tvM;234l|yhjT>k|HdjCTjG#H&lw&OzH-(VoV9HkE);J1%{3chZm4Y6^^ zR)+d^o*tO}yugL;!N~W`yvw)u`UYkfuP(I7(SAKHkA^H|Mrr#3co5EJ?w;c+dRZ(n+oK>mT_at)uX>a2?Tn@Ui1}^ZiNI&T@X| z^NS;?7Bg*!=Qd3Dg&%zFlK3zU?*&uIGYI=5(QECsq1&U}LSt5H_`Ae8801*V7+Q}F zOu8RGc$5#cpqrDstevtiKr1rY?*$Guu6;LnT(15e|Hpru z!&`u%%wZb8GKXK1PoKkUm_tWW@GIWOP`-AhW2^QAJnuWSLB2&Rd{Vb{(TcD?RB2-p zyv1$k9ps!hl=>9n97kz(bWh16y;A3s;2qdg?qmPdc?b9;gM3p5X_an=|5nnY_ELM{ zg=EjE!B5j4j46|(E)!=9vD5mSjh3z2L~I8WbqZfAeAEPUCUK(Y1UYkz?`Isst8u0q z4}7hRHQfV$+~y5?5EFI(8p%2kt3&Q{&y*4o7OP4+)%WU9jbshjbk7rozb6aUc( zVP1(pszKqitc+`rA!pLb)$my_8!z)&LgNG$=K6`9ujWQ*-SDuDzO1h{&RUOfPAH@< zp{-`LvrU9%&yLhTmhWwE zPxALX*zovZvr<18z1XW39_nEq0IwQeYOT$$YfVz>TdDIw>inT^2SZ0`g0fufL~5ZC zVw>?-&TPN?ZeX+6h>8sw`@`&3`ahet1}RFF=zqml=O}TpTIu%;(rcitvWJOo>JM>h zHETMRZ=7w@JNA+H#c#!i;%_psEB!@8Z97aUb9C8=oUJ{y=aG8Z3w|zRB*t+M@HLrl z#&_f+LDL|!Uq#;_^tOg`Y#D9*k~R+D_r!GkhJcrItEu8xaW3m>zAG*$@(hi7j#G!6 za|Iuwwk^}WYWkHh5q?hKA!k>KhxRD2pdS;8DL+`r9*b~9j}0+i-eU$kj^;U+`vwMP zH^L_qcX(6of%L#rpT)OC&x!|-%fj2=ZHiqxH;pqVZR>KuD`B9^0g)4ZbC(g`E(RVi zEE5#jl=&vXEu&*F@r+EZLgNjNF6bxoL?4xoAvLT42$M$B;GS$nC^w_tE!eSP-0#Z4K3CD?$7U935_Me|gd1DmPS z^X_;WTos@Qs}zqH*S=}-NFSY*lc z>C)8D=5GhazeaiX)Jn4g=ePU22lHjPFSXzFE3T7Msy$<{q{s8xl11 zhb4Q>#NJ~)C2@yiQK~DrjeV56t+NYPWQq?XtCc&|qkd*hJAI>K6`UA2}I52MIpN zyvLAF<~jR2CXC9Y1uw<+faL*qcn7%3l zdxiu@3U-j&z(te8oP}IwRx-a{>{oX1Sg>bEByHp;XX-|Oa;|O`V-=pQ=Bqi_EGpx% zjasfW;uC_lw;_LOgdWb{eLHs=R9~X9!B)dsJVgDAVy*rhk@2!7YgnUu)fCD{AV>6jgh2MNXaQ3#43^*wFLa$nP0+!MnI? zH6D1#IsFdS75601yM8)0aA)M~coN^dtAU#ytIx{XUzL2f#MPTbeNqqd)!B)RVK{Z< z!+X^-XLg@Q$E`}}h?h0H?!>@^Nqj%dnMs%7pH9C#FN>&qYou?xtdH8PCm;FZ=oMKv5<35Zs$pfS*#kxHxyk;<{b5_v1010iT~YIO}WQa`@k$kesz! zRmSdBt#`i5Duo4rZ+LHWOrxh~*4=Z4^R!IQPuAwSOWo0WXG>7O!FP1vYQKZvJg zwd?O@H)nw0yK+_l-_t3p<1u-3`ScYrKK1oVj8Cb5Fl#yNH~okD#qT5fMS+QoX+E$t zVM8RmZyRIV!umDkD6>R{GS`SMCs8T-1UdM}-1RM|@8t(4={uM zMuh~fCTt=Ep2H&ZpvU}N5EoqgrTDQ`9N0^3vR}A1VEJ+&MQpe#iH+h^vp*8JWP>L% zHkY&+ldJm|KFQvE&x!aJKd_T=x+CMn__amiqQ=pVj^mWed1~sV`-p+c+OkGto=RWt zB_?VPF;SJRu1f+Fr7Z5dRkY=yP2ug!`IWe=QM|ZF-9@yczdwe~A~L2H=96=?9`8Z= zvWjvx=1=D8FO)H1A1wU`X6Gd~sNnVx%E}!MnL``j_YwzG)`6FI>5Iy`QXZDrpBesm zSzppWVt1)1M333;F^Djt0P)po!^g18cD#1+bQvUFBY|W9Ai=FiW=!Yq}%hsOMWqW6P zf?a5V%!ABNG>MbtBql|czzH2zo2-BSNAVw-@L^YTW?(dF zNmr!nc>M8C0`Q|PI!_6I$z0EtHcZee!H0Uj>G*+f_W5VUmvc6;5Rs7_$BsI#f0E3B zmv0gqMB;*229=d~$mdXtCt0{VqY=wd__fMJ?!iG1@fGJ5S>~cY4ai*>7y5(*yCynmNEv9 zEg@7UcyryHU~SW~dZE3XW3_p?`99AhW9pG5&c+Ah-7;3ejeO4J9#^J*)>xUPwut^n z&Ty}Drj7A z9>I5gF49F;nBm9Xp+))q0B5hXj$-gbzU%bwf$R0}x6Ahr(MvKm*~`4d`js;P=Y!b| zb2Ed&qpyReNO^lKG+5w*-Ms0=5djl62A;n_XFfHAj(p8piJTdZ0~Zf6Wz-8*J>Bhh z%Qys9(Q(N*v;VB={`X(Cu%|)KTQ*J#+(+MTV+_yHC(e(vL|34XWm=|wt|xw#$T}sC zRmMfubju;ps|@NmNB%z`Bj5A7A#ije_dwA%*D;nlcr4_9VS2=#t721tOszxq-l%Rj zii3aC@n)tObIf{7;S%tVd&#r%7%zRVkM#RhWO^d2 zxbhqcO+sGqx46BRm!r4$9jpZ!st7v5*&0p4ckxO75LC zQ@(;Hfp2DelCD$#|B`cgkaJn6U+(>4`>pF^MCU1V>^1yZh<*KHesvnb-XVA%{Vw$R z$*=L*S3jX{aQzK+Q8|ZFe`B3eUs5M>4&-+Al3(&ZL0(-ZlO_Hk(mEu41odCTgN=Xa zOYHpN&w>vuib)sU%6}Y-Penyi2SNjW#Q;xKAwU^PzE~w>nX+1Rlm8p~z5$?uaa0zKgv6Ktv8D?~?a6 z`q9YmY?%Z4s92q$ma9~3E0o|^;Iz)7MC6wE3qWocE|=~vC%?cZ7q}M#EBP-x-Gs=0 zf#F#GiwrM1r%~Ab47kbsG}6betCYh^*WmDdnw%Q~ckxZPow?nJ{yV09pg;+>a#nu` zx}@Oie_*&0T*Lo|j!g{>0Jm|pbLvl1Ln?P)_Va%@{aKB^?g!=YcYnEDcevcXOv-&W zHFSb9tKqeO5h){eOM9m-l8?4#^Ib8Og;eg1O8uY3C;=n56OjB7oZ9o_vi;$*Ws@n3 z|Cc=aG#tAEDJy*wJQVm!`A>W?Ei;E*+AMTe&Mof(kIGqz0Xyf|Y&AwdyA+6hJU$X? z?MkTf$vpk+(uiF}*%a#kcxvd;9flTpug+G^--G^K`EF{+(-a$!@5pUJYxpkX5STE& z!xtIXTJGYQtoeacr>BNQ)>qR+Olat{jPWG>mA*#t^CEEWrmugc-z)w$*26M~0wY;_ z3n+K${M68Dek;i%z)bYbA>;xP zD(jSZe#fD2Qf5AS>l5TxC^za@d`k{(N_tHsT_ycKbiJ<~<@{{JK971OzTDg1n3nnc zN{lGsT}tR1=kf8<2l$`EuJ=j=}-YWLZK$=&=cW^YU(g(u{3m z+g4pBtr`Q!3YX(MXNxCJYy`xHa0>Fk@SUdbuej5+U-aQWy)N(;?fex!=|1=*v1ONj zc83OD(c7bsVh=7p2sDMg10M7&_Gz30I;KHCrptMB#3Al{!#pAHN#MS?Z^Zk$ACvX? z9;gxjA`xE~m+t=!Yfa9G#_;9>BE?^7f9<0GxH?e8;@PFG-A zaw#bq@|=LktfKk^`W_Iu@1^_0_DjOsRM7X6^tYRPn_tjp*|R04$CKdm)qIn^<7OVA zGXrTn*lzT&Zo9$x89$F{k^2Xi?ti_#PUd^E<;Xob_>Th?5|c^dFi8wO&x1p&z1)A7 z_B;vB5ITn-{tbYKrpJgU{X!q@bFZS-PW+{4eE9a44E6+KG3mbgM=9;^!rwqMI@+!= zhuU^mgubD#vL7LjWz875BWUP&`L9_5u|*i!V7_iOHE%2?z@L< zz4SbGHeP42e33HY67Q8x@m)Jqx0AKO%l43l|K(8o!c}_v_FElW9o%*5`8Bb{fXh0g z+5g@1$U%)8i3zRst%t`h;I3jJ_Y=_@241D@8D^!V<2CV-6ccz!e~;1Mr<13F`*#mn zr>~In&_-3Od|yqhoX-8m>9Ifj25wjS_~ypvn8@TrekXqVzkXB+!}}+|1sKU)q`nhz zf$sgWfxf%&J7S0r^eyCfJFzDx^Shtlnf&JQ>*sd?zqeyYbiLRc5o1d=_0`_0%Dy(R&xM1viU7V5Q~k=5XEv<&Z^7g5kcJgHG1lMx}mcyiz|6d-)moCtiy@;B-@Y=e(Dd zx@iSUNlcvb%IW<#ccSMU-<&!%wyM=@FsVYhZjjn$6gA7vV8tA{CRi^$ik4lQ`|rf{BgT6^+!PodEI8h5O zI9YQRa9q}%=o^HGkZ&TR&BxD&q>C&|>;sMD>yF@#iFwW1pmyG039g{yYkM`i#)q=T zhv4fko%`RVA04acpER&W1^4t=kdE$->Gpw!q;{bV1=JzDA$Jhbr&xSz8HZ`mHo4on zyqmey1$ z9$=Kc64~mD>uj>`Wd9TX$V5iNyUKS{j)`tdeS;lvjn2UL5j%IKdbptw)U-COj%^p|BbLQ8>>`O?S z&U1FsQ2R)J&-5ul;lsKoJ3|xs?R{>jz3(LcpU)w4qm2#r1H^^zsvkf;pNai5aexbA zCZKa+ohPUXmQCnhPP0xW7WcM&qx%ZRE3=nTCOHP(pCP&6>2Y$;PP4qo8telfd8Ps1{2lb-xSzw(WED`HHaB;CrQ-ToA*5WGR+5 zz)a}=T<`R1M5cgqS3jDrgM+Z(GT7ngXSE6R0)O};9bD+2G!&{mL+{u zCN)HK5Z#8UoxR|_SFyM!o{YLC+Pk*fhOOWZ=z!4Ahv9Cc1-Ehfh z?e;05yoLuq>^Z6g|NJLpDUUjX;!jiHa-Q-RhFbyyHxpw6`f-{VHapo{I%Lmos_b6} zPrQNq6~0*fb;-GU#QR(9Mb5_-V`tM2e(y$x@f0$QX7s#rAHT4u*|rm2Zn2R)O-c0C z5JzWmeE9z=?5{UaA8|(?({;!r4sF?`*Olm(dUpM&9?{cEU5}Dq^t6XYe6ZyZ`InfJ z{2!2C^v%uOF^#tSXe587cWI}TsU&|T`D@JZhE9SD zLSt0?rshC{qqOD3n#nq@3f`V%Z{*w?JeBrO_Rq6^YRAqXcnR5X4!Zwe2`*D-&%4x_ z78kDTt>ONYtOKd?*mgsH@}vd-wz3h!2|hQ)BkHxeaQX>|+w=S7MfSFD!#5 zXZqwmv?<XCFMP?3>~XQsQ$Xn@;b(=hpUKU{(p7Ol6$Q;9Cv>FXCK6*P%b|rjIgyiMLwIxy56|*O1ZXH;})Z z`A}7xzw3|jdS9dubB#m&at~f`Q|FO4Q`cS2pxmWNLeJHc<_rnHE@^h^WsL69#I?Tp z#O20MWvcW`_HSso)_pyCRQTEX%%$iJx63)KFd@)Nd*5K^~XLj9Ca^wIuhiKo^@$wfCPUz% z$oSffGdjP1l(>nUNzB;R(6?Fe+spfy*Isz+0$InvZ(6_@SYP2Q_E&g|cM6|RUD(2u z?BrXs@cH_CjQ+j>K7Ss3{v8oMe~D_*`F!X?$p-lRE5Ft9jeV_hJ$ybq{;cD`S!|2H zS?F&6BR=7~Id^=!jdK&{cT;YBK+bsUz8lDRm^^th?%BD4S&ZdH%CXOheF*XoC9sos zfu-QlZ}~5}B^^%Xd4Xqm?;Xwggn3v(UHhmf_q$Tg_~{)FQdinXo2$}peeG@+-%iLm zs&!CcIpuHQJsUig-?pjPF0C1uVCGyYvblC_C@tXSJXO8Wifn_sZT;FH))hWC+{l?m zQf7hZPfZ2-Jl(H0rV4%CF7=~>`3LHk`ImWOTraqOe|2CQX(x>tj?d_8CjI)7buo;3 z_Up1FHE zRS$@CIQXU@*M&Zh)I z(e$Elx}Lu-Gw@|JeL^^Wf!wK^Jt%M{nttOI^(?anPDRtp!s*)u?+#xVfY)!?TbUN@ zWSs4JF1xPJg8sUHF)%xpanzvyX>+*j!XqRgBi3SvaWB*)F&5qUGGO1uZ|sYH8$Kg^ z_Gi}4<(pQnn%%PhW>3d2Xa9hH2SfA-Vk=vKT&|Kkq?NPe{*r6fyyKQ-bggYRvs5_yZn%kJL6+2KPa)b(k6i^yfR8wUGN!tco3&cQZv2Y6zRfqsIk zYh#pG;A=v%rwIMjVx0B!=;MB90kS>a2R!yW4)JkujJ-Ii{&d|TY(hpwe3)>ScgTH( zy=u(z?R*!X4m!P7&3^H_AihwftP@>jB4zi+8j5yP{@jP#=I&iJ()Ygls4eObMeNQ+ zpRjg%Q`J0TbelY$VuRVWVj=We?)Q#+FVA0-bW=Zi=RNsPuL@$-{^36|Mr<-e(Yv`q z3#E=9-?tN;4Dc)#|Gky?q|xW$nRPbKa;fHsT=U91qFs!|LSA?ZP4>)ke5smJqP~8! z`z>RTp{6*48}OH-EprA>BRfD2+A#{fm>2pveL`&3HfZW-eAc-4ZL{&e2>bkwR>rar z8aJIMCDR#7iC11ZtR}m&@f+ah%#GqB)u&oD&7iqOZgP;c&(TROgRk8iqZG9=FZ?d= zWBvP}8)ejelKYQG=*O%n@mT@>8-}vB@O$5nfq z#SiReo9Tz^rXp-AHO`=xj?b`#%YAF4U(TW;voh_J*xMGqB{&qy%;%f%G;*Gx%;gxn zWsy3oKct-XvYIu!u)HLY$^VBnc)U;ITQ2dG@%{#MZQ*-{0JdT+&+zS!q<_V8 z9q*H+-1$uIlPN84@$L7dpW_ic7TwX|PegCTf6k9G=bu4WANuJa@H|_;ZzpNd?{AU! zO8L3?1p97jneInmLq%=zM)tW46$Qom-lkgoQg%9NGb$DpPp>E})@56&rl)_mRK*tT zhd$gSztBVnV-{I}$n9oC{);{&@0)P?U8J@BCVcK!)a;Mg3pPnCgK%FnI#xjkGsx>i zccV0#!+J1he&8AU|NUM6fgPHP4#0r?9shBR^KspW+PFXqzb)G*1a7C?*N>S4bA~JD zGoLaChA0nJ;gjM*BlA4SIG8z3@5rN#C-G_b+Rv3x@FRTXV_(yq=LBwYH)W9iy$u;A zhAP2WzJ0U+KWykhT6n&8IRmE|!w>Gb-u0#~AO3qbaOh+@E`qBfOaCkD16%5jd%@eg znA28l`<{$**1ti2_HQf;NlfR@(ZT$L{Vm7BzBATY(!>3!wu#P?Hhwvq)$bs`_@?uw z64#CW>?`)Z3hc&e4N842zv5%PlILsc><8{XY~8&so;^ru$WqHM560XF7}XpefGDO8>D~Vh-RVtDN%(zK83wiJ37Uy5NX+>Uwnfg?FM& zReY`MK9IHpaWM0na z5-)C~V(+o5_R~ek8=*%jMrF_W5zY{HmV3_IouN(gJJK1th2OK!sOad?tH2v&zo6(c zcJZ(Gp3Dm{ls)%e;KE#^Gy3~>cMH(Ly}^1}*m8YfEdNIoG**50aePY#>+AbuTmQ|Z ziR~h~qmIGAW-qV;9<%>Bb&&reGVrw#lfKId>XV3uEWeev?UPz}WLTh955z55jtd6isa;L8OuEkpP({tSnrAHDvK*nsfq z_@L?Q1@8Iqc8WUG{}uh58?OZZ6psEbBjxbsW!{GO?!2tSL)-eu84H;0a;#uMy`5d`c@3z^@HElkQUdTxhZO-r-8<^tCbev&l;6Kv@{B3$UO5{VJ!fzeuZ2 z-0DGYeE>g8CjQI(WB{wd`(gtJ42?l_nmVi`kD_MycK`>0!Poo4u*#tCy)&J`niH{s ztm=%d9%R&iHD-0R&v16i8NaubvrOWjY;y0}p7>{5{z_Ap$EOB=MLjjXRY9Sg#G!0w2#%@ClOUHof?-HV1p^Hg%ZKO&{NR&|q(V z@!xDdhFYwBNt2nb^ z`yjSS$60^*oaJ!f8#uuCkAPFAaj3@m&nRCUoSXrHVV^d|e)`&* zm@jAOY%;t$xYt4+=s=+I+`t~WU$b9mJA0dcJ_Bx7)32!hQO*Ia_{$dCe$P{}a@RRn z!4w&l8cfJHlycq?zss|8JMRGDlIqYTykcYsO4}Ec8pG ze+l$6ku{UlF1)1hk8&pZ4`}jnV@!JiJY^yL<;ajTH2TkFp)vbhp$dFy^?)08c*Gv$ z%RSf1xmfs3vu`_hHP9tle}lYg2zMqVt)04huT_Fi)pytVineWeH`$z(1kV?@qPwoG zzOSw*%baxw@3AZT>I8RBQMRA-?xo11nTIXBujAceh}F7BtL&zHux%bm$?`iIP*ex8Cpk@ea;58p1-ak^A|+MD{i zN0+x>pj`hSEy#k>9A86kiFX=Wz|0es#=$cmfMEuTR~`vqsnZ>wMvMC-*~a+UtgN?LU3Jb@$Zv)(Jm)E-_Zi zRcu@m&(!38n_V5o{}fGR+2>+a?YO76&WU|dJNo(y1#bH>^xZz{+n^+BDU+3~=9O`2 zr>dR75ssl*zQnqkW?XrDA8WtoDQEln(wp0xiIuX8=NwN;oXOw&)Z}(-lLhZqrTR^#NI4{wKbh}Bf7=W%;iSb)jHPIde)Vn zb=AzeI>Z`C;oO#uu5CZ(1+k&9D!d!4eJ=Q$fcJb|9?vz{PE6+a4xSMfe4wF&ds&Im zT#C`XTCw6kEnYjx|9c)Zq^;o_zIdz`6s!AbCC0t*0Yh3toS~?Qa(5aG)>FW#p=q42 zh`i4zYitcMh9c^-ektjV!+lMZKdC%!E2WH!vTwvFCBrHAnZUQH$oCfh$CfJ(+2&F1 zBr!E_qU`50wT&@J z?ttnHK8@V;ZJxxq4cgh*jasvk;{HHMcE3Q{n>>&3e91GC@4I6*YUwe}tiwmOWP{bc zNr`nIQ4}}+rQJKpgYU?+Gdz!SXAr-%X;<@DA5ha;`He+~7RR0+&z_RTofWzJCcLx6 ze3KZ6LbosQaHohEaM_Mn^2Cuho-%2az0(})|G7EN|8$+b^GX?_!S zPMccMZ}Wbn-rfm+8+g>I1UKX;!DdAXJ`b#gjtgvijdIsJMvp@$u=E!>?Tgg}$4Kr- z$~*cKk?&5xZ)1>k7)~QLOroR>at7Z+cdq9f;tVe4KfZ&5?;&GCX5f(61kF6hj8}F1 z7Tb&O;VtIJcHJoNFGb!>*eK*GX200=ls=%ei_LIfEIgR(GxSelg4DoUXymCK>9kK% zH3#u3Cdm6D`nHpP_~@IDUpwj$%d(8}6gj!eV~?ph6VI~Bv6&RD}wJLB`5!8DgMn8*G782nQ@ zV-zhAV|5!0KkJM!ID>J5H!+RccyMP{Oh9`JT$8jWgTdWM`YZhZJmz8TP1bqb0%s7P ziEhcOprcqG7tlmkkyDpn=Oo`V{C}D|Q~P6@w9oi2K8xSt{b56z`)YolChY>hR{RZ; zU;lm+?=?ID9=WHxjo${Ic{~F=r94M@_R4?SF@bX_sY>7tV0ZCy3^w)1<@MYc@$Xv( zOqgF;&k5XDxV)b6OWe%*-L1~k*K;%LSJv_KtkGS}@nJQAeI&`9#25ptvGcK;wAR>W z&S=T*QHDhK2GSDvCTlR6F$<3-Yb&~*mVw){E@Z7Fja7oldF)@v?-H=_lY5XqTp#N4 zR(Q-S*9S7k%j-kOdvI`C1n&jEwFrJI4`nCkD9R-hGG@VZk*CRhf4N&7^+EhMTo1Q% zC9a>2;xM?b<1p>GBRDL$szh)#+Kyds$Ml1C1ZM?b9pGmH_$jz5^N_$CaL&1K40+UI zaPoch@Ed^nMqvIZaBkG$%$-EwYz3AA<57lW_w&FsF=m4XO{*6FxZIg?k73S5Z#aYb zKg;i8en;_$ZbNXRfoC316gQfIyXXw0ZyNT8o(GTSsEknQPl zI!o2WzD9Vm0?$a@m$uM}X3p!m_-c*H90&f#z9D{$3;{o5&t8R`K=uuMXD-6dROa#) z9@#Tw%tHHRPk4B~Gx$iEGxz~~&zt5%Z4LWK3Tu?T%DqU9aTB-P`etIYwv)B-eBz@T zbka?dc1VfU9>zv7#Sr5@rX<6s#k1#H-ElDqT0HCd%h)9CBJ}1N@>-$aZ?i8erbo0d zlmz!(?8lEAlH8JZ%DhHf%KO{wx9Q;VUpc#`!B;)czLH2AUF2WJ+J1)orT(Vj9Mc*uHKh@J1FD~dXsS6tKi@OCBm z(28q2H?0`gxzVLa?8o2+1M#kbe{_vFa>8r5S>O!4?m`d0gu31@aoVx7aEyjt%lil5 z@bl2-L*Vcde)TkPELqZ^*N4D$Jq>!jl>djI*Gb5Xq|Zw!e}p+XR#s*|k?69Yvre|} zGpA@ph7@-Z{#&QO^Q=NfnvxXIjwG(q<|_uRNlA8}Rb$wj6?Y1A)2dqCBY~wg&Y&5g zv!5|1&r(MCpL5{uP`^TM$Es}9Z-_=I>j%$B6%n)Yh^kyVkfW4t}}uk$@Fa$bLb+^E&HD-5akEq5zuYNlBBXoY0y-D<8({q(0dsiy$LQjUp5Np;L zrLo|?tZ(S6?4LgH{vhj{v$uaH&mz|NVqkv`-1mX|8yVxK*hJ*aiHx5+>hNis%$v0L zz`rG`;Irn|3`tsm@9#1GGr$sBfExxSUDm7Mlg!g->W<}H+dcObZ!Up>*-)HTdWu8Yf&jIEdQ(rqXSvzBtL~SJHmQsd2A6rVbTGq}?*3LB6&U?IL8(%+- zwPRx4$oi4BGmW*gEwXlGABxUxFY;}816?L8vdxMSitsZ>4xkSX@6|?!16nr^TSU&3 z;^V#JG=AoHlDE`TAhDH?ATJPI_8w$O>`^Aa_P+8~!RI2gY38TOBB z@JlWJv|S0ZAEmjKgom}eI7dE=f9{u&A)r)tyVzr5l)>&UgQDH4#Pc4n#mB^IPf+#| zL!6e*I5y)C`xNv3Oa3EAW`A3Q@9tRlMQ}vYGw{3pkf}vG#oi`q*oSCN+HYcx-zNX( z(BJ2nbKzMpLQm!0MSs3zPS@}V-#QLH<68KL-;!?%zi-hm;Y(Zj_Bk}aG4dbVRCg=? zg@4@-Puvyxe~e$@UkCU-%Cnbe8&3nzJf2c{uHaugn78QNz5aP`=sFU?6IuVvmE$zN zT*5TqDT~kmkw>DNpDn(a3!p38B793}9efM?=Ko>u&EumiuZI8op2;#xRuUjgfNUa} z35!9Nj21H!K(eq%LSL))X#&_f$$%QPl^~ErP?JnRN3qq6Edi@CK@KGnnV8_HEzi_kP~@kKZ5n=iaXMT<1F1Ip;d(TtZ8PX91t$ zLpU**{}X!nzvBO}@z7+LDCpGf%&*2NPU{^(+AVZjXyOs*q1*V7wr^1g%{xVXf{X0+ z7Gb|_p07rmvER`4w1tP0^+nEqkUmVH-Q%H$Ht1m%^f1Iz4yK2K%YwUtn;~9Oa5jXe z8ehq}qw$rrcRlOP2I!TS^`?gP<^|flBS^zF`c0d+Lpwl2v(WNvS+f~qp#chOw#;{- zaNNV9$^XZNWA` z_R<%CM^hxv```=b4q=<2vQMXPQEBHUVm5U$cRTfAwtCKuvZm#D8x-X~`}0#zIoGCC z+KTO$)>hVbX={-S8$K6ph2{t!uukS4?aTu|q^+63yoF(UIX}c!O@GUfLs?T>Hc^H` z-{-nct(aGSY6bWqF-S_HU7Qh5d9pVn>!_3`bW_R{{q+0D9`IGj&0%uBMr8+M9V$=o z|2Y3Uv8DKmer|{EV-G8G1ZC?kmo4}&^FX0Yw`!tnlP0%>+AI2K#-ma}_LBX$YTBAg z*>e=LXFYo1M)a-P`5Ck~3c4#aSN5v~&qMu}w*J#_&;IA(-Vua5=Xk8ZF2o#yzt~X> zhQIhOh59oX{;7lDFMSHZpYt%ZF*qGQ*BlxH>C=B51F;j5F@PtyJO(v`#-JuR26Dz| zXbhz6&^VkneqFxc$bTJ&Q-j(a8V4yeG!BAyGR958@&)e(!#y-d{waKS{sXwj4Z`=} z-29jEoxQxv_)ZzhAb9^P_%1O7G<>JL%lJ-tWkFbv8wBeRod0Efr|ir4PT8rH{eKMK z7yR>Z|8LYQ^IoR>vC%5DJyE`&0P1?yzq6K=jE+?>UL$_=G)gAn&)li zTI{-SUaG5Ro)ev*x-MmYno=`e+Fz!Q9bL;Mvbk>E<{0u!SQPHKlt$T(oSGQQj#Vg| zfAgd~CuK=FlGj1LMO<>8S17OZpUgW~iSpd8MtNRfE#1yq`quGd*afy}u@@vxg5aw7 zQ=i11=zaD@Cj+;w#3>cMyu?b7`ahk&z<=q+8#tRWOdAWyCu2Q0--&O?R|GF&g)gb# z5;o$SNPY#`NWs^%Wtst z>R&tLs4LZR`HUHfzld#6WmbytVMG#;m zi9af~aiSN-t|7;Czq)`k+D)b9tTSV4r&nON*pX2?y)ax|(2-I*UHhI~JH2B#R{~co zm$`O&CbB~`?UXol-R!&dtc~-EFZX!b9784O_vqCr5byz#Qu>QT;W@%+tu9!xaNBj7|5Bv^MOZ_%Hvy z$9MT3$v;){t{UTgjejYMa{hCCM0$TRy2MGG(6sN3@b2Y1)>v;q z%EFe?fQ=zO{FO#Ia~R(h;}~T@?sz$02Y)x>Xc-pecsFBDm6jQ%@!#h1^2_nGj!V1N z>AhCUO}U>~sqk7U^{mx$_Y!lHyO!o9y*HIKi=?f+c5hR#t=c)q>NJy!^E{;u(nb?_ zA#IVq+UG8 z_;ww~RweCRytf1VdhxBujiVT!?*O|$k^b|h3Et`8!M&VQd+(Bw-gkA_INim519@?W>v;Xf`h9k5k>XMd{a_x$g|?)*6RK4POOzF_FKThMX0q$5}6Bl~2cYwY;A zPdnFrppKN5Jm%l0?DN0Fxinj2#BK=u2Y>2xO5i8xMkKx+G=X>mU&m(%*_VcV=Y_U8 zWlT;@_ufofHQSodp7ks0(f%*wEZ_+Lz*?W8on1vNjlQ2T$2%q}eI3}$9nVm_+Phx$ zp5$5VUd1>3r=)2EcSGePA7U4j(BhyTiD9VKmBm>&uMDhtsf?@8ywJUaxmo}F$V9O> zFtpVdck$oU{8KG%mD$l)998Bm#s|8ki+EhmL*ri<+HXGZjwhV2n zI*E)XcE-PqZmW7azO8B^wjrX^UVse;cHu=^WUm3e%!lX&f5`hfzDFY4y^g--QS?Hh zD|~&GDH(eN^Hu2FE7zElol2~Ez7kusc2!jJW^{6KYfQ1ey? zAg@9Pk*!mUYN>Y#x}(?lHj}!S@cl#bJPizPQzD9l$A6l>0vEIN`y76BAwB+L`ic-* zbrxH4uj77mOpWwAE@2;i-Qc*tDBht|#nZnn&WDO(+LWr8yjt^i=R=gEGsiaLug%_3 zY?)H^X0VO1sY+FJ2ayx7U6Q_rY$Y`N62`le@isEvCdS&#SdSxKnT&Vmpz${R9~*Du zpz$^h8gFxOyp8{5yrcfxQ{+vRekhL&NcjXR9jVR zTw7I>F2Vd4-B9$tiAB40!-_`ghns((PcFKkODdX<9p$gl2S1LUcb9&&`3e09vz#A! z*92qowcKCg`>*Dkk}v6!%yzw{sEM?1&yPyJ_l}VzFIPt=+qpkEQB8hljj`l6ic)p+ zL|yV-JO|>4>H8CX@~_Y{CfyU3yeo-#>C0o1H&(fwe*Mn)=~(4z0Q4CqEhuNddg?eSw8Jhyu`7ZD)BN+-vXa}U=t2(BESW~ zm&nw%s)V+-szgUy)zId)s&}Dfa@OLovbL(>HEmT@^ha#zL^u8@I`J=b!_3p^=O1*# zfm3o3I&kwn>|s2pA7#D?*sRdgzHtJZBy*B}MA2g@rsTiUk9#we_$J_y#Qomtu#$Hw z^vOxwKd%T&ZX*AlHSq~I0jHIemkgYqO^HfQsu_USP=`{r@kcSqcL{7(#V5QDe4f5F zK6xW;iELAmi}PDKr(Q&ImSor((5si+{G ziVD)HsBffGe@EMuI$-v~^1mQAeAE2;zec;vLE6Rr-fCTtcHyIQnRdmN{ByJ`w&a^> z7vDA76^o6G(5~2$0ooN?@=dhsap3d6i;wHR1-AdstegKA@v$q&YuMm5y1>JB_>CxV zQs|izxcz@d&)5%s{VG$Cp6NjR#g?Rze}JCFmJHCd*b<>;yb3+6+c|qsL55|BnOJT zrO6Yi1AIfQ19_qhd7@@OXD0k;h)2s(nv0`ueQ=26QB&dX%f9B{98q`mo|#L zdtcDE5kJmzOIF#vVZ@1E*EvM&q9^1J0Caj1?w-V*7 zDW342d&P6u{*R|lVn^{WYsEHr_Hlfd7>SK)@+A3|^&l2-cIn{tv+iAOZb%B07MfemUbM zgZM@l^bsurhw<20W)fRV{HrdqC-4RO#>Jf5tzi4Jj~Hkt@oCsJYT(?H8f<JE3ac_pA2Qeapn2SunyBT|~Ui>mw;EO5xF?rT}J}y(r)C33u?Vb2R?lakq~)$Bi4^IgR)N zlqo)Urs?xvt^*&5ZPH?}UVrILU4-{h+A)IsiP$z)P*#fG)KihGEIc4Ff%G|Aj7#J) z;^)M+nAHSNE_TKp^anesmc8sfC_HZ{-`;vgAJcxsdZ>we(e35qTeo93Ao@$$hiObB z-WZp}ZHUPj;VaiCd5AA@-sW`Jd-O3ar@7uR)&wdJt2sTlD1Ft+>&RZfzw%3cRLcqA-i7}TabW`akw#B}yFABm&>?5H7Ab$6G1_qM*{Il}R>Vn`e97@@o@ zKDy|>hmdEAE7B2AoMod8YEn^VxPf*q9(~grksG((HNq!#s^ptWds6VL-A(y58=NmG zskYJ4)Q1i6z&R`%lfC#J2h6myM(220@@f5gHEDFS33w5+aOF#S(Th)!|B4}NG_>O7 za%A*O+Mk1ehEnfM=R_vXStVZ31-H`o68^AVvzhzV0aG98yY30|=jx3; zL#d|&f63F#ubv|OZ25Pp1YAUieHU{>@MQY@p}wA59DTOfgBEOb?PssO!MZm?3G^~= z&v5~3&Jr7io_SPD!3W0V25Ymsiyaim>6c|VR~YtXwF@ok zAzh>OF!4K#MF#8Pre@0T(nl3>&RY>Xs;xQ5jm>8KeupT#o1q)EI!EAYzGVUzcobqC zLaU(h^^ED|ag0^=e9E|KV;Ma#hAE8Ur}$(FOgGLO%G^_XYhsn%nT&~%G~(|pKG-8x z`+d3kp*_vmVr`|qrL;ee`F%TW#&@$X8`@nSbHHLsf5Q@&e#DY_*pO@_9d=PBGv{yB zvBr$!-&|n17yO4GF}Liiw;0u-9$SGD*hbp3z|AF^aE zzz+pFvPq3~uiyEQWgK;kpNsu8{TAEXO=^t0apwlhxbG@~msDlyx!W9lN2oIvT#dOV z*7w%S4y))S3()~ceMkHbtHd6}*RIG$IWMV(sb|P@h&<8cIb@CY&D-O&Zlk?o8!h!0 zZg*Naf5R+mjg5LNwB1F&^JgpePB%WYX7oo!?s~<3<8SmEJJ>JmTte(E_Og_0hyB%q z>~pf`QA1pTJzG@oUD)qQteU=Dd@S#o=_fv#mpC%RyE3l#%NqS9G{4vF^nX4-&;K(2 z4B)PHGjRcUzCe9nP`0e+U92f`Zp7J%1Af|fZ6Pi12Fl2sZ}1rwDcXLR_@uu|j4lIt zw(9v_EBxb|DHa~m#-&IAZy(g_5t(td77X9s*GViSr_x4%`4A@w#Zso!J1PS z{J%S6xKH-4YE2GnO@yOQ&)KrtGqhg5_j6WZ-IWfj`0oqNl-Qew)vX%u4%`_1g)eDWUx@neTm;E?_qr}|3m%Hqz?O|{2E$*_9H255>FYm~M2XtaT611bxOH2hF zu+amXFnGmq(nrA0Mrvz{(8MI*G6J|9U#s{#%^E+@cYydeUBJW&pCEieA+~Kdr$HlW zb9XFpMuV_90qg`eF4n14^!@K(1MCDgo$S@_$w>0;p69SOV}Id30DqFlz6W=B6XH}V zyX)2@Br|U{m?W+a_%`VhdW4VL3T_XBuWMtE@!v?_c0%#qB6rHUN$&dy#d$Exhlc`LE|UD!as>zPxYHM>p3EJ;|pW|wKhnpKa=`mv1f-A8Snv#gIP zDzTn`NBnB%+p@MFhu_U+pMrRfJ#FAldc+N8iLIV@G~JUPruJT>j|TdMPlZR|v5T_L z5-;deY#cgx?+;h{2FsNKuTadMw6^roieb@c#j$v_0$(IDQfdZgKs3h=#J;&I%=_W* z2KFY)IrmuF+QPiDW;^@Zxr>d0@Wp4i@E7;>?^c8``}04a(i<$+m2;CZ%?y( zH_)a#cs{$+uKE11K59PXDS6ls(#Mo^<-B)HBlZ|6%g^h**mR6uUNcnQM=#Hw5aa96 z*YGW6d98ed4?BK!E$_c?4MY|?P(bl0ZhdB8OG z<4whJz@rj)WN*2~s}`RAI7JP2OI)lL;;=LvaOFfQGh6p#n^W=E6}x65NB3W$R6fPH zXTW=0NL7yhL}GRA&**vT#h*6iIWjyK(8mu`_2z0B;~kG#@_zY1lVRsiEhmxT^-5T) z$Q%*loc1e`h4GWG6dCOLG0K7n{^`f55(_>4L;Ca|^gSYVARRsroaODjC^!*GoU&)l z%9N-id{Ac+%Q#iFmuB)&Lp2|6K^ZTaBSrI1q$zJfg z;+m*H)r&*$Ppx^x!Wu5Jr^}@Dt=yveZCQ%{mEr0_u@%b&2WAk9+6X-`)od;tpqV{#0qy3}5qfRc=8;eTQI0N=t zb)k)RM5i_vSI`a{b&sPh@|;Dz!vAjuFKyJT{inVLyE?_joR@biGJ%z|GIO0u<&vva z@%w8(6RS>I&pE6|C=1rpvsaDjX`G}k90w2jq?5gT#=KtgQ2#60|2a=6eH7od^l9Lm zn(VH*N?llpe6dMybf>2kuI!w`JN+z-*uGr!BdNw4RxSp=|AUxKdBoVRsBrr8Ne|tt z+%^^-g+Bgd2yv)sb3XkuQhz?}Gpoaj#*s$8KL*cSlkwe^&FKXz^;aqj3pBVVyW7U8 z3%9*Fk@MZm?i%ClmHUY$n@h~28sqgV_d|Q!jg7_I-gs{L!2i6JixY^M^L%4*Ma(bx zW+GkjN_{Hj=?(1-&@!=&weD$&lx)Kd?WmOpqlL%QMZ{klZ=saKSMqAvbL7rLx2rAus2C9m38u9airIXqa- zYtTT69bHz;nUHx2-Y{jy5LI0=TI3KNchv|lVpu#nU0Lx9Jy-1S&`>qgCMQdPWIg1D%);>}CQNE&cdGumg^Btq!~P9XJ+@ z4?Y9OTLs@oC`0B?K^H+;2A;2C54Mo=wqm&V@P1^qzT^&`OVzN-<|k&XJQ96_Io&va zrS6IOJkK{T=6)Fap&IYpmFe)*WylD%#7IrMAckU>$rBoI^z*_zz>RE@)?z+^sEcajWh6Ot;!5tn z;!R6RFfZ$r7a#n-SGBxtmItmlYVC_o zR~)erdqb=DeewqXReeOgA5rf|SM0Mq&6yv_5J#U*jj%nfMB1JnX_)lGnM!L*U;iE% z!+ia)zZ=5?`!hX)XLb6aMbd89pZht73EU*D;Dwx9A>)2R^qsH9dIyhxDDQ<=BR7WT zfYc+r>q_jLUEmM&Mx&SYyXq~Q^u%}PZro?}$a*vSt^O%LFc9O6=dS+x;zDRsDP!mc z?#P|zJ&e1V@vTPZA+kj&xKOxfQxoyDwKj_{5R=<0=UPerdnrfGw?cj<-VyQJjuFc{ zUG=KiKg+t)$-2|IR_`6)->&oOp=0RzA10c}^s>dw`4dUrySHR{M}4@d_*Qtm@Xu})r{#}%+IKr;MP-*(88(md8b(CngJ)=2w%*Yz zYu!^{;v+f9X^-Z-vD>F!@4twgM$CkEkx^tmeWs6V5x@Fnx`=0=LAo*QRzEJOs&{Gs{ankCQtib=Y*c^J0C{BJFJCR zmY%cB(`A#CzURNcd@QY+++=3RAW!U&ibZg)-f6XW^iJY zKEmDcdu-O#VeNatneD*B1*|$AGWt1dz0VBX!?BAOeqLxu9OE1X{6Brr;NQTyapsuG z|0npSr!EqQkuk*gb-^DfOV*VrzIpVK=8hTgdJBlz2(CVlPvu0;3qN9v^=xB2+tieI zN}bbs#791V=g*p4dSVx-#&%*682QnSrH;W(I_Rs)qLyn%Y3DLj(Js zLW@hC`R;@89&#R|@KtA6-y}^T{rXfN-{K-qp;cKReAXMPNjp!Z5q_j2rDpmv@>i?W z#hNB?D&qTEb-l&L+Ge#1_4rWsMC7dBQ^UOHUy0oK3hxhc#*|A>+$y0X z=pPK~F!O%w*YnE4ywWT+r#t=9=Z=)N>C)%(5~~v!3hYvVrvX?J zb6K1FLT|#@2Xq0u%#Yb8*-&YhZ!Y#QT=!Ml4WB4eh?`KkX!^kVCiUxthA9^B{fvPN z*h{@B%uA7zBoBEfOF5J`xdS>O`_T7|sVV*=ZMz8EPVj9Y4z9)aK(wOKypFtHZJaKm z|CDx%%{ugDNA{NMywV5g#9KlqTw7|84-7qrI6I@0wa8F@cTSyZn08z%)6ydKJWD;H z{)h5O8KLqdj_b|4!Zh80;Bz&&ZHUG$aaUcF@O8PWa{h1*JUDW`z(U3b`e}C!4J(0< ztE}apjK#mxrkgW#K^t)kGI4y%LyVWS|1`Ap9CKIN5gLPK(A4iUmV&RjL3ot|uX5m3 z4!o>g%4Dfe^hpBKM$Y00jk%Pa1-#3*z@ME|rbxPreA~2PAnnpL+8e^1H->r_1B1!D zPy0vpeH5&3$Uqt6ESv$87>wsX@>=f#%J?8y=fUH_w8NCj@E|{{%;@j7O*}fxq79u*gjYx50y+ zYn6o+-~_>Zw7F`a-oH|g;Q7{f2jDLALB?laDlt_<@M^r)8&049#QU~j`fr;Tu0Jc2 zS5kLqZs@G+50JMsG7SF>_At0I_tjatfWs!>t=n9%vOb;|gOm-NAI>|M=p7<;glGbB z=QNri@%f(|>eWLNq;3s<`v>M+X@XLDAF`j|rS$oSlAkv8n+)!bKlES5GuG!Fd2QGO zFphtvzIV7JkKpbF^!YM2LQB}^Net1M$RD!De2eJS8unCQoNiGFz|nu-kveSVL$n6y?qI?ob+Q8 z`k$zg%EE+!aephXHPO42@w|@r`+&cOr_>>9N@$&u_30}9m72pUx1|is&otJPw2i~O zH<4E-;|8352>sHd>yS1|>?vuZtZReI*}6lgt%IU3$Yfp9(m2s6vYwUMlt3o>1MS-a z{ABpHXae8RA!y$gN#Bvth~1V+TnX)4W$@cnz7Z2g`&JwL_S>*PCb4m}Z{Fay{d^-% zj(pR~x`upd$fi>6bv!>YAoFc$boNaya8w!LpPR>UMmv4m2R%yrGTb|oK8FLZ3qg1Z zPkDy5qL8uB%1v{$nx(v1@g=VNvhDZ|YP#of@k;Sh&M=5#A8!u)hT!5{cpJgR=SbfO zoZqOjt^g0ca)wRjFlCD1MK*Za%^Y#TdkCC`jtN~Uga0UuRu&ZOl5^Hf=1iQ-({)wXh%7aeL)f?L<0C(iD_`S$5^LA}$+6x@# z{<^*?g|*WfzrHC2-twSY-y~_R@VtB3QxW(ITt#m$@HxY{hj;;56GA+|VEXfI{bhe9 zae%K#XxVGRM=`N?+C}Jq@Fp@=oo|QPFY_bF79oCQtD;=yM~HY+ycQU1JjW8%E3%fv z1sn~`C8ni3-^2gGuoqeyf_(^f0=M;yk))3ul=r0GV!Ms}cD}JMlGu42=S9)B{w95; z&UnyrB10GO6IWTA6Pj*fsP{(FJ4i2M8G^?X**R;AxQ6=>g%q0!O!b@BY+4j02%JT9J+4hP@ zvh6h!Nk5mf?$L>Ac#B@8iaMnY@;;Bg4d9ifr4U_5DeJ&o_R}huUoubKtOI8B=plY6 zPwdv-wP@?qB>ECsgF?Jl2!0{{OV+Q!unghg2HGHaEcz5FqZ2#7P+l36Z^|Pwv6R#_F)W0x6 znOqmqc5}*5^g(VVumoL~^z($<5m+R&yJNVwyDf6#+e0{K3OFreulx}WzZL9G2j=QY zccEYAskB{iB{Z%A55aYTL#WR->MU5b`t2U(w(Miee&2a;QPvZyGrc`76}_fv=&2b+ zn~@XNL&G+(Ry{OE@rsPSK3?&zV_nmpp`*8A<9a{qn!NvzxL(Aht-77(4Xh{6AP4@a zHf6)HYt(r+ld=?g0-)| zPO03&{fO+Zut$`?cHYV&-p8{>8feoJ_9fiNP=5d(1;9ENSg(g~E&y+Y4io_ETwsl^ zZ(%gHjnUXP9t4IB(8R&KKXzip8vnm}x?T7#p{4oA*VjO^9mv+**#8++i&^M(By*u{ zIR47O8+$m;WwW%@{a~xFVBd7_!sFAusVcTC$l@u;;wi}Cb=W2dT^AZ&!#E244&l9w zS!k>b&T9sANIKRy>Js1A2WV?)Ei$yk4g)7t@h4t*h4)94Gar1Aa%A5{Xq(Ut(Va%} zUE{|WCV0z8H;ea8e3$%7;44Ii)8@|`BfQ_^|2Y0#jOQFFkvmt6@|N&zJ8|^AY-!r6g^7IfDYa{|0iewTLa7g@p);mxKUGZ@#m z`37HlF0XlvcO2io;$8YJIPGH2367s<330OY}jqMw-X$ z@GZrjv(cI1SvJDtsmM;L@~Fc+TQ`rgi!JH4fF8RXWl9C|r=%ZF`s4FC(`WSwKKfBuv@dv!bUj?8JuTX z$L`C-R%UPHMoA|$H)WO@sD`H(eX`I%7qLs^yK&!Dc7dC;LE06fhfeAc+OwQIG9Q;Q z4&c#_JmLkMGGhm&R|2n6{weHuG#ZZ_6e=zfY#Y__5Y%G{CnaFq8N z-erFoc_pxJt7B!w7VHLDqr+s3WIoNj#+yf<@31-jr%AJ&cy#m7QKI8?pC+Bq26X!x zZP+h5+9wmeeT?%tz5xf(akiXg9q7MJ2^`yZRS(9?3(ujWD zn#htg>|9huwJ-h!b6!#1$I+!Pc-3oJM7qjfaPCf=YQIw#?Kye8G)L9}{Te0kK4+bW zZBPQQu-9KrytTziGgrER+f3di{@Q&>vsRu!NBA(Y5z*h-dIy=JU3hewmj_`LtfaUu;$O1f)*r zqrA%;lmCNgq&CM|N#ou!tGwJ+6IeR6CLlC;*_s+~&Df5;X}bZt_6jcdhME9;QIXh$ z8d(1dxs1REe&%Q@ffTLQmV#c$NG>(?3)B1tKs*Jf5;1{X$LKNT&~wP zH3__??9^*E1uoJUcjg6tG8tGK@20Qi&#=GEo^>vA zLq2JjqF-!0AK}GbXNP-Vgty@)f2-J#Oa6NHM(|5YEDyh2-VSSgm{(bk{%tJlyPOk8 z87Ci{V--BVb<6MVKZ#T}N}I4HnrtMU@P)_0VTt`=MAkO0R|5UCzjN#?KRjel8UH%R zGUpj{DMQNQ6s=Y%3)=$QV#=eeDV_WWAHC9dfsNELoU*#IX8CiSwjQxHLG}ocW`XeL zox+RKe|JHyw;r8(MY$`-$~ncU=+j-)lY-4c8}f?mr`N)RYH)=9Nc)7BC?}23KI3{_ z;7Z`8<#Cb+yD!OeoV>1Q=39jimOT~MGYhomGsR*iX6E3_LHA=SK#fRe8Q|;8|>E zT+bA1ZFBNm-g1Lg_VAB0rz+^9;DN%~hYn-@N~bo@itPqHdT;8LIb)UhFTuJ~^)=If z6NLRi_VVO=J#G4xd<()N4SWdoWgqij$~lNFrd9?#m(c7@y0A+5C-IVH{Slc*)?bMy zBeYxEUQS<18Am4(vVPpC4W(_`IuwV!7w!9Z>T&&k zW?-xA6}&T3JCD>=k;i$-hF%4_bv(t{S5~3B)cJZ|AY~tW;J|DvbtYxdC)y?Lk@Hg@ z8;gC>sNQLYDCF_}D1Y5}?${{Qy^5behS?vYt*6lAS+QZ*#Jtm?7mJ1-uMYBlPy9IA zXVo(gQ#p&yc)(Ke+nE73e6RR0iSN>5vFP`98j>4Hw+#Nb5Wgz7#?PAF8!NB#{?vP& zw}|sbOVwz%Z}WBD7M>e^9vjfgA)VyO=S=1b$`svCitxUqNg@5#oeh?{&9MR3{+WS_ z>lkZzYJ=67Tmg@q0&9?&)AU{%PsbSbN9=y{1f)+ju!`y`|0{8|WN6$Ny`+ z(ev-@o5>oo3HxRf^F5QkHt1@w!dQBj@ zQ6+{o{zcGibTLN@qmML6TH8KbyL^|kVem;f>gK!T&DxjM9ur>^kaJ@i`QFHPDNDW) z%Z0Ohl%w1ECgtAFdV}wQ=J#Z}Q`OcVS#PrTjcd2=8?X5wnC|}iyR1K^6$9^9(wQ9B z+lld2WL%{Nu#1>dt{dsG?z_`&bVS&@bi@Yh?w_pfugG5DBicU8l&;0MQZ_<(o z?;g(2kbR`o3;mOOq1R;}^-sGf`eJa)0BvwhjnZU=h4&bJ{U@=-`N8Z!Ci}==z~{Yt z<735-Eg$7g`qOWg4}%Z*5`J&1KH1|3_7ZF9n9kVK0L?Pimab^H&zU3oYV*F*6-(i3 zj^jTe?bX3Q={J|IxFWm35)S{g2|S5J-hBYv8jeiN+24J7)(~l1C-WusQvcK;%$g9eY>rJr;aNRy~(@!wBzRcwa349**`(x+xb>t$N8LJ;rx0Gzy`8z<-#=B-mSgW%3g0C>OA+gBR+Wu& z;LR;x05kDVcqLf37Pst%QQrGsiWJ@&J(S%myc9C!G?$zU?GFot=#Hu=JJOoNI1?>V zVqvvh0Sz)NbaHNB?mKtK;41?>w<71uT48`^NEtt{k6Od~BJBNiH8sU|Q4cmC$cv6Z z5`5+s>Jq+A_C)%z=Mq~Uk>8~MhA`+Q>!X=I%)}=#UEs8Ighq2uBBy+xvK}J82LGAk zyeezi&x8G1EVA6V;R9*4J>_WI4W!2&v-0sFn{Hk^INiBn-c_M@k!!va?p+al*T(ME zFt6}j(k7k2s5#wxXXwAAzd`R^I{5$042fs=^;k!Rd2bEAZ;|nRL-Ce<{hxiV1n>8Q z@AT#2yv7Xg_r6YlF7I*0yD;=F@=WG1?+v{Fiv8wk^l3NuDcoP=el>UER&C7Y{yg`I z+`qcxH~0jo_y&9(GgIP*i9O2CnA=0+65uVfy-CdV&{zxqevG|oVyiDauqMe@kFSHA zSI$1&Zt*RXGdI6r9*WLFbO>$fNxpJ$wN!8HK_|D6c!qtdnhc*d!gK#8{Xf&@89HM- zv_|$A;%V1=lv_u+2GS_#o1*v@dQYi})o91(`>)e{B+BwsZy5hOz`bhr2V@_i8rz5d z-$ZV#F61mkY;|OB9y_$Y&u*OIuSRB+vrK!5-Kp#0tk&D`Q@`W2tsng+GV$Bu&-9OV z9PM8ldDIj~n}9`cMufLM;*nyB%bKWvqhZg_laQ3K_ z__`8&mO0zAbFA6F^=Pd#WPv!-dX|4D>GSw}}61H~fDT?eC#21rqac`%Jt0xFZLd)9hBRno1n=N*CoH+MZ`U zLq74hcq1*!=fXBoe3BX#;S=gc$GwF9;AfYKoX~|l*7+=a-!wVr)Zpp-HUG%holAe9 zk!3fFt)QVr_B4c_@1Ct7dx}rhKpzSjgYG*RqcIN6cd8$}FZ>?%G4Q(uwN9;{C$BX4 zx_+k69zFIadUOc-mag?PTitUUftKi5t*(ci_BZCvYF!OYJ2NfLf4^!fI$KRU>{m_O ztBqo_xz16g5ED`O(F}0wlljQ>>z%zl z9;MGzZq0FlBa(*o(qkeX=OW(ItJRHrb)%MdMm&I@H?}$PKecq}N7&|)->fv^^O(%p z1w(E9KHyQJ1}@#E1}=c>C6kC-k3M?~zTGa;?nQ?AWVRYGARl+-s)5gEsDaLV)WGR$ z)j$U_SNFZnz+Tn^6+Fs?mS_Fd^Ca7gsC#{mR0p8*UcdH~uBFRr)9CLv1qBCaXGRlCeB%1-@eO z;uCS{HfNv@cyc}nJ`2Nb`?<@!#{bP`04F-f3e23Ej-&G~o+%SwL3acDX5|T-dmX7v z61a6QQ3JHyU7=Sdb(g}2>Qg37-dShqzC{gm-KgS!ILh4|!`xlsSehP;9J~XY!2YS!Bqr8|m+Njmcdl+=FlicT6eE5|=xW zv1NQjZj|*u^ekoHLwvJ-U84ICW2lYAO*KO}AT>TT7WK5_=J-uFZ)G1X^SdLG3*(iy zLgg3nT!{aY8~>$zy`jMv?Rdm6-cV8)k6k-gNr5XTlPffCpJ5;I9ojoE=Z4t~Hw{ld z0c@>mgGI-888fL*#!&2(rM^&IDdCCB*&|tK<(u?F#>x0Q?2H+^!m5NJHpWiQqbx{K zhQL=g6wtQ0lo_h~Pt-lQ{N}#?DPk)t<1AzM3!V)cei=Lm438A6$Uk?lQMEksU)t3C zasT85(ggT_HD!ywB|F&eQDMVvl1Ao>$n0M*9;>)_j-`BE=2ThN_K@#=+CjV!+X?Ol z&e{+fpz4Qu5{$#l-=n^}IE&>k@{e;@q&$h)+5v6ve28@(85lk5xxD8_d8I${UvN^& z7M!e83{#~%&ZW}+eKOn0+;#@=*Ij`B{$xo@Y*w2>+GXUgL9RIE;f!b>bWwG-=7PUA zY?|t!#rX8b*Fkg4#D10b_CZsu?*&@LXF=>{XP~ERV?4BW!4GZ`-h0(>>_Ud)cOAtU zc80_Uc71L7I0qX*#*7}?hDQvmJLl78f0W1Tn*k2#y@n@3-Mgg@T(4Z3XUmy zi)Rb znc@>zz&DvcnUsAy*Eh|Z$$XbO1s8;_X>>1G?*Ls(yiC``zg6)4Gw9mC^NdfuZMWbk z{7DD+bwbucaOA^h9f9}tqim7R>+Q?g3vh%hQ~pR>PlGF`=EJXm6I;QJdTd*WY3;!# zJ<{O)1YEeFkJj*^5IhhZkabPUkTq4-H{l)9MIR|R4ld;h@80np z{HPe?Al{#l@+J@S3d}Bl6P)|&mEJ^PAZ1;w2IuI@soNZVpFN1}48HjW`ruI=frC0Z zKN(#a;}*?Ye3rHNqZ5t13vIHKD61CpRJ27I;O_ED`@|E#^F4++S^yhBuBT8_f&GGc{6oqM<_>A zSew*^H8-bUaR5KV`)JaiO+a|!jv`>B znu~fEcR54o%!M^?Z>Nu&)aafL_KwdgoXN>`9(h(`=*A&yOti)(#~zyKIR~E?NB>f< zcf7QjxFz_69#!5=`$4K9b#%up<)s^lS%oe~J6}iiJ<>1H4{GsKX@i{SCc1|f=3ozX z9Ol{p{N(%L)ltdMQ&*PNtiiGUV3y|$^-Z9@7iQJ8-kDe13apOCu9@gNo96JIy>!Fd zcL2u;)G2VJ-gqmQ`1*ZQohD#$d!Dm3)ISgP9wP>l#BN+h-P@>pf^}dF-3KRVbuR+9 zj}V*dg;@@*?z7RaSftJk-%uyt{=S{juQo|~@#U8_q7%NX`wsT>(c657z0b~H=lg|! zHvqG7yq~!m+6(_K@&SFp#txYW*@c7ahMyWsJP_VR=laQTa9-#n`l?RGUG{vs69(|Q z+-CF{z=IU{AKAa%s@657vLCE6ciH3J*v;H>Q~xf?kvZkmZ2n@rLc4Ei#lI_fc0KZ% z7kTX;#?kH`>-38(_XXt$f1N)j(`Wdh!@iYs%jCPfC*0()Ck9lnVG*+Mq6qKaycErk zxgNb+wa)0?2QGAF!FRLHZA4#YrJbqBSiIFwizVM5=FR2*5BYy3|C~}Tb&6~z^8lW*&xDMZ zyC`^03+KsIqswSi8=4AfGrl5yOUtdjR^TYUrjk$icl;l$#c_qBmA1hA#$&7*gGoqt?oDH|&owPq%E~rC`#-{zwB4?Vvmh?aTpX#UDa+L(P zi9Ma4(1zjYI9D_~a^BGm_n_-M`cBNBnm(s3pR=AwTW%v}gi{q9UhD|zFS@F7XjC%Q-M+GruhS7q<6CoD-Bf3)=K6#M5o zvv$5#^GwG}l2&ny9i61){Gylm#Q!Ld)ZxZw2)%3o*v025!#omW0{yqwCwKx}6ToZh zj~xM##T4jC?t1pe;O%nPtCcl!e_E|{aQ_5*vg$$OZVQgPiE&^0lp`>2b@kh#D~V<7 z;~4vR#(w?k=MaOUdldHZ%FO1=$Rt6O5VQ!4gN!z?d52e1aoC{?hsO61~||#ki(|AIBM!v><-m z6CUgPA=mrFnfsi0c(qDI(Qfdf6}-3tJx+u^q9`Z*J66?)-}SiW|MumspIe^Hc+c{s>)I9f>SMHVE@PY}t&HX303Iw#}&kuuct9^>m~oW=i1V*2k!XZTg@sNT?-ke}$o;EDD4+vsec5f?;( z<`@{u6zow{@cRIBpn$jr)|+zw?u@v-G0Jk0caGC{V{fO8O z$XOJlncsV361DWQ?`OPqAibGq!wt|B$qS#db%LqHc!kt&bgS}yrJ;nfwRe##4c{3^ zo5l0i(Gi!^ZU#5E4hy@SHuZ~s&Q(dlCqIv~3=Fo06GkRt3?yDPrON<%SZ%Be4 zrme(6K@VgsN{Lr0Pf^ZZgJw^>Bkz>zy_>zk7kMX+XJRIBl$bqr=%zD~9rVKgWAl=s zC;{2q+)28{vJddfYc-v-1xm+ZxNmGbQF1`sZz{a4mmi8F~c>yc_2*!Xe;F{pD z8&qXl#|O%MO`dvFndB-)-+Q03z3e`9yS8Ty>?D?w@RTX)(4IDMrykp&BGuSljec`G zWe#qG*f6j@+N4ca5T6suXB&LzXN|E}TxD(KI zV6UX@8gB-9MgEoX&e6tks7KaBBjp$=51wnd=?bSmll4~iGCHUJwAe-39&{hFFJm@n z@d@qgSBIBiQ$A!9Y36JVv(J4l%Beb3N+2r6}hZA!e=%dRH|g(K<4$Ek?a+%4I_S36mgEC+1rRg&mT+tqd4YvyuY7w{5r5L ztSd)n_$Yj+KGLSqvGQE+MSXXN8K-YK4+*`MIZPJ_93T3-{){i3^1Xs4cJY3u#@}}U0J!(_WR$F#*4nb zyF}@`w9DZCa)yH64D<_KhU13=`pZtyeZW((m+fvqhOeJy^x+SEUixUgRQ70>zP{-v z@NIkbQ9a$z%3o*2_`1OLTy>;-JnvhpW3_!5(RqFW?Dtg1`(%$s_>QKGINx2wQzIUj z7Sl^~DD-zBd%hb_vTyS~`)nT|XMc#@gNtvXS84vLe=6}^5*Gy9F7c@(p39}#jy~Bd zmVTYSxAa99wt`)uO?tiu`rJqGgTa(W`(Faa8-Zu37VF5zpOY z(cJ^1df;W)H^qb9Iqy?!-7}Pc37)}l9$W4#V3nfurRdB(6}Ko0EmxW(<{9fmGByN0 zOQ|~49X$*`aQKX_WcD6{yjIecW?#=VWDwvkc3r2(5}%7bVDp41-zj*A5j^)W9z8Qe zo->&DBHwodlNi0DZ#y`4M2+$^ZdSZ+RyyoQeoPERHOqX2i#2pXu0Gan-}R8?m@dZs z&Wjr~yRO`O;gkOSgOzXG2p-cG5A`-aGhgFFjI>$osV~eR#tY+t7S1R9Qc>D_mcq1m zEZr0J)^6ZdWQ_CJ)CjLNEyCM{9M%0oq`$spKJiVA?sL!P`47QsH~eCL;MAko=xmv< z*()~?+vCDSboL%agNYHC0pc@)_bn~u%kdsF6iTeR;;^c$9? zoVT?N7~SC<=Q&In@c54$Nqe(tuR1}?zk&9iB~QN^n`GR>Rbo&(j_%%4{0(ZN>-JeH=C&O3x*e5)XJ&eu3 zJo`jn*QCu&=2a>@R9A`E!K34NekQiVve#{C84D?UU!TmJ8O59#Y4cGJb0XfsoFUd~ zB7Ah9n?7Ga#w`HGBInx}>qn`(E7=jK4}KfR*b_Hl0f3#`_4ysZ_P}v_Pvp6~xt6 zhr16mM;e)9FootuY={M~PE8u&TMrI2GEcTMM?746_0jH^cdciRn3*FUOCfX0ifn3F zq#p{^O~lYX|*&+|p-5rcj0zH)@GkbcfnQ$2U29cjAC z^k$R#daUn`w6-SiFCGe*M>-xk#~O?-W_Rr~57AE5U5mV<>QvA3sYja9qTXyuqrGXV z?M=A~b42DTWqt%*Jpv3DsWF}{Y5SVCQ{G9#{-$QiTKuHWcapihm@-e~5(5+0kmK+S z@wl07PTkj(9dnr2XpTp-(PO z&8CNHYXgn-wb*7IAx3X(yTpDzYi)1xa1pDzNa8;?@=uTMPUhBj;zDD~WcejLjLfqo z;DgY7!PEVs_y7Ktnr^0d7ygMs+!NeIE=#N%!`}NRVSXR;?#FA0kqLgudUcUGC_1E( ztWg7VZ-f?aEHwA(UI@*-B<9{w=ANuq$;`bGwwJ;O)+?ENH{$&QMuk3qtEn%JlPnj>DKtpBDd_7g~(;jp{wshvx02L#X}^g;#2r1 z$+{$K9Wgz68laIIR-1k6!M$_jIgd_p{S=e$A@}XA{j7OspzjmaSo1M8PLmhATnia0ItXIc$Ds!;bf{w_2*NZjUdez8$e4q9oTPZOff3Wf} zID>EL!)awhy`5L1KcU>UjA2N>hAu$!!$41UE^q61w6(pIzJ_?8!90(^A0FmE@jSv8 zbrRF*GLM4~mhccE9!K~c*)I;wb>Vfo;F0>#xz!*`hWMUV_#Pwk^uNRR{D8Kd)F%z% zdxqO=d<*eCuYs!x!S)a4dt|>yY;}eI5#C4m9j&j>u6k&*8T>G$y=^&hOy|e;w6BwO zy$)I>@?HabRvu_ozR)CSaVIpX4q8>sKNEg&F1`ycX#5U5lHfuMG)(X-+8Bj?H@fA( z;n}TcpmQ$#>b4%vZ_VT`xFmKmGS@w6CSM)b>4}kk!L7$D%|78nHjFX*>bcH9JB3CX z;V}%tW59o%dP?tyKcJ1t?tE}71^PD^KBJR)VPxL)ur|zxS7>2fJ_Ah=-J{gimu~b~ z;T^`Q6Fo&~Z!{e?wm0nzn0-a8{oTy54bZ|H$kPpfunZcu6WZm49(FL#QlMY8=uvm7 z#BO9>X2-NQMWwzGq+y4kVdJ`MkWa)mPD5K$ zYMtV%p={Clr6@7(ec%e`<7wp{fxgA39&I`TY>%WJYC5K7ceDSs@C;>28sS4E&DkKW z>`agI5v#@%4u7!?d;hc3X8Pefh*y1?FA4G^hnl*v(-b~MY&Rv2^(#U8=!O?5;JQ^c zYV`3H_>h%h*cw8QPDA5_Zu}Cw3GpC83p=5IvJPTLrSTvaF7qH3EyhnLbX#bl@E^j9 z2<{rNl^LLgBZ9QhVymJa(G#UY3&lU+^Q&k0yUcn19_;C5zPqWn6W+uXeZYd87%%u* zD&OEq@`K+@;BN`vWWI`Q+<}Z*hKwrb?S962yS=6Jk+J3>Yt1F5?3~Nz@9u*xq#3UC ziVbA{D|+NHBWX;eHIpZbywS*GG5$L2sf_3Y4Dkbav^CZ0Ge+mN=Bg3yWxz`IK<|c! zG7=Z^GkqknM+RiH3;Hn5t=6~nF-I;UlZnmRA#_{a_`#S|Y`tagAG_ZCWP`_eoOnmC z&FD*2+orpQi2Y#A^l}US_ShPV9a1eg;F>x|(_g3YTqe2;@e#~V(r9?Wi}3Yj_wcjxUqx`2<+Yg{4$ZwzB=Q#PwCYmbg-(e~e2RHs3c~kNhN9)GPqX7s#Y4ks$Fos=h@kQ17)y}?9+4~kEwQ%4^twQ${zmbt4_{oO=wAHjZou9daj~8 zk&Wd0iQ5M3cI7+B$632c?&HLy5nHZa%8-2bVGnPpb@Zz7Ngl>-tfp*oSM=z%h#1yeBH{pjt3~MPrjc;;x z?f>NL-Q%OIuKoXKW(b)}0tvUk1UdSeYiuEK&FG&WpfocK8 zBv4P2Otb`PZ9z{!TP0DvR6S;@9)i@Ci=|RpPrsbgFTrY?3m2^*2?F`PKhMn2NNvyS z_xodBGxI$Avi90*ueJ7CYp?wtcO%q7Q}@z`felRW@_GKQ?o!~~)^_wBJ=@N+1A6uV zXF;ORj`8f5JhN{$l4Z;KD*r_%_5>qYG+`f$eGcEo_!sNlE#Tz>dx&20zf_Q~y544Y zd9ab}%^_zEYvC69XCG$LPRFdiEbX%uw|g2L=-ktUkplhq0{0`g& z;VPbxpWVa$0DGp(a|7qjipkTpIC59OtCZ_!ue@uRCA%MgRoeHy>M?lx$3RgWSyVS8HGH5cyrAgPVEWE zixeyuZlN_|UR-Ya`ZM_LB1b^lz`)GC5qoL!UTfr>&pGU+kK5eA+qehu7&P4zrOB@l zM_E*MWA?dt`XjDH{UGPUqJz`GD%>-U1rBq6=5R5tzz=zLl)OdwAWL;8w8u6k*aRJq z)m>T4#d+ppJMlcCg=37N2)M{2JyZI(*1O%(kyF9FkGq)XeCpYm&lo&qHX}!EeuYm4 zuuZtr2y?&KD8bboPt4wsYqEAkVap@7%wVtJ9hQ_Om_3t?>b=NmVi|o!_|#;>qY@{TS|-VGc}M6dhhmU5{;i@B}LngT7r&haz-*rXb zsoq@1`vhxOZDwd5bO$qI)0rgoq4gE(2W5FweX7TtM?3arttX9P2lH>?%xpvx)&8^DD=GC#3FAU_Ten%p24c7t9}%uKpZ9^A ziYTn_S;q%lmhmoZ#+y4O<6gL_)d}B=!6g2&cDi$`+V7RTrZ2@8tB+CirS{ZMJ+z7Z z%elP2JLs#(c4ND6^PY87K=^?MT$$vbDY6Z1zlwgl>GvG=oc>f~4S1C7K8{TCqTlYr zN8p<5SI(S6WfoVkq%P!cz}_B{J77hj z`@xoDw()Hp+%xb~a0kzS1>Xhn>-nvZ^DQ6zdi4Aob`eQM7K-kRtzXbF6D9l~9&%-QVK@8?!P$q@`^G=d=LO9FvQTo)>=4Q&S_5({scN+>u(C$8}NrU@Y@@Q?a5)h(uaKh0srM6-(k(qHqT?ge|N0+_q7%H zSGQUV`s{1&TU|sP3Vh2vXFU-*^Y+&q-bP#_@}oDat{xgoX-kB@{Lt67|7&Sged)%^ z?t0y2qy(Qu=5-ZJ;_Mb}N87aVYzOTT6U!MpTWI|YiktNJRao;)IHpqH zm7f*bf&NUsPFK)s;kmIoZ_Vu0tiPG9>kHZ?V+HdL8~U{Pjp8oXTic8Hy@Rqi2D5i) zOgwk;O!adrGqQJB3;SBvuWwgf=Nhl#B+R=Cws99mEpVK%jcwC>Xn)=oU9ZYd6q~Cb zMd{-Ldzy*z&kn(kfxk}ipzGM<1Zd-yK{T{f_K<|@nkSH3#m~EWgX&x5+q@=nrbujGm|2Sta zd&pqF;bh-o3?bJQ{zGSy(a(Ga%UR3fMOu%}nfR6Q`S##r-%p%XfLJxXt6>j=jk&Y} z-r%LJA_Eyjdp@;i)Lmz`XIT4=(_a-i<4O#BmVD#HupZF*s-h3^ibVCnI_u5bw9r+% zZKZg{G2Z2kGd|uwh*#JROP}f&vL1~grZ4Elf}2xKJb&_hyeXR$JKsZ{bn-eJVE>gc zHNQ0x_^~a|T46~zunRwJBDDK3Fel;%d<33-9Q#L}<*KT=+_Rza%0HNh-lMzd?xxPO zvU9=TTr(5M*Mg0jI?}ZjTNj#qz%4x|$o(A^7Q63##=2YMNy~3_SjeqIy?|sZ{mB~)R)i{DIww&$-EwW^Bpt$yw94;P#qtJE1GBFRf+GiDbz!_DAn?o>czLtAI=AF%+Y>W2I%3-U~l>^4xKY zBULf_USjmwOIN9WOqP{L<(LzDg5zylzu!`utM@vep?GGU4X|@|!?w<|=;-^bW9+6; zJNUb%9o*vYpABq1*lvzv!_gRfZK-X;u+5oqQOFRr7t4{R-{v^bqwxQ{ThKJE`AX`W zap=U~uL1Thc;=4JbXO|-S>EA`ezD*=Y|o56mH)9^P?2%qe`0>6+exQ0(DU?MWs@kY zco_ZHSh|T*_Ylk0vnt=DYtg`I_@v$oUw{2LqE|>i8xGzo&<%};{ozjqA33GFW*GgS z?W9fe3n)K_^4=)lk6B+iJ9#JD)vt)HsEGQ~^iFov%kl9w=KQ-~jk`3*DreY6at2{s zC>tE;{+`^B)xs4bc2eeqPa+1qWPH*OYxOU?7X6`WA z{HG5G9+SPyjM0fNF!^64@}Y`PkWbp7xo_%!#RE?{)AQ%QS&%#T&1H#m-`qhTLk$0$ zllia?7u>}6(@7T3M@fd~CrLKXpT}A~N!J^1T*>EpK0C+@YL1n5RJRx&@8hGoF23im z*AF_H0+oC_$m?Edak?`3F6J}1uJ?~k3!TQsg_*X{!Z}BNxNv9Sdm|*9=h4R1(e`Y7 zzw1p%J;a&)gWNy!0ddYBdJ|KV9!wf}&yeA+gZa&_q=N6dPUS!38b< zT|=(Z4#uDyMt;7DrWfC!xRcHf)sKTU(BvngE^I$3^W#lv5d%{XpfO zHu^g+4!j~-lWa4PD;K$Q8628CcwmF>Q5%A89fyuR6doOqJhCH?9Ic7Q4LQe#BQwbn zU>|Zrj^tCP3)>8_Kz?#gBjc+5*b|DT8ME4;r-n9ca_iO|&Rjq|Sk;d9am3wcEG1s( zYFlfMt1s(6u{EbyuFn}0cYV&a3;dPw_)DJPZm^0yjqcy@uEsi{H;sLJPl_KO^?2rW zY}*cW&a@l+Z!l+v{KVhyK-P77*o#p9W$m%Re;4J52_bGcrHwmPdL_I35Bc8+5))+H z?|tJL%IeNA{OIh%+-+@YllLXGY0xHm->dTPjfGc8=l?$CKO4^31lmS74|*MA4%|{a zJ5-Onylw7m@~)3@rCi8AEFDbu;nY~i_m%^9myJ7W;njj=ullg~-}G`eIR-mAl?nTL z>loKD+Zf*l6aKNluR3Gexck$D-GoiBTZ}h#w%LRoxO*5MWBVKI(f5r}`0pQSH2)F! zd)RZHcCim(_wOAPfgmW;_YUOVerd0TwzTAdBdRS&jN;bS@Y6)iX2Id;)<+7&+B ztUVv=Q0wnb+m?kr#6xwZV82CAUcs7$_Z;%UBSho%LlZ;l=QRDCz|I+)-#ns(=C@Jaq0VkXA*ZWAswU(jJU@?2{; zLIds)Hm*xFV6~;N4pMwyGVz%T9gH$@UuGF=<^afisMe%|;JVzc!E}Ffkn=E+Id_N5 zGYaqtt+l_W33n()6Pw|+^1p7O-_vFJt%{Y?dJc#l_SCyY55j@gbT4Bu>4J7gv#vD; z^kj298VhkVtnZYz7;WsQ%}cali>&Eh_WKc@lro4m#`l)M$LBB}(T4WLO^k`0pUq8- z={U549mu@9SnHt&e%3aa&Ii%TS*tsAgz=m}mwK4*9vi-!V*{^rGk2na3~0e_u_oKs z*+*tjuN(gDgB}L3@fhO$rmsyrKMo!+6kZSyPq4!q9PoT6vKF2X9*Vr=?SkibQXiW~ zwL!cbd!B09lN-FoEJp(8lXq|*Fu3#9wX}Z~TFZgvilMjePi(C<`5Cz-)wb?y`fHpv3fKvWjQWEecV zgmxth1f%li{0}e|1J}!Zn|S@nAiPeG;uSs|!|Pp~QnGF^UY*eEan^9Lx5n#*kCu?fAV4g! zQ@Dob9e~yz20rO~JK>`b-(a+dn4_QH`MrhLimsvWuNd1_c26<-O&W)vipJl9m)eK8 zLXHGiNc^-H{YWu*y_ZPh)o(krA7MR-a~#~Ekx$LH3zn)7=PV{BUYl}r3Yb1nWDTSI?0*T69`%6p%L zUuhkA@EdC#H89_;RiB^lSFNcb=@r_G?t2jUs1LskoR5wZpYtUhX$L&@b2<{TW1M&? z>sD*7gYihOlYSRja}&(5xUgSEXd^WgWGpd$FFG)JJ-j!j|NM(=Hqda(p zIi``UKdtNWrY`n*I!V2>{vJnX&^ec08|VDseawF|beGZ-&t2x&T)G*f)=38N!B?B@ z7m5yNKpTqH@rfUySD&6=0{<+Aj~2mCZ-TGhh;DTQcIt?3CBCaMT%5m)`*V#p!ynhY zv<=;SVqEjZ`MY=gYa93LM$eUuV=jrqC-zVCLYy=9mjHHYCvbV!j^5{xFDv#>RsON&?eMQB9sV~TW*^_g8IJUfiC?WW2JacH*#n|Q&V_$n`;f3eW7f)at+eLftKnt%?R&{>G_ip%>)~o82sQeT87r=|z zcZp;hztuPUWzMlwnSIIbzx0Uj4dylZQ|dB~cdLfkL*+|vyud!Ww~BhFDRUQnJkNK2 zl-KUUCsRyWZ~j%yI{))0-kJO4=vfxW-t>@@vw5Q1fL-@4)^2JUZM?*OsB{|knr(6Z zH?ax2($-9U13f1h9|vc6SG+-X7E?axPE741V>oAQoA-nBZG5AH_*%jF^SiNGMsa=> z>%IbZrYN-xMdqiH0l?6lONeq!hHl@@6@f{$p^ML;LHDC<_^28YiFE4JZ;U? z_FqTmF7Xd5+UHhAcv5WcGT2XhEY@HZzNZ*HWKb_-x2L_RuB_dD+r;)R&ZKdcNwyBw zZT{iRI!}8s^#b{2?OH!tPk}gMftZUBxGIa{Z8^V({UIp%*qpF;YDjWHXY89SiLQ6z zngR)b_#56NSA?_u;5+bYjdu<(s6X9HFWf%s2)P1L9+t;`zK(TeA3_=Ww+}H)yIG75 z-J(N$C04$7JZM?ezz18<#_|v6zA1PGXC`f)Al{mJU9ijI>P1H?{WbQabi3iv8kO$j zqU>_&)&6+So1zDeYbx+*TpE*y_U}3pd_#4X9?6vMW!iYPHr3y8;z!Gm&3m(#ep;w& zr|!~+Yo^g>^Ifbh@ssof>at#Czg3+Q^saKpyf=l50?J<$Oq9`@7EIAK{gHQjlDVc& z@_sN~#BlI`dG2E^zR7nz<8S3N54zOab20v@z|2;>RU%qAncORMBE}j}&GYPC;o#7YXJW3lCwDD4|-}~b37M-VW zK83C!esId0urG$$=Hr>axjp$Q93S@;IpPv<~L8q#$dEF_Ve$Onw_ik{nHMkSpn|U_D{Z4oucL=&x zfP0nGJl}O>x#UCh-TSW!X$-q}m%Sm{ehc}jG8s{Q=RCTL^qrVq$DYvCcT`6A$*0@> zo^7e3gy-!(NRZn~IS=yKL-p%tK_W63gWq!m~W$tN#NB0@(xoF`GyivM{ zcxdby=hi;=ETVJD?lj)Ct*Knv?G<*gS2cmP^3Eq0qg=2b}>i)xA ze1(ofEk;uHz`)qnu3m$@@^L=pPg~FLt_O#t_SuH`JaPVNz1wlzm^sq9iTE5Vv7<&? zQN^nEPHZ~z6`kSiUqA7r7lQPbG0qm(M~DpSZ>)CD_^n_(Upr?jkNKfX%sPg0V8cTl$MHu#0_m zh;{Q^8E5>a=KTChuo=0KB@DU$4>UD6`>hiBqKDOtV z`NNNL|5;Vgo87uBKW8}ocF`~Mv0%p?g=&g%weWDg7|zu}i!kH60Mp7@-h zoDrk{GFO>;rhuqW7MaG#Prz4a<^tm zVBdq5k;ui77gh~zRezuDVz0a-S5TU zs91q+^6hoU|1iKEEde*Q)kR(|ozLmcK)sdU*ge5dbO+}d3RJdCT7adka| zjfq?c-SpuF-du7I2``;TZLMQubAE=nsh9CJq~`?Z`i;_zJpZQ7Rmy1?-#nK6xc$Tf zhu>$uLyStpgjY+q$nwmr`O zGxh)B%XaB{KF-Z%%U?`RKi8k1vN!+bQG0VY{cCJ7xQZNh7teCKfk`mVAeQa4a*o@8 zf0D7rE}H%q|EBKOigE;_opJs>oGGE?D4hMk*$tddV95kdFL0j0hMEzq$etMtX3q## zW@iPfvb8QmTV3Sl6P}im1MX4I2X;MGL_Wx(oU@B8W}e(MNB&yb=H%D8VqE@O^utoE z1N}cu4#m^t^8925dH=8n;@{By=>3s3$K5uxr?Lw;+wQ7dm0g7HUjnZxSvtFUG5_UP z)0)xR*~Zxw?yBB=2!0it)Azy0pV+U*YYozl`cq$~uZdW~%llg<_$l`S?esrp^gqLQ z&m>FOAsVC)!FY!Lx-NtB7V4d0jjQfG)Oqd7eTr8L^rVt6Qst>ziw-V+nhSh7UxXa= zy~gj$VJL{g&_jFXes$^C=0y(wrm{HyUo#nV@gN+O^4|##y6K~bK28H`hkR$it1(^< zXQuE;yFI`;gEouU58G*9xXq*e4BDp87ro#&OMMN(ZwIktr|-xQ-_7{m0`5on-fK$)17J!r||o%#~N;8oY&BQ{h(5e6j~ykb$1&CALUb#)P|RS#D86k{lqeR^Kxs7E116Dz0<*cdDrH%cF65$$#mK$b7#ruFD+8L z_2}L^*pDlhM0aXI_^hV@elRpg_?Sz3rx?Rv9L)Iw9L$K~0RL<0pZSe0@i{p2cyY9L|#mIcS+nx z7rK4&acoJ`Y-2f#HwN8ubQ`%MT)mIM-{HkQj~3;4kVBjmDZP2}UiS+Yd#IZ4PGZSU zC7W?p%}G{c1U8=$AK8)uAKQ`x-@jpa>NWXB>bn+C`)|;xKSExWfRnQuigLyw!@6Gc z_g_mpyP(}|v@4l9a?QQ%@aO7G^vIhjD_(Fcv>1IUzWEh=lwEsn%J~?6BYYhuJ{S0X zAM)QDoRv*1xUb^=S?xLtuQS+JQ@@8k&VH{b=d)ef%0AZ@HjmAYXkQu8zE09t|I5%i^Or*&;`7QSM@;PA;lz-$E@CqE zlKeo%#pJz}J|th0_|{o>$x=tIe^VFo-+P%%O)zD@BXk{QCHo~4MLPq`v*aG}c%}^e zBANFVxRcDokMnmj?^by7V3{YL>ZFg+;CM9OgV)(g>JMHkJ*<`6c_!LdZlHwA%724* zqG`o*2-buAuf+f4V||z~p7r_fg_yjS{M3U#xm=Y;xcNAumue9yQ)GT+*_yhi!K zG?p5rv3*zm-rX}m9)L-Qw@jtXV0tU&e|J@c-t18tQ2e}TAO}53bMK)4Pd3<_XQSu6 zch?khrI5$Kv3E-sI(0XCr}kjdx4Qlty${&NLXV3XL(g~MsX?QkbFt=nwN|q(DE|m& zadak0x-+;A!&}2W(mTIHU+LGm>d_l@R<8TMxj*ZrqO}hAQ^QyA$51zfKKd>CI`*Jz z>v8n31s1#OYI2nLI8%QDyTi?A9(*~^z!#2Q7OMPKc4K9Ew$^@V_thb6qNNS&#g}tW z#WX%%?yey2nS8;Cz7o!EjD~M~lsBfei+lo|H;r!fSjP2s#gA;QgoY}(Be}$3M<*HY z+Y3#L{=IysLf0;I;tW30Ri&Hy!D-jk!&^UiYBA?O$F!YXmDGA2<)m|Jt>9-`Gk`vd z9iYEbbHw`4om(g+{O4C`HTh!9^wIxqo2(K4^@@-W>-|+ooz=pSM8n(-!Mw2f>UI8XbyN-!6yhV z?BIfYnLa!B<%)-%dOf-IEPZ?wVn0WF!b355usa;S51xUKfdlE!v2jZ$m+dB|himN8 z#iQdk$2*Pjeu|#0HDU5#V3FRx|H{4O;!O?V(;)Y926}#Uyy_>aM=QVY9{G`@`m^|i zbmwh@bmx3@+?eisb`|;aS<~VncKYdxw)F||$!hCG+EUpQ#7x#9;|J-_8^1_@*8Qqy zDR)2XU%JtmZ?aFKZSmOeOGn^YH{a^_7~eg=;;iCjda?M=cX=1ng`ea1C0%%raY+{z z-;ypYUGO|*w60_D3-%xJOuP#{a$`)7T*VcHTK}zt4Q<-&^hHz|0qZln7} z==P{(TJXf9n}xgz_hB{O({|0nss%aR<#7QJ9+U9-Cq8L-Q8b#Q0hBko7c zcT{Oh~3G}v)@LivTKb(Rm*1#t_nagI*3T)@oiEZF5KC+8TXTvT>Jackj`VB@Z_LP9% zVogo9dfJT}$&CyT?Y8Cjr_he_iA%mJ2iC*bp*y5#=OfS4DNYC;2Zuu7|$gMeon5sxm7azY>>EiazRRNKaM_kkiFLx*tC0) z>s6`7Y{}I7BtO9SNy;yRhOs;Q?nkBuk*OufxHAtrx31s}{C&ukHdC(Nm)(QyrxAP1 zF6bsAU$6aNJuu6`~elu8>hB&WU0*?PqmP(GmV}~<;F}>5mc}dBHGc88{C(lM= zurvoLz@q0WOaA)5lNGmof!?{CI?6%$9lpD0V=({5f4q5scGTYG{HmSj;#bPo6QnLY z<#Tnd)Fm$3BZnI@TflGWx{3eKP zklZuX;z8mw3A?WiiN_49yw99#trPKqCU}T=jfeRcFVP*Ym#_U5@PQWiMX2s!xA=tC zer&z7*L3xm`#5K?37kux(Y}l`Ky6wRL2p*5g>~*{>~kl-gPsikit5SJ(34N1XZ{*r zbrWk|F%DYOXIRT)sD~Z2Eo*vKNHR{kL1Zts#@vf(U7Y}Tv2~^2!eQ%`|HsskwSJfJ zOzY}V;`X&CbKoCya?ZGfbH>t(yy-{W=&rtQWWv6x9CNSMwKk`noHWgU0v4^g^YHJe z&TOu|ZqA9TZZ7*N*@?U8Lw4QHLVNQY+hxzUH~(DUHhXhB-?QlZlNx^*9lM|NYa0ue zN6uyGEJ+jZFZPqG`>A4`8!cMIN&(_J;H$JYUEDf(VAv9oUR7{0f`l z48={m16@-Vw|@AH?r@ZGh|^z&?b8;C^~N6G#$LAh zG~ZSCj3GzfxVAQOK`W+jEj)FXbyTnRMRSk`x|3|qK>X~g?~K{%!Os)2eCf-9%CBVa z)>;GyozRfZ8C}IVr3>!=^ufcee1D29cO&0()~s#EZ|Wr9yf3ikEA5JD>_=BrOxE#b z`C-L9Lx0JK`QP&$&es6%ZL_{K;?7)Sg!VH_pv|Mv7dtm&;gnJZlk7+9bZpCh| z0dB>?zkdntaS^zKqXxm9^LKEwSJ=EBI2(cce!fow+g&EyYX-rcW5TVR5rUhuz20KV zh)&L9GwHdXJskA$Ec{+Nc>;5M!gifc`c4(`qoTp9SjP>V7eL2b;ITM+J2MALb-z=d zWq7Xv%pa}2r#&tBdVBI(V}y}wY(2%e^Q?(gbr$%8$5?sHRtKLjs;5uf?Y`#e<|RqK zgYIkYPcv;O=3dw83Q0B!wqE4Yad0PC6x${K+(=&H3!fCW200(wM6T+-@B733h1}1; z`r!^bauAO4%}Y0uQ}HF9GWVLpgSGG!_}I#8EGZ>|)o|y3-kO|Wh8Hi_vbuxg^~Q${_1SO`rQm8`Du^en{QZryZ2AeUY6A2erx~Nvn`Z=`bc_v zI=Dd3Z>?dh=DgU=0ncn^q-{g$*9om0IwqoVpEF`9Z7*6E? z7ax&-UH4(y`Rw7D>}%S4b>Y|PMZW(hGQx(fPxgoL6>fGime#dR8UHC1Yhxl+VZSy2}(XuOsH($f=8@6(< z63@TO$L{BjtLRx#-E+PJx^N}9mUF*;+g7Z^DT) zEndm46V!h$eeagU1lhNgn=rA>?l*EUH22E}CciVWeg80qI^#O)A_w<*orhT z5}m<^oWfqW4?py$wjtO8ZTOYRW5*}gGGPR=a>T$C_O~^**7u(s;vKMAa>%h0#_qwL zc=n*5ap;aF_db+H8{Dz>?6W_r8j%Z0;s#o5OExEN#$q*wy*c zZ+$rxo2LHQzo~b4$6s~V31^Xed*L@HK7L_kLtVp`;6ov|?}_rmQ`h)6U6u2#P2?`^ zWiPs*ah!_#i}Z)&^K*)}a_^`>2xgkC*YIo}gE zAD)`y-!v`f`ooR6&bD30JRcv&zFkZ|PG|~P176}tz0jB)ok+9=pKAkWX55Ck*Ff$` z2SJ}|ThTu-``66N#V@#r@v}YtHRtf{i^lrlS)ba5LThnt#5b6^uZSIKd!6%#eKAAqh+s*ZqDKN+f!;6u55|l{4k%3 zWpC1!g>wqlR$}O6$I;o6negrfio>lKYUC*AMTL_)TX~+wJl8ml9OZF0bGVo7iR3~j z=K_1-cfCvFo5|PAJ(iX>_GfKb*g%i*|9#e`)@PbDk!U(Xr%lCe^HVkCBCH0_M?4X2HYp`6F&oV0z2-GotkqT19Ry9)T=qt)Fr z8r+pua@U|A)RCX!5M`WK_`Lz{GeAezPoPnqc?PAidq6|a>CPwS=~Z(M`B z48B$}xzX*MY`f|hSI++^py^8##UCRn{ zI`R9nH|lRREH3Z9i6QJT3+})cShag%D8%>46l{T%?KT{tH~4>w^Ci8heCT5W@?CdQ z7F&jg?&IBGUN>6tjWz2W&QXiKw+DXGLww8Wl*rkxeR^jb=3A0}RY>vJE!Nat#ZGrs zt;)uip2gWCUyE&2?`X^TFUv;y6PJIjuQGdU=Iz;AQCOS3{GJ03B9;xCsy`=SbA?Qv z#P6$lehtr`lUd~^7H55KQrUF=Mr?`%q*=ail@ zY}h;}v2nhAlu=zTItX_J`HJ~pY&B*p_u#Qf__<&=4XePL24{n}; zYT;}^8}jE<+K`RnD0psz&g-l0WzR8|^MxtVv-4wptcT4N_vp~b(T7hhOr%sA9`gao52$v9)2<5xkDUddU4!r$ zcKSCF|FF>uj=Ys?vVA(2KrBQFzgvi5P+j=}Vm<(KeApGt{W&zO|KMqaY^j&~$>j^y z`@wb|=&(NxoXF1RvCIhSysenKaecfo;%V;eBW}hl=Y!{z5kH_Z=5KT^ z{YKw9L{7IH53&DMWzMbL>~r;;SmzPT$(h4m*^E7vU8WTMRPiY-#B8XHd&>?MvNnEq?>yBP~q=VUNHd}0If6;tw=uVRy~>ihhy+<#a*LU$!Ap3OcaB~0vW z^|Qo5I5=+cBa)XELKj!Tw`Pm7I^loDsZPhN_e*%|61dApKA`!q-U4xZbFB!2d~HWUGjG5 zbFe*2-CoKi2tMjI>A>6eOxJRr)i5VP>S|nH1nYk4wt*YLBY5XjPcY}Ec)QotNPW?m zcXuPUcY82{zAIj8aFgpHTqnHu-5M@J=Min$?dV^9W5W9VkK%r%6B>SUTGQXF$f7gk z)Ju@B1-(W0eR_ZuT9q&4UGH@J-``6#+o-N$Z=pOUx|8K`@LBWQxUl}07wC?;$XzY} zPTRUC^$a%7@EGn!Avc(Pl(9hlc}5%4?dZ?t#O#hDuh=o}Kua&ZihJ)z`$mx$>gSKg zZ~iyh)%)%6|MdDX&9Cz8l_9kwYNOB9A9-3nDrkz{SI@ap!Se#;zC)SS|5+H$Mvrg3 zb!=+UK+8hm?f`wtCu=7M;8@n9n{xYsulzr4;l29)r7iqReebu0f1&S#wy?U#k&Cv|_@%~P7czP~X1je~_@-CyzuFc6RLyM^}q&@ELr zR_`w50Lqwd=K99(>QkPq4^6w?SYIvmJhma#$mUD9$ro;Zl-n%4e4F=v+RSkM-hJP1 zZwT)t?#9F3H|6De?gU5)PQ{jjF5T~V7`=CzVib$k?&hwh%5N0(`?!CsjAz&LES+ce zhYP~l*eKyG3(CfkPl!IXe%W)mdu(3z(axZgxjg%`h9$SNUy-h${dmQDH-xo*D&LC> zuja1$9V;g+!VgpJ=-jn%=JXb~JDr?Sf(3nOFL!*M$6k4X@uk8mN8NF4doKHhZ-G<$ z9rvTh{f`@a>aZ3=&qbfe4*g@;QjgYB6PV}#dYag~rmt0et^+r|ALbu~6SO0urxBImJ*JYlka-p z(3Eh)h~eDn(&*lMaZEVP;=j;gH7?Xca}B>O4DWRs;eF@Egtwww?YnrZ$7CLhl5uXY=4 z3N{DyARdmtv^s;kM2e9I*IDeYmOSn(%#6gti_Z7jjM=}M==W}TuQ2@GBZcAh%DdDx zy7}#4i^IPJrhW9ipZ>H~4t#oR_#Nxw@UNYV!<_#JpU5=A$B9K?&lB!;Vc)SC;h%3M z|1EU=5HOfF_VV$~|8{qgS)aV!tf6tfmnhSC<@Mfr`V+r5*ZY;k>bj86+&$qTKPoYp zrGFSst|96+{<+W`|8tX#QrSzy_nUzC7JQsO)`V#NS@xt`){Rb84ms^FKSMt)LC)k^ zjOyEVx466C$`0*f{W-C_3qNPM>mxE}$|%S%B3cpbmz%V zH=)fgyugoMV_%_j$`^Pp`#$!{QFZ8;=`W6H7XL_x2Gh3?~?&RGV z_U`rnQ5dct4h-N&GB6#Q(VS|&<}kkv?`;S-(ywe8na7BE&9^rnpDMco_hPe#6Ujez za7^up-(=S=+{heYBMP#wD&0uC+$FKVgMX&Ng)iJNlFIS_Pj?!jG^^*mkMJ)fJ7tIG zye~N`7jPCXX_(QRhD{_L8^}a#HAeZkg%<1u@P1c1Hjp%IBHAwwuGPVg527LzqpCKg0z=L zyMisjH4=uUPNJ{$q~WP|rL7MbtBvIHwA#SZv^rPe1D=s(#*peE zd>34^VTp&|llVQ6evNCsyCjeQX~2`lJB_RJGC0tU{x+^bI7t^SOgPd_ocM?MU4lt% zD0W~YbHzGIPAcHsJmc8PGtE6YOy5nfNNWCYOZ;Z;IhiRs7cbD-Xkxwt#JXiLpDoNg zw%^h!>?~Rby{z9n%Y>i-%^zpZ@O_!NFcRhOO#dHuV&&9q^lCE~Q4?*6CYzv5Vzol% z`QvrZI<;>xbxGRkU|c6SGkB77kq61G@B;Z_@!K3aMO!aSHda5v+4*VtHL8{mJrnZs{Rc4kDdCu zv#f|ZvKyYmzIyBG%GD}2e|5#`AZ3gGaQ|v1dQ{Qg`?FQY!Ef4Jqc#pJuArF4d+Bs@<2lxGK z3woJ7I13nuCmSzb1H7lIZ|u*YycfTP&qbbL^b_^%_-Vb{j*fz^lI^A6*2?GGi_pc6 zk&CZBA$#@?BQ?;9U(U(Lp7?vk;JNZFalzt4_3kS87dQ-LlJ|%`(#%!t2hLUbOxxzU zwZ7FQ#2{k}3&^*hiGI~a+r7kuxF#MzmXV*BTxDhCG+mB7DTdx!E3ayAwb}!pF(&o# z@Hykm(NL@=M?g-PIjhFB**iUmcA@+(ZrCCy>$&!! zQ+x=|KfdS&@B7$6Phhu`+z}lYbC=5nXsgE-X=6X*bFja4CM^yZr8`ocz-Om#ePee7 zHb?N`Xc-q}Dz-aP2lw3tyx*hzZrRQm*VnOWs897T{a7}3`|{DLJO#}~-KiuMUVS`N0ga_3yPfuZAs62aXc$sZ6dRT@} z?P=Vi`-#luM|nfMpZ==FeHMA{xAkQm!!{~jS>dvT$UDvcevA*C&upB$p8Gm)2sc($ zwU@;?g5Ces!rpm|OXobR$Zc9o|KbrY%81{2;~E21d^`8Wp=Y3L-qNtdxh`oDWoMor z*oCbFAEeD64q4@+No}hd$vj#TUGf!umH0O3B3uBCh!#W#nxCGRuQ%zVm$kQ}^6vK2 zS1bR1#5b}7dhdjOHD>XKCgx2x)q0!T#R1uruK0+Lk!R>_;Qfz`yQ>sGW55i>F}JS$i62Z8eGb{l`YC+u>_g7Qakn;{Z2%$OM`dGuAnhQ zYz?wK+gY2Gg)if8y7b=%|5V-B`$qkz-Pr%m!!1kHMmaQUwnbgFgDzI;kM_fN|-oaCYOLX-GLS3c%U3Ayki6vZ_xIe@)oU)AdN zp8Yp~Q%4{#&Kb17RKG;L%)z?zL8EPy*$-U?))?3vFjIk>GtjJL_38PAz*+#z`1!v1 z3v<6Jz7vrpBYpdz+y03u%?%?Khi56~o_^rluCD!Y;YWaPFMW6OjI)>UWoPhV+Rj6F z&*aQ7xupYL{}u>)*EKjj{g!Gk>w5Wl?phpiRkQRU>BBy7=%7Dh?98%iLv|(41)^l+IgdQ& zS6iF`2XuCHf>GVMy%k>e|OX0!<8%AchcX^bnepwrbOrzKXdXf8&-fOlQpB!Ec^vU}FUj@YKMwlMlL^(s#Q{u%!y;<(33j=JZB) z3S|xGb2Q&ad2V4odu%q&?4cBL?j{C@pYdq^R93uCaa-b-vT;z!^&EDLSlMFwsb!8` zQG14RSvau~I&v1kOR?!pS-+6AUYd!IQ8ezdyF$zH8Lfc#GM14$`7FoAy8_-T9o9i! zSaYq)wg*qzL7wE8o$sgouAj)=n?CZjfIIC8GvFyI|3xtodd@j+{HZQ%HVN2n5?Kqw zSQEopze%kb4~$>r{nms6{OID#`0iYS|J%2k+sowo3S!C*Lq_&JOfL`K#d#ZFcb9wZRBK#rwPqnbop+ z$9VAR`8Na0d|;XfY;%Ee4tAwLD=?crfX+P@WZy{BZ{3aFU3+mLYaO;M*)-8dX6nun zVwpZZ3w+&^Zub7q;vX!$?y*-**mvGwl)lbBIyG(E%FzkNOx<~+y`=06xzy8LC5ku9 z0KDE?DmIV* z%~%pC({g1*_bsLGZKtAmq`#@aR(ouB?s3M`4II+d6DZF(Ulg4$ox3}?m;A7zr#W#C zz8v7w`Mn`K$=?xP!)Gb&VFTYR_|=E>if{9bc-QKR;{&A`wBzLi4mKLMcjW3nacR}H z?vl0A-#Wop+VqZGmHG4;Y@aE$x&9~K%2oN!k+r$TnzwR0hg0U>j@(Wc?~?cAcE;D{ z{((NF$B8b9#|)-r5GxHXU#0J^@A<*4gT`M++rsN|`W|bHb$J+L*T^5bJp;t(HTu^c z`(U7S?+5W&F6+zTe%McX;DBe#owWviV^znz)2x#%m&0qEA;8)2UfPUfy+VC<%^ z<-j2vZ>LZ8Z)Q8HueN%*pXrz_f9LZ&kBn)^P6zc%I1etmRQ<(y_=dw*KLq=FBh6+vwHkD83jk-*ISQmfDx?Mc@74PV08*u?~|z_0i{G{v&i&VxRFj{$&^tZVD_Ir_l!oj+B(M^ zr0{$jI4*)e6-W6KIVjpWfW5g0{-nOsX*^XH`+z-CO=MuAM-rMpPbVlcE@d9-{q@k7 z+SVFYpX506m9Q3-zBCwDEhw}y}U$+sb+ z_{947+Mqtf7uAR0EdMcZ($~*6<%{TMHk3=&Sr zf4{i_9PN(MW*zdX6WAR(2oC$#2Ip9=uEmXP<_FX48Sy7@EMJS@5*}Y*EJt`Q zIa(K;yT|#jwWsk&c4j;~Q0hwCworJE$+%P-XYwTHkk_XvACq(HFGd@pi$C)2@hF~t z&+qZZc$et^+g$@QTWGsz$3Q9kGbPMB$wT4u0KX**)&DN_|I9$?E@W5TM+2q8UmtJ_ zN8FiNy$#tEqg~-3rXvZbZ_$p{ag0W#8)+TK#(5X-RX4`ho7lsC4Os4^{Yt)_>^oiT zJLQu;8TIAPVczDVvwGQ2m9X!T3`}638JzrU;$fV@M&_^F;&3`+zT6F#Ll?_z==4L_ zU&L{Lkd-}vg?Lt@ZN6+)+|MCf;dc7u%*bPQ_8$7bl>ejIQ;;kFvHt|lZ8l?8tlW`k zIfM73cs>JqmfoiK`P4He?9Lsiv9_`w*!dgEc404r{+lhgm$%R2V~(G)6KQv}F`B)9 zq(9jvI3MuXlRWQWeZIneq6@o^$H=d)!0xjH8_X^%zxj4NK#cK&LlzZd>&mlSUtP>R zXb;(GLl2C?VZwke`21xsWDSDBLSHFHimQ{pUpbGwgf_5Uy;6Rw#an)>;gz3V_u0tT zei2{$zy^!C4~qHNk+-IQeJXPzyS04kCDFa8_ooeRKQUC7{OUI5B5J469Efk?b9zj3 z0RA?j<8G84#JFKkZu;AMa)rxd;P64plmKT0Z=>3N$Gk=GHma>o^TdDYS)Xg;_iuf! zjTN-PKIu{$d!lVDVyySFr#g*Y<|1|(&J>vAlg&)_3-O?ct;GT#s)G;l4Ih&IEM_+w z*kfToYhkZwWzT41?>Gc{gVyE`ZG9h`>-OP&S!dXLj`OF7?nwOp!k=T8`YPY2ZHhlP z+T@?un)v+6$5%YJGQ*Z~z>`j_4CmK9oT+PMzaV?+Sw0S~ z_PG?!U~zXEFqvly=)WxA+dF%A~HeL$PRn~J~ooJ zg)<*#Ej-j4`%>c;c;l?I*0J0_onqbt8ej~n$Gwrk1D_0(%D!?K`7{H$B-mp4=9I_p z^!yu{;~SXk>zVUH=Dq+s0e8kA>t*AxDkdmqpXGk74-~_C+5K7%0p~V88Q7^j#NTu= zR)=~1JgFJIAt|%6LisSr;cWQ)77sZh?V)1kN^!`BBN88}9B*Ep2|hiq6#t36qr5@v zq2Re>vvufMf%(i>?OCLEgZb=&ekI*Xc8Zw%l%6HoCAlTtS@Kl!%fu)1yi4|cz7;zzexUby7b_nt8*5)}$89>5z;-fliuHP2$pU!W1FZdtryNz}Qqw-F51A~M9RWBA__>hb9 z(S`AcMk1>}Add-lwzhs~K<7sK;PVySuUbjGPmN)O%M7Exir*hjv4pWB&-@hsH!(B5 zibo>8n96_0mdHN3@@e=l?=zCHh4H(7J$JirLRY|!lewN4lON#6fKP;g`yHz@1`6}8w%KL*ag|_U1w>DXZg~SKVe&Da6b&<9M#CJUWkiTyj zd~_##RBezi$Ttj}4#ywB+3VgX>*k-c6X)@~Wf*qygah(h4e-2TlMz1o(j!~cHvI*T z($9X*x%}S7d7UqDe$o~>7niZtnDq*CQn{%%JYaPMpIu{=9dz@E#t@8j8I`~|?Ocd~no0)OWGuk6bb z4apb034GYm2`ip9!jA|yd}j;{%ns={G-Aj9EL?t%|FO3H%y}_mcRXg8adDM*VQ;_= zi#!SLVIG~thxQ!ZwbEyCy2`xlljz&z#k-T5L-69MYpPb`7z~wLJnuP}OYy5p^p>j0 zKOAA!8D}$d%QVo3WZ(W}%_E3GbLH_|Jgb%GcAm@s66+UTyVT2n$!!z1t?XABcV&S; zj9w;rUHu&26*saL=uaD}){I|Nf&FYh_WK^}_j$D6&AfS&xlO;}dNy!&jJNBl6mJ*#iN0b* z|04%T&sOZE)b9@DhrjH^zAYO7`1op^G2(&y@ZnLvb3XQuwZyDY?m_;q`G(?c403N6 z;UClXlA#${bEvC%PvCnC|BLvp<(-#%@(TE^ytu?o_+(4(rBCg>I0Lq+rY63%b8*Bz ztNm9NWvj3g_cBMS6On)ZO+B{w=KM9w+t(s9x6`g*sURohRg}jL;;LGSUy=1J+iC#* z(1I_uF=|^?zL}U!w8nzphjxPt*~`yof5E=!JTXktU6s?U3p~j0qIc-Gv&1vH_}!I( zZDR0y#-eeQFpethV`e;XOvdUiTkV~}p>jb9FSk#L^do#o4(q+vYd7zO?-usNY{PaWe3^Qnu{X9sx% zn}J6#sU5W;oox(}QUZ#%V7tEq-!JTR292}osn=5eKmJrCaxk~2P z5=z$MD-QALWju>6>m$~_`kKYN!EkM%k08%9R_+<_#dOEZ$Er4@FN*#&-Wa{aXhrk3 zmCyDl?B9*To@%7JxF0Rt^BZJ`Z9?!fcv3OzrF>G!TJhdAuYc{pU&eUPv7hTUbHUhy zy|au`t;3e#$aB`f;|^oi1FY$oKU03EdiICMY&Y%v9rRcM?j|#a!To=2Q2*mu*Om8s zM##>%9r-K0wKK0H*Tg6D%NbMCkEpdF8tnz&#pt9xz*oZ@seS3j8h8GnISoYnxDMK? zbP*Fk`+I>`^W}sNC5tjl-Ky;!mk8@rSX+%?1E|0 z_rh<*-4U6qcAUs+(=J*UwN2MWY}4lc1Gs)n8MRq{sZEbh`F7cd&6J%WjkcvDNVaGV zNk7$Z^&=T`0KMO&WpFRN3&+|sX#ZGD%!iXbgm58zg&0tN7AF_T+-=wcv z_SV9oG0wkM_Y(=GPR0n{v;ITlxD4;=v-5j}JJqLXS2)+2*800DhQBDy{+Dt#Qr`3( zFb^g^62}FXrAOw}ht9zo2}s^VY{#h!!-d|qBwL#_g%u9aM&Z9B5%sTVG;O4 z*Ig-^QXUk^EjxGFDtEHrkUWr#a3vw%Xgd-MX|1-KXArE@?f4COX2x=8^O-rcXE)o4?5Xu$^YeYy=C+Z2_=JZvlUr)DpWj_si@iNFZu54- zi|oWc?n0*69sAwLj0HZvxt}_mNe)m4I3$O5sd=PMvKDeXn)1rrDE|V}tvJpfT1_ zn;SUDHB#LPeCQcpCSK^DwzZJ9{La4DenS5x_>8bykLsk)#XOI|Zpz?fcu{o+eA8S@ z@kL*_mhPa9Era;~kmy>H+^TGh%(pkuZPL^K8^p+Y%02MNgIj8h;iA7~+yV5B!W;U?Ew!o5nFBKyb{%^n zDSG^yNz8Rtr(~i!o-e?sS$9-^>ae+`89y_@(7zSGR?4?K$hD15v1Yxww`RSAk8^L$ zjOOc`s*E#QPajeS{X6!>l;~3WOvI$MvW}LX;|@#o0$=Cb&G*B6ckp~Y-+ul#^DP-i zbXvAV^r@XAraXwZ4F!}TUT4%r) z;J5x*Jn|x94(nG>&Rp^|>m5JCCf4gg+N&EA%gg0CKpY}vJ>X;m@2$qknN5_<<9F^t zV4GK&rok5zBP zsWT`sJFVUy@!xx>_3>4|eeS;x# zy+LK+E&p48-ph5e)xa#BEIiHD$%-FKCu^dE(fWS@S|Gh_4mfyCztPJ|Rb=^9=njdV2h9Q_6;=uT(CA z6UGYToeYraTo8RtTCehzA0r(&3ePWi?S!l z7_0U!)tmp{+9&^S>}UzS>r8Mt@`BY%t}NTHk^8D_o7zWAz$96V? zFUeegR(F2)_4%KD-mcp?%ILa@`l|QJCH2D8lYPE+3ijo>(i@KLbg-5lAYK*zo>4mm zog8Iq#-e+4!1IxN+R2rK-0-a7*jXjr^vB?TC%KZE)3HrXY3}+v%?JO<+xCpw)wz>1 zjZOcU%aXde=o%U4VdC21v-5t(w|puTr&vq<5$;(Hpo4t?yqxEq!(N}nEzqw~S5&Mx zL)jF5%sZ_~^`ZL5z>VO?U%XQ>f>VL*g#7YGb6$6*?CmRRzW&?bJ&)MNKkEy=thy(_ zYofmNrnfWhZupb>9XP(Q%N_4qK1=YkKp%Ckq>RqF_I}|1e()wfM9g(p0qf{F92Sr{xyFE`p_!3UsYugpm*2x)aFbG`<)9&)Q*yD*U+JVft z99Sfig_(~^>Idk1esD*OH1gFS6SzlqV}C`zOxp=QUbi6FRd-EnFKK@9 zrRdb2(pf6^g@VD8(9+fPGmARitUL9EFS@<lA}v0D4Abt^YNxUwLF zcrS2pT=?N#0qyA-Wmf7xz7|o+&ix2DC37a^&4O_nC%OpgNlz&rc9wNuR0PlKe-i!m zO+Xj9YoYz$_8I-h;CbmKg&$(o1_O264bB>G1nyjNpnUq?Y(gd79V3g)#*z2XA#NB& znh{sW$Vf`Z!O;u%jWk*E18CHqYg&{vT(fAybv29D^I6BI`8w^xa@xSA*_AuT=vvRY z_zdebVgLJ(-!A6%Jho!&-+|BE>)P&u??~ps9u#n~rgF#~sXU@Pku%Ii3*$Z$V>_R~ zMv>U7{aMbaQFmPfxss#GN8(Y=EcTS-C+h~|j?*tVq8Z2peaFqNB{v#FsmM1QGlN~5 zutz=S4R$@s`EoD5{g0wo*gO5mw!LZSk34CSA0&4-VuQgZlNx>ppXn#DA3e%m+r&Ll zsr9pqXN@W@+BC_?+BnIz_=*|wJ5j!j7VnGrqThG-ihZrfTBYlV@n(LP-#vSu1Gz|R zU;997>veJ^9AK|J0Uo}?r)C1{dFz43fo~pYll_eBCYD9(5}B<4Il8r?y||wH*1^Rc^{f5+It~Sj5B@ID zz#6|p_M7&(=(UfV(c`rHChhJ5)-viU4z-2-K8^pM;&T%po^_2ljjo2VNn4sHa(>(} zdhSmnDO>D&Es>AQ7l{HeE zIb75>o>(#FFigIa+#8W~p$U>-P1dsLf%xn>XKLUyv4brs=z^WbO2Jyk^HaptxyFGH z&e&zlp{KhzA{yH&`Zvzd-4eZrhzoXem++puAKd352F*YHx8Bcy!&G8Q-1r04au#d9 zyJ+7e=2`t|{rpCKp%=NduTK2agcrrLx#p99gIo^N>C;V{8rwv3qE$@02*tJ^v+H1S zvC4PcUAs?b>5jV#_LW291j|S4TR(Q_5;Mmtof=%};k+WeL$@*@91}F&^L!6Hwy?23 zvas>g3n_C?Ze7?o_)UJJYg7)NQ%);j@mpj83xx-W>)ACcT=DcKZ{>ka z_+Goi8==#}tA~G#GX0{9~hucK4nfr|5aD~ zqo2JuKzaG0C(0gXkE%`e^QOvD&!VjO)EoTI`Rz~szLNjqK{xQNHbt9M{&&3BUhH5^ zAHUieeG^)BjB{Z-&&Ah~S;w}6|L^d>0{;)~Gxe)|hHq>2RlHB^QJqN=ym2$-{qed3 z&fOwRCcjw$OXU$fhDioDVTKn`eqMfcY@Bbf zm%b7oU*94}bf}H}$bLS?9_{-1h|Oowd)Rz7@Zv~yl5~yGlC9{H#Is~W$zd#Y@Fj3D zSUKIOUIkCOUp$-lx@)v7PdVLPodeLSU#WfQMB@1&{=ZtEvmH4pQ|tc2YmGDCo%$QE zE9B{#!TOi{_9@^~OvJb1ym|ao_&)FEBSYok8$6Zw;?tA)ZlP|r;j;Co@{=#(*@w^o zeC6il#LJD1mvd20xxnTyH?w)hd3~Pz`Sz3ZVIA_*r+KdU74nbF^Tg{WUsBgKDfsv` zD#I8j@f>@{wY*uQZL2 zs}6kh8d0Oszt8j8`TJarb^FTEY5#_Efs6dnf=T{Pu66(5&7*Dc&%@xbfc?GS=?<48 zgWU2@#0scAU)ZdmEWv_z9bt*(5IHp$9Dw2v5>tcfA(fzCMME`S-$w1cl9fn z<&Rd%oQ(h1Z+S~zApchkp8@wcXzbzQVz;xv>Mvq^?CWC2BHH^3`}5PAM~cW{9;gF% zlDj2q*KzNq`mT9w1ihIp$C7h7mpo0mfzL6|C+TyLTrj1`wA{&6T|v%3c+k8B@B{Rr z&wTfVCHp=Ntlx#ckh}5@XiA{i%(l=$MwJ6w=NGj#p1AcUGiOlt4YjX(ksb&)7Qb>~ zWZoZ;TM}nBy%PXGg?-BVuKRg-FT-Gi*e*|0O8{I8`B=ip9w=@;_4 zy;EFCjmwgZ=(KcKW9c-bL9&(F=+5uLZ>T3bsm#HGkm2J`M1jCEU=Ef;@0|v*Cc3mt~oYb3(eylF(c$dzF_!8bJ0i7 z6~9$JJH=5ehaG;gRr%;Bv3<|`Ncw8z!y5D}xdwJl$uP8Q(=fHeb7I!Q(0lvdi%RM) zOm4Gb=vQ5GehCJxVL#{18uSOE16$Ukw@B#7?tI>kMaL#K&(=la%ct04`E#d1`{J_j zuw-EuKA}z2mrUG=uXh+5mX%Ka3HSsJ6!XEUGfV($ar)PZ-Iu$ zUvnJ#TAf38a7I4~Ui8i|$3=dVnY2YYaG!VszWCsI_`nDxNZqPUOyVW3HLj-Fc-D> zl+{DSneRJl!Am)1BH+3fnp{rVLhkqzO)Afm{>K@RPh+m>3|BA*?X-)0*EP(%H85wc ziU*2?SM(;;ZuWmCW08Ni*Wa~cg~oUh zAB^=E;8^e5&yLu-w+?hgyU^ABm@%l`#pmQ%UlD#0D!17ju)CvvhEu&=a+67di1#_*3MznSz$uH&tm*ACXK zH9PotDt$kIe?u$z`#MLBkJOod&&`eHjiu-%Hn3Mht+zLRdfmQ>SNr(ah>h>%*$5AJ|PEvJpX&jqT!gX z{1ce{M$q<8dk?=}7qEn&LEO7j9oQN4E6>KwoHrHQ<;Q0=A6QD)7%N$u7h~!bx9W!v zYCL}OMO02Z=xrh1ypTQjX`{fy*~7zn3Ct&NK_B{^7S@#87#C0;S%*0uALQJ?J?z#0 z2ID2U?&YVicoO;QKYwOqtK>$>j3MAe?(ghFE|tCxzTY|GFo$Z`qlahwHWr@;{-2H4 zA+98%deR#n=8Wk9_Rb4SUiJ{f!1@pEf4*R_U1Ot;a)vxkJ;iTeb6^kuc@BMh9kHI| zlOx-I!WTz0LVhF(pB&jd<(DJ8C)yq0&LG(<^nWS1dy{^2Zb{fDu>aWp8CtXQi;>TS z`jEeb`jy{?`nCOIoGG?{jM|T%6*udw$T@MdbV!MQ|C2s1)v*kqcae_8SZYLDq$fe= zGBG{Lwgvy1va)^2H$nJHw4t-_k9qg;y$)g{K8d^1dyP}EqNjl8QvWNxldne%Uorm@ z;Rt-$c_b=~Y)q3bs}EUEeYvn3s}5&gdmMJ(m-$7>4@}Q5r>n{nYL~a?Z+ze}V3p6% ztV{fc^nM-VXyKjuQ~aWyC433>TYf4DAC*3Eu4l4|>)EBhWiL@#J?r~a^Yw3FANYIP zl^t<9=U@EmJMYtfY*zBS5A!==-?VDk{Cd?3C68n#ec>CKKOeK9s%7eMQFPbq4Uq${H>`W( z^@jD(t*y|n@3^}gzhY(tzLD15INxvt&N?Or#yQ3XRy$Jyo7cVG@T|iZ_*;0#8+=yc z8!_L=u%3O$?aQxD^3C~lvhRK~-Lf23=&8!A#VabZ7GFQlvgR)sXZai%p9E3U$NFwDCs=P?;q~oZJK8t2Alp|tf4pzgl{vnid)HUp ze#0o=5Pg*uSiU``$NClfFny9S&ss2gv9)0G)ir5Jw>GcaaousAM~Oi_S@KBLY~Y&n zkjE#vX!aVXZ_XOGZ)qI9tID$$e--%VFEFj2&bMs%mO9cxGvRly!2`B3zB1wsP7@0k z1wJlIvNi#4mLmgLM*-tl-&Y?R?epB4?YsKc@xIfuCi|jAIli|ScztEF#`w}5qwfJ60Gm?; zu88C8S@5-%k8<9fh1UJ@!;$%$;F}sx8@O44ey|d}X#Q3*mPpZf->>dnpLzO*G~cGe z9N)=+*LQ5zDCWe-`q6X7io&UkMgZ{*7GfY54#TSpH{oHHKcy1bBu4DXNKTK%I$HQ zPp2b2dXWUVvU5%pWew=NLj~>tXixoJ@!B-3+Ha?ss`Ugzo!Y?k)ToV<0b6=u!6k zmsr0i<|kR#EU>KqFvo;mW89KQu6)S6SZ)qz4v2v~jHjpOrxuco_k)Xwh4L0}jKjU1C=%=;00f3-QrI*Q%mTz&NfU+Ua(zHrGT-_aYgeed3wOD6a>mW=Za&d%|@#6CJwmh5|J z?ik-3+FH&0ZPU1EgG(Le-ABFUz%_$CaFp+jz?J?`n(xTM3BIFcz%*x)@5Q;3eM1Yg zd}m8W0n=#fG1@?`8@qt|N9bSmg&WmAG(5bVtNBiV6eFb#s$lTGso1shcNfFF1GXA6H zDEiE@;e7>okFY(Z@3W(QUtS2F9qHC~`Vrmv5L(g$%#YINa{3Ch zpO4H<_Wj|iEZ>XZs&`h3@1-kJefYGD{T5|4wny1lk5P7`%0hSU1HRRau?PCn`#0mj zt!2}lTiM5I^EC8E?e@+}_Z_9oJ98%Z&dyHvy>!($o9-+J{`=Uoqrmy*c)LFUcC~Bc zdCn*sZqc3Pj8X5jPQFY#FVe<+*VFb@;PkpIo+bNcP;LPLwtv!H)r|QoGFe;^^cIpw|7mf%pdqxJ1_B_#`~M8x015=F;B~B zYc<~+sqQ1BaMc!F8 zMq_HT(TH9>+VaPd1^<)0m$2Pi=z&gh7O0KOQEAYcBhZ@V+zBy={BZM)M#GEHAQxxm zJCKoXM@CwRjC30^lf#h_Ab)ZIpR;-E_zbbvr$|154&}Sjd~-abeQt2^68r!3{Lza~ z&!2qt?FUNz0iLOBzAc*|c0jvMLq``uo05>3u3X@-u9}x_t%NSEGfbN{O<9v_%PwZT z?9_N!c(ipT@=L6&!=_Cc@iJG^Ryv{l%qW8KCW1-}oxWWe)|QSJ!kOz?9X z<9va#vflRL-BL+9ty#>d467#rR6;Yk9&(~QPg+p+fa z-o<-8OXw6iYf2}yMY^rKZ~jEr2wzv6mi_!*o=eZzXX_9g=)2H)p_kP8fxFafza;6$ z)b7ZlWbzV>AvQgo81)R!W0}OPXQ7W9+fkd>d{J+u*z>|ta!hgWUO%~>6~BuP(AHB( ze^tTR^o>GCM}MJlrhFW}ow?ivT|_JeI-q_Zx_9i=Itgu9B{L@6OSCY0-p%#AA3M~3Ubf~V}o1Rj2~OfpC&K=>g~H}k9%V?WN&z0 zexWtW@j9W?ME|*gcmD{CAG~aIh?aivgfsdPwwDob)K`S?y$#(jx`%r5Z4dqd zKka+b&(i0>@nF|!?k}t5{JfEVR}gDJoKQx2UG2Va14F`Z-$e}bAh=HB9-@{wT%)I6 zx&6ttlNbMr+~_;7tGtcPt2q}tlpDKHKHtiLKZE{mL)Vp(9XZ9lX&+b1w=ws& zuFl9*Oq|w|V!Z4;LyYlr=z?pAJy7geGyeKbjAQ9|`nwZ+-NYSl^m%3(wnUS=+m;w- zh+i729mo46vH99EHG4a@BmA#(I=NGM2)#%3NnjX=_aCC~o56FX-M1%PNZ-mEbdtWW zr*C+X-M3<#)%QAbZ|J_tQ`p^sX{e9)!r^{?%RccAIj?S0d#wEz=c+{8lvTcs>5kGgYB>M5^bJrg{sG_d8 zLAC?o@D=Vt_$fYJyJ)Nb?%)~uca`8<^ez4u0{1MnPuqh1)9g)+Q!#UiaaJ-;=}Z&j ztc;ISoe7WCPV5`H?yNob~eBSP%0x6k=}^x7=yt19<$ql```uZkPbSL`Mowe~$6)#BO$}Z+{IwSn_q2&RnvKvCfEop0?FSLT7%A zyPEJ7>NII{u&`^zz*KX^`7Gnih0Ag_jidy7M-~~qON{iD8=?J1_ms)_yg%hSVO(iG zyXbs5xb>vpH@Q6ZAa>81$+Dd%>^WMShHL5Mg~mOTho?d}cxPlUoouGxGkLsxntA8u zGvXLO_#(8wplO27Fz=b1=dPJ-bT6Hp{z%Fey)#x9orCV&apK3pk7bKkI;noLD{o=0 zXum<<>5GhAlkL8MllvJ4$wybcsIm53e!;TIPWoI%`&*zX z%Yyez-mt2Gt51xv%Ut(NUKYG}a@c72r|_x*`Rzpg`9`nSVkdd3@By*?7BK8qFRQEj zKWb|^Z7sj7EpQqIr`T>k)p4G6n#i4Wf!s+0Qx~onEd1qit(#-7#`7kT2Y=a9+0pMI z&prI2<~|qMHa9RGJ6RF)U&SXjpOS@hJ2wLF$Ohdvp2V6?W^IpRji<2IUC6ucjy1@; zw%m-ZRyp()t6GRmuo{_HcCA|OU#jC?c^C4kpHDV)p@dICkT}^U?vJw$>TZsV9r*n$ zL$+v#jy%Wu)!os$r$YWf>)?;=(3Dbs2bo*RcUJ*tAN1x5eWUBg7K)EXPGIv_om=wo z7464&sK8-7+m2l8g66x(gJ7^uJe1cn>{e$I&viEnHpNaS?^F*zv@->%#xn+=Sli<{ z1LOu?+I4nokep+~UkY|ezN&Rjj1c!69o%3-jjH?ihF#oE6SdVT}8Zij9E zQVdfT^iZ^O6K&P77BAd(puMd*1wTTgb3p#_%)NV4jFyXjBE#9VH$gYaY4#WM+tuP1 z(b7a781_+4{LH8|s57MYg=B2ee?NKf3TB!e1+2|({G0NQ>kbj!k(SkY6K5;`6Tyz| zf4BWudX^A#@;0~%K#O1iXNusV;?0~z1HU1s4>UGVz;p8Qbz1Oac+SuuYk_lWN$GiW zcJn?E{$emsz7ruKy4+o3xDzWwx%zfN@Tvpcp$%(O@$ z_4-*Cejm1Y(+V9fZO+U+pE3tKeaQ7R_v-Om_vX|dD2QkrBNxn-2WMbA+`7X%;&6~J zDEDgF%LCI}y$5HQU5AO~FG{|usNiaF&6?IaD7_lr3h>p7 z9PZ^jTmTN$$5h7Al*hS_aW`XKZ?Asal!ILNy( zHZP^DL*vr_tNAbZ@7etc{Cmk=aVh+JIDf0n-MUZoMW5Z5_J!8pZTR6LEBKdi&h&i2 zsFt3yROkMyjp~P)j}7>=;SX-dvX0Rh-Bwy@f zPrQ$RiTCj*>Q1ANx9Gzn$KQth7raTvFZ-fYXydd)RQlZWR~?~ICq;+fln9S4mRyFKB$Ki=NCI35&#FoU`& z_j(tTM|-a7Q{GCnaUE?GzZdLi;k+W4)P{@k38w7$_~fs29sl1lk~37lAKRf_|LI4) zic>098{nuP99`bV#CRKmLpW03Z#jM3gXqP-o^jB|1lm}^IQKXw+ctPonPcnLFWC^;P%x)D>Pgu~!q%UgMek%r$Rn zE7X*W?V{P~;+h0*z ztnx%N7pv@m*J~BU%kGJny|i3^WvpB%+iUsJHL6Y3zm9euq&+WV6TUUJLEycHIrB09 z=Yd(}_W2kC9%E;;W!dS_j%cZ?b>zeGSNtpV&K^SBrUhGd{0L z%)@YeUbP3cKJ;!FnK8m1`UP|$QTG?|c~yPQ>!|p=?nU2v>9eWyr!}IsddLs_%Tyz? z<(L0d^;Vv7$CsGbkGS`-$8cKV&!_pC(AT2Rt`;vHDI@low!*GE1H+??OwJn_+0dF* z*r0sQ6f3+m&3D(A(|k+7)o1?oQSY_kvX1PgeKy{O%g=-wiW|TuxqK%i`hQF92BBZ9 z$FS=r>!Tzi^DXf8k;4qA|03|G`B42oRTdU2e(x=3GJ7K_U{LNj{wHsML*>{M{rdtq zB^KPKNqIK?Gd`h7ar$S(_q}MR=-&zO8G-h3507UM`Xky~YM3jV8EYtQp*7WIWaiV? zGU#DAEzLKb7?}i2%gV#WPm~uHzYkmqnm&lmJ3$BkB3-ACCi>90LurewFVY9T&>8=% zKE~0`=n8iQj?>GmelH@*(^E;0cwSLzeP8!H?io#I56(&K$PEA7cE- zVe6r1Yz=nofyPGW8uKpYO=+wR!EVzR@Fo7EwR8ZS{VBcfZZT_|dg?8@`LYq?SD|ezclBukq=erZ)Z(Ke`sW zD;(7dM{%Ck502Evxj2qQAJvBVk@n$RaenkC&Zgo?K4|K4`bzK>d(8mH{~1sEy*K+3 zp7iQvJn4^d+I7oiJgJ!eE&!M4b|mZXLcfO}4LiJ{FxOa3f)DM754Dh==#TI#@t^_l z-w#c{68Oc7yxi+q3O)HJ=Vb1~@>=IB))tFzXg~kan#_NHaUEl`a(tHR_=zdW_D#05 zCRAns1+-|9_`yI$VX+%JH%K3evUgHeT@ErGXyVcqHmQEFIsg8FA~4Glox#z=S8b+UQ|@9e$Q22Tb$rW zbD$~zfAOM}_{dFFc67o5za~Tg3 z&(?g14<&feXZ}CpLC-^bMN<>Bzb8)Lx-a23(;27u_>POT{|4(3Xg_f&|0C_+8K?c1 z()-8gM?66EzLnq4lQX<*?4)R(lRJyidp52~+45U-1GYRuU$y9(mY{2@gxB1I?J?#j zpWXRY${j3g?#gy1M~SzD=ei=|GkF&IPN9p^3rml%6&*qzxlgHw@A6;IXTDo!t>srl z|C4sm(b;)zj!Q>JUYnnx&$v9V&8@&t$46&9@!?r~(h8cZ-YMNtb#%gxs!MgmuCE2V z#-clro`5@3S2m;b(m7G%%bo6A8Df0Lgo^^*ZyD18FQDzqb-|mTOZJnqjH$MYzGjoxh`!2n20R$o zH)Egm(U;y2jA^cFU0`&PTV`zC4EFlCAinrXEA?y{_4;`aoSVy@`~=Px-dWU7+)4Bw z^p!g&edR97s|~@}25kO0(zC{3Bk%jZ5bz~n)10-;HJD%KoU^s`GdK>94KbIBUclYAp zzQdQ~n^*oF`4t4s+*kU!r|Nq8YygIK`qkLM&*ri(xGw6qj>9*8y*g#fcYSp4mU4%xTs@QvmG~wPfqmgSCjml@q5n~8eQm8 z2lK#B#N&!=Tva<9#*Up!d`aOPYkR1%U|2e8=^TZ-feqk|@q+Io<7|0e!!fM-9U50%jv zl`lYLK2Lu(e#xaHx+;A%`A@=?>Et$mCbU97c0(%`TEP-xH@CEWif4?)eun=0+j>^X zGsbT}8xt(~racz+$4||b2iQ9;xALCYr#Et&t5hb!dz~5HWKLvzKF55Xx97z-*o>{a z#p8=~tX{ou-RjlDyB|f*y)f7{13m7IPIp8!>jb&19s;+D*OVPOcwuD0R~Vl8G$!fsBvT5H zth2BOotVZr;_wYh#@EmhVZ=GLSMfZY>1*yt==i4zCI*7kZ8@QLgE~fjN5THD^ zr9Y3MQ>;hA_Ya0wvV4uhx0ZO=vz%?t#cg(_}6&5U=Z*B8s~WXC&0FP7KW7ZV$1)o~wvCG=VMTrWo^ zQJGDqFESdt{_Ez1!NbUqKOk>ZA$oE@G4i@wH_UevaDJKGB$D^uMPAnbuMh*I{}IZk zuYc5A%I|^bW@6ARtFMNg@S0-5x76W_v_aQSyf-EK=J6@EEFt^Dapt1` zC$6r6{jRPc`$&HD8oO|CC*%LB!yCaCoAD%Vm6AU&pE{ZkMwERY!h! zGnm_-rpO0jT;%i2t7z4y1u>|{7^E)Heci!UK-pm}I#8;u8{>W|Gd$LjX z#tE!7#e|RRbO28aF{p}rCy!(&vcSAn=eUs8fa0mRcc-WHK*3-HUpD5tb0YnIQh#FS zf6<=mf8>~mFW1BnYo$}N&4?psaJ_gGJ{FvHI+Z`dW%_zbCmDbL0c97m-u6?*Av!lk zGLC!jmSfy0@0=LX9e4rkDuvir{MZ6LPLJo1!|g#X!zYM4jEIRIAb0TF!aMEdvrl6% z`M~kS&Msg=_ZT_HTK))lB%2O!E|_mljA%TvUzZ-3KbW+u^5eaK9J!>fr}HGSZ5`A< zi5;*ue6si>^u*{p=y-gizb7U+_mX))wMl6ubJM)7$glYa>M;6fWwx zYf(|8A3bDZezd-~Q3e_5XxYwe`@UpiX9I2Y^&iOeqP>R=WOYnpTHt5d7mTduiBMUhf^xu|rX7FEK#Cv-p13z?iom`xB#`Wq* z^@;bedoMGib{+-I0c~wNZbXae?-aJ8k;ja#{%b$}JNumySr_Ar)U(P)m z*jBmszS7KQJ$b?vmOCO}uWa%N^|Pm3_Al|E^`d{G;G(LVg6bjIv!NZAr#o#GG0{gHjYc9Byc#C=lA zagd6wxW#mZUVO-0tTP1fG*)hB4R)~S<+~|6VM*4GyFP{<4@@x5Fh7HN@Vfp8avc10`M$ zenv9c@oQNx&|uNHgXoII+eAB+4@5L_9C#Ov+fDn%f#S#yz>~`Eb7WgCU=e-DrvF^0 zZ!o}I3bsd(iE<|ze;*7N7Yh%}H?QC=b7SX*Tr(%kzKZIeW}WZ2bIGpvAoW}mjVw2| zJG~Q45-r*>Wt6}C?8y8-G5+J%vd*D9%xQEPF>1oyUC7gl90)NGuBlDIY3Pd*DvS{BXXaT;b z8JyAX*o6N(H^q^7!v~$dVm9CnrWF^a?+@Z5nqa?KZJ)loKFGY`i-o z=3il@iUt^+O=itX){U!6-cuJ*Xep~(7? z4V-q)hz`5wkRMz4pJQ~1Ke{vU(Vl~U;PgY@oAD#^(C!jw!!hbvCG^3wCHU<<&wt@0 z1N?-|)KDLCNG89napW(;$1mjW@meN1K!wHeAPgeV8-LjG4wAH_nXZg!ssgZ;~VE8eM5uN-vQQxNtx6g28>CCi*BxhpVrwM1FSimpg&3^vx7< z*mCc(&UdcwmHAuQ)6?Odo~wdg7Cu<_1N(kQa=3*(V#}29V#UXPfQ>Mh?~XP9?D6o- zdabRh0@-^b=esn&FLOU@yd~ci(AgaNbO-v^DEp)rI`ypDt~8Ua`^oX{Va%@YId~Pz zO`-qO$sZ*7_}EnJW8|<>eutm`FLO(f^Y01#uii`vc0G)4@{7$Hq9r`Ke1eYYGlBw&d7H`@9amFM6fDptU3%i5BQLJo1daUY+|puzN-4Tk7@_j ze`BwGCdF&z;j4yO{^{zX8R0>YmN@()S+BiHbIL08>9UD((zjc@Wr7vac$0CPnw4v%I+u zyAAiU9Rja4(2(*6Cug?udwRT`d(_S|S<$b;I~D;)J1}rY``_xj%bR>YSF+1$LU*>5 zyIsyuXD)3vPBB()U>_cE$j{RZlb0km&USaSkoJ#L?lJoCP*$+i0gLn@TEoJl+9_D; z@->ZW2|tgVkhoLy53HAi?U%^LD_>JM#IHP<+t~ndLvibfPS?4%qgyREw%m?K< z`0rRa6@53pVCd4$U_YK}Iz!!@v40SgjlxUk#qiukS$iG)4jmff(0mq*N-x?2j+?-5 zJNK5f&n>TO;OzQC^khTedd@wQq8`@LQ=FYUt_gOan@!KJ4;LFQGm;BEcTLaUehcqg zO9IWcfQ9;rHtf3jyyjr zvK*hhUqKU(WCR;VxN|(fI^ImqqbNN2UHVlF{1M_3Hx1<$KRVxNkRBQ$5_Or`md-UA zv-}8wvA2nFceAgEiM=@P*Uhv+>8^Sm!N!cbD;kctjc6}po#V)<8e-hNqZv1_=|9Q$ zZT|!CwB^$Ao}{1WlG7snqrn6F)6Ke4UcmmjE#4exbg}ex=z6)s!sf5sgueZq`%|{O z!WjU0^NwP2?TT+fTf45m6lVN>1vBzoEar^4A~vZr*KrZ%u8g{?_N4<~Z{{U1j|XON z4CY?OAfJiT$csy`+3sbHod$oWO{3%`zF*?|^OucBIj=9`Ee?Z$9?gz>yA%fY8hHEf zFwkZ%FxWUuHcH+VPQ9`Jy?Qqp_}Ei=-^+X9Tyyo;V4QaujM|^|O$+V((jn%yt)y`K zlY9>@EZkmdW{2B87_nozgs*p5+pPJ)0Pr5wJez5ez4UpN!)Qbhm(OP7RgUx?ga1dt zV>)mh1#d^=c+~&X{FlCX?=|Iq?L$9)$48jkz33>2r)J%c?r|NM-J`tUq9MrmN6Vhf zivEJLoBp4GmU6b+T(*3oP5U~aK_BQmVtT?mIj1VlP`P}yKi}bOdMh!!M;%sVBj=30 zd@|UV2K&(jzHp8aJpwO%mvx`PTHQ!qmoexB-zC4O!FnAtO22sr{9`=)roP_ogE%ee5CbRG;wcI4r@}Vz4M~T(EHOY9JLkK(K`K@eQY68y4WO`v9gR z>K8a-FvR*Dt$u7cc*ooy0fq!D+OHYFxmWdA3u#`XL}OHYqk&7$Z5SsTB{w4j2*%$5 zVEl zXR?tgn9|WxXaT77J%PS*ylG!Nq&@V)lFVVn2k|%yAIMOb(Bo ztly{IM#&G-fSY+q2d4@8^ICi@*t`=Pr2AunCA?36k1Dak)R$p>A};$=Gb0_zsX_(*M&xmbFvv*hIJhi-Ms-^MwvXMjFGfFAt#zm^nx zIk)@Q8ACm~%SPYO#a)iz-eUTU-2b(dv66KXe63>4A+O>L<%1$w(k_QiCrr5n?+mlHWABJP=AC|D zxFkQF>-Jcl#$4{PIt7f%N$HRrx6>I_UP|;zTN}VbEwZHIx9Vo|)VgK1oL3_mFWFXR$2Hp(XEz4lR~>%*@S%ke02`Q%O1d1VSRr;GE@E8MS#{<^FF0dnXO z16x7Pz(brn1}vUocU1nqC1yc=GxMamT`0T4teCHZ=Jz$)WqsRcn-4kLT!`lb6i(}y zbLY73l2XnP8%B{=oc*;78lhN!le57T!TbexbO*5Nu3@!brg2y2Ui8~gAHSrJw^-x$ zd+GGPlM}7u|2-=Ey=l>M)(N^x=2QD|T;Mq6o3UpiOFd(+pPXRH26A;iVHgW`tA6vu z=(W_@K;FP74A%m1x4Ep`8^xYxKhs*(8a=>Te8Nay08FRLt}2LL5r5y5KFK~?1OMi- zeYzVv=40|*`c9j%+u(_Dt4!*wMM(3O4FItr#2GNsqxZ zmm~%4JLQ(Rg7!Ud2aSiTmXNElkGWow7hL%U^Hsol8z8PrXGEQKujRjTX8V}0OP{HX z*08=+?rzG-E|&POdLz`^&37u#O>mcgyY5jN+ZkfK+4zEF;|s#tv+Jn*{CJ)9tltBD zBd7CkcSZkkOt7(UnIrl!AH~Ie9l0y^&K(UpW6##{OzpTWe*^Jsjm3gy|1Efwt*1r%nfw>B+ttrtZa;YF<=NPh zkn3!nw_=xpIr{c(&?M=$p$RVZLpvzni9Y?iLu+4dd3(*vx-;e!x~zWeic5%r&%>^= zgxLQUbYQODG11m3##8>@E2C59v}~&d20x#v=$_hn?z$s8+A+o0?5Er`-hVcQoDJYk z`ty^wan_`5?i1`3jT5{B=+Iqhzp-I%V?G9ml`d$~UD0mNWs^F4@cDTWpPx52jEeq= zHKDl;<1bPVeH}zc)`tG-)Ur|0N0MEUo5(vcnzd1rG`wII?f3IMQ7<_;C-N3JQvLOe zqwMII=rZ8`9xy+Adp75_=BmxqJ?P1aC^lO7EzKvUoVCyfoMCk7mB86_ATU_TGmrW3 zKAu@Gu4)|CnYVII;r2+lZdmIfRCoQbbh58$lF!V{T;v=kiPF6xH*ZUmGjXhveCocu@>xgV3+BMtsQhK*RU3J-{2W=IKVpCPfmU!crv=0Z5ZW*#jeR@FE+vOxFsX&q_2!ria=uRBQx z7U7qL{R6ya$R5kPjDP35e{ry@mAxUE7dc2eHSYOs<{l;P>}A~L*j9D#BI~@XoV}}i z?)zuPady3Mb_kyW@P)3TmVG4O#lbB04tTCzF>!JK)p6X#%OXdHD`kVE?A^SV|Ha7( zlxH4v?`bLiLfx`Ceg6jkAn?v&90BK~#e2cQUT`2>>fBy{opb=Z%=xQZyaf+VUR-JV z0_T8V~;!W&H@cvX-_+`%(fOp|{19>ode!q73N#1P)x8Iwy zaoZ_yr8vVu=5<>>v4{A(eDUYkM+U*wN#YGliGxl#a7|=*YQ#Ipn)=ctPoyCKRWEdV zOD;04=42uJv>5-OHgqf@^gJ)pM>%~~Ae&%IjihRRpr7PCuu_qsR~)JxW^V3SaVRhx z#_qZi8r*KPEs zH54>(u8T@HA(?k%k(0dPF63%A^0fy!+v1Fo+Tn5$n+`vfY|`g6qVG9V$Qeu?dwhmI zawcK(bOt_#{|>`<#sB4Z<(gUMmp=Y&)`A-yoNU;Z4?U-ScaU+>?sXD>DczY|5sKNo z@-MS_xmarl$UXLkE%#)1hM0o_XArxXVHG%yM&VHZJJ2b3nwzW6yd30Cbj})nWM$q9 zXSwH*+u6?+_)G(qI$)_M-$DoX4*TQwH;-UjJAUy%r9Uz&S^2BG8($3HV zS$HO&XU*(oqx;I39qOsMQP)ajQu2H0tbXaemIgB8INrscFC4bl_zT!yu)Pp}(D)^RGQ6IQ$#oT$S$SvUCsB4$g!8yIcmT=?K@XejSMJ2%b zEBMl-aAsfZGv{KTZ?a#zs8fS)kjAE%?@QtQOJjSII^Ectgu6}9BD>D5z=ltq#+JZ? zpL6g+WCi)4exEvdNwI$3#xBy%x%}e1#PR*llvxDM3z?g4=#1Sy^d(U?F@NeqbEC2e zJWi&La5n)Njac3Ai|kK7^WKUMq7EKoK-ZKPg0th%vc6ApH%$CWEY2W8-xpGDwD%R~ zemnkQ5oexd&10j}&|f|LZPkh8C`q2uTs4|{em)~F$VWdJzt>UFtQ2UM3mWEz*LXT! z=iH2qy!zmpiHi??1$hIR!O@jE^IK^3Q7u)&2sV6lstSh_)xh#)adIq$3dyms1lk@xfZPM_W<4GI-%1XKCH$}5#T`ntT|U7m9su5tj|V&C@Af|D zkP>HhL^|Mc%t_4FTgkjtFn{ID<4w#bd2Cj5r^E{}Kj!|znA|-MTf1b8|4DyYi~q!( z+*MP|r;(2rnMpA(IvY1JwtB|)zSGB@D89jZ*5`Kgi1L;F)~z|)<-@t|R_}J%1Yi0x z`A2xCI+gegExj#gd$(g;M1H3Sc_)96*O|+NzVM=N&a{|r4>@S%p!gGfM?OxqGmNf9 zlo#)~nmte#zdPY=_HNzo8~rLH{7pGnzN&?K(p@QTR&g_GgO~)}?Kwv}Ko`%^N5HSq zp`g>6%{y$v^K@@&Z9sQr8Tc=ILjL4x+wPoadMbMuxAvgy&B*SVu61qRrT}-eFqhIx z)bh^7epj0d!PS&_e|^A`i(hyR@b6(ws+^ntrH?RJUzhs)sBevrv1ioM_8DMTpXKzY ze)O((3cQ`?uJ7HbSQKoGrd7HSe)7F!|2mC(t(oP9_vyd*Yic^Y0{;c%fX-Irr8Z=Z zy11M*8-Ixo{E2j*56(7KZe)#H(d)mSW31c+tUdT!%`#HSjq3@?PvgnyN4#O~zo=Xn z%eU5STGlLlC~sygI*05>4?!Nw>NNaxuq}lTv1c}Z(a5OegAPBeTx*+v;Za~%LC&>= z%%*%%qm8FBm*5{Q8SHIx_dLefWJi+hU22XA&zir{D}M!OHUHDXdq;Luy$#LL^CkRe z?^QG3^Ahcse!*CIX&({ZZ(K;5Ytt7eU{TJuF!H0|iRA}7;=Lk>?ZbIRK(eInSCzks z%7>@F8smbke~OI?WI^C~FV*LnQjE0CzRe z@YIZ$pOMXT;`~rNK)mcv=$Go^JUGF7zKyLR@%tb6UBUa~*wFPXDE$I>QCkP#SF zVs2Eq3~JH4jy3Ts;ojG7-tWM#l=DHge5UrJ1C@@>=|=C#Z#Td3o$W%W`&52QOs5M? z2(gJZ0 zNQXUu{`Pt4;#2WI6}_Mh?)3?jQeQIvyWmTDyb6Q!4mpRHvDXXvPEF#>;!pC`=6jTL zxv?TC*f^VK`RPWqjE{d#lCM2K)#oPfF86~+P5D*E@8bDy?aez-ptjUzqCM4Bn~Am( z?JT^com_N41!qUn>3_4|%#FIH8FtQH7yn&L^GTU6o!Aunx&3U{wAeFq2G6(;OXZ?7 zqr{Wgem~-s6?sN)uIV0}1w9PZ)(%^IZvLI|_zFJov%};YCeNyA|Mt`p2ZwG?yvAQ! zTkPS3&%EWXjrjoQnvTH`c6{N!)d+TV@~J)dM4Nn!+sU<8I5t=ufbKvKdld&+$#dOZnArZa$HSd$ z@QuN@S#JTu6|sH9u!Dz?6T*gNAybu9Vq08hdaMm`nL%S&X1FcqCF2M)jy~iSjYaL& z#oN6_cuJyOKCW21jS<=nn>h26Q#&q3_KI~jinxij^K!pNhXn>TT8#t+2yjd&Ee!stri35^zh8KTLe*{y57hu^u; z$zFXXL>>4M`3O0icSpQab{1Np=|)2ZK5gz-`x{D4XSl8#-PWrG4T8ZW|6jqHU7lL% z=99b7VFZ6Fm>2Oozo2IFH1hxD}M@aAcg%^Qq=>yN{(`(Zn-Y^yrVUadSZHF}Wx zh10sFH|dps=kmr0i^HG&f0%ps_$aGu;s1GN5;B)uNg!cDl9>c_X2LCsk|>l(f|_I? zK)_njo+MD~Bm=>CX%hu=0c&8QGD2Tk((@9;3p0p{m$#X>^pJ?PAQq+cc52TtLEGj6 z0;i}60{MN{GZ{r~&*|^;`{(z^e4c0av!DH}z4qE`ueJ7CYbPv|bz}zIFXE#TTVd66<=IoWha#R^gkyC!l|1Sn+ZDg!?HX!{lIV zWuIR7-pAZ$QRaL2Rnunjw+ZdUDy2jm}794AnzINil)=ZxXQd(&AJ(9F#4upw`Xk&zR*(HHO=#U!wcBGrmJQjwySf{ z@$yCZFF_;6Uj(j~;P2uGl0e?~$Jfv3ICiQ0gyhA40iQylZ*vs39pvjW`a!Nyw>e4) zNnECe!$a7-?lvRC#v;qcp@YN+J^_D4>(pc!8)9I=rxN@WyZIbf)?`}$4LqAq`BrUO2>~;cEwnuVyxENn7l$hs1}@+24p?d5#ybi*E_J{t zSB3vo4_y+QesMW6eAtF$xct{&D~b1HI^e^0h1`dXnG^X#jjFup=8E5U z&}N{`DCLsS&GYoDj{TFFv1VURqxYiZbXGle7f-5{7o}bieaJQxXPs1)OXX^u?|t&b zO=mnGkHa5`@qGQUrZsQS=aq)StXAs29<5vwAAsyA*Coc=4{iC|!Htb)@=fuR3eN?6 zkH>r>gil1`wS~S1p?SyprV~P6BJX)?`x{n!`Z=EkzKFaTL!u|OdO}ARDnU5jk;O{{|N4-|Dr3e zfKGzhu7FWB9i5N=!Cq{_^VtKO4v#5hJa-}Im9mb^U(a44aOAF!UiN)_yGE}~WSpeFtda0B&4-k=o46DMaYL?=8-cG>oph8vprKmYDvA5!j#A<&WgKm) z!BQ4m5u}I2Wk}m))imrw+ z9QMSSrpTcZ7xGn^JEHpaP$t9kcr;@EborlHNei|pj9kue^_NhxD1ZIv;$vQI92 z(9Hhx)wYbqocJo#X;F>=z-h|Bj&tu4lgtnTdn%dQ)3(w zLmBHJ$MRI=Qj{agVVrKz^jGmwz?QY8sQVlKL&)-y%VQ(k_?%;Q4XzHV!>G8au`NO0@Sa>ctpbp=4y&zbeV@QTjYY>}?EVdNt=E z#Y}dEPEc<%x^VImSKx>Ec^%Y+Y4m>DMVTDAZ!G7LoZBG(|9WTIvNx?t(%rfk=eWsw zhvYd1v#@!8@#nt#?0X#@RgC_{);KUutZM|pB?&_ zDJLw^c2_6{d?%+Vp=XqFrh`h1SAmy|n}z2YMf8%MFHyvo|z4Lmn(FL^OtujdT%c8=^1;`hu>!GS5f~B)|T)7 z`>F=%hyF)V4$iST%9%Dk(KX2%5v*nWWKUddJq9~#wqkUfVvUZEV~U1#^hbDqME5g- z594eld$f$s}m_mA@&{0JNSBwIKRy$@T3?3cKGpKY(Y zJUYjNEuohAN$glbrRt~^`Cx#&vraYRnnCi+8YuUmliQ;+uIcB$_#&obSDhT)T=8w* z^RVYo$)0wQTpNRuua-THx0JN&%aY5=O7VfL#rMn*_a7D`x?w-Il0ltoWPT3zv-K8i zDR!UGo_+nq^qTKAhq6bSPN;|Mz7qN+If}&oI`~3K&2*j*yzC0BWv@fz8S$Mjoq9t@ zZQczX=0nqcr;st%aNU^{KePya{P^_A9brH51ZN*HNm)h8xet?;TIFqA3y9l(ERvl&OKSBL^<^hvl?^QXiY8$W6PnL^~^X8bw} z$qBqm(c)EQZDfrMHD|j*Tc{^_nRVEJD(@tA85$6u?LPboZExiH6KP*)OvgA@lC!sy z=au%b-N!)Q7oj0(Pk5T4T?vUzOy2K-hudOfG=J~G8nMA7J0tWg``wowiotIE^*!%Y zcQX5`dLG^<{Y;4-;M7?!U;>-Kytc=Jvq(C z2s>6kF}B$7XKVW>4Jpv>M9shS18C$Zuy8hrS7BdH+6=Gl6N2a2!w~u`$sul2^SS(! zWzW4zXy@k7w)Z9t&ynvq=;z*Rh{q?ka~?3tx;ipb4fu%5o(HV6k##Q+7xTB>s{aq8 zPmI5SU%=10pQylZW8~r-g|m?NnEG$QAA`IAmB_>{_UB5m;Y!T@Ao)AQj&rNc*g@Vc z*6J+hq{iCe{#)?fPz_qlN1Giy|woOhSxZ4$y90%e{Ap79lY%WSUtlHKV0oJVDhD|H*@8Lkbq zDh+nM(l`TJsIL89ex!|?Yec5iGC6{k6;`ey;W19YNFg{KUXu>jq zW$zd)+IMNk5dE0hK|OKGe zJx9}LlREf6$XLia_n15*?x`0)S54+bU;eTz_+>wVi}(p#dPwy0uufpY_8v%3&N_O` z{zX%q9VYCHZq_Q1!DiyeUharm_I#3yI3pMN>TO=p3)(q*uk+tmH^^K&hHQ04Khr5? z&r{Y*o|ahJ^sb-Q!MQiXxs!^;S!zbByQB%+5U1w71Enfu~LpYA7y zlf2fA%*&vojq|Ye!9n}pdmZ@g5bNY^AqFfzM%zOUW^GXFbvY#uen8(^HNV>#{`Juk zzn12F-!pa|6+9q22Ocz8sow={DjzCqFW~cSVE$BQ2_H~Gu0v55U5E4+v#)j)lx$O% zX5Fr6=YC=DeaUg|8|0%AEji5Nd%Jk0l}Nj>sI-O2w_V3Ftj#^wsyJFw%k@lDFxsF%%uX{QZ* z_G@kFFUmfze7gldVB5QM{cis68G9~$LypJaF~M)6T>i^@vezZ;2>+G;Vs|%A2=n4i zl$B6#fO5@#&i92!dw^#)aL6-(QES&W#V>d>@m$(F920>n>Y~&WT*~uEU9ms(;uBiB z9odFl2qk9xo>?nbottIJBBi*ne^MULSW`fa^ahUaAC>(l=* z>kNLtJ+l60vCoEHQ-ZI@UdDc))fI9!iodDJ8{j!M{g;Z~&G3_R6|@@Ukl`yaXZTjGTfem# zJB8Y(`WLY-wZX6Z@fY62y1a&YGUNpxYMT2X_|T;z$Kt1UP_LY0U&+6hxOVa1Y!W@h ztAxDR6tF)m{RkcJMdJUk+r9ckPgd7j+QDw%mj#Z|x7&GkW(B`dB22uR@&`nE^B-V-?6=C_1j$L zu>3FpEQU#8JMIAE7qR8Zn9BG?#^^`DeINeAvgV825qVGQ7ox+-JdOCw-*#LTKj}F_ z8*R{tJRA6Cp~L}5{)J%S4_zY*Ca@nqNg4SjHUukvcm41kV}@?&{CcIn278n-LtQ$5 z7xpyfqVT0s+mRhkUGuL^*6#meeHm1#leI}-FS2((-!a(2yrx&mp--`I*?DgY@S-n? zj{thxQr5C1tZ9o`+sawv7O_?@#C{j0`Sl$}CN}g$`^7i?B)-5ZeIEO^B}iMQ=BMuE z+qG8WuDUrVr6=2UNg=nX&CnU&P2Rg6^4`feMfTpx92Xm^9UF&XUYd5s!ycX;zFrM! z@JY23={_~!fhT1thM}O1`HYX|IcTcJtoZisUF=w$p!iIIr1Tl3#PuMb zo@F2UF`l(gca0=Ek69cA0-uRJCA0h0!sbwWoa&SFL=rD2;s0rHuW=l)tR;7Z$#Klm z3%=T>x;T5wg# zl#(xN6LcdsH=AqN;J~&}jE#*o(m{Tdejoe3(DXp1EA(6Jz=zSv#eSFp533}O)(YK9 zPM*QV=mF%fGa+{j;8YtyHk9S6TidXN8m zh&>Q}Ae-<0kT%2fYO=`a!5@7$X4_Bn6Ma&DEVlYObcWEThw;hvl{n_0ueLpG@2KQF zm0tMcrTYp4mF#1G20ojaCzY%v)%X_;49w*=U_pf~e{9W-4 z1LG!bebJ8KSMsxj+j_qheV%>#GmPKim)k5CfMEn!!a3`j$4_J}tJEiZP1pzw-o|_r zYna3xl&}tn?r6{}1qST6PR)KaVQ3JXnpLCE$bQi2yIrBx(4rSwJhh7TRgE*x;GTUr z_F7phct4kY;sMqjvD=M4qU4=o3_W|{%NxXxR_q-UHJ@RDPx>yl1&NEjn84f|!?EE0 zN*oK$p8^M$%&aq4;5tB=v|*qR5q$UO#5x4$LYJPM@FV>M--laO|DQKVtcl<~4Sa=R zkoO|^m-l2}w-?{Cmua^bSQPAT7sZDJ`8{mIE{7K`f)_4?&$!_?W$?n%&-bT1$ZiJw zaD;D&{`m?#!^pnuV>fah%(W#oWz3=b7~lJ^b9DIJ@ELf;4+|U}!Xq}*H<`2Fb2vKW z%n|%aXL~wioKu3208jXSVz8C_wyR5OHuFAovveDKqOY+p^Ei^yvZ{Q8jBi18S?1g|i{|JvwtZk)we0}n7hV@j`$c7+xagC(+&5g&z9 zS1H%EGp^5HrM&7@U7=yt&~kXy6Dsiu@UO?rX}-k!VmnT$CSP+h=cXPs22RZ<4y=he zbmIiar2AbXeq);Nd3f(W`0VIGLtsXcD`Y9-{E*GaPt3i+M_j{amSN+Ej}6{}>;z96 z+)M5p_|Aad=oTJ)3|k+55$;^a+m=$tuPnVeI=_mXki!3=8(9N*HURJal=>eb)BG0x z(1$-GIdh$ny8prde(C$8O6ccJKR12+epI0CvLXFd&Nu6wuY>~dlYU?~G&T&&dXpAy z^!+JXnKKB@i_c~WJXLHN6I7G?BJ1#cHN)G9jY0UTd>ek~b!vR|R!9F7ynB785#hFL0~vF^H$Elo0#qxgL|{gdFq$O8O;WK41@>o_1{V=>!JZf0JC3y~5Y|HnNX%vwYuM&>%9Y`1}bkl<&)4IWnIXk9KlCb_D#rghz`{ zW)*z;GuHA;(2($I$t&22>>~U__;ufSU;zKbu#DtWU-mgA_q(BS{V?)ia8k6%*Y=#u ztx53WNg6*Yh?yXHB8ekbW;X+q{Qo${a`aPRxBzeJe^hw6!CNbNnt6AM_W|q*;rFF| zX;*l#z%O zSqzEhI^LP_(DVlOy#0cAfnU~E$zvyd5IjpCq%RRX3Qb4)QK0oBysmvPhEEw286&}I z8n_f)F^u!b`X@M>gj_JTc2UPM8rm#gBz@#qz$I z=#Agvx8S2;KBGs90~d8Q(==QS(*FiEjEmFgkpId5UVVDd$+!qjh)(#kFRc$t;IWJ0 zwdL^KMeyE*tPkvU7l&o#wk+0U_QeKbZV4=6yo6`U`Y^KuopxG@<1F`*8*XXbuPk+3 z+qoX&ml*#mOBGiy>k0NM_e%0Y2wyeBS0zWpX`VUfx&k(0qe^};%{TCi89wJ5vwREJ zHJylG*R*x!!%bTyXT-ksOhDza)a&n>=mcFyZGO4MmDFtJ<9O)KOTGj3|A>Th;L>!yr%_Ud9nX+ zZIt?1&_nO_z)@*){?0MrA^_D58R%yl`kUs@ecS8W{+ww_ zVF0~P%PY+I2A$+5G^20EBAdoBzH+X#e9suiSrV$*&3W7SM#Kec@vlZV88O+yeu@ff zr3Ta3p0+{j7x90sNA+yd~TF@hNk$cj{pb1#g4;6t_W5(ZygkgPvVND3P8N~9U1BRm9+hvM%u)P8J0Dyd zj*F9VlD57qt4|!0)ya_oZ3!%%Y$fzG^TtCPHM}qFMB0$|MVE=>0jZ&`hj+xTK<+za zS&6^P`dv6*dAjos%4I)B?4RL!pd=pZ!!KGjanSf2?efI5ySBM|*s#Ti*aB#Ht`mSZCv10ppzYwyjkB zuN8%Ph4=}|IBU5oDi3M2@!y?`A^tjYPU-itk$=zHti_Yb{#L@T)NRdn&L!0+`)xVN z$UhT;uO^k!ckz1`UvE3Irsx}y7|_EH-+AK5z2O)h$q7JyedYzW zaNd{v0O9zZa83ZqKhFsu@jGU60!$+(z|nZ~u-!&}r17Hrkkjrdo#QBH{G!;-CTC2& z5!#l$GXu6H`yqurJ7T6%)sU3sao>@soK>Qt5{%f-A6jN;{M zyEa^A%EE?&E+O9(c|`VTvnDC$T-Ya_$%Uc7LwmX^vGv5V224A|x^stX#78W^W9)^s zJCr1MjkinU0oHKVd+t$W?e!CqlYpIggz?kp(@XeTvS*bNc^4brxybvGckAR`_D)W3 zU>}M$j;&8!76)&NH^=+lfma-ZXFQ=FzP^2`l5_!nw1w|uSRTKm=AN!ZQ}>F*?BkY% ztKQMpwf-%4F3{gLk{O~FqH81SPoS5t2m{`59OcY(yBDApcJ1jc*lLl)=KHe-*er(PcU zv!)kK_Z=j@_-*VJOTBCI6CX}UZ+WP`A@N}~y#;x$34Xbnn32SX^~s43H<$5qXM@}J zNlH@EI?J+sTAf($J$#?sV7^#q7$$*7+Kt7IkwkwIP0IMCHT7M2jMc2{cP-&>O-xS2 zr$oNltbJ2S=R3=g6_zHF6WqXe&aO`kKfC3B8e8svf7XZCRfUJK#)Rzf2I9Z9oC_%rWG)kXP9%m~*7IEE zPZ_)-7aDgETO{kb#BWP(WfyTqP4Fklt!zvRuSF5Mm31j1Ul{i+b{K$9;%r1tao~?r z#t->)#K9g@Cu>Ow*8sjQd$9FZ|6yc%=TnM5ZGh`Zu_vVj)!fnT$9|w}YaurKm8VpH zXOUiu&6c$>7EB2EJbdgcaq$eT04~4c=jRfd_!wTeDT8L;29eS zSCq2&OJhNOd>CfCiK|&SHXduhYqiZaZ|zjY-^#TPn)r_Dnzx(r=!ErqaWp(5#e1h_m{9jwZ^GQ7Coj$H_P*#`0bIMQh|4;_c zsQ(7{b@Pa0C=~jjjQiK+O5M8{$2Yj&4Gld8?OnzHcIrLHm_EbUF5$nQpH0c0@oWCS zN%<;e%8cY^6W9LL8eNz8Y~sw>+~;w9+B&Z8rfj9|b?f-L2e^*QPOf_{BdRs{-Cpb7QehPI@pz1UH1(CuX)xmvuNY9 zb^mj9#p|A} zo3ieuy6TNjm)pAbm*$5x*3~Z@UMd7Z2H68n8XbH{P|#mR3}5v)kgK^BJ}=7_C<84E5>61m)?(#Y$Hvee5i^f>VXQM&?f` z`4X?3Kdc#J^T%~5Jbzr5#^%oqo8r18^XI>7H!`34$wevc{=NBhguK^Zn@`LinI~(( z%TwT^hq)s2LYpVxsR#VXJkaI^IO_pVLigG{fWCWVo^aLZ9-8g}cS74j=WC(k9ck6-+xlNyj@pYvR zC%FX3AE4>%qC1Jszl*h$JX?P9Uy~i6Znybm@p*Cw@>H#7>eVz6rqr*4jb6Bdk>kx+FJwc-?-Uok7-)*TtJ(qWsam z%KTUO<>|(`e{ilc|5bkN@R)u46eY_2w36sf)J41hj8FPTY+A^l=1wKae3vf9{U)g# zA64Vr&#STS{gnM#8AsgMIP+slg85nM#_)};YLfXkN}TzO8bwamMDpa0b0;d%?q1rP zri*odM;BvWqv{-S#CZ9EYt2on<23bTAME}l#bIb6#)q|gO`hJ-qpkC-FZ$*u2f#)D zIOSC*{Wm~^i)_T47rH`=t6iZbEw0egUBm|WxI#sJu28XB7#oTQ2DsB=q;1Mt|Y_{#WL})b_lfKcPKGtm2Q*o)!P1Txe(-G_wfY z&wyTLLMt*(vsjb!kcA|k--eu%jcg<5Zk%FVg%)R`hb2OXOBK~@Q*`cDWQQr>^B2^= zN=ejg=;hFyu z>3YZSp%Gvv$6fQ20`mYg;#R}wA=TMjp|yps&^^_zP<;#M!|if~s(W0am3=PGG%XB$ z2%J-a@hWIn;1wEq9vYFka~c|vH6oF`zq`0Dg+`jkXhaWP^zm-z7>(r6Mho}ShP*2@ zvf74U4A-jaFpX3fhH0d(MF|~(HrDJ?LMOSd>8A*KzBn736ktM{ML@wIBbU{q%Uo{2i{sk4B-BR3**agWUde z%7h-s)4vTr*=?Uf7st8(!bVF>s$2Mx34X+S+Py%F=TAXSY5r*4lUDRE&%YFp$i3)d zo@*9;et&*(S>Uo8T0RucAM#bW_VXQqE5P-uaBZhd;Q9&I2wZ!)|3`40yrpcv(Qo9e z^sng_R%8*Ytq#UkzHr*O@k}j%NI`@U%qsjrF_A(% zL_T~RzVsseX$yR5KliQhCgN_%sh)7O9sabB|IE*$OO&Xib>Mw1c)tf&fa&P3!2N3Q zBD$a83Vv_y1P0@nO!ZY7R-iedVFGc!M#F!hOlWwBYlMa`aQ`_C>!a~67|$M0a-hFh z@w;d%t8;wlMy^#l+1pJH>acTmeLH5Ge5XyfXkF>_{Ctrz>D#MZ zBYiu>{TF>3cl=TZu|{{Nu$MOh8D}E>ObrZdz}K)?<@`3*cX$Z43cr_MYT~WzwJ4(V z2d_W9?#bo+9^i+4LCXo^P{^5w{JW_(oD)KF21(t9m3m~OaGg@>6j3K|MIFz-Er1`$ z`7MGg;@hxcXnbniqLEeLk~0Od8Hv0$k>}xkRL@ftp(^m}LGP$}wru1rU2|jX)2$Wk z+51epTPq6G1qEImv5~r1-!$Yi@Q`ABuC>Cnrf`-UE*w%rH6Y zj%eqNI{#grWR`t5*;{T$W|z49SnQNXAAG(++VZNZzlrxsSg*_2Q?AW01%59fAYtzo*tS{3RUJ3f?9J#jhjcZ{(S=h%(9lCHp40#PTdE zf=}8p;VW{f13T2>+X9XzL;5GTeUq`jl{od~0r5Qu;LC1s7}J%>ZRSz^IF05C^r_~m z&ql9j@9As%o(||q=+DOWtMtdY2pav#nLH8t%i;bD`XiS6HWM^w*5+0X&n7@)-{Cr) z-zLVG^~@>rs0N&GVw`Ko###ITB4cf3tbL5*CdT^8aTXi3tSvsqd6SH@8t2_RHqNWZ z#@PpLp4P`9w;EW3;)YJ+Cn;lHSFebLS(_C5aRcCgU_6S0Bb z&A=q_PnGkOb9;bA>`uSc+R%Lt3%r@VbG_yt@&zn^r;Us++IZuiYU6*#%X|M+fBr!` zSK#HyKh@6P>C+W>>G-Gm^mp300x#fOv*|^~`K!1+PYjLN{UqoEAg9K zR^;hoa`V3FUt!b{i-aDr_|oWW5xQ-s?cV@LMDByeUp1X#|NI<&SNMp?9Fw@!I$}Nk zss1vK|F8QCegFThzt_-T*A~|S8$Wx#tDuyhb2d4E_$gvP;g^%>!scdlmx_M@0IpGT=A_bpdE7!w6kF2 zt~yohHvEWXX6_q(;_v=++Q#yYRnc`%-;dp9-LvJZXm^!WU$@Fn40v-qaSeQWtG0FQaIVE`WG+(Gh@1OT?!3QedI}=|1O!woK zEc~M4xu5mxM=V1B;qS(KBi}taHV-uWCG>cbInakc)G^A1hl#%7N@Ohf+0z&ce$Eue zf?s4T^5|D&ES7LDW8s|aDv+^=jDsFLWoM?8%Q%$sEP`{DvVVm44GW^`3h!s{V%_d? z>lOIjd*Kjj`c0l$Fum6jlx?5zf+Y2-_88Q_ViqotKbB` z{lNStKd~vr=%UT%*eb{VgpXOY_o~+)0f$N6H@n5hEZTeZ%a3qP^yby9&HpQ92bDx` zBKN;|_fZS;-#-;z@C;?oEPrGL^V$4W{0b}rTLjPK`%R7LHowD0C$>6~pTo8~k^LqF zWgJqm<@I1!d5T};xs(qhEBw83@y8N7p~S~a9N>9m*zlT^ifykLxwi-zs8GwBmTk4x ziT$>axuR#Tus5?9`*4EThKu;E;wQFZv0o}1ck$!Ocu0F~$g3jzf2jG!$T<Zv`T*3=%597+-T0v6_c z;!Nd!+M!;=E+yapyY;QrGnAiv*`_UZ7kX;)*KlTGIlr0Qv!?h(-xJ#&_M6=HTiaJO zBil&bWMq7iKdoxk@5Hts_%omn{1fe9mx)c6dgL`h&I#upN-{|y9hmG%_ByTdPeeO1<9pcwttep6qp0}(CsEq#=zMQ$pwf{l`=H2KWYN9XfRXmh!#re@gbaSS`yf0K1q zWG8_;;%6qlZ=(AsRqPe#waFE3?h_*WRn$pDpXt`)gkq7ohIhvb^}Q_Y?dzE7XzN7YyNYH8otGmp0bcEZ#AO zpH*{K&A+H4+Bf?0{Iyq&wd=R|Ifsz*GMxUJm1ED7Zt&MS$6!cu`aR!N(Gik^HQ(i1 z*-C)=XAMb{{WY9zLwjc(Nmjq-Sz?ByygJ+Oxe8mO+}BSLILQus__(cMQw; zYCIqcxkAQSBqW8+VE0Hr-%I+!*^}iD9C?RLESv3>CA06n&r^`e9w9%@}_C2?y;#lK7>9ri2pYB`=r(Q zKzKP@dST7#u0gLWV7gV)obsglM_K#O_*4=DkaQneG{&)BGGH!x*?VK~{QsOY|(4WxF=^W04Ex1WL zi+quc7d}WI(Raz!D?aqt2z@&lr>aj!IS19`d=dC$e2&T3fJ?z+Jb8l8fNR0!yNuBb zg}J`7Nl67~7}FPlQ_fOcD!8AZB#FP9yd!#!)K3(jzN?N~IFod|oT2$5_!rxcS54RC z9z%xs`(j(cXA{1Z(u)rhG45xJlzDzxr=I>+%(lq<(1z&Ga>mCf_FUop1395Jm*JBa*XoF8&?5^*ArnSpml_u^3g0H* za4NVKoQHkH^}&MM3q!rFh3gAPZn>0yS4(JahKuvbbj}+R4wL`X_Aqj$Grh^)A!paP z^x2u#N!HA8j?wB&6~1)f4(!F`58MNOb&kSID)^Q>gK_lVp3whm$z>UpxGGbp-u=Jz zQALF6l5?{Au1qCrLDs4?@<(#7a;>5b$wSyLb4ZsB{+h>kB)qpnzH28>gDu~h*{`=d zZ3gnMs(d3YJ5#aSGF!mE51KQ$teM#DQVflIDpYh8`L<%PX}L5tcaFypvUn^v&>h4V&~D{SrC# zUaU1!)?O)-wO66sHp!m($>!pM{-19iZ`b3e{;vu3N}4URN0&p+Ok1W!$!C9!Gc|c% zYrjX@BX=jbvZhsWUq|1nGYj?Lhg_Bxr6IE)o+3EO;(Q?;^t>A!30?x^dv@%)fqY|j zrvhFiuaNC_&jH5cC2N{BQwP2jgFZ`__zn7P%TzqT$=pyHvNN+?woHAuHPb+@M(f*@ zpS$@|HREUGXJwprAs4EN4`y zeH_5=SAog%!4adY4@YuP8a-Nf8lz#JUx+R;6tn-_SFEqnN+Z0mJq! z#6;?y6X5|O@25o>eG=o5N?e!Znw2vJCv|M8u>5#SMf#7nR2;5t>^eyNo8awm?Sow+ zC(Hl-|FeC^WJ@Q!SChHZ?ClK3j=-Jto29K<2jrPAr+^1oEe#h*%KUmOZLY_=zWD>B*Gxj8$ zzlP@o9?tLZWU|)89oZ512Kk6=DcA#}%+5mB(#lEJ`YK{XO=?R8=dNuRzwff@mWrRs zJ+a&-U2DawW96nptrh#Z?`91$ZG5ES1@1+EG(GZ21$mpo_dj@~Vh{IL>>Y1$X3$gI zD^j2KcXA(T|0mp6NjdHRIC4+>|BHLAP1@fo_uxj_CwE%-p7zNDwVk|c%Qs0br)pL5 zKc{d{p7|TJ+&$Vo`XKRAW91osIZr|>@4LpI7P;S*D|sHnx^l1nIDXM#T=a^G^j zU--3FuG+OcHQIgQO#iq@d5_hvkK9*J@jF`z8;@k;YYea0nMS_XA0&i?b~!7yqjp70 zNb+(XDU-OSFs*Qw;|`G#2DgtU4!#*9`s~>i4(G4lbg_e6ajOo(W=8Dg_e~7x|e9`pl zY+xu_aVKqt=VxhMY4h zYn+_BD{I_ruEG;#KT!Ixn7&C~q#Sso{BNOuwo~!`+v%H(Wj^1O_a`Ga%KLNpFR_?! z@xI_j%KnZ1_H7NvtIC)X_fNcODtTa1oPS}y{T2VUi^zQ>sSRD%II^*uYmVyrTB*F!#u{}=ZwSe$=USj%TfMG{Edl0 zaJNnJ{K+|>$Qb8b%=e#7wD{J=xI#NwzZK?K31hhjT~NlQlesA4r!dAce!VhYKW7}_ z-P$VucV#N%e$vZ&eaqTWhFZ0I;|baQ?*X<|AqP@)2(EjSIIaF zzND=;QvC1pOvX9V7H8LfM zs}p>#{CISE5BRiwJUV;+S+%~8yiOOWbAent{d$Y@XA=!R4|udkDc5<(2O)S9o+x;; z3Vy(oORnIxkE`J6KHlHTc{iWq$Q{8^YVak#4UU#xOMYsR@ml1pk7*{22hqPRHv4#u z2knwvkiB#K0`qR(Y0@hN^keCR>?e=m>0R5#82?Yk`qD`M`fn@@{S7_afUoTUIO}7- zT4-BxWe}gp87f)9Y!zISm(>nlK5H1+j!n|3wa2q>LwhOgqkH0+v*>}EjfNbLQde~1 z6dPm5{D9{DA47AIxiG57j|%(9#kG3mh$!TUXyk}-$PqDGe%5EGEB;lIV|zAZwe5yX zf12ugS>|FdwwOKOKkKwwZzC@MXY5scmZZ$yW1?(;u_WKr|A{AOSAtsq33Z$C6KzU| zR-y5x9Int}Q!!%!jW#WYW~KbEYQ5w>ZHCU9o(R)J>7GS8Lp5i$<<}p=W+~WDe$-Exiy>}h0U<5|2f5h z45INxflXwE%j}!*eNBg!m?2rypS@Mie@}KpS8N^aToH*GirCQwJ{xde2^;pd?VZFk zgKKBC&b3eAK}X&fvDb=>EcSRA1EEFvk9~?b^zb?LcQP)iy$8pqK}XuN#b3`$Eaev& z`!?Zy(5U>EF&Doh8TUWk7L)S#^arUYb#{TfUov+8C>OKGO3oAPx8FxL&MHvqYnii= z|HQko&-8VeB7CQYHCNW#D}C8z9TflRT8jjBAypGMxcfr+wK0de{I>BDP)Vhk;q7BTq_3KV7yIH@@4sZ0t zDz7^9MO~aj5HwLw033wwrV9tV3c)o5uG=9$AgAn%sL;7x_1` zoI4A#aj@Qa*@MB}In+8lx_mmYyrae)9aTAV0G{>&b8H6h>|^d-O&gy-r~SRO|02(4 zjy;$8CB8f4ykLJg;b@jFoJ;+qu{O@ohSb5<*jPE2MO`NP z?;yFH4>RsY`t0Djfj+;b8jlKWm1F0k%;cHC?%)~g^z65uEq92HF8pF4x_K_YHS1&3 z@8Ua0fQ$1O&Yhyq(nt9wvAIE!1HMmu;{$x_9Q%EFl%HmeleS)0la9LAD@oJV>yq!O zNgr>1SeNXjz3TP)_d3*muOPsy)$&N?ka4Y zXV{b2$#}H)5HHMn$i8}Q0<`ZV?mIT|3CrVyqq8erwxMFqmrK-{+=VZ->`3HWlKVPa zr~2}kKh^M#Y+zeSzKvB4m1Fk4Eaw#ZdXv)q>%Zuef>#6QXwTI{gYaOHng2@vKGly4 zuAqE=&kaLCcoY8LP7I;rfyY~huCM&2STNEy5fTS&oM(#3eM zex`ZF5%Pv(pECb}`ZJ+VS>Md$dw!cS@e=!~#crM)UB0t0cW4%P^zHZU$cm1tKga%z zjE5e$EA`9^`Z|>Cle6N?zhZ2>#LPFTao)Dx(dE(hO+$b08!3>1FM+j=*7q4nEKYNCoI7rSd~25?MX>k3GI#Anwf zraOp@x|{2Eeydg+JDxpsmGACDSNk^J zPrFw3fHwbbba~lz`#aK$@tfD_e0M16<~y0|KRJA3emeNL6TjdC-W&7pAg1zXf6L0h zV=7nZ;1Xk;H$;cT*o9W2t{Y>bt2=e5Y35 z7Or15-Bl2zeW9@;@~ZEHZioqAicKK(Hu&sq$4BP~54FLcjfHc3cJScXtps)uvn*w@ z&aYS&v#lFh)IdH1p&iN5C3<)ndx3_=%<;Js|^YZ^)zMuwZ?Vcw&XT|1Hq9tOMxV!5tMb+crE|?(mRLUiM6E z&@Ah+(~2Cwhwru#6PyQ3lCQJVqKqhQnn^q|Ywh>>7P0_q+ZX5SeI7gfIv;pE%<&KY%Pn9qL8~ zyE1;}dio^&Wo-|3Ute@7xli%`<|O_PJ-Ukri_qDiPmw?N-2d73!?g=S*ye`1p|dvf zinL)H3(HL@!5{G)Tb%#CBJy5m-^b??|L$?fUNOjE24sFCa#`3X zbv=5p$ohTcr#-k#sh`HTKVgm6$+-w`Sp45(t=If-!NqL)_B_5?Kf|`Rj`e&;jH_|G z+0}@yHS(hbSK}t~r~J5>9E6g?{c3W|K7b8RP4)Io#n#ry{+62NZQ;KEHtcfP;XKzi zhdjyng|n}4c$V_2XJ&Kgdmj+5hknvM9$k+9Ntt|Kbiq0NdMLk<@@8ZKc{WH}^1Oz2 zD%q#@tc{YG`lW;8wp)I>OgZkLZ3FA3$4mZ!^-Abyh}^8m2i3dz4l(*=3-sHnkUw41 zl~)C>ldJ_T%OuW?wsH!|`L)wBfQ+lfaY)V))}I>c53=@{Pi`ddH@+RJ$-6FFdG{wD zSlPSXX_?RZ(||AgDb}A+WXwu6wl?-ca|Nd`aBendBe52l;HRG7^Pe@#^PbB2t0rHq zYH`=(Ob!^aGqPtL+DX28YcBdR{oILs;7Dq>NSlH)WDxHu^7xfbz@Iop*3 za*&U}!8t3n?~%uS{e)$k+zwxEw8Rl~Hy$PT$iC^azaHmZl=qnB1>Sp+_a0}T^BC_P zv%O-YMgq`O!*VEo0lwnF|BtjC4Y8@J{pSW%j2iJFlM{oQwP>eecsx zcK!_=qvYi1ONLDaekWsXm^9fp%9*1aX&*Ek>CHbvK2yV*$;;#{liK1rzOt5E3hXUy z7Q;i%24W7AUSpoi-033+nb3j)|JZ-uXWP%S7woyQP|KBbl6`yeix)m7c%MZ-wddxd z5y_j$yNpZt*{7`6cAg7-2Z62Xzecq&ZDDK}-)%KBv8muECG#i?y6c7CRxPvp4DH3k zZSYos<2-XIRdtO#0UQFG*fiw(0!L(y8yahdYk&`0JK9G)$ftZ?U=ld2z$j~N6}&|F zZnoqyUzq7nUCQ~S)EQ*$`!rke`}oP3g5t}&0z3@RzI@-Vl7oqPas&1f12Wix#A5d+oxv4+HOc`YHTF#Sv3AS zGdxBryy9-~-N`vwgYY<6!_V+cU@gV2G@wriBCn4Ou4yJe=*F&(jINP|=omh76PK~B zp59MhRQ|UYI6FRy4*RYIxgW|?0)s|nMEWK6IA@IqUCiWm*4VqGZx`r;#E#0ofb^qP z#=bq>UyWR#^-FB-X?p*+`TsrEbg{+lSy@&9O=@dEq+fr!_p|MyyH(98y7Y-Y!&!Am zcM<)OwcE{lSH`+m%KBHrI(Q55MmM9^>;0npqH{ahd-;1gQSv1x%ICRIGGdm^XU;pG z`63reB##Q`6>58WU&^Jzp5B*osZ4#_(!~6^GM7rkX2728mK0*uSiZE#x8=Ldt%|>jI$}58=~P17PGZN?MV%A6 zZq_CH9s#!^XK4FnUukDl^5?N;Yv1g(`WFDt##z_oMZxcHZZE0h2IU#-c!rdxkreo~LJ-9e3Aod4C?C>11C73wV z!_9dPsT$67nvDP+;H$(BBS;R~{%4hdN8M}@pGJ{y26UX6cMs=a-SgRYtC9J4l`DYl z;bL!9Uhb@)ag1Yt$*Om3eK?G zz&?(gVfP*A_N!;u1sBI``vpJz54Jd3rupNPwhHI%)eT04{9(`l;~f+~vod3;dEs&74)Ni5V_|ubj8K%+nsOa#rfi` zHAwn#haRO+OPk;~|Nh`_}(#IDz}rQH~#$^IZLT@yB*3Wk~-d-Qu;jL-+$vz6_%ll5vNx5bp{obd}^+P{HWtU1%c=xyOI5qmOPwurqq2J5*w7n_DXa$R3N< zXC*uGl=1VS$$bS%g@Zg^u?x_rTMYG%mUc_!E~nQEK3wW!oC&6c%)@r{!FqGIb7n59lN@OXejXjANc!FA7=WQ>r%h6Mh0k2k-GdA!MHbXsjC4+_tc zF&Dp#2V$GY%e;OdPFXsDzuCzg@@6m(WuKn&v_pF~tJ_@Yt{=v@M*htDzY*HMi@CtO zW8Da!iyYxeAM+eJe58rz()N|OF!UB-mk#IY5FALqOU5a41V6^kB8Qz^u_8-9V^(Iz z4)3gpvvyP*y?n4D_OpZcp3dsLH~zDo6)!3#FL_~>=Y2bESedTEA-k~d|{&_=uWgBxXS{)5}!rABQ3zhSPD!5 za{JBzu6VvBV;T=k*j+T3c4EsDnA-P0ZuylO>y}&tanzHzO!PWnigU`@Z$bw$w#H5! z<{~8}>!QwaD`PA+Micd9&5^p#oFBbTZ0J{xd+z_2G2fs=mySY)h(?we$NCh*`ea~z zG6wEvU8+H!mNi_~B?G=b|BF4t-wmewcMzY6j2Arls1g|cbyTST|LWPd!x#M;C3J^= z(oyZaky=B@({$&Fn)@=AWx@0Mc|YQF-Rq3Hbfw?*d~8p`6HD>C7M)V`$qDF^{l6dQ zuqUHm%9@m`3m8+C*#}$0=LiHBJyx;jnl_8+qv!86qUSigHC-|$E$nd{S~$0WHAVb@ z$T_#AsPh`X)RlTBWFUDi&v<9Ji*g5f+0n^%%)L}~;sbP=>E-N+Y*3Q=HiY+yr0z+5 zy0e)6uX;O8YpefSB_w%%FCpuZ(|ns|Yw1iQk4=U%gZKZFvP0NkR=s5LTxME*9TjZJGm;Kfs$vFeX`A2QV z`S>V{?O`%!=Kf@d4n0QN>&I3$KpsRBV}UREc;cuvomhPQYThgg8H!8H#CX*2(HY$R z&`=4u5xn#;*ZQAbK+eT6AL499&bmqwykVQwWG42TgB!?$_BsB>rOm<5GE@Sd`+raz zGN?*L{}1$`|DgW^D@(B97`;`r`{SZ{z6zO#zg{4F)U*4(TQt&(uJJS0eGf1Rjb{N< zH*-Uv5)gt2+pusihuF>#ih*866WbG z%-5Tlw>KgCFW}6Z@E&ADewVduOm-j6B@Vy=y_Z4b$o@Md52DEJE@=Hrviq2wQshf= zIumoH$1h*!Bu-}g2hc#4lI;BeT!{>)B9lt2`iJ^t=Sun^`}|>fT>p7a!hUQ^S&85X z+fpU`wf|~tN!Td|nCFaPEpZfkj6;VUNy%ZNg`sqG+*Qw&LqF8Y)2_ z5&8iZ_G0mA1DCRXN9L!@O*uQ`9iCrV_Ww}!=J8Qi*Z==}W&*rtCJ6)*mSLGBh-N0B zqAZDmnIx!LKqR16Y)gQ)&ScOwxHJJV30ON}aCz6Xw9ppN+L9pFw$L(m0kjK>TG5Zz zt}H5M0l~Tv1@nEr-jhMvPy7A;et*p4{hs^2%em*Cd+xdCo^!79yw2KJJZBJeLOI}` z#(PTV$(d?L?GnHBt>Jy^7ZcO6cF729Nq(*!r%^i3xx@ea`Jwotd>2L{BY$VG@kH_X z@s^MJ`<$+Kaydtt;u;bE?yaGSAG@sB+@g)>?%!E8{<4i9AU|&&@3sp6;~~Dg2)RUz$DkUSD{)jkcbfJ*X|hJovaN z&5EraZ+&<51Zx#%^6xfb`+&ahpw@kCBVN7As2`86%^XRb59Hx}oSjGypQiuZ%TU38 z@i4`YkbT$gtB|ds<0ZgU?8^1lMyD1@@2q|MtIko;{m3CDuC)3XPwBKjLeH^?dw?W| zT}PSPx@3Os9ZkmG&6s!AY~7eMzJ257e7CjpRacw(B^rH7{aTj>&m4grjPCjx75oI3$B$fNwPLl1}P;}QDx5-{fuI5l10Pm#X`9GTRgGk+^}r(55r?qs=iD^*5w@3)kz zMbFVmJMuw6=IHRex#H!jtdZzpJ$4KN^?4h%ZxfLvt0RG;E?0Vo`fR>(=gZ1(=8cTU z(9aMr;GJA-lj`asMIQ3$j8A<{ohe8sq4NpJI=V-ec@_MgO=t7DPhg_d?zFwBx@z{(u0$M)jz{nzBxLz zp%lCcM(Os=A*_v#u|pjL#?}m=zA))#X+?3^Idb|=&R1o>93D439;9t_P7jt{JH~F? z{Z0HPe-di6*G=@UX`GXXJ;UQ^5m(~f>OpNW-^l9h0gidkoHNE6)4lX5W$&PI77e8E zg)H$z*{o4EzBE@4Q;+PBhA~Duw@Ix-|9|yJQ%0bNESF5`f}f)*F<0g#4;I zdz~{8{iJVwxT8D~V0QR?Ib@2;ng3H}pB+KhFP1fD zS!KX0-L_!AIR!iKU*J8A93xpyWy7zQBfI28w=h4#e<@G2qDPmEk?m;nsa{*}s4=RT zVTliE4HUfUc(57wLTCC#?1)H;qenSMxT-@&`qfdF@z>3qAy zZT6&#E`dvDA72CCW;VFZGA17Zp5f4d^pthLd}bx~QRPY5MDU9*cOrWg@lEvDBKVJ% z+xOSxu~!t|+dR5*MLG3{@Bb7}(obzXrT-L1&!#IjyiP~$NXG-v+lkK?RKAK~+HM8$M&9f63|0Cei`GC<_ zv`gQwrBC4vvl7^c!TXV2$~n*E+Z^Csu^}xH{{F0l?hMucmETWGsLTQCLf)xw?l2NZ zXlDg6&2Hj{jYIHC`g`wHpW;_} zK{t7@kGJRFYSCYA@{ZY(Vc5h8S06zS8Q9C}{S)4&V$-L0=d6V6Xl*(f$onL04uQFe z{hILm9y)*u;(V#E;?1%fQs4aW<+ykfbRyh4WaoVPJZsCRFq|ygG1K}MeP;Y^xQ>X2 z4jI$WLj`xTe}AbO)OHtn!rx+?ITuQEhgNhVbL`CLu2$$+d#gO!5*=^i-R{rhq=R4e zr#63xC7Dh(hnIr~*0HIzOGsl(ls1jD+Dnkx*Mzo*$$Q7EuEgzsaiRZfo*5<|G&(bU zcX?vf=7dDA*63iXC7owzK;666G}NJHtO3}_~&;x*7+jrH;D5QbWd<3giq;eke!3$ zX1dx!kyF!^W+IdOuXNdVz3wsSF!!yksd{$%a_wjJzP6%$xpY~1v>O4Y5=VCQS>X1- zKXiXsfV*z>bT=4@BH(Gd+hy0MzM0M31M*}=La=L$P4akO?^~ep&|D0Equk~}c^cy# z6RbMMYly~+y---ZhItFmoKnqLYtHT!z9nHN|jJEIIvFS$ZyKvJ_PY%7q z@47PK4}8mam#tV$dGSK&vGk4gerk9F^yr(Fht&ohU+5Tjsn#CZvE}hT`@H9TyXoUK=e^)NiA?tZ=@Um8^IqWD2c5m+deFBC z9(hP|x6`P5A?pF(T<%mj$hVVxJ3&4_>2GJ-&d5QPR^XOYyGEa!Jf7SmS>6^);x}MRy%F@r@^PbDvqk1YSBOKJ) zeE~?1*zwc3g>J0S%x6AS__~pN1=Us9RysMMn4%zVjutsgLRweW0|Ilvp z5I*?s+T=HP^AGKDa_1(;YY)80t}}nDop&?$OWXg?Oa4E^9>@M)*8g4b)^4@iImCQR z(Zu30_+yMQrhEYZkxxVzKC5>>H2#?Q-K$q7+|ajpl4O`L@5Hn7$yRJEcv?oBf$)>b zGU6SNl6Dvw`13rs@Vt@dVxH@GYJRJpeegwd9e1%~Yom3_Zm-f&-vVu4OTJQ`)jUP( zX*_2$UU%_~+?#0ybCYG;sLN!03T%4mmmByV;5+97jUNm%+SZ}>3xB=>e)uW;;xhs4 zwZ{H?U(w@4$h)?`uj1F@1G1eH%*YQx@nn3$M;xT?$M6qO-GW`~KnLZt4^mn?|DQbv zXKJ(3fsI%W`bPR~ZZ;D1&8}B%b`0R|VbVSHN9_j4AB0u}=OT3GZt^GT1p0z*L@Rs# zZG5+ISGmUQnC@@AGt-jH8ev>g<5>bv331m->kwnA@;wJVt6!a*S6&5f;T?@0elhi7 zLvl>aVeoqBAp$)90Q+XnBR8G=Zw z(Bc2^+`@AZ>6O$i9Eu(yD>92C%QK6gr0l)qSqI%@k*AdBv;24P{2kA|%%@X4ThA#g z97ir2)EK4?4sEjURC#!`hw?Ukf!A}#p(+HOs7-LC@lgNKTV~t1ffmC3w4^gprA_Ql zt5iAiTBLuDHkN6Q^wU8XFjQqV*Q^%rJ%_FrlV<~YCDRBehoS3h1RwM8_dEqd6=gIY zOTo9~D|;RNY*My;p#onbY$q-{(>EeS{@Jo?piT8(bfC?!0OP_OD8MN`cisqUnz`Kf{>JXe=(6`_d{%!ha9+U`2(5HCDw<+g<_s!!ee~#Ha zTZC_L(M7CF!MK%vs6Nq_;Ni^pEPZpHYtyv&mEC7(PpYyqLu&7*@!!IkKwjr1)-$KU)BQ<#Ybm%F9W?2TmoaNXzp#aIt^lw2gk+oR zLJ8TJgkQQcSuea>^4ibn+hgPt??#80t@@Wprn(qe7khEoqWrvSNaIiLW)mI z&-^AhlCIG1-!*By71%|oy~vVzw$9v*{2p-{)7(b$(8J@=$6eqE{Q65Dudn@5R^rf5 z>7kN)ZZ~D@xxOUJ*3~~Heb{;E^Jx3k8@^dH{7=7Jeuw(}rFnKf^S5P*TI6c!+Vkjx zc^)=$^j9`5?z`Zn4*w+)L{6H)O(P}CCeJv_So^En(-H*K9#FO=CyTV!~%`h471)to-8R% z>J8Je;ai9O-m*wwSD@eCM?7?&WNGACWaX(ELuh^KWf~veWBR7KgnalI{45MyZr~9d zi-93Ro-Xdxh#*&YakeV?S-RyF>|bOf)ShX2We0{XZe9`h4oTK-?N7V?sT@n`1*DH! zHF9+L=o;;(dxFe^3fHDxm9A#aAkZ1FD&Cm0%Dr&|eUyF7w|UySd}1Nr$au3KmQJ7} z4;)^{{}?tO%|r2#Yw6q3%&)?=XqW8M+w$=Vqn!%Z*j)=bdrr**(b>Z~+xqOK_8z^F z@sYkpeXU*IGPCy9mYLZZrM*y_wO+P+xcTr-opKf~|8`Tq2+ z8F;{aah83y8RNWX1>>gk4#fjeyt$`=Np#R!hksRsabh2q2R>VG<^L_o|6AZ$t=O5H zcj!NRSpG{7&p{L;4uzna+eRX5QpW2m0D*>n?OTKc}rjoLABx>lNNp`nrk+|9q3X)1((U z4DWvbgpt_Uy0%7fg+5qm^xlQuxs$%GLO=3n=4A07)2utH+LsTfy{|I)7eox;Q^E3nX)Qb1$9tyVxJ$kA2;WE#wuS>vE2+{(?93Q9)MB7kRcI-ryM> z7cA1z1h>pec;eVUyJsZ|N6kvqv0wMxl>G0(E;>M(S(uh^uS`q)<0E1RT%ML#O&`q5 zXC;j4H1s6I75R4g3XOwV|MQI|^M4=wO?z7A?38fTJ$6hhbI!DlW@~BhR>Rnt3GU6= z+=cmi<3Ehf;VRV-)P`VUJFmr>A|Z#-@e;8G5#U#kRVJIu4O%Hc#oO z-UpAn(XEuTriphfLeCrlR{><&I&>^%-ZRAHFuhgq3Ef*(2mh!ft?n=7@I$wqUWtAn z{0~<`aSp_@Ds-+%T@h^dRbSnTS&69XB432^wmmOxNNzUahr~qlVy7}MO#M;nm5p|R0=d7@J6bC{Y(= z&eNv=ddEeKStWPLML3I=%@ls!(JtiXYWnFhn!oW>e&vct-m4p`@?P5zJ(9*y4)ia*7DDlQk{7}jq?&`&ytIBqI&)?AVvc7Ho z3$%XzEbjU+t4qEHe*QxLoTaD!GK9IZYUF(X8CU(9Khxg5q3wsB9$+2%x_A4fgQPDl zO?3S-)cd0H%^Wh+zqfjF>1)`NL5oK;7iRmczh611?eLoF?dosz-tvU{w0O0#J%ztO z>8H4><4j)ot3yvl?57ct$IBCI!Jkc^+^r0*t;(OIC3f>o^s!GmDXr~GkQ3g)KuwuCGW`N`|D3&K}@p?F!%@TL&G4q017-@Mz#C z-}0p+LvTlVa2xviCUBGvuiIW1ExLxg)^A0hsaSVkVXP0#G=?eGUGvIl!{E9v?;0}0 zstRF~p?gM$Twzt8$lK!^eD?#MYq3G{$yG=+~fK{B|eh)GMvDt;RWt4t(qX1vB@Lu z(6!`O9JsHXbB}B0`7hZ0xSw)=R2j-X>+pEr#$GX1t}nw_t}}zVl)skpkATlFb04el zqdQp7;$@Y8zVOmyxO-;XxL#UxEx7&)xPAwijVp{{Ei0EcOeO|h8TI7NXs)W~p3>YI z&DE2+t8{YyQ{2C5c|taxjp*e3B%X<}?7bE|3$Jg(*YJUzw-i6Yqu}Uihs)b!43DP& z##nIQUzaxA`jj0rZJyG$GfpoozM*)#V{jF}>NzVfY}kVQ@)hdo+lxIvx&ig&I6NZ- z^W$|(i{`Gpwc*RathjmaKpV}#thjllz-&Mp!e7=5t2%iX?q1);cR%QvXTzKo9nuf; z31U3Yr9Hu%!CWP7^I4deaz~2bo5MQ))Bq#<7W^CHn%9iC&e1i_vX}7832Y2Q(-CNT zHsjt69UNz0k_jA&p?HhpCNc(3F>`zpEjmhpR>ar`4=Z!-4wdFSMqFN6F; zDEDcZ7kwGr;j24HR8D17wv+YodB#3f?f_$-3(qeJ68C^-CiM)ao^$EWq>seDuHOP* zE}v;+sc$+rc!0iT=Ks-m!gXQrq$`WNzO%e9ta_m85$G#bzw*97%tECjyc1fCns?<}!+93z$#(;vLAMH{IFL!#q-2fbox3 z-dUuxjBfZ~<;uc_^MF;c$JT)}`BsajqtLSEQx&)n&C6C?^CgO(5&qKE(FuR_EyHfN zkal-FywUsqj-NQ~cB2X^Y(xAEeKNYyVTnSPweiQ)85k*>OCICZv*;zoOJE6#J|l;jVX7qM(F(F z+vwG_$I$=Il{(XOZ{I3e4&E7o_jaGamxensWMi}_qcysv!&q=`%vW>rCSS__sB=0p zFLlTcsrzz#*(PI~#G2W8!O(W`^uxCew2mwtXc_EjuR|_~APY%;ve)!YrHNx3Sr<8j zkuOL9-bKr^YII2+~5Bb zyflt3guXX{*Q$-ONAL%Qj}rC*-36?3^s)D9?0J!66~pL#mp6D_Cim%ZF7bsLNBkXIp6DCj2d9#2@VC=G0s8K#J&!dDxQR*8ON=Mt0{EE+?BN?{ zB}UL+&yBMZ>3Kt~j0ke%D(~oHOO4)RSL3UYIU-&~4Bg}V@dv_R{==J)eLglg7aD<| zpCb`ut&Onm9{VdeE%daz4-c`95!0rt96Rm3LoG8e%R2Tl-!8`w@B)6&lArlf%lSs< z$DzcAmA}|^E3!`)bG`Ggp~OV?)EzF*6Lyx!0e>D~?9iSkh90qt zHCOkh1b`(ESPGByy%?S2vRVyeNF8^a1l*o@uEYOo_(I+HH42+bpM4)q3O>n?BdEKx zTyxFWF$Q=AOOD{kEVq3klQP(t;Beql9=4oV# z6Xl+OU`xV(1b7uJ+gY22+_HMm-E=i`yxI1I?@x}`qRL9fA z4LMO>6<7u@|IR=AcC5hH68nSRBh(@K!Jf(X*HoVHPp>KFynT7-oxTN08nNjsSO%Tw z`#oCUj8G%{^2UPjiiU#dWerWqv|`eVWkVod+se8VIMFvH7!KR_i3Owh-8p>mR^rCq zMxHKwD0|97iYsjWjdkNNdt!(_0SXZ>3R9wzJ z^3{715p)~chfCiQgAeFzg+1nihtWTkFt5C~_bmwI81qUv+kNCVWPJ9|rbQM6Ul}zR??DeTg8~yYXv`)R>7o;n%&yGzn9t6Zl`v z+~?bO=eYSFUW$&)nNK{Jrk7>+ysaEPEqc1nDEpe*(9xnN(*Efr>!t}GI{|<1W*or9 zJjG4beCvdt7Jx(P1jM&X@{D(y>5o|#Xu$cvIt>mhS2>2g!#D1(3VMkdWny2}2hZ)i z$ZYTXx~IK+E_|8wEPP~5q6A%I_sz^H)-(8*Ex%ou@7ZYYF@Zk}|J44u)79#G0UuV4 zA!iD<4W^rz!0jswc6Bu}hW$Ds*@Or$=BljG9&`;ATim0=#GGS4hArlhj<>H)Z{Or_ z^yG4uo7!U>4|7*KW$^o&5@wH7z!`z?ARi&MR|kHDg9v^0qsQG$f7_v(u700Q*|v4M zvV!lZkIdc98(2G7A4ba zu}6EMDM#_F#Pr5#yI%1cZ6WB}Skkwka}8tSFm{T*_JNn~rw3RSlyT#WTuEN73k56h z+_l@s*&8xK7whpv`188GPKz~UNIViLs>1(E=^=Qu{C{+2(d8Ul%^sfn2YH8oY8~ow zjSaeanvM}(H)AQ?q4K#0w0gw{up_MQ8W{7MxqtO(4rtBj`WSvpeAbGU(;7^CTDGp7 zwo9?VHMs4%8GJD3BriDNS;yY%Q_KS7*O5W3dz(nto>?|WN=tvQZ|C;~3*)LY z0m{yk&wx$Ci-}!zqHlqX(|*0Y##Hl7diMZpr_QkyqrLlTe5F}apo^f&M*jf~<9k)b znR@l%MGdnZp~ehi+>3w2(O=EpyQm?$$~iyk7*)gn>iw0IiZXzEHhCo*Kd1l1Frr+s z?pM_JYImr(Dv!GqD+`Kbqaj#3NOOj+4eaHKezokjG18A=B}>(zqNakK50IxUD1`!|Gd@6itt>W z)$C!M^e#9AgJ2OHf`PTHUb2P8NU*R+UeH|*O#>r3pN?mUb1ImiqXXW<{)TFB>%G!w zP+aH|%}44w(m&?ijPZYL!{O;k)gM9+5oP@AfHTVYFJk<4&NrL!#}}_dw5hSw_!B>( zXD#E;cow05wdU+AEQ&&-iV?ktJ{~HEmKb}L6%47elD(hprvu6znDbg;gUTUqouz|U zs6#kNjf>#!p$_4slYWbSQ!umU?FiCuXyQQK1fzktzB{|;hFCj7iOKMmudv>3#l95y zgV1m=qkimAtzn8wr1h)akyDMXEHROo{O$c~7(5uc@i|{7dxX?F*4e-3ksj$F`yS7Y z$R*UFeb4)ALWw@o)?V`IdU4C;@NRgT_^@_tWaO*F#zDt!!RTe(|5q zr&)6t{}TA!o*;amy-S3>lXS?(*l*bLfW8FTH(eZ=m6*idX%k~Vk-e1mR+1CyJf8UA zy9bZ{)vE0t$?8??5l^trR};sq4p|j@lD3{l_zz$0yvW^N!J5#y4g9fx>eQO%3I;nb zGJ3~g1JXd=hxpY_>|3BULF;iP_gn&Bw2t}E4eyq%W{1l|%n)oLwGOiOdm9^1bpo#+ z*v#BleCg2NF~)i~X9sI15jWvyp~Nx#Ms$`?xi=8+ei}J!*jnEv=Gk8IcC$C=aT?Qu z+)1Z%?PHH1!!`Qn+vU+?)a?z%RY$69s;*QWvbRtj)vAMer?qiE^SZkl+s;T`QIzq5 z$4!wwTIT^h+aw3ZecbmGx9G3V%6n4z8|xbWYyRIA#+%7sf!s(O&Ut=f0(~@SgYVZP zzUQ0qLEqG?smDJW`v>%G(pybp4c|W5WmWg~4S7s(xYOCojtthahId~CY|qpc{h2vs zmqB;fU*?JJIWBAee=GCnx(3+`_t3Xv)Ip4zHpRS4{U5>q7yJJUpM{ZV(Y2&Whps%r zPa$hVHEGhh3r9WFGm*T)RpB$yBH`m~I{Aa(r0~zt2FV%9drbAHZt_lyEGwEyT|ZL& zsc&k7{1Y3OHC)KI$N1KDIsEeSs({wka{lX#`{U_J`q!ED9_*~N*FTr`KW2Z&oiM>- z=s!jGsd*s!uk(zGPbD_P&X1gy=D?H8fe-rUfaqWIKy$zk44q4fn*h!CK>PMw=%@W2 zWN`Eyy_aPgQ+9cbwwL+UW`9cmtttA)ZZSpw+o1m@(LXkQqJNEB`Z;p|c`sq+?(>O9 zAD@rR2u*C8T(~g;?Z?=QZ$qYgtnOdwLHH~MzsI3X(Y{><{YV@dRk<)U1wB2n{qIi8 zF8^=zq;W0Q_`r{k!J{|Qk4fkJxA>2LNp?5iHO{ghvfnkfdZ&!&F*o%NolW3f^`+?O zH`Jl{=XP2@9VJN9xuNRnp^pDWN2&C4=tyU(%6lwTcRw9HLS5VWndg2#hnCc*&HQ4_ zKgA_R7LT4D^j&-YUG~qusiLnBT%(~YV(hTSu-@A8>qqeS_r>4;iyV6wem5yO_EPGX z9D4#AcCGtwBXjp`s|d{P*GJT`ZlR0MTFUbS##ZZ2VQ=3E(dn2|eIp*A{FoB_B8OE3 z?DKrty}Z_Me?xj|Kbb||d&sL;L8m##&EUWC+vjNC&b94zJmgo}>*%uV^Wbypl5c?a zr4I6Z@?o;9ZR_)#Y5mxZu7kd-Ea#msmi?;4dXGGQ+OyA;+s0WZ_^&#hvMI>*pJTf} zJg69r$#%`^eEB3iH`V@r^ol_?Z@CK_jKh@Y+Y@DJqpgQ%@7ew`Wjga-H_Q?ba?u_( z-4B+%IMaHW{IYwHy~9hqKS7!C+cK5ZD|^4>7LeQNDeGjD}oRZ4d`u{$={k9;!Nk zPGS%1w+DMq?Sr(YDbBo!@2bk1#O%yv->NeIH{YZHdC$1g&@;I33w3rV7Q15p6~ODz z3-9m7XMPd!M+>!15xbRjqsQc%O`N&zB`)iY>?KNEu6pQeK}nyhK9^?@ zd7#qa-Y>h;QOHQ_^@y!IqT`6uy}#M%uv(6=Pj?x;&s^+k`&NFa_fF)`lBlbGF>7}0 z{_?~q7j_QBYfwCvf~POzZsid@OMu0sE#^^{&U;INL*KgmvS%A%-yu~(dJFh*6GKw@ zQw4FT7lKEv>lIB;de%ZKT|fKQhS1l_&)kIXzkJ8QYkWQ9_~F75 ztLsOO_Dye|4p(=YAcvMd1u^Dc|PGg?-UX9QyeaJS!0p|m~o%og` z^Cy_|*71hnz(e_-2WBXFth%pDvQOHIX{x{V7k#p4kMfd|3 zvS(2Io5TIO)?xJJRi`grPMI@<(48|5`c}ZX=xLstTqAnQ*av(J{lvhR#w^S?jT__I z@h+wHovZVS(cqAN6Zmh4spJ7f2b&a?^)Up(w0h7WN%3dk(Xv12tQ0bGVt#|?5bb#F**%bUWb#r$QGs1m;UmHDSP;wvipdS zW|C((blx=1SiZTpZ^3tg@ysA(USmv;lXBm2Irf);57xAP7)EuxNFDg&#$(X3aNO-2 zzW-s_G2(mYz~1s1>eX19tc&g7+W_AN_|_P=Ql=T4S2)c5F3xZg)TOaOCmH;$`LBLy z5AgqW*|c{0tTg=a?m6TqKALo2{^0M1VslH`-|}RsoixFz4o6hFKr?Tz zFWZqF%x2u`E-Y;)cFz7LbX-g6TcP2umaeUpSZB#on(h-#SFhj&ISoSVslCu6bzdlP=kkPLaLfCgLb` zqDw`N9sKS^+(*HAin;ev?mdL=;o0uvSD%S7*FB}B_S5@*=*+w1fA?nQ7cyWI^4x0Z z`v~uc$IB1aWxesP(~d>TdER=(jeCDLGLrGIZ3nfRbDH2c@ZCl)r1G=DLB4#-j$LGp zb&S|AdyY3;V>_+_-mQ0!ncq(Q%EL<;XLL}uei8Vc-067LNo>BXQ`5gi%!q>N*cEYC zL@{;QYup>-fMa-YDs}9;b?i`oDf||{fu}vj(2L3Ql-9{NeAXns7yO~jj`^^dF?`19 znpg67e9I>g?@fF-@0ktVj^>v|!?+)~1=#tRgJ+W@F%UUbl zU1Ov{x;yFZq!*W+*b>ol!5|x+EZQ5vS!N8Mt60RC61%k`QNh#B%lU-8#{R%(4H8^~ zOM5Fajh&qrKtI1r!ng9c6h+#XbGs-Gt+88qJgPFegH$A@ix6xyN554w7>;=un6{miVUi?@1YW>nT zE3sZ@pwpp^zm)aDM}DF+bIm>3F52_8b|8K91y5r4^rsnv+D=}IFD`qrj|!m^Xf4Km zY%9-wcRPl4VQ(Y;DO)IW@ZWqr=<2mz?R%n`mFQfc|Xu-|R19=(SSuL@KZ? z{tVyk`E>DRjK}EU?Tp1i(%{YB8+pzGo`bi#>Nm5WKlqWW-qG1-*Lx-3hT-eJ=B>U3 zYq1wIiF2xU%u-_>_G{IG>9M1I3($wp`#Ns68E9w_wc~)Fs72t?-*^&6F=F?9YU(B#k*(Wp{HHkZ8T`R z);nUPbolA#5%KZ#QTT_C!M`^r=mXAu1+6vv@ZsFV8GJ2swcvdI2e;b)7ZX#pfH`>` zWn&A?#ANu_dAw_lJ0cnQiGX#7A9|vm_h+7(X3wo8|9G+NJ=1cM-UaUv9f^K4@0Lhj zPt(0lqdGpid{Emx=;t-p*$=fLn?G1~dYly-V`RBFU+KI#)H`hN__+A?3G!Otsulht z8~pWkX}#aOHO;ocXr=ze$R06b@H|gFvO5qS)-NH?m(qHhiRpBdG~sR+-{lLv7d@l? z@8JIlew)y(t>Ju2eS1p0-56&f@7ncLFfJMs;Ue}8mpwK*uPpdwSt7!>0N+gRwkY_e zGttVpdHcuh(A)6)-o9zCGH%M-HSS;Y#>l&g`ZUH}jPd3V`=;GO-sIf0t9mO?A|D+?y>dGi$`o1>eV zSI^i~9J{aPw&~acOx(J>d3?nRZ2cC9HY-|_w5j`O1mi;+u&qHKFIeEsHZ1mdJvYYs z5-=c>C0aS_-b&l>fvizHHP@Q)-D`qZwD6Q4@_2r`87JaTP1))k7I&XnR8+zlb%=iJ zKm4s&?b-If{q5MaJ3Ci>?x?0M`6MispYi4y)@tgz7kY=+OtI5tKR+hRnnYSIx*MgH zBE#jqILvZ_zm=pn>%J=00o~`ta;?>j%N@$!pI*v*&3obsYYb_71{+f~cHUC+bOmk2 zzGNoEAME}juPJ6#A@Qn~A;WoztF(^wXB~TkP2a@F9{xovt5Y43SWWk~$Cd}|m}2`k zENZFjQQRouOSEzmxO#p7@ds#U4f58xIEFtzQFih&D}#Q&?-~|-x1Yw7ae+n$xukIY zb)+SebgU<7tXn>%^=|s`@3ilP&NWZseA61y%2RXY z&|r8db$u0H-dqK*7-8(#L~J92Gp!jT@aHmqTVJ@-FPY!BY|O}wwBVLWTukCU{j z^VX(K%t!WPr_=AR(Y*TX_U+3*M;m@)O!SUIV_qq~!>PWQnMt~J3a3;2)-KwQQm@9> z#NIxP4T0U>aueQ=(;@iQ;B#lsYk1`!!8JCDZEJp-93%E%sX6&X*=NUEQ>aURqSD={ zP0jb!k{=5U>wDDoI^(A`_>K}|Ud2m&Q?=GJucySATTR5nIt;zUm}7p{gcjb{Y;ZB> zT#2v44^#6?uxNhO1IPc!kHi=mKlEkxSMy!i@np6iTI#Znl)J3A94^J1Va&!__zF)E zJQq=BykHZbqCXqy&;9Dp&;OO?%7mYFS6E*GX00>VQ)UkNoQg>@WsFrv`VwI3d>wts zSCQpuv)j8+wqMn1=MArPQ~sc>H~C2nyBN;J&aGv;Z1WL?Gne}XlcwmzYr zT+W9@uYc!#XV93phyU6W364(QwQg@_j0S<1hlOWic;r)-y|;ZY7V~C7;0QhoThgq8 z8^gOy==ly~$aK+{nMPb|_MN@h!pKLX`g?r~TBwJZQ}Z-`KB7(ORD{c&=l8>>Hf9XB z+_Z5-@4Ip=*~z{|Ue*L+WsS9*d~0%ziMG==v?Sa6C(7OkSf`=kFmy(Qq+Zdc{DVZB zhZsk^mV2==-tpZIVlx7}n|p=a;m9fK*zqED68|pZPPO|~MXeM$|Y9H6azGM@=fbSyjXn)B#Qf{E7_Fax)`=6kk_PY(} zhR`K&r*moVyQAS1*h#`K*awWV<$uG^-5`@z*EFLO`2%HI*eA)pXg2uC9d~Ma*D&_X zj5~6BLVGW@*@;hJ!KIQNbEn1X*pJ;>o>-#xi4nMVxncy4VsG}pV+6*jKlcId3!(0* zxy>)Ne!o1CV{ZOuPVSz6J~JBIAn>m5!{tA;171lV)plUu{V$n$dp2NC^v{U#+kaAb zw}Wry7{@&S7WRNO(5qm~+qZ!@Lfwbv84GR$5AyNK9cfH`ly~C7M)PJH=y?1c5%R8O zZ-|X>k7uN@U@d*GuD_-@icfet`>r_q!Ux$0>MTz%9RJzEK#$8?{kCgJbrd_;=K|0B z^#3HW-j|UlUcsF-?q_@tP)`=Rx)Uwe6i;UV*9 z`OXJ@=z!-vc&6;-+)v70F1zbt&lj?cd5>N@%-Zd6Mh(`xtAObsa%YG=(Lv-8#&H3B zqJ9hO!a?REXs8z(m01YIeunzi}pjkh*5(U#I{^}lg)!>H7E_|4JAublm^ z_zu5M8|Zzjv9_TJ`>)>{gS@}L%Q;_VUhmJVZ%2)Rq&r9--w>d#qm{Q7*=3g}!rtgz;*vEH`zVS$_91ud+~#@4cZ%P;mA4hWW%6FxP;{Gfr1!1Ln~QFC z4)VeWvXuUZ_xwd~aRwkehNF?MoUMN|{kCC@)E4~t&O;B5H@ey>?gG%eUR_oc|#|!63L!MH-4eto*7C&%1)n80J;pw<6~k zai`IN<2Fo-i;mLYqu9Qv?kMB(2kLzJuF{u<`?tVP5AeL(cw56;H{RTktiv(?t;X{k zWV7^cg#Ods+4OVj{-M#F*bYBA;TRZirY-5xZ{YdnMcn-(e(~FxNuB`jOX`ktg1;yl z)Yc2%6rICUPL|C$-_C=q-==x0b9sH^j*lR73xCS_+<9GdOHbjvTT-#@Vh^M5K##6@ z=f8)w4)`_ay1a{jsyWBp`(N{IYtg^Xw_N_Or+&4y`E=jZXL#3q+rnN$XQI->=sdK8 zz3X?JBjN>Xt|{J%%-hMD(aKy~%UtvK&$XUM76wvw=h9(RVSBD~4cVc`IZIu~oLa~n zoyOV!<>*7spo8M^sXl5nxQqV-#-|((2h@}H3NM}M=iLH;d{*exAS(QtDT7sL}$v_ zuXS|0Mt21J`gRm%+x963(m7j@y^dnt6rx|R!cIhSx8xgV zVo#!b;(jf=JonJ%AzRwzvC%3m;2m7Z2l*8H{7sC}LE=LijET~1yEAmWn;HN4eDh$V zAAkmJTfz(Gw#z1~+jVVwpVQk@3y#u>>pdxg4;H_{{MO~A2M18@!boA!Y<^M7>i&yW zq+xfL^(OD4u?+sJ@3lR|ex~0K(Z9|39be3vAeuRR9z6O_I?M8Rh(|LPJ!?PgThM_Y zK{spHHhh*RG5(KZQ?i@!TS(hnPd zl6(IRe=fe&{a^5Bz&C`y4Dfa#zq$SR+dkH)xduO#x!5rOl=#KZW1}|-T(0Ap!l`&; zK|fA)9{M5r^bbTo&<1Pt4xM@Y9b7ge11ZgLgw7a-aYk$UAEys$Yej|;9d@BZiy_l! zUyb~>Ai!MG+9=zl0CE)RJ%^x$I5JX{^Dg9eE9%BJ+~M)c?y8*m_Xc>-T5szUkyZY& zkb58pAseqmCc$q-_f;q^q-;%N9Wnc^EDwE`+|@-M(=jX_7{Fe`5$biin>k||9={hD z^<6Pc^)>2Zg)6)U}$u_HU6@7^fZPk-n4W zyfjPowxav?z{6911?Y<|lAVC)dA0bjInc&O8e{heeEHn8KH^t5Am@FLbj}-IG)9%3 z5&y8?BcU@xQ}3kfuJu&9RQXLR ze_cz>dwd^!&Ue};wziP==WR~>b;`Pf{c9|3SJ{7w0MqPMt2pJgFEh>SX9dWM9F)Huh-s_}y$nCV9THFuv^^znfHN_CFgxK!~kM^Tr_d9D96 z=P}s%nub{=7}7?SUY3Vlf%1=3dz?4fcLC)wzmOZSn+e95>s8>b4qSP`Rq9TvD)g|6 zu!ne^IZ@ZIYqfP!=pDl78)RdydT)lF%pu9M-^KJT)u&hKk8G>q9|wZifq3W-_lEAw zrN28U8>TN2>g`59AXxFaNb0San|)5=xIG$M$oalkZDHqpHU={Lh*T{8qC&wdTw!Yz zI_Lha4;V`mx^aUm?_=oQIXi5k&jl0qZMa3U4||v@=u0vlv{Ee}KFJ%K*{c#`xdY$m zj^}~@etZ|$6CHSgHtxsX`aa+fAjjnyp7?vfq&g&*Hc@sDeNUCePkTou?LNR7uksf< zGOORlXY77t@j28X*;IAtej(9XD!%hMefxjjGw^Hr_*>@1J@1Wz&m`?DR98wrd0SWC z2VM*7chW$&%D6ug2<|86qFYwEdOv}@*TQPmz4jU(StY7v$O1Jf2oU7?wI@%-X zhzq9=%03rY`qsHdx~!y+3$7;4_Ep5&zLL1xv)YwU@iXn%gS>OLX`fvw zJ!LyQ@z2W|B->Uw(yQ%s*#aY%Pkd%s(Yfj3dAdhad1}Ft>cXH;dcaNL< zAMl5+Ds8s?Fsmj_+o*Ky8MOB?h_{6Nkp14=&j9xgzRn_1=T7D_G2YsFe-?TZO!|Iqyh+7WR2u7Q_1Xbzy?VF%#Qs$8J^RsJJG>t3i@fY1 z8vjFDvC`aG$+3GRThqgiaHk{4o1`QQvbW z%n9tgJM>U7dyZe+z0;$#)O~lukXvMD7zRIEiB)v|ROI?4&feS%V@K_moV~S6Mq0NI zGhrZ?WErg9wtb?-}@@P-*fENnZBWmZ3 zf@FSZD7?f>glNlz$Hc~k677|(HHxbwIeanefyyXP%oj?m1|G@the=;Vtf@)bUjZNc zn?(3YGayQ9AZ8@s<4!qdtQ&zXy)m zg=xLH@YI-WymBbB-C?(9Kadc4H%zvXQWDz|P)t zIQCR(eb?BBu^WkjpV!GR9+Rgvt^cga{BEgD6HA2O>?`bh6F#_(S9A-TX zyiL%F>`E1TFT^@BL49~C-`c1rwxt<*VlU>^lQ>3hp1Lde4&sP4tv2nueQRk~`__Z2 z9kxznvvYX-pTBmsy}Bf+6KRuNzS?2yINozLe{j=I2{CBR`84PM=0zn6$d4mOX7ZdCUuw?{D!gSw{G?<(YoD{>;kV+=-KZfEZ`! zqLO}ovfJueV_J)@s?}AKxG7mED*Ell0Uob-}?k9Hh=v*8m8%U{turh4+Ok+`UTaRX*9eYhza7&3mnSD%vPsmv zI~tEz*`;yOg^6vv;V`N`IZGeoPU*gJ?U|;aOQ!5e!*E(H#HG^Rth#gj40sDy-Cm^f z|5CR94j^LHbxcA3t2!#s(S7r7*L=I4A;eh734NoTJJlTx;a%gwpT;BN%!$Xbp_4o+ zKLNw=RCOcQZX3@XAkbv9@QrMdG1kb+BsSfb2N+d;W7Klw(s}EUX`gpI;9KV~hBiAg zswAh_^xkjtXom9em(dtvUy~O4r*tgPdC$W<3(*@I#KVCXS7}e-%`gs>V6(fLZxgQ! z?ON;bRM}%$T2)n*S5+0lc2#BdJ*cw4sqf;aHjWQXwj8=+^u5Cn-6`}N)~<79 zbnr`DVfxnMvi0L313QC7_t$XuQb+fkUo6+1pKf>%dOe$$xxWx9j&MiHdhIQkv+i)H zSTRci8UCTu8?ocg7!fT4-|*B2%RV#CdLMZ=2U(jv-2amM-)Ai*KH$7NI4fJCI}ebp z&C=;{(Ud8x-5yb;JHpZ}P%{xJ7- z{*CmF{O;gfZs$`zTi)7QRa>NbVjk{d<(vM$#50y@Bp&1`n*r`Tsn3IdiiYI>1&=>j zc5SZpJH8)ajHJ`iyYXo0ndX7U8OHEzxx?%YRIZS6yPac~$70{CaermK9lIJ@9V+|V zpOZf})JWXUQ*CKoP#N)EzwxhS+-9;&WGMPO)(ji=;pmK+w}DCceNjiVk9823%$D(% z8y~O0;&jWbtSt)MSbHiK>f7+(BE7Rt-=pXG{rRCqVvpMSE0iv~U-B+U=IKQb4m~igter+iS|RH;M6~I!xj##XfH&*#9Q$rVjPHc}Ws(yqTXX2P-Z*<;E$ z{nE}etV6in#e3fx7k3(akd?j2%<1R`GTO7@GjDD(68=uZzTXr&>g7CQithfD56cJe zAL+W#)po@2sgym2DZAoJkdp=@k2wZJBivbe!+z{&BbcvCWe4$u(&)Cla!QHt={eGPxxY9br@7!}jyTtDTjf3FP9@{>q9b40G z?kzh!p13#MTXy7i*?|u02(%dU`r?Mo69dF>Qmm#RJg^XZimo4L1w0P!i`+J-{fEdz z2KqP7I4RpyXn^ff9qwoUv5zAl2>{R>O>}p5`SXBx;?@8T-L?=284?5ckC%9 z7FN}9e8NpfW>uV+wzu-@<}Od2Z{8QarD$CSu>zR)#B`~OIm{~d+F3d~b!Utj3ck5B zv$D!hjImr`cuG7mTxjFKfqcCN7&l?(KApbZMtxhkOSb*vdu#p#Oo6Zec=^6G;zPk=`z^Au_iAX#ofe=1?%yFdst67bIYpuq;KbN>XbaK zv&Q|*iCBJfqSe!!SPM_^0%silRLHY}*g>rS*sKSNlwa$53?3$Z0WxqxbkJ^KlSn;} zu~vv?QuMMI8v1CNL-vD{kv$iPUwuga657^N^hO+u>KHU+$5V#qrpg=m9%!#2nu9N% z>7<_Afv2V+I|Zky9#?j767@(n@1o7tr&>4Y>?*+d3BO|b^c2!B^+)oahrFGaLo4iM z?C~bfqx^`wq2WSs%(+grbgfk?n=x`|(BTPIvY%@OwrAhPo{aB;vzUI{<%u8dpe@l` zh3IK1a|fMl=grN;ZNmONnw%fPPwX=0w$tc+)F~b}g0*@Mb9Hw6C-@hhT2zfZ>$3Nx zPT9Mx8jrl)-ItMcU2ceH0 zbs(IJk0dg{S6TlRm%{rqV?iT2@qjDTXzLzV4W1vE{@s2~TG~^@h5r?0EpLi2%qjArc%&zg+ zuayrzeQ40t+Yb#gx94M5yA|3kfNrHPklwMDz4>9vAEEC*qkp;S#*{tVPuX@=kqf~k zb?rO9G%=m|quAj4&Ue^n`0E*~@Kd4Uu9v~9oBJ-7rnmpxwYEk!>53sIp90w#{T17) zm0uoZO*1wx5C1+?j4fVIKDLxU0v6HGqdaxL>mxin-(|jhtoT*L?1kpVle=!i$7pKI z=Ve_?pUi!=;9-#?9X)PzS2cR&9{v;WdW!my4zJ&YuWIch#Bo4>MeJ4%t=!2y*Qrr`B)v);{W8=p6A>i4Ig7WEc;Zk?op{wplC(SgntNxw8<$agAPru#QuBq92)H!$}eiN(>)-Cu=x*ZKR1(Xks8Wtf|?_IEUFMYOJRLgM3re&tBGz zsf=@1pQru!1qN~9g^%o>FgP|F8yYfS;=T(9esI_;=)CCITw=;W>%_t44k(8;dVJ=_ z-JFYe-N27nM&Z22H)_r4yI@=(z`C;;|1-s^lYdl<^(S(v&pHN;hv(;5U5^ZE4-fNM zotFde>!U304(<)lC3fm~qt~Rp&G@Z#mav8l%4p<&TP}Ai4dl6b9R8Zno#;&Cq8N5n zeaK*v8_<8_r!%yP@!dv0&z=?VzRI!IHy-+^oX&m#IyI3U+Q+R?tk0-uv_-MMu;&d^ zryD(g33Zf07oio#)Gpe4n|4mnW&k=pNcm?dA7qZ{PT4NXA7tF0!(OuoI$uk=;*A~a zPk)j0_7VF5|1ll#G?=nRFgP9^0ReIcV}-I*;-6rxo7ITKtVF(vZ8d z!sSNMU9PfI#C+ONJKkuJ{%P5KgL^Ln9d#~8k!;_>Ym8Gh@Z~-5dwoBQkIzEs6yRI> z@1VZx`M=3&^lX729RX)cc!uYPiZmXQpT9sG`J(;KD=Zi7DxUQBE*jL<@RCvdeezd> zBiTL*@5yti=X~klD+-*^@|Lz>~WzC_GGiE_Y1&HIB5Bi}J=4WU{7Q=t#TbB4bP- zGml^HJ)1L)>>2zI@+`WD==r=CW;)W+l{eEg&L5{Z^bz`r{NLd(b=Y$MXCuUwJMV8B z*kez71REpb?aq^*ret@;;n#Y09XLp?Yh!{(d6$0N_#E`9zO#01{Ve{{@Dul3_r^f! z`1s5#9mUu|Wl1g%6Z5pfYfL>~J}7gE-Qn<66H9JA@o>)C(`)=~I$->TQ~PYoksIC2 zTyT;PUTepcchR;RdA}3=@v%#ZLFme8?7raY_VCR)#o_W$Q4f4Lk&x;yHNw8t&m* zL_1;lhGNbOZqaX;aou+WFjT<o{3XK#Z)`@zpN__hgtRHhw!;PNkDUo83#JutjjG+uEP{;tHX?tr)J zjCv~d?Y@G23h9yYp#~3o`P10YKy&ra(6cES8Si{GH$Z1Gt&yD6#&;B_Q7qh;YUY*V?#$D z@S`8DfL~Vd4PIdDDE{{x9WyK#ol^9yQ8Z0!LmvB-yjgkH@CygEm5{FXWKT!D>^AMc zG#^rPq?k0#4be~7l{-y-2I$nLM3|rAO^mB}Y|mC;5U&>>?Ex2az{NWF=N#yz3b>kB zm)C)dI@aL*+^?zF%;K#FvZfD0t_(qQFl+Q^eW6SMkUm#<$00oV%!RE8pFY>x<02pDEJXcL-c* zFWAnv7<(uCJKx-n;YDgIW|-53lT*~MvzuK!_5VGdA?nncI9vFcDZ2L9>!M;@zt8vR zs;pu0dVfO?@y_i$&}@|a%BMV9LxtmRJMXypabnm7QuxkE)+gFC$r}LIN!lAdzZL!z z1>TY`8uik}!uzd-4-v-^oNJGk1)L93=Tll!kNNC<=Q{o)cfVM+V4QW|B;@V7%Zdh& z?_Q-VAHJSnCp~p0l(L1&U`@IP{Qi-r#!WU+o$%+_`LFt**J;yTIq}Z2S;aB<>}9Uu z@$Rc;6<5B#kht6KXc_br!k&jX>}^Z5ro1=6y0yOz)u(z@e=YmNMX&pcHJ?GzhWaNb&*ZdMSDG9Be2Jr=u9^G|@EX&Nuk>E_u>7y5{->a+E_^_=Mh4~)M+00` zVlVs!dry$oqkQ5Uku{-HniH|vTQ`~$#H-!ii^nr}moiVKBY@7jnTv-Rx4bv5k9Sp9;r!)^EgXT1bU2_`iSWmp*MRR#sDZG>z z;Ldkey{x^B&J*4v7DF!k=rNT2Xu4uYbMFr2uosU$jQ@b>Li}wvbRgO*U~J6$u9qJt zcM-4-(@w=;Gj2qZ_t?wkSa?_q4?q`Y^MITQ9UF%q$hBtBj%ezcmvRp<7ketO`3!T` zQ|BBLcbCp8{v6|PGTs6Ffi&l|o*{eB%S2v0*3X}!%$Hm8jR&`vI<3Ie$2W>sCD%1< znXu1_VxJYj#;Oq8tN?aa=vTa(==)mclz3OyWv8YGW+Hs@j{&_RVN1`@@U~yy~9cmlg-WgYjUJV$o7_X)|pq4<{Q@K*A6-H?=L>WE?SMgBL(`;zM~ znik<6~KUgj6G!k-UU9O`WCg|Z$qpC&5zWaFqse952f;o4wN^_ zoLG0&hMG;K)zQU;=-$bvJ(6@CXXg)c(KdLv=8)!(=2HcHMLKllX(2XSIK6Y4@M6{v znGbHFotI+!1#Xtmx3g<9XG%w0V}loi3-*@T7t%-g@X4}0!>x-*6VHX7#dA-Vy*SVc zl2*Wf@dL@w;s=r=%v*+A@Vnki$S+;IjpP4A+`Gp|Rp0slXJ!&|CXRnSg#w5OZfG?N22T`6pDLMLvIOlf3Nhd z^hqCUr!STcaHl8apxiR}Q0*t`L#1?sLrX%PW%x;UKeOy;RYO7@Jo^oFb8xKRiodtY z{=Z`K6cqZ7^Uhjt*mG%L_) zpo0VCI!n=|xV+7wI$%e+)ud4k7t zguKKRIf-=<9fHGJ@-@%5!5^p(pU{^)V!-5&sLR00@NVSZ=k4>wZ-jw?T`;)eE2013zv|q_ulNM<2bO+MYkYT| z7kPjr|5?b`M_BXkZ~5+k#(b=Q=-2$W#>v>oFJhgi?I*{vXcOK3OO>&*&|5rT5AO8L z!o!5Ggmivw_x+m6n{q;mP1C+ey=y8Pi$dt;u<<6!KpXE?K5|*8gnJA3uU-+#V`#ME8(TgZGShlin%ZTpSTq3 z`xKth4tz|p<*#%T?=Ppk>V8(^&L|26scYFAM!EFb=$%6+C*6V`dOZ5*o6$?(gnoKl zxN~tOu~rqtTJ4-GTUKlud;WLq^IhHjw8r}GK&y>|=q^*(ucWVUy@T`CQ&Z-bu{T*T zvgW{`?s86FN^#@Va%gQIv@d#78O`A}x3Z^ywIb?*x9HdV<}tDh9K~0!6ghnvYX>r` z#RL2u$)w0{_EWactn^5ux+Gw6$Tzrf&ub_p^x`rY>uK zA1<-ZK(la~(I=$**;bhk`i8FPf#3B!Kb%$(t-B)4d&W^1x#w3#c?UMe)6BEE*qK+O zk7>QP0vlIGptir!XSVaEMfGnQ<*k8=X#G1z`Euq=J#x=3_I>9|_GmRalUaF}eY=*u zqCSUnjhVxe!Rpb8J%BFNeApH(9pHabIui4?@P=LQ{jJ+^r!AVk+8#al@0`iJ zS@JZ~U4d`TwCHyg-wmF3d%1V}%<{R=+uuW@`{B(h9sPrI?1jO9 zwR7H|EtUAve!d#`lf(EMwc>BoP(qHoT+W|nJhN$UHgFZc1aCBjoMWMb(84Llgs}Xk zHmgqPVCT27?bQ;iluGQg`hh)c2R1X!gSE_qx(8>*pP}p(=x3bN`_U`@=soD|8{Zip zeRRAn^qoGQkk035e5Y5m>7DT{pJ20l=ABtBV_8SUqsX4!XMlsaqmI#=?bvLvHMGu> z@11t87)HN^O%z#fGrn zGIqgXGi}zb%8aTHf`^T<#ekP-uNoCo*^)%r<i9bog zzg_+$r%iy!?(Z}igp7m}`)=T{R+tm9-XVIDyN`f0XbEz3Pq@yR3 z?ZK?RJUEl{y}g`4{U(0VuJ6o@-p+kJy0c}#&G{X7v>n*JL>tx~KeRNo02y6v&ZRB+ zZS3Qc4ek?1itn_;;p@PE5#Nz@%9&AQxGlZ+Cdym;!4LAg_eqp)yw@>v2yqu#; zeVX&q5t-9AZ-@;FZ)nD!&Ar_g+T0M{&<|b5@3FDUFGKB}!_N#o$GRrUJi~ocVDkne zReOJK1>Z79}diBe4XLlvE|ZTj9Gj%690z-R5go@E@A=|`FEl<6|Utbv{XN*O<8 zm`^WNe!Z79UfJ;;!KJezH#AsZWa2C+~aWp7!Ot)V0I5=REfKj#(+tbt?WQy~3lijdx|Az@PTm zf=YYnz3~`@vlDoqhm3 zJcJ)pM+rXE9xnKqt~A<%znS%-W9`}}jnIO7@He*?huZ1S$w}kG=RN-TsXK0Fj@=Zd zf1#95bk-oYZhXA7#~vmxMO!ZCccrHIRxeq)S9A648#rqeeb!a@NXe#Zz(43*B+jyn zY_#RHi+AZ&x3y&m*EQ&Fj`^?HaEA7FG5kNkal%_B?q2Dmi#jK=iPF#2_b{X@E>M#g^BAoiwv z{Ij~pZ)fZ!-Q)k3e~>kPm08yPentJ(mgl$xpXB>&-#hCC1DzFm)Rvll%$8l7^;S{K znzxHuj;7dKKIra~_{+xAUD<+5X|_SSaAS>kIXb@Tinz1b2(w45G54f|Ow+K|1<_sS zVjJtHopsa!t}oJG0e($)5&xF(ZA`@QD&Af^#tq=Vle6HMThT?1-1ac}V&ce{P4J@1 z@g+Y$CpksO!ao_{VK=_5Z^8f0Ll=PkWz0O*P1#!B#-DXHez41+mB8~s>@RP+clSZ( z%UFM4E41>o6s4tD`DuzA0|K+r*A_Wa;3bXekM=@laijz?u(>qjGgsswc7;8!S!cQP zebW_&w^V+0_}RtS)7}F{KV%N*|6cyf-}V`D>K*Kk<7IsetfH@4<9@)pw5eCe=vm{6 z+vgzHvOf40;3K1Nm)Sk-b)4hY%(|s}XGhn_v1!INF}@>L;`HUzdoYVQPUwj<-+kYq zE`Lg*E{ElJ4S&shwW~Vij|U8Qt1pWvt2kq|`y72yyUF?zWyxPoowK!W($21ap{b&^ zH=#9a%)n0l*ueNy?^4PMU&0fynFWo+Ro^4q$eLcEuklXyU_EJ8(iJVAZs+kwE^*ARF3VP`m>rswLUNC27f`8WDd*F(+ybs{ne?}jB#;zDY3K7F# zBWKp8Zy&mXIEmgy+z)TWzV=czdJ63;#^CKY4xCrfd4C@xKAXHOcc&Yj(nBjQ>Ljr# z$(WXX#HI-kt;c6X=Py5~DIxDExY2s^0E)Sb& zbZVUEv-)>*^oZyGl>Z}kr64-wdfL(6FaJgPEJ_YO!5Tc~8~%sUM+TR}vzYyiJsB?uQ9(0yteM|I_6zoVC8=6LNGfm-{^Y>E8gfvv08%inYrZ57$f_NewB z&9Q;>LAvAQ|3Td}kh~W>#HX_sTV)b4NyKhn@(ub#{BP0CVqa_mX3OD)?2X_Co6ijB zL2#7Zf1dxF@QE&^9qilDhX(mATZHwkLw>M{90DEW5ICQ9Q%3@io{ls3+F0N1%x4Gu zMM@YO@qA)te3GB!-zi`7jZ zpW+3y|E!{qJ-<)y@qN`m=Z5NK{-+H5c=EdIFzLfCyZl43hrIH%`#R1!D8Oel5hIY$ zGbC-wCnwzmJjVgoO7>5|`{r(VCt}LXjLNvvtc<7IoPwi8gW4NS(;h#D{X#TwHNNiI z-1~?{H`&)+^f?BPUxz#y0alvV%2|+{+h1p|O|SF?hk_^BmzCoJ8*t7MV&7^j%7UC# zA1Sh@w;y0`=FonLJ$v^u&Kp3-G2Ox1=%B4^djjq{WB8yWCvv&nu^XBCxNw8LH2<8-!KY?Z({$=As(W{W_Mk)$WJ^(PN0Ejif@CL@!TpGJ$q#UUWn*+fx8Cik zTfH0ZZ5TYphF<>j-Yu}F2Jh`*4=Cj{aWG)nqt)G2-0*MAZ?c9P1F-}1&XQrea{x%r`y!wC^dH~qHQCcR+aYpKaiirM?h-$jFR|rH*R6ML@Eq;LzqAwk zGHV)p9q*mt2H`y}_G9Y)sC^^=0@e55-nh z{Ytvm#ePzCRZ6&qv+IV?pV`Qv@}c*##`zt#(5|Jl)9p+D2i9=^Xd^m+a{lX$=t_Rk zp`x?E{>D3_uw%6N>n;*m`t9#Ze94+w=GJNCt6|X0LtPlBJ%EuWw z+s=25;%vOULjEgP)t$8!@yZP=qS{l)!52ArIl0s6oA{7vV}WO~e+w_`GmHMn-~T@9 zy8De{_|E*uKhvk#xgDd`hqKd+a0l_X>YMt4{bhRTGTSuCps{-$UbVmZ!N#ck{4c=1X=%zdl@m{A=Q>2W4=I;|Z5lt4wK}gu z@P{W|TXc^4Sqo$EIHuDV+CUw-#6EWL%|=JR0Bg?lPVl$PF`&Jg|9kPJ{goA$Fu-bC z>*H6cXTeh2wAV_Eko-!2SYqTzm+-^$6?=!{vspD7nZko#v-MqnWKi;&FJLph6ig*h3LG}spsYxE?Roa#PGN~U)^1+GR4Co5pNcgtSZn(eW zR_aoW`&s(YlgCZ!osp5gG+#_oCsx{I-%~WhzI6rkmE6O{AC+RG+f6?Y@8|qrXIUuS zxtsH>;Gd!W%&o*E-AEpa@3=gxbIO7N>~Lc%66Y~LQC~mi9b{Hw*jvPJNS9&N(L6My zZ-f1aeZu~pu{9N5#CBZzk9mCa0^dB|;~SMVw>m>U;5&9o;(Y1!9oUs z_?PGxrC--vk*+;C{_|O%Dr}TEGk&lq|eZ(=s6C#H|yX&E2(JnH?1$edNo1Elx zpyzkZ=4(U!pydL1uUzn&!W#Tr%CJ_Ac68sr%e|lbIKO)Tmfm-Ejn)|lx+nfMPwgQ` zTRdsjxhd1GqYmlk@WDVn>TAu-#2EzzzVQX? z-B0t4|C2OVOj0v9?v=dvCJ7xmep|!=1at zGwrAF0u7ya>~&=u#{$uD@c^;MUgTrx2^81jr|DzqtCgF`}yg=R^c@h$XN& zU4b0K(kVD8EB|W6Sq#-WYID_kmlJ0|d#X!*d8$wK)C}J3t|cFVa%HYct*PC5Z#&*deaOnkE1*FH;=HxcN8vJC?hmv3*5_cecb zsH3eA8!J3a?czX3kbM1f7uI!5=xe+>h2LxP$=~1Whh-mdc0gv@-NzAZO!#Fp>cwr9qo)!5)`oXF3}GXZ{|pq(`i^k&;f1Z$9CuCm*L zFFA^a2l#(<`<1~rBnOZS30^RJFu9E%HB*D{Ed6=<+-t^cc#d};Zyy$Xkz6>9M$vmk z_N)Lt%9d{See{l-81FOn^T#YF-!Xivwbr6j3BF)U4`##1D#wIm1%2mdACtcF8Q$qz zbPLl5)y*IC9N$-xpSUt*oNGmQJ&FP8S&wpyDleAm8fe&q*D!`_?2e%7ZA2#o9}{_B zXVo(Y2l4L5Hd}C9iog6jT$RWQk{9OC#`9eFq*S_|OS#E)IsE0tb_b3j{xKrnsAs#^ zV7J$~cF8fQevLu>N5?Y#8Cy=UgmDj|oq@EW`YKW?T!P1O#dcp(pXz7N3q8PZ6?1zT z@(Q}G_^#eN-J7}267Tk&-Ba5i-uq|v{H?(U#a(BPYY>$zvTT8-c|N^PmaQ4bJkuTLKa^8JnxHm zcO4gdE%xxlc_A8CdN<#uymInatYuwejT)gft%kKNxvt4CI?2OX>)LDM;xEx()*@>? zn=6?k)#VE26iv;9N140Cm?9s$8urFg;!u}8jc+yU7y5`PZLARutPg(HG_76d@B0NZ z{ik&%;t8;266c=+{2bQ0by|BRam&ACo!*A7Lb)-$6CH--HOJF->APwdqBEO*Db`)rKKj=sWy-XaA(P%3$E zdSUCnI3DTo*b5_vfOic2uEzERV=MAwN2l*ezUlL9u;7jb**+?`gxo}a@ZXwi zkZ*Z_t3Pw-eZ?pno2C}|{qx(pUY}~d)I|RDqR5dQwop-p{~8myZeu0$%9?v$b)}Pw zpw^mu972ardL92CC*F4BAo77CyFcolyr>5FH!XcNy(WK^`zX2+_zNrF;PDpDMtdjhk^R2nI+fu(P{ zD-4@!Ao`_&8SlEEsV^o!kRzh~w3hZ?V6TQhBOiHAMEl%kdtcv9^1O>4Hb*KJrPHSV z2hh>o4GnqV8H&)K)-4#h!K@e+WS!VE8G2H@gGF!eW?6Y0K2F|er-Y>A2FBg*P0Qcp zQ1afN5t59Kt|Re&6X!`)_|Z$`;TzKzxj5hVJ?3NVD&$Dkl|)YOLW>tp@WCpV>&u{T zor}rcFfJvO%b9)Jm(qGX)4FUz^ZkLh@}zrc!%Ms9Lf8JIXtu|=bY@?2Z18Yvkq`FB zmqvZ6TVS&6$QLG2M!w|o4booj#D^w_IyJ9cmc1_D=j?7%`YU~}Z?C5<=GY$9WiVG% z7dq6nPVA4W$D8?E;x&w%>(GM<&JUqy{yS*=9N%khy>_|_IOwcIH|tve$o<7>YZp5T zg3AB@wXUv_vJV-^M%(!9ncumIx@B*{#^Up4pktGs&1nXzQuxIRZZFo|G}c{{b=MjG zL!RAJN)BGu-biBYO|@iL$+PGcIY%gA-;fQo6ZwK1cU-Jz@Km#q2^yJy@+*Da(Z78Y z`?1bN#!lk>WSYZ!E|B8wEaNO!d^1j=Kbvh=>`8x@{6C9#myXeX9D`3I1|>)5RwjHW zs_9!5eY}Ofj;GHzV>88vVr9Y?guKps-F@%2Tx!&jUj_=}5;fMSED<8eV=2w3jZ#2Nyz8#E( zoE4>fyMNsB8}_+uFPtbby{zSHPvnxTt9!iPr(Ufis!R0}!#`yy&$Nyv`=Mv)-ThF# z`?4CX_S&ewl{&Fqq4ysj#up$jIW~<6d+7*`(aYG7SLd_NOnHX!nbf7azfL=4-R-D- zjY;J-Mzx_b8iR1FZ>_QME=K=VUVYKH_W^U^t#y*=y;tKaxH!JA(T03>lVh=9%D3o) zr_AM@tH(P%(>PVH#?^D2Q@Y34kR0Qzi#{l_V>?WLr;YyF>7V*0TGSjpm}b0iVC9M% zW|OxdRzzGuuF?4w>e}bnc4OZgGJ5Beui$6+_xx=NF|g$96AfwYGx=?0PZAx+hNO5& zQee@t=vDRZOA`)O+@Lyr)TeUq+l~1!pwh=DVR_rp#gDbi<_)W@L=kco=rZM-JYX)Q0_?+}#G;1J7G}HgP>BBv=l}F#L zb{zCG*LdwD_|Q1_Lz@S>an;Elgs;=u&CInJb5Z4!G&z{(!sikChkXcGTydG;qWU!! z)uVn|cpsAZR^>GpNAr#FUALm5#l?5&(2ex`KGsjkI`>e=9O|(B-rt$*;{nYXaz`BO z?%O`ju>T$XyL8^}vKgcEQkz}yLTfeuwZ5oL){7}H-fLrb*u7c@e#N)aubt%nP1Y*$ zjVHMGlEc4&?>^>#8|4(osBy&@gK{BuIeM{w^kFT|WlhdwZO&(n?#upB5SIP>G!m>R@Q`$BHSibGyH#D^7;Qza@qWWSt!|(R?@7!kdhJ%m zGTLUk`km=o_cnFhNFAIJ7pb2%ncTr!F=TiC4DN}pJSpRJ#7!VPs}B8$n5 z(r=Z^x1=a{tSx0eXEx3ZH30-SkJZ*dJKyXk%-FJ=qxP$ydswZcS`)E$c z;v=(|pP9TrV(aaKf0zF++5oTi;>QTFX5D6=8lkzMy-I70 z_O+EZi^nLX?fu`ga~AgU8`?^Gd!y*Pu7nP?R_1l@&E&9H*TnjKo|sH{S@u@@p7X?I zsvp|x)t2@~huR!Rn@#=~(6>ybNY}uQcG7 zY~it-0jPaPe7)=x=kYn|VqRQD-|Fn-G)*U-(_w@f`hb%mhPMvC&9)Mo7rtq2J${%C zy^-t4V;F!xoS3@Gbt~)dQ08xz%~@-vHo11OwqswfJ%Sv)+Ll@Sc52X7WixAKmsqvL zo?GT@sx_U>t|Mdp-eb2^cvm|gCl)KSb{=%q3Qf(!mow9z;qnrrHSY?Wx0Ev_oc4^` zx-0D781?S5x%lt!Ci|_ir5F3XuFEUD8MMv*n>&ws@C~b#9ibWh0e&`CADlxCZ`hVm zYhG^i>boLfQOrCjLT977BfZyt3oZ#8Trum0%K5v0WizVdzx*upeE$L?bYKqr$u#k= zc@cc=3M{^BM}lt@|B>W>#0%Zcd($@Db#hWo_)=a0y0qrEd}6YR5tg4uDzsB)ho^uR z#ZM&j7ixX}MF({us~X71>dU46NqUxoPvoPs)whdhO7!GCTj2}a=$G4ChopCt-&LN^ zfllmi&RM?dR-XoEIi|gV-tIZBq-{&}4|dt7^?W9Km-Rf&W|dEtmE5oAnm6L@^?x=z zgm{0eyrtW_XfwN5Ua`!5BPw%p(qz`fNvw;vvMx?!U7TQ@X>d^|n9zqxkC0|`RTcl;(tMOzYkvXC&ZxP9~k$N)2O=I8}u>nN|<+vetb4QSI?6<%UzotdBV?j z>iu3fj-~qyx|r@e*qc^q4mEnFEg*p{vy|==u-5>uLX=y}}l{k$1Bz(?iP|$YIKV?b*v{ zHmI-FSL`*P7Gm#i0&<3tfXlPZMKN zzQYkZ%l+cr{X-}CUGQN+=!ZQ2;Yvs7Mto*p+mUX`37pA!d>ecN^1*R*xNFSjexYwT zn$}AuSPmTRnbI-kMlJ`pWm!H*tuc@NxcL=W9!#E*|n3AdLS z@kZ=|=ZHUhJ`vXi+Z`;Ocak2`utN(Y$1YV>Or zL(px`Sln?IeY|36KXiC}N67Cs1vtdqlcPoC7M%e96T573bQgV8&J(Y#(A8RNkRQVg z%mp8@K`NIY$k6{QCP%{;%H_FQ(FdtqW*=j^$N2Hod$Wv@k7>W8Kg%7p9Rshz_C`M{ zOGa+kM*C-(%O|chN5zpVe{VPXMD0bxD=FW4<)_DR(6Wg$j{J+`keys(NsObAapXmY zr<$YC$@JMwJ^gGR-(c#haTp`zJ8461jFE?cxnBWH1c&{u3Eo5C@uOM(s9^FGe_{Iz1 ztyo#xaiU1PqxLs<PL^daTy!>w$aWZybhegTr+F8ab`Xu=(Jj zM!t^k0k%fY^}HqAM$8v7%Wh<$-R7>l$9Q+$W9c(nAM-~&^PJ>!_h4VTH9V1eI~P|I zLy^c&+{C<)?oM-~-F|EIF!ST%72jI;Rq$Vx?+mtm_gf2>p$pL5(7e$6kpA*;i4nJD zqK9P-R=mYg*1sbsh<6);e-^w`Y_uKU%*(Eo-ZO@dncw)b6|7hNm^Z|lwAUhIy)Y^2 zdwfzYP|lg#DCgZei9Fc3!Nb>MmkseB z9^~jW$wL{gxzsTV9xIJHJ|14_4d9Ou$b8Fv7+vcGzJHK1wD-;JfglApVPCBD(qtoIsW*+^UY4^v-R3!UAEla)CK>z_9(XdBPS}u3)u6HF*lFG zn?27O9Q%h!(Zj&G_2o&?_9q1A1dQ^4k?bWCz*B&;4DZi;+bwvuKRJmx(L2(?n3C`u z*4V)unTZK!M)Z%!RP0+vjE=tUGl;RM(x0-AHUd_BiAh{ z^weecWsNKk9-{xvluyk2!boD?mj_MWYtDP|t$)0Xv*{V5KeLeYi?0i= zW&KcDllxnFzPTITtAO`f{;N-FH=lM(Cl06G5yXO$?{E9apypyTWg@_OIl*m63T}ykvYh()e z@7j^dew)L7+lT!&m;E-6{WhQdwr@DLxFULbK}9r<&A4~UWUYm``+o%+DmE5l&D0Op zWrYut_jtdHIepZKo?VO{Zio^85Zi$b-~OGp0^d&ZqRySRB3id$DmwaJk@|I0qYb%} zqxU<$5^@jD@YIz|j@FN>jt4xGqmsSTyOvLly@LE#G&%a<>09FMzrbJCw_@r;CvJ(y zcJO@2E&c!A$q{2H0+E|s+^OiG8Vqz88`kxzrcR^it?9phR_b=-`}7!xyy)NWi#>uz`P!q zrvtk>U_KA{HaOCQrRX&T@43KTyh{K${+6|~bq=rsmZu!OeKG0~{2u}St+UXrFJ1D~ z65xOMANzRcg1guj)>7t^aM6C35qAOejo>cea0O$}v9`ZGI#`3fW*)!z>ji`0B?G*A zZL8L=0xz3wP3y_=aYquOxWU66XJ6e)QN>@4hYgLq7-3;J5Ji&8s_#9{|se@XVZ25#7AZ^b`$h3N)~P z8!NZnU=A7QwfT*28vUQ?oo@V}AJvkp0v&}9eF2xtXI`%MZ}OfiG2)%*SHG+u+o2(~ zJpg)9+ee@uwOd5q!N0W4y5dBeXM(h6(QLD8Aiq`JbZe$ITVt>59{b(opgRGMM5l`B z8iX%YY%h6TfU||``{3Webxb&RWcy-8w}hL$&_zjA_&EJ*d$Bfr1YG^?og-R|86#TI z+3XJ3dhgbp$pq#@xi$~n<8J1vLVs7kt3EO3z$b9>6xj*_KI9={n|y~yr+Ghi*`kND zY|+brzm0w$nk1gf6ZznKlfr8McW&~wvKCW+eOY|jlj&TX8?*cH0`k?_GIy_HP6zRa zp&zbx#(@6DgHAT^COGa-eWhH-$T4<~b~LYIv?ZSU7&I-|_oRbE0rKQHwk>Qx6_g8>f+e}o|#$p&(PYY8hF1R@ZAqT zdJq^}um#3~ui!13IY-`vPUhGN@nX!YGuRxSW&9tMRfXGmCitImMbn;!){X(AhwdEJ;-4|9rR}PTVff|RHt@|Hs})UE zCus_Ni>9>h7GVboyhc3zUqH{lEA2tgSJj4-v}_K!$vX)8wQ*G!vwm<{ZO{3fwtLVs zb}oya52U4e_d{m~pfSl>$uSGp8t)*+Dqh7|c9WMgEBlmkRYIT8bFJvvgn!fAZDNeU zU4b!mHq)YM#+{fq-%ZTjGx#WI{u}_0$@Z>HK~5~G43D)Lz{0T3=BW#2MGy44NbAY9 zO|)_N#i`!0MkYQX#+1^R9(T*1;t|dq8f)tfPM>f$L)RO5_IEsM${GM&5BSs?DxJos z>AF97B^CwR*4mMzYmI#&@O~M*ihk9$)>pOP)J?x(ev|a8J|<~43Hwjsya(JB`zSbc zE=coges=9yF-|l|4U}1YmbGt#*W{ek8mM`wIcd#B*2U!f`^>ugC3EmE;=!1^o!EWPp;D$WE|o>gb&rDaftU2e<+^05L}dTiC+<~@|Udd;?2c7B-i-%IceSw z@X`)miqZ!J=HVk5_!{@8_?pk+z7W2~{keS2IAHL|7r>wzS{J?lrEBS>xIfcP?`NR**bwoC zT+WJUjPu&0R|ud}$Y5{$=A_E#QQ*P354DfmT&`xD(=~ocB)y@w54PAEIY! zy$T-$a=?uu)@+u;)7}6sb{=^D;a&ENG}s^5-^jJmVFa4?RxH}|+_*)X_ujIo3?5l? zO>=KFykwyzk3XD{54z{uKF_4E}N^d@(t-}f$@jv9oFK1LkwX-`|w-5XBXqk z4}K1_E-6Mz&*}=W2jLSl8=XNBzA!_vAAP_+^P$F7k`np|Sy1xrA;xq7nV=otv@sjPK{66KdN)ULkZvt>~|$ORGoE z)E3|wx*_?YG~>olN6dX2x~)~V-mdAxT&@Q6Ps4$Kc*cU3BRh;}8#fmm(!=Q9F5&qzz?19Z+}K!S$+D+-cG{6aj7zp}5%~I; zy+OD-hCM$vO|i)ZzIJT>#*E=DuX6Rp-yycZAH`NW|6%rrGkp7KPSv7`z_0>e_tqWQ zAu_NlkRKzLevf7ho9Vmu2kHLgS9+K^im%D1_TOaR;`GO&rSAR_yKMDsT93Z9(l6N# zo5=b0kMyaSt97L%U)HuR#-A3M%;|8}UXVS(Swf$YZ|zZv<51of(Tw!=8f&s&oEhbd zZD4%8IoF&u;p^RFTMYlMu~lVxT-A=m*vf}_y2sWpupD@wqwlwK?oo`rRlewL=ymVH z7fj!s=3QNu%Y{BRTF>|WfXzq?HVc7Ge&BBMqi{Z1v>kZQ=!VV3Ii{Eb&jq+>j;X$r zz+UrAxI2d&E~=l+Il#hsjnz*V{q$J< zjG;eK49#rtTLbNaUkgu3{7MHo%EE6#54j)OZ3hloM`p2RoTC5RKkAx3;xEEgVtysY zn+`mC`!+IO%`@RgI7#A1^G)OZIsBN~E9N&r+vrumO_Ht?xXJwtPSVeIO>bbV?LBa! z{CGvF+4EOEjBW?~ect-@4d&NBvVLiO)H=x`$-F4A^jAs!qja9qJH?>q_Fv!!iaz4- zE8^=5Bho3A5<4cj@BW^;346*#-9+yJ)_&4c-!z;3B&mB*EROUNNqy7y{Di(qzI|cz zO=?^1scq?<)F0`dWKXp8Ps|I8h6A#FjVs8wR)K%@U1RvK_W#Py>3_2Cm+Bk-8l3#OzJHaz z-}T?n_b%w|QrIW^eyJYeujxDXj4y=yF#0~UN8kTCnklqsX3r)4u7jUyb>v3sdtKzK zF6yB#>IVLrF>L!YV>p+Wm=l^0nirZAf2|Hy`d7(nKe}WrO@Dzct(f`xdAk4i)UT2n zOXfd3dSY1pda&E>pnA*DpQdvq^{1ba@0puP`CdNSF6Lj-9&m=euAMoWvDemH*BC9QURDv@urnBA?Okp9%V-;*mZN){8%93_a}wNw_zcjq|E*)s@s? zC*d#sb<^kQt`qwCf`D)^9UR=qC0mE~_LHoYo#5f5)OMC%E;{V%mWVQ;i>Kt5vGBfx=lRoef1%IgUhI^u`N zAisCn`?p7s4@~rCPHcY3IhL1{-|hB5)4xqYe)l84S1iIAX}ac==Gb+}?-%(kcVIU2 zYG3Z8uocTaNxqiYfh;~e+xLwgFxKAkj0NLd-=e?TzL${E$#D_VS#!#tsNW>KPXfc8 zk`sWZdv>XEmrt~0bz;k>Tlxp&bV~+DKJS@Z z>P7Z?`K=vdUy&@Il+#x;rstW{@_C4HmU~;SKiqf#B;Z+(v69aZtxvdpl? zjJ`ImF(mXY{VX0?dX|np=pEpDrDNGQb41H+$P0y%(cvqLT%0?^Tseyz@hEwcP8~F& zF95ei$mvz|x4OGe>Zkgneu(!=(1+WnHmy7y-SqKC+Nz?yR`k7Uv;8jd+sI(g`J-xA z?e9Vkt7Bie;7b7f6S8-%#dFA(Ejl;@4J2gmT%XRBKFhu2ilQuI{vz7Aoc`i}IQZ}ngGSn}>A{a3E^Q{C&g`b^%k5z-edL*8G-9K9cTUwv%q z-H-V-)Yw{E4hF?weWOateM-?S4LP67tYjt+Dk> z?DfJ2a#j)fjEcd94;lmqIl@5_{?ZFp&5&NOUqJG496ixSa;IDRf;r5)_O9udUl`|S zaZ$~fj8EZW47eC$;X-vKad9ag+Rk-xR!Za4cn>@%CP6YTvDMQro%7!tXsmq|eTdG! z(3+yP#b%Yym_JVCf#>JR#GCj|{j$+)bdN*&m-*d&zqB0rWi9yB@cylS#@c_OuAbk`;kok5s$KO(uvGhM+kx-c%akuQ zr1y0AloJL%C0fP3{#PaA&~_+3H=i}LFKcH3YiJ>UlKt?LbcfBRNysZ{zK zHYwVQkF;VPa*m;69c#o3PTmr?6+2lM*IpPN-l1$wo_mIrpr_D4PpWMejyFZxkJ-#E)dxX9B=u@1Nl4~6I zW0$;ZnR`QQ%Prws81D?qR^#_c&XwKr@f@o%@MWdowkXyAr%mv`-evtfKH%BuAdfEB zxg9B?+KS#D*HEWt!p%0%;cJ|p0K8t!lzdNhsnauW`_SEi?L&i+C21RmO6UJe@9rAn zW4vC^hN19xZ7)s?ufi{{0pGYl{e$FoG(+Cbn!QOMxjP5DJmB@XbOOx|)??1a*aEGf z-wFK?{z~~{6}MdA^#5BU_wWai1H?rue~Ns4`(&l9jS-u0;7?2T3O)mD1A00J;FZL%3c(ku2ZiV=<4jb77v0f08CsX zfpP4`Ja3hLClMpj$2e|)!`719ym#A+l1>redA5leDC{kUS2{PBA1MB+tTffr{> z@7@RQyZCM&^FC(J1^33cwFb1lGBMo28H4RJ3OqgWk4_ff#@S<dc`080qgWW z@MOUVoNWMKE#OOhwsIs0UYv6gvh?voIA0W6?YIS=jo24rHsV?bWP?h_w_HBmuj7+E zmor?dh*O#EtXg!Kc@hH-idl(aXR1RF5Ub@G@g8pMlrdtEW7p%CT5H5#cevY&hXE_- z>@;hJnK>X>aE;$9+>Cnef|P z>1N=t<_J8vc&^p@58u6!yh;-}les_fT@Q%%sQUxpVdejDkZ&9Q+N2$m`tK`i3j%0Q9aiKOU5AhBEP^hQ_tw?xMDGkqx5;=sEd8B zNYtfwDwEE8jYnnt_=(qRT$CBef7PRQ)s|qn(=bO>!}l~1lhxXLm-`NAARm8bwX43W z{~FH&>@&%4)L-?JZ%2=zub-sbrzQLT0I_B#>91gYVyPq7ysA3h!QS?_OB}h)Kf(tG zcn65rGV=?AXKGm|*kcs4HE_tN4R;Z$j`LGKA|I*9I$s=aa_Vt;vM~o z>%GSEh~03Bo?}}khRL@TYGp3Rh$+Xu{#hT?`A$#kI6pF%5opG)Zs2#&I?jl<-V3e0 z-0VJ$pVtKDkLkEIDjLmP`K^V{$G){tW0%a==`rG`k=5=d-$&ho0n?CYh-E7B$v<0j z?BkMrZz=mv>?hmR%{Mk^OPh2)@Lg0otOr_VI@GK=;ZmtwPO z_(pN{HN<8qrfXz(`6%Usc26J0aGe5&>8VDaE#yXw)7BBz%wfzqU+QJUcdZA`{2vOf z?Is57O6cu{B_2;HaZt^UB~PxJ=nL*5?%?5G*lMjfJWr&h*JZ=2p+OrtW)&Y(42~2B zDq^RpDjW-cfbvyEz%6KVLPyE0r%A8|tos6}Ru~svtI~kwi zpjI)qEzGAz#&#Y3d4;j4Z&mcGp17#JjORzdD@>Ut%Ie)JYu*tXMH$UI#YT<4%vgH^ zz8S-PP4~SQn5eADeHzadi`EQGBERs*f5v~cue$pRzE*71$lyw~%ljtE zU2IqLJsA@JJ&jK6kICG$s-zA-jYf>J}O!&aw@Pk?Kh1u|jIq>U!EPlNc zUjI;TKd<=ogARPrxu#$r6pubwy#HHQ1aIQ^G<-enMp}OjKMoJy7d|`#KKway=!Lj^ z&;N}#7hb#&{<}B)cRzS`SLx(v{?N%$10H{t%^67heO3IjKUT%}2c6*$JOy6j<)i1A zZwHZ!H?c45Cx?$>Y7fCj9P-TYl7k3Y1fIu{LOe?W^Dr%P-eGVSMZZYgkptg-S)>#D z0r}p@^_oHddiz>>-P=zO7@hS;n!2(*Xs;&Y1{K_OLr5uw7WZo;@AG@fCrqO*Nu$8rfqjF zdi14fiyF7xx~RcVp1zC}*9gkD-^Y1td>bSeRr6V5H+L@@lL>!awmUH937xG2Z>$Pb-;=nOFKmumBUbk^X!^W6V3X{~s?u?H)keg3mA)vh;Izc;nE_KImly zWi-Z5*t@QC7}tJCjF!eHf2399c|JpbtI4U}1f3wW#+NZ>C$Lq$|M%tZyQgzLQ7(0l zwWSB*^mQ1p{)GBFsrwwf@LAFKGV}@1r(mmmO0D?W?xo#3XzxwhgQr0rMvpYkAAOP- zzTdvQ*8NN1Vp=%#xHNA0=Dkhbf{}2z&@is;i95ka`0Rb-wAJ1Z+F%Dy4M?Y1J=BGk-oVEcdoI}RQq$O;X3e-+#cQe@_LJ3FJ;^( z_TJ$You1+9V4SD#n&IuduPUr_Nwk(Ga>Nu`^H+IXKcZZ0G<|{I&Ym{Hl(Ld89GtZhguv+)Ixme2b=(Un2QE<6bM<5PpYwKkr^&w9e$G z_Vo#;nn$0WKYfAi#q}?__9gLI)dQcOFdsHwf=|h1Nu0)*8|A<*iBrz#jaxW{4mJy? z;8r+2Rnp6=T=T-G@QZ%uQ#eiHCxMd!aMIV8#3$!FM@#6_nW6+fRd)aI1nq0BEG3W0 zMSLc{eHM5p@u=^G$3E0?7QaiC7k-3GFL*o*ygPxlh0oDi-#-VRck%q0>O~94Gp6wGTf^|K#Ve75bm^(o?M2KX8|b zUcj^HrJ$Q$61Xn#&161{ZWJF&y%%Za`fgfbJbwwT)a!fJ0nLjfKXA9zm)yXVSJt_A z(4PU&n|P0XjOFB{sqk7;!t^cLF>7*|d?wK|_Yz}x->vB6CZdx|vFuG<4&{33#q%_H zG!q`p$#?1SXfBIK(;4S+bgDY*MSL1LyzvJt@;ytustFI)Z0D>Q_^u52uQG=}nhF0k z)@BBZx7RH4L2q?jU*9@m(d_LL7eVLKtCjDYi}OnIGT`%i6U&}|btw8hbh48(O;;wo z-Qgma_ov+Fprf@D^Xot#n+s3(7W%Ds^0R_j2RPRXKI6Jx>A}@cBXg0XddszC8@A8j z>_KwPWs_^_=QHkW$%dDa-Y~G;8?4SV`n)#dTP?qsQQuM>U$(bp#@v?o?E?b$*z$KP z2D>#aCG6yREAyg0#SC%|!1SH;LHqHEf47r&&J4CbXA7J8)p705^^U%-h@+5m1=0f_ zBl{}`s`oKA z<(C->y zMRNX$Zn(;}wE>vcy>VTz{taJHeH3g@(^f0}s;A!M_|P@((HJ$pGweT~9b=)Z-NV`e zejF3pp9gl!ug;0wP~CuW{v3}-c#fBfJcqB=Qx+qpHsk8 zG^4(J!k9YwR%1%iipB)*K>zY1qL;cIj1Afmty$xvf7bd3-I%rko+RyPyuz>Orj)Z78HOemLvS=fVd>0lSxFeHP2E5gCCS)9Vzd_kIIeP}( zgq0(6J#`B|!cApL0=B}@rT7sZKZPUFKi3n~Z}pS@c3?YymOSj|tn)7VMn0k5Q`GCE zKf*y0Zy&JNsGkRr%cM)_*s4CkRddJA zm=<@#?ZG5$yYW)WSVSu-FB%d2lduhNueb}rR`rkTK__P!%P{U`H|wI0`QBO7&lfrJgNq%x!7AYpxU{iWD?i>TbYr3kjqk)Aws14B5gn<%nbehp zi(n|Y-1huNx8P#cLtSUsYZ9;-kbn)eE_fv8wEQg2!uQ1J`g_Ho2b{!Nvuz? zvI=y_xjyL+s3)lW9HML4W|Q#N{5cCOlJh6FWn8%4kxsfi6Zz3#?iBb+fyc>7wd`Fr z>|xdHWmW8Hx3JfZC;zF#+UscB%Asc-X71Q3%6A&Yqs=u_qt4>XLe8t5@hY1!vN!#8 z^2{vuh0HO|xXHU+?0e4QD?=t_oFnwCIFzb##aHxr)<5JNQ4u$XI^(P}ucm*ik|W0` zQ&k!D&Fep{jQmU0%Z;3d3M0prR~dC)ofAzTkrQ23;h677zwFc*?AxyoIft=M53P<9 zhnn~u-2FQ+aTdFkFL0dp>@>z_GEOJsO=sLL_Uw!>Yl!d8x&1kh(TM!xH~UYsHCEya zZ};_`aA#C`V^&mVhv0Xh`2u9;Lio`lAE%tfn{CkGt#?N8fthc=65HOWia1BMNv3OG zuKVk_Cl{OU_jAADja%YR*Nl&nQ!Z!yt>dHjoc2e*4c*>z)*o#=lNG&B|GW5qJ}Wv` z^c`6pZT?C%bFjeIXwL>`nj`pHYkpKZ<9|>4>)ciGru8?)m(%vfRawHTwSF}HDDkYr z(m8iOn+gn<6?)Pg_MG5>@$s4^X0CZ#uE$+mT}y7~Xv413G1YsWIZc%F@^00$Rq^0| zjE}GW)5NIC)xZ<1de)5B|GxC$!>PuIRWCmo4gNi6MU&^P&dJ%~1K)G6zI{d1xgFob z{qH~gI=rLucQ-(bt(-mbaS7);pSm-enP!Ycx48Rp^1cQ5?jQKBfmpP;#H7v3*|so{ zzir|B>|uw?QoSEv)yw+64PDWZtBmOP$S-%4@?Eyfz&z^x*pcNsI^2l9Z*v9IPP@t> zAL&fXOlU-X_y>5`*SUX-GcM(aq%%1O@oT-?-u(_tVy`;G$ZJM** z=_#mB_sD)}3~wg)81hDfPJC1OZyHZeZLXOTt#uf+>8XXTde)U$w*GbqF3XV+#q;-gKt!}=?Lpe z1$r6mQD0*XR7|tZwlq`w!#fmO_M)cB@zJ7h81viVA+P4UGxnlu)t>SdHIWN?v#WGe zYso}pQ>U+*9Am9^Cwr4I|GJ#@?%RbA`k=a7S*yJM?{Z$9GZ3V2MQNp0jyd%$PjiaC z6dC;jvg@qk>i5#qZuRYJ(2r@0jnY_lGM0Jt!7Of^sJMM33}A&W;5piJ=*{;8*@{4zB^wEh^A=)`GU}JvA^f*lLiaN?d@A;zNfcXx-JB7b(ogZmq z{IkthT)Xkf`H@mxD{f=G^ps(D*vlDJ>I*tKhq~Cj$zfHMCR?h~Wb~U^#a>r>5g!)8 z2hY};i>`GN$Gn&tak5t0zJU*|f!x2q<<#8S@OuyZzb14YYvb%~wd`{@g!*SB_PIkJ zChA3-KcddswCO?k;pXq&-7^2(GFh! z8W#K;_kPN~om~GfKK(P4{gzj&BG#8UgUTMF+f$3{_{f=-*mH^=BThi%P0Oy7Ao-q7 z$i7y#iu#649oU&O0%dAZpNIb%F$Tu}e^L6RX5R0xb$4Skl{TdfOTGoaW}*$r73&|| zMpLQrew_ChkFl@UkgwZ<%^Ew1tFnT+YS3nw8oG7CslgKPh~Akq8y~vgk`Y*{IzK3R zFg;K9QDtqK@vWt5HU%D(xRyHbop?sW-(cM|D`Fw{nl`kG7+qyzMzkuD)k};gIcq&Q za_dwR=WbQcJA6B#7pqbo5x!N$IIQgd8MCV+mDGECm*;Op7TB@7-O<4RP5ch?``s#K z-Z9qtPF3}9;`h5;YgbM1_;!a)+M^8{ZOrC*KcAS{`jchFytS@k^3JMZw($sv}d zteZa$d;H$3_Bu5E4~ESn<*)A5rK;55(mc)VA^zXCF5bzWU@OXr>@f1JV*}$_yIdOv zzvr5zBqyR>nPcStcJ`T9vMv{BUHva<%d&%7Rf(Znfya5u+7ts`&hwSVGlGM?+2km{ zF!OzVH$1`TEyqt-FT7QIFsELJFU0t~Ezd~(J)Y61DXOQ|c_b)&nN;FV zt%mO|BOtuKOniQs8G*(|E$&^d#WnsnR@cV88@0IXp%bA;-*sACmv^rE$l^ifdmi~`F8{;GLhsUk58ubQwi6kow=7HV!B-?QPE2H}2NdK*k%c}& z7RvG;+x>`fM*TfQ*0K4Itw}uFBhT_)yE()EF7F;-jPJhu6whY(e~mmOGP!YW_rNtn z4l4Ga-;k7piv25I-Zn@M;{Wb#$VxWH{oSgNLCF$%Xzg zKEfk>Zd1cvYUvSQXDR;tL(s8K z?(|0X?iI-W+Eu1v-w);~{?3{B0f)PMjFWg2;yeq1(GZvDWyC*3vZZGtkOj9AGa#^J1Oe z49_i83T=w|t<}VBA&a2vf*UXW6tX9Ohqisd(hDr5{xx!8PnY1A^>^6N!Slk@mx=qI zd^{q4bKirO;#+|)Fp1aMi7$e8S0U5Nyrmy6GL?3L_#4eVxi#DUxaGh4U((gD1qB9; z{9hq!Twp=_x1xV(nNQg^ft#hYsb_Ap)$v>4XoK&!rncJ3ROf`+RB9-IH~)=gfr%qb z#onyycmwjI@9AMd|I;PGN#uT1$*tO9O2i9!bF1S*1JX{2YtoP0mw1E{p`ERdN0xI< zXp5RV@kW^&&uVMU+hlIo*BFa6(0IBgJ|a^KxCgzH&m5EQ$ouk+ysKL-eaA~XCi*kp z1twdFyAe54;+EI49-Tv#mG`qITUd8q=)y-Eh2N4~$%WXtZwgH#23zU@{>$X_aWHi75E(5&{-;}OfhSI2D&)<;~NgYjZ_pf+Bhif5{Mrpm&1 zrqYyrN9DhX|Hj_(4`LdWoSF;TkoEIj53YGXgZN#YI*c}K0!m6{HaQCW#;#rSzIN04 zNY;-Yj}&9i#$OrO=o{OYx%u&klA~QvepGY8i7orxNu}GYMd(Ay`uVa)Db%jY@UAGw zp5r_qOa??C%L3$FRQe{JE_$jHK*%dc+7d$ zywnCL#I{w$x)R^hPIBaL$BzE9HTU&Jr@G^R*1!vURU7C3GMH~GX8_xgUAjlv2XycZ zS8srQfj!9wjd-CC7kg3+ABi7+`v=V$xP$j%>^n!FhTjWgp7$_p*P8F5bH>@vNbb^Ij$Ty6itP9*Om8=fA%DVPpR> zuAzq;*T}WffJ`N4ZjySq_cA@)JD`V4JyeP9ijJP6A3O=~KMe0DNB?h41-2w#Pbc4R z_o$(|*#5q2AH@F$o*(?I*maWpzkAeNy%E0Uhi|dh^|YFlrnWStsf#l^{>BIUq`s<) z&oRLr{QGv{AH)`y!pDWz^gcH;RJS&(cqe>BY>C1v+Q{#_jQq!?)GZf&7MtLXThi9g z7v3m*LB>q{UbxEV>ytGv&v;#rMSNF3#-1|Q=QV3@`-pFqdXBn}TwJVck>_gAn?&A{ zb*`ZcR+W-54C+1bW;t8c1HHU~EuiorJbaEbi6a@D4?-TP=3U5_9cYt*NO`_Ju-US$Wia1Nt}eB)Qz@ z(Z|x>dL$9-7$Fq|6RCV2q9Z%N(sR28l>^Vi)@rJ_R#FlsKMO&WKMHSz&)3t@V zoZbOD-mUmeWL!(J(@kj@QoIb^nK%l&DYGi_iadu+&S%)<@?A?$i@hxmy_`Cx=zU&n za=Up(aFCb=&Ao6RAr zl*T6jr$%(y+eZ@9Pt2a!%HH1N3N$9|Wyqg?^Rt7CeIDF zm&y9v$@oG8_A-4yJ~XZk*va$(J6ZQ2JJ~;4pE4hj!-dy~EHAbnv4e>{Yzupkz;6-f z17p~4e88=*p(gajZ8wB8=BZoq4cJNjp3@6!L#6CBF7}#a?H+V?qjvgXba&C&FK}k^ zw?Al^-(^bQe2!25Tj|(*hobX4prK-DWf<)YhgPnjHn-}MeMRWyUT6i|S=a{-#P%!u zN#Ru^w;jT-FEnGCkrOnJ$_+{`ZJ`;dH_}Zkiv?UuoNPPeA5vHyagsOmz_rvgLgv-( zsg7&D2g>0a6QzdPNqpAw>>+;NgpEXlFIno>N38A0jwMR5ZEa3{6h16{myVdQ&2j+y zEc=zU9UER#=_(8RS~+okXYjQazI8)9-!m&xFn3nu&}nyM8T}tR>y9YrvLoM?-(T>% zKRdF7-!dM>oD*SRUT|t)3^E?cB`dWIyVws!{uBF&+?UuAbMvft>Wr&4`#(P0<+?# z5}uutUo6j_onc~6{QeU<^2Y6a>g>w?3ih5yRQ%NZ=j=t`Z~Xsn=sg1dv*>pMzrVq? zg?w9yH{Z*1uRs_6+&t=0xu3{nd@=Nri993wsaG9pv)OKnZ03FHX?P~_UMPz(49&M4 z-H@VpF^1PiT8bq`-9pUz4{59C*=$|n)T5)b^zT4RUZ?x;h2IRxPsCJ1Vj}vP-oO8B5_=}724F})dJSV?*axUD3O*iZ-E&nBc37O+3 zg|qdjbB@lLF!3)lSE*qyF`Yxu|BV{I2`V#g9u6?xmuLJEKO|(1j zxn#S*RN5U&ySozYe&txds@+#<^R9t*Ka_T%xgc#AxDvRsCkR}_Tzisxm&5g!yd&*C zLmS`b69zw$)9V=Wg2eL*-P7j0*jy#DM#f7moo<0G?TSBvf+5oGCF7M`&D&|Wk9JQ& zzu3qkQiJHX$Z$e)QrlZ<4kc(!_*oJ3<}l7R5AL_0K0m{MP8}ClgmqSNPi4@7Z1pm> z&hej^gAL}Ko{{YNrSBgo*AE{kZ>Aot>*Rs*GV`vAZK`JbCb`poqF8OeG}&zMz6H(Z z;r`={JqBESul&T}ed{NVcJmOwu2Rz;+}5a?XX9H>Is&f{7mGh4rdmD6!Hu8$KGn+F zws8KVZ*plPaa^n$P0g}t!`+XESbybQ)6B{L-g42^3PY-jG7*dfJ^_Mpqw$nVGvoOvJ_uQnP z3y6KDfUy<21Xt3x_{gLm`7gLh;zG`~Rbb2hoUv06!I+EW2-_ku>s)fo|FwUj@H641 z;wP5hV=9&0TfeU4KE&r2d@SrSR`wXNk(?ohPDiG#X(W8z!rm~G-#7DnqKaU@ zgS^-H6K+nm@%wuHe${GgRZ6Giu^)<@D!vSD$0lPBGnpp^t(CQL^Nh*Zmx{t#1^VjV zDby%U?2RX&eeFe_WsgDzb;+})4U>ZA4U>b(XXU*r@cs$U9-o5jjm^W7f<1ygJp))dxLR=@VrMu!#o zLPIaGB4cEVY{A|xvPDfr>9$6Eg|?QK`B}&q)Qk-Hz?azGGmtgjMb>y5dJx}>_1lc= z3TfZs&-k~N`Hd?0g~xc*A=i4;fJ3hP)q-mS{Fdvrd|Q!&`qh~$%bJRFeaMUrTQR;<*p{>p}U&C_sFdH2Sd~959g_#YP+e< zii{}r-c`F|f9URE^MA_c_o^fJep6QD{%gM;eBe#?an|W)_@#H+l@m+JL-3I`Gtl(C z>iDnO*WXxM_5M?%b~|3chFLUvL*xy9m)nX0L(RLIiqdyAUDvD>S8@(HerT#*%LubJK9y;0Olgkrrlfd`;pfHd-tlhe(b1tYn!8pccjh5ioHIMJa zZvH6WTaj1ClVA8QZ0I>7-*%LcFJ*-zC$hA0_4%Eu-G9f(oXC4T_x#I2>;`s!OTLob zi@xDBDgKq%Cu~1&p>M^%wDG$0Z|@E`ddH>e^RQKjZGQhAJ)o28tAspXBdoic#*>Fg zbd)f3+|PFmyMVM~8E9j#p}VO57hYb+ebpZuou(hh_TV(x{h2=x(vRK$F8|x%VaKVh zA#npqTSh8n}#oIyShLw~X{jsWon79(z8C$^9< z;}`o!E#v6E0ecYpPf`ymRjJhqKR9@g5*&@(Cj8*ga%!BSzl&~^D?CMAPt8KHSt~&= z{%*N1_mXWGb_?D^x1RFZ|LeyTsN|bILsvzQC9d0*^vBCtUkW1X;vbW5FaB9%%}LUh z@MqaWlm7X&>=*K`+`El22;Qccm8SA^r3qY(6TEcE9y8!q6+f%^RK>qK*sqGN_CNIW zjtB34qL6iJnO2KU%N!ocS{2{1w)?6;Uz(|S1Z%RIkJJa3m>ggfka!!-;tpzVOFY^~ zjbUO^ez~ta&`KOiD>|-@j=m4Omuq8@ozk#*iBIui zczHYH5Z%o9&tA|>KRckM9`xzJ_u<{tvJ)D3m^yY6XL9frHQ1~c^t3T2i9hMVZ*I`j zvucpKZl1#i-QdVtcaWenIX{5j z4xNczsukKw(v|pYlCcrVSbzi_<+*xth*3nh7ad-7`#spvM8DsQElqU#q%N<0HYd`G zo!LU1ne{yDpS4zs@7M{y@#2S#Aq&ZQWDEU^9FhTC#7`~uWh=2^4aDI{-V;3)J)C;r z){>U_R$yPr`x@W<8Z#F(=@o~P#naJa7U$nj_G050L75qi^1-0?< ztM6D6xqLjC2mV*n8{|y^N)Dq_Psc1jk?dumjuLt0_xoMcOlnHQ~9GzoDytG%NnlsykNw zlux^o>R-?G?{Eh2p$^kL{4bI5#Dy-;QG)Zn=>J8G_H_2X_xRSXd3e6Uz9;-A+Pm}a z7=2WZ!0ycZo+e*sGjv$8yTu{)R^AC3@dFzY@dHvXSz{bdiGQ+6F5&8k)-gL`0Zz#O z69tD2z}^bJYSlJJDZI^jJ+-!gg@t>2Ey^S#R|2k{-s)&na;7BfGg}uVa3y#eJ59;GqrZJVIri$a!C@sldLQv7+2Bjg zN`3~e?&OohK5hbk;KyHwP1gjzW~{nv)w8sF+@jcle-OCY&j6_N5uIYr6+RLOSzZkV`OwYxu8PTHtpnyP8s-p0#=p z_}#}`mn&J;wCAhi%au&mj8)gH+P&(UPI8Ue#h)p7k^Hb4ym$FW{eN7(bWE@&TiKkt zzh!>e7ipVk@j>p`{H)x&Yg(|1d;h|{E4g0D=PYZD_?4HIm!=1=cj z8~Ndt6EXb!z2s^di|*#q_c@N4t)993cEY!0jhKOX3NXIyL9O_q2mjrA7`TkyH#%@7 zJUb6~-@AJGs&-RqV+rslhVIo#-sR;x!N=3cpPzRfScNax-|^<`)jNROX+>UQPVTf@6x(B>Z=?DaX2*^Njbd z9<{2!%h@S=<#FyUC*RwrtdWP%@vl7BKS}H^vPMo(ul@AGH#>yScp1M1d*DXC&BQ~9 zzp|7Z4SIn!VEr+%xQpEJ+T9}pw_Z7N+d;Dy-mW-5=-*(%2ARUXn9BZ`1`kZ9Jq>tc zv))1dQrZ!DRqWI_6kVsZL~UOmHB0@?LyG0>(gVbh%04`uzT^ypoH6cWZwzm9$ER^k z@)g%`wt8K*r%%pem^eG$rBr^vSs>Q}3wa8f*F1q96`qRk+DqNWaJxHRLEYE?qCTUa zx{LpZ+yf_xX_&B13D(k%rsf3>e(kz#_u4Z8LwHW=<4WvVB7TqjYs zDfbQ|3rNlao%iKkX(L%zcYQkgH@cYUJ`(3G^$0~jjq`u0Z01t8E<=8^ z-{Xgi>|_6yXN~7Zqk}>_1>~UULPx!e^>bm(%n&#;^o$N*y_Zj;;DY+GW8jnLu*u)f zzIzLBmwX(J?7iDkb6m~H!syxYPq8;Hl7Y+fV>flV#8ChEl& zTNCwS_dDJrxBPKavGpwS&JXclS)n`R3EN-QY#Vr(B(ZF#nD2^5t<#8-cYeTdk}La)?`1-3rw#QF!-i5&uLM7B!SiM?Oy!~#Pcqb1cn=r}Y+eJl_o-Pn?EDvDBl(p5 zz$Z~JHQ%V0irqZi*z`bOA#*APCYIOTaqyQ{&Hu(l_x0V)yx_A2OwIydKQPG$KId3B zPQu3+ygV!S8X2EXY=XwKZsG;>-Q|Jfnabv3`fz7D$gNNw zIKXciL*2lCy(*bo!4Y@~xRy32;N8gh{tUcj&eHY}#!xzEl2Lbd3}f|i-)q#H9n>%P z6a7vO?5E%3w3q02a$q-o_V7Q^@8H}Dj=7v}@n!TU{O{D4h~R6S-je z8g2+31}*D=sm>P$KX$I zkIlAaW)^$Kj4k%uPd-@5p;AuV&q4N+-q(ic(7IWr zmotCFp)M#jTWwR!HrsjP&I&k3cmbWL_gV7FExxa_XNRWun>4?~L5uHWg4to~n!y>h zyn0>uVbpm&bui{}c2?}U!(EXK&RIbRA^7`Qej`^d=w=_0+z?SOU(s`=pJboX-@noRYxHHIuLFbnl76DJF=2$F zcR%|L`qSvolBmP7c$LwY#Q*m`OD-q#Fqha1quBM5edehSo1B}M{w7`QUwkE;?-`hL zGyMs@yBC#rcCbJB`22=zBG<@#Wek(%$Xqk%JM(|^-Ls=cKMqVdx0)Y?*Im*#GR8mZ zdnx_gL*MfL;QnLdX6s`2#rGc{T*plMLLawvZ^3qnpT2u1c17g!%g5R`1DaIU=Po7> zMqPz6&mXUxhg?0cNMHawKd4jYZK_r57On}NG~*jszs~Op#U6c~->>mIUTNXiwvL?ELMJ4ipoBtAb+EaGDessc2 z{g~4oksK_i=FSUsG5*sFZ(@zlWv$=Hnx6w7nT-sPIO}_1&9Atoa?ivwX81q~d>|FQ zb>#jGc!BMms{)zufMLv8Y58f~o-q3@8kk~qV?_0USV)%o^+=#8#ma_fsPwzoqF{gzZE)Y+O zj#+sDn=RjC*EDv%z<&H6S6OopsKx#f$kYF!E4eS-Y^#5GRb%HL)SP*b?AHVRYQ8_m zlrt~7f7a@Erz^VhO#SLVT9kWE<=Lie+h^OL|4BK;@2c=N#xF6N9{}SR^YGBO zPTT$}Wq)j(EmQ`-jJ;(F_GBv){c=53**}L^zvm~pL+xs2Pc=O1MV@U}vwI{S<0UoY z?PKQ5@OqWn#$R0j#QxN8cRps%2{b5nzrtDSvGBx7?0wky7i?E|O<%`HbiJ;!mg!H+ zSqj!ggQEE5ImLA8ebv-5y{l~3^cJ2IU0^(8lQy5BFQ;NM^f_rW*`B<=ooD48g?HQ4 zte#!*exu!%D&$xC?BaR3C(m^8tW(MAi2`5w#@@ET44odL{bt&ib)&cwy7ha^S)OS{ zUww=F$!ExcwO|)*O52LEYx=I#_Gw1{DeI<*-YC~D_N#o^ubtR~Y&UJ1l%AB_xo6kW z_h;se@Nsia*lEh_d6T}eQ-`G=dsbDaz;i5p^@D?wli)yA-p)}n-nKJ7H~8sSb9%s4 z@X?opTmSg-!&_f?`H`)(9~$%XOi+m2CbB{gIe-Rf+JS5?~Ug+Yl{eKi4 z^dR!G`{iBJ3vO;*EVP0i*CQ}-H-)A_N5S(vD>3+Ix!1$D3woJ7gE{Tidwl%vMQ_=( ze^S7@d*fE;?y??{xwYMGTYH~K2}R3HA&E~uQmpBx=BDchOa;aswebDPf#`egPW)(- z&fnjxx100*54|#L_4c>wSO5Df*ROtWk+yv(IbBrkK3Kgyc; z)u=s=UFfON>>Kq@&9lhijeYEixyGJyWR2`G>{0lqG#kE6KE?3LDCbT!;3N5oW8mU^ zF}xjq(Ux7+iM|<>T!dlZFXuXCzH;`~U0)g)4UgV7SJBV?KzOQ>FZ(y+v&;WbeF1q% z6XWxe*T%&di&QzURpfWW2mZJ5by=0ocQ8K3pz$>@zDDTv^6@nc8lT|G7~j0oKtJzq zWqdN`A=s0C(yZ!7ife%R4SE&heFa!$oW@hMm|SZ zsZ{d)SH3iB_0v{GckilSJ@X}K58bg88-yj(WV0fFEuaQ_3u9l#nmCQGG>`doU!*zB zfSb^pk^cpGVg+ND=UNz_(awl{j=GY4j?G+`b%k95U$Vv3!MM0@ZyaZ`NnZ=tQ@=+) zZeab7+Q-nh*_UYBZW(BM?N_v2!yH_MHR%}|bI@#aFKhb{b z(*E}b+Lq^yai=MAR^G1Dw$!Pg2z;crS?Q8{SeyC&7RH~Xd1*VjCIvoM(bmKz6FOti zV9%rO$gaf`IzuDfx=uf0?~(rMc%~6JCHo?ejf=fLcxvwT?EN#50cIczR3j5`27Ar# z68geh;*Yd&&B{F+&t&jyCUQbnsOKbd3;Vx@-N=fZAUQwIVe9EezPHS)uF&57S|Bzq zL$@L?U>nWNMivk~Aq#mShOa1Qws`W9Gun~ukH3bGr+Gms4`@hdz5FF5SX z){nlDs*g456k7dOmALoRs`wAb4znEzAV-y@hW7A|*g~VPrRx(M`=$ZqZMfZ50vQQ*{l136<@Ppz!mLe=8gX&&nDWi5Hhsou%Q0sQwY zUft>Boi5@6}M z@Ff=y=eOV)m5gh|TdfXgz^DaR^NQ5#rrybJ?js|XW-t%ZxPHcLb(LN= zUn}3jVlD;#HwNa>O@ES;C-(huj&*Sji--J}mgrZaT*S)orhxFf+qbGeSWB={QjFInTl z*DP;8ST1wnw{14_2n#=B9x>XIxwx3i8_YxUvo20|+yAfdGVa^1a_i9TyzY8*DRf+! zOC$e#JW6EP?jJ&zh5k~;FaD5i;JtSDlaABRrs!Ut?S?OP@2Jydoh)EII`EZ7%M$$j z9pUE!d*SD-dx3o(<0NOae+={Y5>N6Z{9NoPrAzK3*AxD~%itjM7T%t)UCiQ)*)Z4K zL2#J7WYPc}CUtfX;MDT=Jq8?vzgsWEXOgcUVD6{ka|UkVHJjn@Yep&d{Rx;vv2D9lz3BSFnBM|ejFN|Q1=Y+q&U6b#H z!Xp#$Y6pm6`kPS~sgSxa+y|~guWi_P-k?U7)ZU#6%_M1A_9X>aRWJ{!;UTeVMm`wg zC#VA&&HxtF!=zS-)asO6G4c$#N|7an4r9>$RD?y7?^2>JTRT+E;J{!i@61T!@ma4b?TLJvY zA@3r6$Lu4;wpc1lmyZy32Tu zwNPr7T%8(mmo|@{?v8AMFLytuM1;2A2fw0^U{~7wlTq(Dbk>VeM`g*X&MD|r!ZQr| z-!=z6FwfuvM;;LRM?V41QKy`-9Oim7o%0LNT_2K~s0){rclKZ(@s4~4zE^&3E9V7?8*KD)3v5xOzY{_wz(tjH=iHt{VU3HAfYtn4UU+8xK z+_-%IKgadtW#baQ(fu6pzz-i5r zrp`k6jlfIfHtEB`xT60H-JK$?>9e!}*ueuAE~%hSZ9eDOEgpeot4Tw)tT4u(9QW|# zxCdxYYzd(O8$uCd7!0Fzj79JubS-eY0ys&Z?7psd8W1?C z$^Hi5B>fs@iz*fWB2f6uD`f7V_vfMQX>wyUe4n zxMjpmk%hx=iY&NF?q%z3$XA{d)Ubh{2%i%kHs=Jn(+6}bqh1X>?NRomRLh;M_onuWjNCs^Y);>2UjiC*y|BeOR^FU8~A z96Mw$1SdjQvX-Jh+vw;9*3IzxwMM@mIsh=o6U&mT)riI26cq#=CB5!pt2j8N5Iwk%?^tt2hIL>GbZyZFUm(r)?G#qjXti_(78DmVWyCm&+p&c2c_}lWK zAur<;`;#FrFh+^J5xCuEj4^R8<23T2(8?L&!_S`X-y&oEv)BPfeQ1nxFx+aPk6*#> zBre5}{|E3t75oc7oK3sJ3;&Y-k9nc^s6=)XpSAd@Z0L{IAul3FC45xy$r!dMk>LuF z-Fl~F>0(=ojZ4=hN39L{O?14B0r{&t+m2sQ=A9OjwTA8&DV6UA)(ziDKeotl2RWBW<%XDa&4UPl|BYq(bj9>_tt znX@zY3Mc-|e&;;wQS-zuC4KawL!6zVM6$&13%xx&ub_TkW`^yU2YV8_=1{5EGZj9{ z?=tE>N^S}ZaFcoIn<|XTFm*9;#NPNJzn6Kc^z?mU?i_ayo zf4w+pUVQ^NYXx7TSG~o(jm!%=Gvr0tX9RbfuTbpZ&VCVhFW#W{GB42qz0B)j@Sri5 zqu|Y$4|1Kz@xH7)8?lsk*_rWZeU5jR&${M>2smq{&y?sRi# z7xIe4CR)hXD{+m<7$YODP@dmCB~Ueb(zf%&-)W1QjQk0&Q-cZrN^S@7i<&yrCA{c- z;f#>P3Q5e6cugtfT_K*ZGTmbM zk$uDt%AWHMFxr?>V3T}A4XK>-U@tw2ZDA-egXOf*!B|HSizIy>VGm69sWIN_QIobw zztZRHsoLaT#wz0%zuNPR*+N`qG9L2`abKN$Bp!1rahMn^-;tOskCb9*e zf165urriyluHE121h+QoVoV$YpOJXRo;>tnY8CYqCgLIe=3%+iD5BP#)Mp|NQvG%( z`j5z?HrD>cF!Ih6Sy zN7!6&Ew%-TcMPl6z&mrs1U>?%f~P3CpVp1kx7|$aZL8gl%Fr^u4;&|P6a}9W^H}$~ zJN`Dm<+_1iVjHDq(~Yd>-fZF*IRp6=a`2iNoEc_KO8jEu#n{CJ9156=#4e5jZvM3y z#rH|(mJWE%KKSn4@j z$XirM-AxS{#)5ov542f;Ec0>UP@SB0;ixl5*N|oIC8qyiASHB8-F|oU9^?&Vo1W&( zQ1rPhT|-Wie1*s%aSb`C`}Ya^mDm_GY*G~><2=i6YM4r$QOOHor6#Gi=-$3)8TFAq z@87a_-;_WNwc}5ZLdKg)T-azWxs0mPP5NIQBlvuc zJP9g$LLPIIbMta``XpnNJhfxNvt?B6#b=9ob{)?qpOa@Ac_zB;7X8Q{ka6I7hyCuj zlIP(;@THBe(wFhR`1VhtOT=y~*7N_DccJgiw;S))>hpPbBWqdgY4Waz zcV)~nUKxjsxhudPitR!28XUb7-x}wtbk0}3%DZdvrJz%74#8hKvWM8l(yp7ayv99| z!HD}uzp}bsr_bJ<*!4yKMDKci@f1Urm;Rlw$S^!P#`98_SmtqINwJ=Q(L2EN9mk(| zf4k&P`U;px`$@Pw&2!=xevO*b(vQ*Si{#Fr4z)JARxhHh>3lTw2+?VGJhFk8F`sD0iPsnLX93T! zKQNwZy?&sb9HX5X7u&h}pJ=C=XNDN<%+RX_+WCTSp`94C(=&*6w6WG=oloo@V7xX5 z{+pARwDXDGp#k~k7HCU!Ly>h1zwd^`Z}IV3pf?TOcM7`i5Ya0aOP%sUL+_2j?@yxV zjsRDk(5B(Py=?syGA^MFu|>+WLN7uSZs;Tiy(DM@eb=B3zLyNLfzbZ{q>thO8ZLr{ zhZ{89_dv1UoR+du^19o|b9~7f;#{K6xkPGHZ(hZGjtjhvISsLWlQEaDhT8bv&;66o zcMmz7zg$0g#`=-*uIIkgw@R!Z>3az06Es&J>!)Vh{77y34AFHB-*SxeJKdvh(7#;A z(D*3qGUQsZu%FzftRG;wtE0ClbHwk zC5W#ges}B;BfhEw`B?CxAT$4*v5K9&mbt!m$$W}{|HMwQuP;R&?g9RL`F;7?e1Z4A zoNM02xt^4{7IH2mRT;mOwdb@b<2UhrD0`9qvGW%F;Bqr(P#obS&_EhIv<1F?0oou2 zY4hq+{aeoRn|D`ICvZW{nH%DslXH=Kt*%;f$ILl-LtJ8^qc|ilHO3B@n{4U~Ovb ztHiz#d(9Gxv5#x~k7Apw8AtowF$%@}Ia6&tu3npi`NzFb3D#{2m$$tyFH zF&ttKOZG3h^^?5pddA>_P7T_ugzvI`I>22C-`(V&5Sx(?yT{kTUH2;qnn}=V0l7Y? zp#y9scSN#3nM)L2(VV5Me3W*s%u9@SGCFIU$!2SXw#uO`v1xZK8nFAbe_ddFdFl9! zmM8p%VQBqHbSN3~o~)s^y}Ub(d5Z6)W6>&Ta+tpb{e(O)z;_7trlBs`U(dh`l5?ZR zp|O@PKs#rF-7)MLpA-A83EY{_ao{WSKE}Lb#5MdH-;j)-S`gtq1`O~Ou})-c)HUQi zY=x|=J?t?OudtVW<`}x$U|up9MmJ*9k$1)BDsYOj&YH>ZQ36a{;1HPDlQ5YCObq*) zVY4dmufxtMeCPmc;w1U=cOUOx@O9ukc>m`unlGi!E8;`3vY*Y<#zKO^0@59$)rD{XgEVBR=;I`VoGY?B}=i<4nz2xg6e^ z$GjfJ9w)Tb1>K2k6CJ&Ty_%TAx%J4S^FuW%FfEh1GxLyBZwguXfBw$7_)l-df0}Ce zPo1e5D>tw|_cO*eY{AEkKD3q30)NTNndB`(GqTTo0=*s1TcjTub&D=}2cu>s($3j- zu_Yy+mFMJ~thD=Q=JIB|f6HIFFTCD#u78WfSogoBB15al&?d%aMutvd%&ExG#CAYK zg`BfLZBB6&b!>_Ze}0p3CguqBsV$tlk8{2-pEHOB(HqdsOfKz~8tRp*u1}n*4)2}l zycVqe$6IPG>8vL;!-1dD-v7x_^n^i^Usaeu!=$NHEyO%RUjjLwer25}*S9=l14kGygEz7U=dcE6hveGjK2f=5*V;T=SA=3x*qK3v^ZUj9mNR6aHgq`I6%x4gNKn zy>j-S*oOzjza`?nh7HI&68AOSp!ekaOL*VF1N521L-Y#CYvwJNaerJ^6OtU{@*5uE ziQPb)1alObPhww^nGyLaF#$Qovo_rz8z@v5#*Id6%LOlpxQYm95VCk1qBjLUPa-0L>Z$QFfT*xNMD z<|glnExB#V;P)!HSDtu}d)>yF-sF4S%N%0d`zo64V?9ZKD*L8e1%}8RvSxn%{-tx4 z9JJH1mnGLCG7dcYOW)>R;(3WvHs~iipd9FAy_DRMVy78GsS+hn=aWVOVk;%H3 zCwPRHvHJ#{M>gK$JhF^WY~fNLQSt(u1`lW9C#RrMx#!1Tn(zZ)2Nydja)a#aa_{hE zF~vz=klc&jh8=85q7BI_B(-G^(YDkojTQ@!sWH~S+)G}U8m20K-cqhf8yDkJnFF-x z5#Nr`soYbkEiX1re8X|cX`rZ1@Gm(D3tZt(`U_qoH3Q_XLtS905@Fl5FEZ2>*|L}z*EgH{oU-k#Nf63kpu9DYXVB_pG@#%vGGaHN%1uu#Frw^C9g?*=;haBy(X{e0vFERm#EGU62GO^SMqm} z@q0V|0PLe-)6um2O>0f8gR#iaV*!B~7k-oCjZ*U+xQTox&-FZqtS3Gf=t6Q($h9bID(RCIAFW&y zo*ic`E2{H@!=vg#y;J6d?!RSXr-FPU_mg~msmb|)=)K2Ai{78*5xrRM8~h;6T_L<6 z$p^?Qj6UqltxQ$!?k49xW9+eAEgB9^%_RUMD-YQcK)16A*tYV32IZ=FA^H*NEFQ%mkQ z(Y4wf5Sl5?8X9VLmj$Wv*d zt@T+|k!98C!BJoIZ&}YfXQ26ICN1cc|Ky=AQVLzm-qeD{@}FGP#{Kn{U?KnU*D_bl zRYLy2jw{F^^Nf|8b}By9suxCPx?k{7Ph;8of)`4zRI+bx3hl{>PodhYoedrE!D zu#zk_GbPKEQZa7CuxGNCRcq&4XGb9{n)>lerqg3cS_9ew5Gpx6V9-!G>Joz$H4 z(S{rNTBc=WS&8Y})8GG?_Huc!4j-e}s!9#ZiN29l@osV%p^uOoZw9!mW_?wKzDS?h zC-|1@-jQlNj$X2t_jPr+QOl-(gPbALSc4YUqLp`Syqf_XWQGcI*b~9mstkAho)W>I z)bVw?I?~8-3JxXL(8A1fTS{j3O=%*p)%KC5;M3J6^70G~NB`TjdHXER17<0&w!%kQ z_u*T!_BcAM34Qq1H23421D@EizNSw<^ZmzF?2X8qfhT&>Hhb~e#&)*P5AlAi|HZqv z=Ss{VxlWhktE;{lVobd3!B>S(hUJ*HXh!_>PPBh{4U(c~0)T{EeM8+>0{SI@+lt z-{d0RFT!>rZ6wz9P}c_FBJbyNy$Czm-@uJ!?Xdb9a(qgxQq6=`N9bzowdMGdfq{pb z&}HOyvCyB5{^Aw=8R2=n-40%)FVoebIOJc{M0?>&0Tumls@9q zs6Q4iFTplAN{Iv9mnz;*51ySX_JfxBr{7mYa_;0Lu?*yo4tFqTOH)gv-(=~rX2A#U zYl%czZ$cCL+R|;cJ|Fdn;UD07TxO2r%4c+W`vlPo3p2y`xZ{|UJ5r-qK?;G*97Mci_j)4**E-0qleawSxU)VjulV-7Xz^DyQubGyq;!o&0|F z``zC+)t^pNa^+m9(2W!R#OAv|+O!cHwiw&qe-Rfj8Tu(AFHR|K$Xtk@pC|L^psfzt zdXRZYO~5YtjnePqLKo0UcZ%}r^W2mAsik6%MelZ!^LIJx!;5}rOSJ?%K7V;L*JNMU z`Hvia@wr>i_b<@06?;B?554b-TqD--9Jzv^`S908&k?vv?Sn#>b{~50_q1Xy^S>RI zwarhIBHw(Iwxo`%jEx-LcKCHut4*mm2CT#2cL#Jk8~h$USyj;hjsw_EW`buIaH=cV z=mASmL1U;9xytTd z6@5Q_)hyt^e*Effj7ezB7y~qKjN#0sV^~3-45XkTjZJrC^*-=^MT=MHFJ_;n9@MxEGi$syeX?d!F!fD78!p?zY8 zh#MpW_IPRs5754>X<5qxhaIc|S<^ajGGGFo$C#_kSzCtx`&?CpuH$oM&dIe=$CzbZ z$an=NI_sk6oZFzu3~(bcJOURBYrw`@I85E61TKpVT%N&KA$y+Sd9kbus}lUWe504k zdMW3(@YQGFnWyGfhfZg^<4?oi$o(6>HkP)zMd_PT%Gg`UCm?V}rgULPNA{V6{4yIk z#)CXlhg>7|R%^(slQ{dTtz~^IY?;5Jpe5Hven@=`>pgRiqisw}uKcdOGNbsNJ6h&@ z#$=$=>~VPcm{}WjYu7%Z^LhI~{~!I!MiGa$_6ezX>4W!rq4_%d@LZiw-Lj$eIx>jM zUOd5_S!2lO!WT#WxM8)4545p>^5KTAUw8A6dg9kyC2B$sw&b`;J;A!CPAK-iaGC5~ zK7VJK@H%qFC--GrkvrnP>K#Wj{LBYGv)B_h$uF`UeP5L`D3Q4Tb3^GZWE>TTJ393I+wmo*;) zzhh5m#j}yU*|Xyk+uKIY)G^RWJGQS@;$HRCOxqm(?^JE%wblbxVt#jE`|Ra>kRLnB zrg;CvUU*yU-f870>6<*EPNU@GD(Au%>9hJoj{agGXQ{-Tihd-zOe=6}V@?5JV+ChU#->9X@c&%xr^M<4 zAIbF)Qp+cQhxNMCl;UUp_C|bwiI_;Kv0UIHr_Pq`7y2ikn*8Madp~^b?qcC3$UYMD zD7FSG&r8g7Oc2!7y4&dZkma?njR&7@W=M%zmoDEHgwyXEUj zyq5i@4f#WO&{E|6ZdG}851%M~dC_m*W85ui3N=Eh84f)tyV8RyMJq-qYH*xEOXN5d zdgEP#cQ1sl8s0K;mPmfYJoL(?>*4V{yYx*pI9a|AslkczjShLO@vQ`Z&9~^S$^3|4 zWDoC4!dB|4OdhE`_Q9XhgU#!a--#voGj$f)`Mn*T?JxY^$!~?$Q$qxny-1&rzTB|tvHcC@e_#(KXIh2uuT7cCe$knFY4a%K zeMGhGJ3!lAMq8QT7twKFqP_hWE^UkJO)uHq70I?Xk^AWdXiIW6!aIW>@l707ux_0i z)cMF6_>1^UpJDL7{u$)er>^nY+fvzM)1dWqXk80gp!Iz4D*RBp(jA}tw6d~2tTgRo zzY}`@zvuv8P#c!_gCAPsg;vI4DR5UbTrjVcSj-02ND1S&Qlm$Q$029rHegR7c5K1M zgZ+=yjZY0`K~sb8J;U?Hy=AFEiO;@xk8^o@=-0RxObzPPxv3?ucv~GZ@CbK>HPhYH z@(i}k!%DCgp4C>(^{e1vi6C z+)Zs+taIcxe0cSxzVcOVcetDWVintj#ebcdx*FsRBc^G=c4VQuKTX@*%Jao)QD7-? z?Jcak56~wh4uH6z@GS0oiG}{4dQyNhG{K@7O3+z5sr-jw^b>F>Ho;Gr&%g2eSIAA$ zmNxG?sS6&Ld9C|4wcOY%*Wc=nya~FAa{gb<*Em!m$ zVim4+M*`LE$Oi0aQFE!Q+pN1D`oLXr{W8t9v5x)pm+p$&mRVe_zv7+WxGRu3jhbJd zm{X0qgVeE(MDxhufnNNnS&3v?<6FKlh(3g;{@whC8*=tPh&}2weDi+z=Co|(RWG)w zlf+vSQ@3&l`f;1t-Lww;i|z8X`ANrJ25szGTm*fJ>@$&k6=H{!^R?}qixFQ+>$R

      ZTWy<96tZwS;}K?yk!oa1uqrs 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

      ^-andsz$iLBoF!ZGRKmE`8j+tOxdFhjXR{ z-Fx;z%FnrxGiR+OO?*cV^m{irW71l5AeJ!acbc>|JMlM>BK7ECE zN>a))c=;xaJ&|>5V)2-yIlJhCJhZ*Yvis`8GCj}`A;pJ4nAMk z_62K>-D1?7{pPi8Uh+x}n7Wpf^Ht_i!&peMXJJzPx8 zF$Z(mb&hz7MhfTl$>Abn;Wmqrv#t1gY!boo!pq*6T2%PPRO7M-rdkRgm|8fP_d&c5 z=6%ouQ(gZx%cRAL*Be2{er;?%O{o&sfGP7Bkw^o!uRc89j_~Q2dF{(0z=>j6Q%br&!GB!gIaT6KdH?qEosIM z)GP}-P>1w8iPx;yrv2liDt>b!yszS%mT|VOxTo^Xb_=?+&(SYm_Gc$Qec~VU(7}|? zwRUu;6m!A{zFzPJcfm)T@+x29aK(GH2GPasmrwiQsIAMSU6Z47c=E>LS}wRK?*;#I z7nhk3tRkP{g%+dRUe2?=D<+}*5TPf0K1L|Apv>sJjryE}o`kZQ|7x%N+6@OreU~q- zRMG`g^xFkEV{sW@z$PjB?c%tMR{j$#O~CRO>VAfN*}x&XDBJ&Bo*Upx1*2kBzDJ(# zb4C5vMdNP9^u;dalkdPKVpjfR{tGcH70Xg}eK~HW&LEzl-Y-`Cc5AIs04$b_7kFRE zy#bgzc^1rf^Sp}~p3yjy7kmTi+Y0r;^y%TJ`QATHroO5Chx*FDEkSm2<)&SA^U`SC z>@C=t$JRFw&&t29FTZG^{55@r_ulnaz3XVa**t%g|0wCNvcFwW#vWt~d-%G#itydg zew`nDhq>Rq%Mx4!KG$ua9_?}2r_}je=3exi<`!p=t`uYZ9hB|5IVb-JJiap}wIqvo zAF{!n=r*ekbPdy8oaeC^wk$>$R^JXLQ5N$flw?e(qaBMm-`Ya?%(0TXzkg>^m61BJ zf&6vWIi~)I*6nZeelz3#ZD70$_yp%lVE)dX6(+1EoNF%)rz77OKb`+wH)Q7T0?zKd z)RJ!Qf@KRaY5T+Zc0V|G=0@S%K+NlZ2It&8=RJLJ-u-1bcU~IK zwh_ko!Gg0sKmQ5f3yerD+1UqY`G||*{7FAJms}Qw(|y@LhjT%4aC^?5)Vhz|$cE zvjV@t2QvN-#%m96cc5b)mpbuRz#@O6vcDgte#@RMpC9NA$XA}?Z75D%R_M3vTkS@! zv*5af`T+YUWMwU3nJ%eJGg?zH#yGIymHg zG8f$&_@-YG#~q$l{zMeFPc-Tr<$n`+e5B_R3s-sct;)O_D<}S9KP>)@3aC2C=ihN$hNNEi<$Dw?7X3n0MjO z-Qds@;LXWVMnrh@Odk&A;rDIN$lO-pl5pqHN!mHE6u~R`F^RW69{5pFczr-&Hzp_J@n|P9E;#W0x4p)*l>mP6{`y$*b z?87b2{r%hUQmr;TmP}&$vH@D>_21dzfU>+$9{z1?4utm zk45Rn6Wmub&Y~Z0GS+P)2esN6`@=k+I~La#xNlJFHEDy*apxQWr#^X zyo{ZLbm=#4L+E&1xiEjTJ0{hB$;V*N!v-< zqkVOpL6277Rac=Um9s7R_ANW0`XkWP3*XX%!};fZ{*RU?|G;Gj_Md;xHs9~TcZYCo zWgo8n1C6=)0-mAwmU)E#{{((^b6>{4XW@-5^o?krd_k8Tc*U$In|4^udM>7cN{

    b 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 ~Z!q8w4)3;GzIEaY$^A}$@4hX% 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Ð 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