xref: /aosp_15_r20/frameworks/av/media/ndk/fuzzer/README.md (revision ec779b8e0859a360c3d303172224686826e6e0e1)
1*ec779b8eSAndroid Build Coastguard Worker# Fuzzers for libmediandk
2*ec779b8eSAndroid Build Coastguard Worker
3*ec779b8eSAndroid Build Coastguard Worker## Table of contents
4*ec779b8eSAndroid Build Coastguard Worker+ [ndk_crypto_fuzzer](#NdkCrypto)
5*ec779b8eSAndroid Build Coastguard Worker+ [ndk_image_reader_fuzzer](#NdkImageReader)
6*ec779b8eSAndroid Build Coastguard Worker+ [ndk_extractor_fuzzer](#NdkExtractor)
7*ec779b8eSAndroid Build Coastguard Worker+ [ndk_mediaformat_fuzzer](#NdkMediaFormat)
8*ec779b8eSAndroid Build Coastguard Worker+ [ndk_drm_fuzzer](#NdkDrm)
9*ec779b8eSAndroid Build Coastguard Worker+ [ndk_mediamuxer_fuzzer](#NdkMediaMuxer)
10*ec779b8eSAndroid Build Coastguard Worker+ [ndk_sync_codec_fuzzer](#NdkSyncCodec)
11*ec779b8eSAndroid Build Coastguard Worker+ [ndk_async_codec_fuzzer](#NdkAsyncCodec)
12*ec779b8eSAndroid Build Coastguard Worker
13*ec779b8eSAndroid Build Coastguard Worker# <a name="NdkCrypto"></a> Fuzzer for NdkCrypto
14*ec779b8eSAndroid Build Coastguard Worker
15*ec779b8eSAndroid Build Coastguard WorkerNdkCrypto supports the following parameters:
16*ec779b8eSAndroid Build Coastguard Worker    UniversalIdentifier (parameter name: "uuid")
17*ec779b8eSAndroid Build Coastguard Worker
18*ec779b8eSAndroid Build Coastguard Worker| Parameter| Valid Values |Configured Value|
19*ec779b8eSAndroid Build Coastguard Worker|-------------|----------|----- |
20*ec779b8eSAndroid Build Coastguard Worker| `uuid`| `Array`| Value obtained from FuzzedDataProvider|
21*ec779b8eSAndroid Build Coastguard Worker
22*ec779b8eSAndroid Build Coastguard Worker#### Steps to run
23*ec779b8eSAndroid Build Coastguard Worker1. Build the fuzzer
24*ec779b8eSAndroid Build Coastguard Worker```
25*ec779b8eSAndroid Build Coastguard Worker  $ mm -j$(nproc) ndk_crypto_fuzzer
26*ec779b8eSAndroid Build Coastguard Worker```
27*ec779b8eSAndroid Build Coastguard Worker2. Run on device
28*ec779b8eSAndroid Build Coastguard Worker```
29*ec779b8eSAndroid Build Coastguard Worker  $ adb sync data
30*ec779b8eSAndroid Build Coastguard Worker  $ adb shell /data/fuzz/arm64/ndk_crypto_fuzzer/ndk_crypto_fuzzer
31*ec779b8eSAndroid Build Coastguard Worker```
32*ec779b8eSAndroid Build Coastguard Worker
33*ec779b8eSAndroid Build Coastguard Worker# <a name="NdkImageReader"></a> Fuzzer for NdkImageReader
34*ec779b8eSAndroid Build Coastguard Worker
35*ec779b8eSAndroid Build Coastguard WorkerNdkImageReader supports the following parameters:
36*ec779b8eSAndroid Build Coastguard Worker1. Width (parameter name: "imageWidth")
37*ec779b8eSAndroid Build Coastguard Worker2. Height (parameter name: "imageHeight")
38*ec779b8eSAndroid Build Coastguard Worker3. Format (parameter name: "imageFormat")
39*ec779b8eSAndroid Build Coastguard Worker4. Usage (parameter name: "imageUsage")
40*ec779b8eSAndroid Build Coastguard Worker5. Max images (parameter name: "imageMaxCount")
41*ec779b8eSAndroid Build Coastguard Worker
42*ec779b8eSAndroid Build Coastguard Worker| Parameter| Valid Values |Configured Value|
43*ec779b8eSAndroid Build Coastguard Worker|-------------|----------|----- |
44*ec779b8eSAndroid Build Coastguard Worker| `width`| `1 to INT_MAX`| Value obtained from FuzzedDataProvider|
45*ec779b8eSAndroid Build Coastguard Worker| `height`| `1 to INT_MAX`| Value obtained from FuzzedDataProvider|
46*ec779b8eSAndroid Build Coastguard Worker| `format`| `1 to INT_MAX`| Value obtained from FuzzedDataProvider|
47*ec779b8eSAndroid Build Coastguard Worker| `usage`| `1 to INT_MAX`| Value obtained from FuzzedDataProvider|
48*ec779b8eSAndroid Build Coastguard Worker| `maxImages`| `1 to android::BufferQueue::MAX_MAX_ACQUIRED_BUFFERS`| Value obtained from FuzzedDataProvider|
49*ec779b8eSAndroid Build Coastguard Worker
50*ec779b8eSAndroid Build Coastguard Worker#### Steps to run
51*ec779b8eSAndroid Build Coastguard Worker1. Build the fuzzer
52*ec779b8eSAndroid Build Coastguard Worker```
53*ec779b8eSAndroid Build Coastguard Worker  $ mm -j$(nproc) ndk_image_reader_fuzzer
54*ec779b8eSAndroid Build Coastguard Worker```
55*ec779b8eSAndroid Build Coastguard Worker2. Run on device
56*ec779b8eSAndroid Build Coastguard Worker```
57*ec779b8eSAndroid Build Coastguard Worker  $ adb sync data
58*ec779b8eSAndroid Build Coastguard Worker  $ adb shell /data/fuzz/arm64/ndk_image_reader_fuzzer/ndk_image_reader_fuzzer
59*ec779b8eSAndroid Build Coastguard Worker```
60*ec779b8eSAndroid Build Coastguard Worker
61*ec779b8eSAndroid Build Coastguard Worker# <a name="NdkExtractor"></a>Fuzzer for NdkExtractor
62*ec779b8eSAndroid Build Coastguard Worker
63*ec779b8eSAndroid Build Coastguard WorkerNdkExtractor supports the following parameters:
64*ec779b8eSAndroid Build Coastguard Worker1. SeekMode (parameter name: "mode")
65*ec779b8eSAndroid Build Coastguard Worker
66*ec779b8eSAndroid Build Coastguard Worker| Parameter| Valid Values |Configured Value|
67*ec779b8eSAndroid Build Coastguard Worker|-------------|----------|----- |
68*ec779b8eSAndroid Build Coastguard Worker|`mode`|0.`AMEDIAEXTRACTOR_SEEK_PREVIOUS_SYNC`,<br/>1.`AMEDIAEXTRACTOR_SEEK_NEXT_SYNC`,<br/>2.`AMEDIAEXTRACTOR_SEEK_CLOSEST_SYNC`| Value obtained from FuzzedDataProvider|
69*ec779b8eSAndroid Build Coastguard Worker
70*ec779b8eSAndroid Build Coastguard Worker#### Steps to run
71*ec779b8eSAndroid Build Coastguard Worker1. Build the fuzzer
72*ec779b8eSAndroid Build Coastguard Worker```
73*ec779b8eSAndroid Build Coastguard Worker  $ mm -j$(nproc) ndk_extractor_fuzzer
74*ec779b8eSAndroid Build Coastguard Worker```
75*ec779b8eSAndroid Build Coastguard Worker2. Run on device
76*ec779b8eSAndroid Build Coastguard Worker```
77*ec779b8eSAndroid Build Coastguard Worker  $ adb sync data
78*ec779b8eSAndroid Build Coastguard Worker  $ adb shell /data/fuzz/arm64/ndk_extractor_fuzzer/ndk_extractor_fuzzer /data/fuzz/${TARGET_ARCH}/ndk_extractor_fuzzer/corpus
79*ec779b8eSAndroid Build Coastguard Worker```
80*ec779b8eSAndroid Build Coastguard Worker
81*ec779b8eSAndroid Build Coastguard Worker
82*ec779b8eSAndroid Build Coastguard Worker# <a name="NdkMediaFormat"></a>Fuzzer for NdkMediaFormat
83*ec779b8eSAndroid Build Coastguard Worker
84*ec779b8eSAndroid Build Coastguard WorkerNdkMediaFormat supports the following parameters:
85*ec779b8eSAndroid Build Coastguard Worker1. Name (parameter name: "name")
86*ec779b8eSAndroid Build Coastguard Worker
87*ec779b8eSAndroid Build Coastguard Worker| Parameter| Valid Values |Configured Value|
88*ec779b8eSAndroid Build Coastguard Worker|-------------|----------|----- |
89*ec779b8eSAndroid Build Coastguard Worker|`name`|1.`AMEDIAFORMAT_KEY_AAC_DRC_ATTENUATION_FACTOR`, 2.`AMEDIAFORMAT_KEY_AAC_DRC_BOOST_FACTOR`, 3.`AMEDIAFORMAT_KEY_AAC_DRC_HEAVY_COMPRESSION`, 4.`AMEDIAFORMAT_KEY_AAC_DRC_TARGET_REFERENCE_LEVEL`, 5.`AMEDIAFORMAT_KEY_AAC_ENCODED_TARGET_LEVEL`, 6.`AMEDIAFORMAT_KEY_AAC_MAX_OUTPUT_CHANNEL_COUNT`, 7.`AMEDIAFORMAT_KEY_AAC_PROFILE`, 8.`AMEDIAFORMAT_KEY_AAC_SBR_MODE`, 9.`AMEDIAFORMAT_KEY_ALBUM`, 10.`AMEDIAFORMAT_KEY_ALBUMART`, 11.`AMEDIAFORMAT_KEY_ALBUMARTIST`, 12.`AMEDIAFORMAT_KEY_ARTIST`, 13.`AMEDIAFORMAT_KEY_AUDIO_PRESENTATION_INFO`, 14.`AMEDIAFORMAT_KEY_AUDIO_PRESENTATION_PRESENTATION_ID`, 15.`AMEDIAFORMAT_KEY_AUDIO_PRESENTATION_PROGRAM_ID`, 16.`AMEDIAFORMAT_KEY_AUDIO_SESSION_ID`, 17.`AMEDIAFORMAT_KEY_AUTHOR`, 18.`AMEDIAFORMAT_KEY_BITRATE_MODE`, 19.`AMEDIAFORMAT_KEY_BIT_RATE`, 20.`AMEDIAFORMAT_KEY_BITS_PER_SAMPLE`, 21.`AMEDIAFORMAT_KEY_CAPTURE_RATE`, 22.`AMEDIAFORMAT_KEY_CDTRACKNUMBER`, 23.`AMEDIAFORMAT_KEY_CHANNEL_COUNT`, 24.`AMEDIAFORMAT_KEY_CHANNEL_MASK`, 25.`AMEDIAFORMAT_KEY_COLOR_FORMAT`, 26.`AMEDIAFORMAT_KEY_COLOR_RANGE`, 27.`AMEDIAFORMAT_KEY_COLOR_STANDARD`, 28.`AMEDIAFORMAT_KEY_COLOR_TRANSFER`, 29.`AMEDIAFORMAT_KEY_COMPILATION`, 30.`AMEDIAFORMAT_KEY_COMPLEXITY`, 31.`AMEDIAFORMAT_KEY_COMPOSER`, 32.`AMEDIAFORMAT_KEY_CREATE_INPUT_SURFACE_SUSPENDED`, 33.`AMEDIAFORMAT_KEY_CRYPTO_DEFAULT_IV_SIZE`, 34.`AMEDIAFORMAT_KEY_CRYPTO_ENCRYPTED_BYTE_BLOCK`, 35.`AMEDIAFORMAT_KEY_CRYPTO_ENCRYPTED_SIZES`, 36.`AMEDIAFORMAT_KEY_CRYPTO_IV`, 37.`AMEDIAFORMAT_KEY_CRYPTO_KEY`, 38.`AMEDIAFORMAT_KEY_CRYPTO_MODE`, 39.`AMEDIAFORMAT_KEY_CRYPTO_PLAIN_SIZES`, 40.`AMEDIAFORMAT_KEY_CRYPTO_SKIP_BYTE_BLOCK`, 41.`AMEDIAFORMAT_KEY_CSD`, 42.`AMEDIAFORMAT_KEY_CSD_0`, 43.`AMEDIAFORMAT_KEY_CSD_1`, 44.`AMEDIAFORMAT_KEY_CSD_2`, 45.`AMEDIAFORMAT_KEY_CSD_AVC`, 46.`AMEDIAFORMAT_KEY_CSD_HEVC`, 47.`AMEDIAFORMAT_KEY_D263`, 48.`AMEDIAFORMAT_KEY_DATE`, 49.`AMEDIAFORMAT_KEY_DISCNUMBER`, 50.`AMEDIAFORMAT_KEY_DISPLAY_CROP`, 51.`AMEDIAFORMAT_KEY_DISPLAY_HEIGHT`, 52.`AMEDIAFORMAT_KEY_DISPLAY_WIDTH`, 53.`AMEDIAFORMAT_KEY_DURATION`, 54.`AMEDIAFORMAT_KEY_ENCODER_DELAY`, 55.`AMEDIAFORMAT_KEY_ENCODER_PADDING`, 56.`AMEDIAFORMAT_KEY_ESDS`, 57.`AMEDIAFORMAT_KEY_EXIF_OFFSET`, 58.`AMEDIAFORMAT_KEY_EXIF_SIZE`, 59.`AMEDIAFORMAT_KEY_FLAC_COMPRESSION_LEVEL`, 60.`AMEDIAFORMAT_KEY_FRAME_COUNT`, 61.`AMEDIAFORMAT_KEY_FRAME_RATE`, 62.`AMEDIAFORMAT_KEY_GENRE`, 63.`AMEDIAFORMAT_KEY_GRID_COLUMNS`, 64.`AMEDIAFORMAT_KEY_GRID_ROWS`, 65.`AMEDIAFORMAT_KEY_HAPTIC_CHANNEL_COUNT`, 66.`AMEDIAFORMAT_KEY_HDR_STATIC_INFO`, 67.`AMEDIAFORMAT_KEY_HDR10_PLUS_INFO`, 68.`AMEDIAFORMAT_KEY_HEIGHT`, 69.`AMEDIAFORMAT_KEY_ICC_PROFILE`, 70.`AMEDIAFORMAT_KEY_INTRA_REFRESH_PERIOD`, 71.`AMEDIAFORMAT_KEY_IS_ADTS`, 72.`AMEDIAFORMAT_KEY_IS_AUTOSELECT`, 73.`AMEDIAFORMAT_KEY_IS_DEFAULT`, 74.`AMEDIAFORMAT_KEY_IS_FORCED_SUBTITLE`, 75.`AMEDIAFORMAT_KEY_IS_SYNC_FRAME`, 76.`AMEDIAFORMAT_KEY_I_FRAME_INTERVAL`, 77.`AMEDIAFORMAT_KEY_LANGUAGE`, 78.`AMEDIAFORMAT_KEY_LAST_SAMPLE_INDEX_IN_CHUNK`, 79.`AMEDIAFORMAT_KEY_LATENCY`, 80.`AMEDIAFORMAT_KEY_LEVEL`, 81.`AMEDIAFORMAT_KEY_LOCATION`, 82.`AMEDIAFORMAT_KEY_LOOP`, 83.`AMEDIAFORMAT_KEY_LOW_LATENCY`, 84.`AMEDIAFORMAT_KEY_LYRICIST`, 85.`AMEDIAFORMAT_KEY_MANUFACTURER`, 86.`AMEDIAFORMAT_KEY_MAX_BIT_RATE`, 87.`AMEDIAFORMAT_KEY_MAX_FPS_TO_ENCODER`, 88.`AMEDIAFORMAT_KEY_MAX_HEIGHT`, 89.`AMEDIAFORMAT_KEY_MAX_INPUT_SIZE`, 90.`AMEDIAFORMAT_KEY_MAX_PTS_GAP_TO_ENCODER`, 91.`AMEDIAFORMAT_KEY_MAX_WIDTH`, 92.`AMEDIAFORMAT_KEY_MIME`, 93.`AMEDIAFORMAT_KEY_MPEG_USER_DATA`, 94.`AMEDIAFORMAT_KEY_MPEG2_STREAM_HEADER`, 95.`AMEDIAFORMAT_KEY_MPEGH_COMPATIBLE_SETS`, 96.`AMEDIAFORMAT_KEY_MPEGH_PROFILE_LEVEL_INDICATION`, 97.`AMEDIAFORMAT_KEY_MPEGH_REFERENCE_CHANNEL_LAYOUT`, 98.`AMEDIAFORMAT_KEY_OPERATING_RATE`, 99.`AMEDIAFORMAT_KEY_PCM_ENCODING`, 100.`AMEDIAFORMAT_KEY_PICTURE_TYPE`, 101.`AMEDIAFORMAT_KEY_PRIORITY`, 102.`AMEDIAFORMAT_KEY_PROFILE`, 103.`AMEDIAFORMAT_KEY_PCM_BIG_ENDIAN`, 104.`AMEDIAFORMAT_KEY_PSSH`, 105.`AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP`, 106.`AMEDIAFORMAT_KEY_REPEAT_PREVIOUS_FRAME_AFTER`, 107.`AMEDIAFORMAT_KEY_ROTATION`, 108.`AMEDIAFORMAT_KEY_SAMPLE_FILE_OFFSET`, 109.`AMEDIAFORMAT_KEY_SAMPLE_RATE`, 110.`AMEDIAFORMAT_KEY_SAMPLE_TIME_BEFORE_APPEND`, 111.`AMEDIAFORMAT_KEY_SAR_HEIGHT`, 112.`AMEDIAFORMAT_KEY_SAR_WIDTH`, 113.`AMEDIAFORMAT_KEY_SEI`, 114.`AMEDIAFORMAT_KEY_SLICE_HEIGHT`, 115.`AMEDIAFORMAT_KEY_SLOW_MOTION_MARKERS`, 116.`AMEDIAFORMAT_KEY_STRIDE`, 117.`AMEDIAFORMAT_KEY_TARGET_TIME`, 118.`AMEDIAFORMAT_KEY_TEMPORAL_LAYER_COUNT`, 119.`AMEDIAFORMAT_KEY_TEMPORAL_LAYER_ID`, 120.`AMEDIAFORMAT_KEY_TEMPORAL_LAYERING`, 121.`AMEDIAFORMAT_KEY_TEXT_FORMAT_DATA`, 122.`AMEDIAFORMAT_KEY_THUMBNAIL_CSD_AV1C`, 123.`AMEDIAFORMAT_KEY_THUMBNAIL_CSD_HEVC`, 124.`AMEDIAFORMAT_KEY_THUMBNAIL_HEIGHT`, 125.`AMEDIAFORMAT_KEY_THUMBNAIL_TIME`, 126.`AMEDIAFORMAT_KEY_THUMBNAIL_WIDTH`, 127.`AMEDIAFORMAT_KEY_TILE_HEIGHT`, 128.`AMEDIAFORMAT_KEY_TILE_WIDTH`, 129.`AMEDIAFORMAT_KEY_TIME_US`, 130.`AMEDIAFORMAT_KEY_TITLE`, 131.`AMEDIAFORMAT_KEY_TRACK_ID`, 132.`AMEDIAFORMAT_KEY_TRACK_INDEX`, 133.`AMEDIAFORMAT_KEY_VALID_SAMPLES`, 134.`AMEDIAFORMAT_KEY_VIDEO_ENCODING_STATISTICS_LEVEL`, 135.`AMEDIAFORMAT_KEY_VIDEO_QP_AVERAGE`, 136.`AMEDIAFORMAT_VIDEO_QP_B_MAX`, 137.`AMEDIAFORMAT_VIDEO_QP_B_MIN`, 138.`AMEDIAFORMAT_VIDEO_QP_I_MAX`, 139.`AMEDIAFORMAT_VIDEO_QP_I_MIN`, 140.`AMEDIAFORMAT_VIDEO_QP_MAX`, 141.`AMEDIAFORMAT_VIDEO_QP_MIN`, 142.`AMEDIAFORMAT_VIDEO_QP_P_MAX`, 143.`AMEDIAFORMAT_VIDEO_QP_P_MIN`, 144.`AMEDIAFORMAT_KEY_WIDTH`, 145.`AMEDIAFORMAT_KEY_XMP_OFFSET`, 146.`AMEDIAFORMAT_KEY_XMP_SIZE`, 147.`AMEDIAFORMAT_KEY_YEAR`| Value obtained from FuzzedDataProvider|
90*ec779b8eSAndroid Build Coastguard Worker
91*ec779b8eSAndroid Build Coastguard Worker#### Steps to run
92*ec779b8eSAndroid Build Coastguard Worker1. Build the fuzzer
93*ec779b8eSAndroid Build Coastguard Worker```
94*ec779b8eSAndroid Build Coastguard Worker  $ mm -j$(nproc) ndk_mediaformat_fuzzer
95*ec779b8eSAndroid Build Coastguard Worker```
96*ec779b8eSAndroid Build Coastguard Worker2. Run on device
97*ec779b8eSAndroid Build Coastguard Worker```
98*ec779b8eSAndroid Build Coastguard Worker  $ adb sync data
99*ec779b8eSAndroid Build Coastguard Worker  $ adb shell /data/fuzz/${TARGET_ARCH}/ndk_mediaformat_fuzzer/ndk_mediaformat_fuzzer /data/fuzz/${TARGET_ARCH}/ndk_mediaformat_fuzzer/corpus
100*ec779b8eSAndroid Build Coastguard Worker```
101*ec779b8eSAndroid Build Coastguard Worker
102*ec779b8eSAndroid Build Coastguard Worker# <a name="NdkDrm"></a> Fuzzer for NdkDrm
103*ec779b8eSAndroid Build Coastguard Worker
104*ec779b8eSAndroid Build Coastguard WorkerNdkDrm supports the following parameters:
105*ec779b8eSAndroid Build Coastguard Worker1. ValidUUID(parameter name: "kCommonPsshBoxUUID" and "kClearKeyUUID")
106*ec779b8eSAndroid Build Coastguard Worker2. MimeType(parameter name: "kMimeType")
107*ec779b8eSAndroid Build Coastguard Worker3. MediaUUID(parameter name: "MediaUUID")
108*ec779b8eSAndroid Build Coastguard Worker
109*ec779b8eSAndroid Build Coastguard Worker| Parameter| Valid Values| Configured Value|
110*ec779b8eSAndroid Build Coastguard Worker|------------- |-------------| ----- |
111*ec779b8eSAndroid Build Coastguard Worker|`ValidUUID`| 0.`kCommonPsshBoxUUID`,<br/> 1.`kClearKeyUUID`,<br/> 2.`kInvalidUUID`|Value obtained from FuzzedDataProvider|
112*ec779b8eSAndroid Build Coastguard Worker|`kMimeType`| 0.`video/mp4`,<br/> 1.`audio/mp4`|Value obtained from FuzzedDataProvider|
113*ec779b8eSAndroid Build Coastguard Worker|`MediaUUID`| 0.`INVALID_UUID`,<br/> 1.`PSSH_BOX_UUID`,<br/> 2.`CLEARKEY_UUID`|Value obtained from FuzzedDataProvider|
114*ec779b8eSAndroid Build Coastguard Worker
115*ec779b8eSAndroid Build Coastguard Worker#### Steps to run
116*ec779b8eSAndroid Build Coastguard Worker1. Build the fuzzer
117*ec779b8eSAndroid Build Coastguard Worker```
118*ec779b8eSAndroid Build Coastguard Worker  $ mm -j$(nproc) ndk_drm_fuzzer
119*ec779b8eSAndroid Build Coastguard Worker```
120*ec779b8eSAndroid Build Coastguard Worker2. Run on device
121*ec779b8eSAndroid Build Coastguard Worker```
122*ec779b8eSAndroid Build Coastguard Worker  $ adb sync data
123*ec779b8eSAndroid Build Coastguard Worker  $ adb shell /data/fuzz/arm64/ndk_drm_fuzzer/ndk_drm_fuzzer
124*ec779b8eSAndroid Build Coastguard Worker```
125*ec779b8eSAndroid Build Coastguard Worker
126*ec779b8eSAndroid Build Coastguard Worker# <a name="NdkMediaMuxer"></a>Fuzzer for NdkMediaMuxer
127*ec779b8eSAndroid Build Coastguard Worker
128*ec779b8eSAndroid Build Coastguard WorkerNdkMediaMuxer supports the following parameters:
129*ec779b8eSAndroid Build Coastguard Worker1. OutputFormat (parameter name: "outputFormat")
130*ec779b8eSAndroid Build Coastguard Worker2. AppendMode (parameter name: "appendMode")
131*ec779b8eSAndroid Build Coastguard Worker
132*ec779b8eSAndroid Build Coastguard Worker| Parameter| Valid Values |Configured Value|
133*ec779b8eSAndroid Build Coastguard Worker|-------------|----------|----- |
134*ec779b8eSAndroid Build Coastguard Worker|`outputFormat`|0.`AMEDIAMUXER_OUTPUT_FORMAT_MPEG_4`,<br/>1.`AMEDIAMUXER_OUTPUT_FORMAT_WEBM`,<br/>2.`AMEDIAMUXER_OUTPUT_FORMAT_THREE_GPP`| Value obtained from FuzzedDataProvider|
135*ec779b8eSAndroid Build Coastguard Worker|`appendMode`|0.`AMEDIAMUXER_APPEND_IGNORE_LAST_VIDEO_GOP`,<br/>1.`AMEDIAMUXER_APPEND_TO_EXISTING_DATA`| Value obtained from FuzzedDataProvider|
136*ec779b8eSAndroid Build Coastguard Worker
137*ec779b8eSAndroid Build Coastguard Worker#### Steps to run
138*ec779b8eSAndroid Build Coastguard Worker1. Build the fuzzer
139*ec779b8eSAndroid Build Coastguard Worker```
140*ec779b8eSAndroid Build Coastguard Worker  $ mm -j$(nproc) ndk_mediamuxer_fuzzer
141*ec779b8eSAndroid Build Coastguard Worker```
142*ec779b8eSAndroid Build Coastguard Worker2. Run on device
143*ec779b8eSAndroid Build Coastguard Worker```
144*ec779b8eSAndroid Build Coastguard Worker  $ adb sync data
145*ec779b8eSAndroid Build Coastguard Worker  $ adb shell /data/fuzz/arm64/ndk_mediamuxer_fuzzer/ndk_mediamuxer_fuzzer
146*ec779b8eSAndroid Build Coastguard Worker```
147*ec779b8eSAndroid Build Coastguard Worker
148*ec779b8eSAndroid Build Coastguard Worker# <a name="NdkSyncCodec"></a>Fuzzer for NdkSyncCodec
149*ec779b8eSAndroid Build Coastguard Worker
150*ec779b8eSAndroid Build Coastguard Worker#### Steps to run
151*ec779b8eSAndroid Build Coastguard Worker1. Build the fuzzer
152*ec779b8eSAndroid Build Coastguard Worker```
153*ec779b8eSAndroid Build Coastguard Worker  $ mm -j$(nproc) ndk_sync_codec_fuzzer
154*ec779b8eSAndroid Build Coastguard Worker```
155*ec779b8eSAndroid Build Coastguard Worker2. Run on device
156*ec779b8eSAndroid Build Coastguard Worker```
157*ec779b8eSAndroid Build Coastguard Worker  $ adb sync data
158*ec779b8eSAndroid Build Coastguard Worker  $ adb shell /data/fuzz/arm64/ndk_sync_codec_fuzzer/ndk_sync_codec_fuzzer
159*ec779b8eSAndroid Build Coastguard Worker```
160*ec779b8eSAndroid Build Coastguard Worker
161*ec779b8eSAndroid Build Coastguard Worker# <a name="NdkAsyncCodec"></a>Fuzzer for NdkAsyncCodec
162*ec779b8eSAndroid Build Coastguard Worker
163*ec779b8eSAndroid Build Coastguard Worker#### Steps to run
164*ec779b8eSAndroid Build Coastguard Worker1. Build the fuzzer
165*ec779b8eSAndroid Build Coastguard Worker```
166*ec779b8eSAndroid Build Coastguard Worker  $ mm -j$(nproc) ndk_async_codec_fuzzer
167*ec779b8eSAndroid Build Coastguard Worker```
168*ec779b8eSAndroid Build Coastguard Worker2. Run on device
169*ec779b8eSAndroid Build Coastguard Worker```
170*ec779b8eSAndroid Build Coastguard Worker  $ adb sync data
171*ec779b8eSAndroid Build Coastguard Worker  $ adb shell /data/fuzz/arm64/ndk_async_codec_fuzzer/ndk_sync_codec_fuzzer
172*ec779b8eSAndroid Build Coastguard Worker```
173