Name Description Size
decode_to_md5.c 3999
decode_with_drops.c 4408
postproc.c 4596
resize_util.c 3166
set_maps.c 7436
simple_decoder.c 5521
simple_encoder.c 9160
svc_context.h SvcContext - input parameters and state to encode a multi-layered spatial SVC frame 3303
svc_encodeframe.c @file VP9 SVC encoding support via libvpx 22617
twopass_encoder.c 8342
vp8_multi_resolution_encoder.c This is an example demonstrating multi-resolution encoding in VP8. High-resolution input video is down-sampled to lower-resolutions. The encoder then encodes the video and outputs multiple bitstreams with different resolutions. This test also allows for settings temporal layers for each spatial layer. Different number of temporal layers per spatial stream may be used. Currently up to 3 temporal layers per spatial stream (encoder) are supported in this test. 23153
vp8cx_set_ref.c 5952
vp9_lossless_encoder.c 4239
vp9_spatial_svc_encoder.c This is an example demonstrating how to implement a multi-layer VP9 encoding scheme based on spatial scalability for video applications that benefit from a scalable bitstream. 48837
vp9cx_set_ref.c 9917
vpx_dec_fuzzer.cc Fuzzer for libvpx decoders ========================== Requirements -------------- Requires Clang 6.0 or above as -fsanitize=fuzzer is used as a linker option. Steps to build -------------- Clone libvpx repository $git clone https://chromium.googlesource.com/webm/libvpx Create a directory in parallel to libvpx and change directory $mkdir vpx_dec_fuzzer $cd vpx_dec_fuzzer/ Enable sanitizers (Supported: address integer memory thread undefined) $source ../libvpx/tools/set_analyzer_env.sh address Configure libvpx. Note --size-limit and VPX_MAX_ALLOCABLE_MEMORY are defined to avoid Out of memory errors when running generated fuzzer binary $../libvpx/configure --disable-unit-tests --size-limit=12288x12288 \ --extra-cflags="-fsanitize=fuzzer-no-link \ -DVPX_MAX_ALLOCABLE_MEMORY=1073741824" \ --disable-webm-io --enable-debug --disable-vp8-encoder \ --disable-vp9-encoder --disable-examples Build libvpx $make -j32 Build vp9 fuzzer $ $CXX $CXXFLAGS -std=c++11 -DDECODER=vp9 \ -fsanitize=fuzzer -I../libvpx -I. -Wl,--start-group \ ../libvpx/examples/vpx_dec_fuzzer.cc -o ./vpx_dec_fuzzer_vp9 \ ./libvpx.a -Wl,--end-group DECODER should be defined as vp9 or vp8 to enable vp9/vp8 create a corpus directory and copy some ivf files there. Based on which codec (vp8/vp9) is being tested, it is recommended to have corresponding ivf files in corpus directory Empty corpus directoy also is acceptable, though not recommended $mkdir CORPUS && cp some-files CORPUS Run fuzzing: $./vpx_dec_fuzzer_vp9 CORPUS References: http://llvm.org/docs/LibFuzzer.html https://github.com/google/oss-fuzz 3604
vpx_temporal_svc_encoder.c 38165