decode_to_md5.c |
|
3999 |
decode_with_drops.c |
|
4394 |
postproc.c |
|
4567 |
resize_util.c |
|
3327 |
set_maps.c |
|
7422 |
simple_decoder.c |
|
5507 |
simple_encoder.c |
|
9146 |
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
|
22749 |
twopass_encoder.c |
|
8388 |
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.
|
23162 |
vp8cx_set_ref.c |
|
5938 |
vp9_lossless_encoder.c |
|
4225 |
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.
|
47350 |
vp9cx_set_ref.c |
|
9906 |
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=gnu++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
|
3821 |
vpx_temporal_svc_encoder.c |
|
41082 |