Danil Chapovalov e6b3f48a06 Reland "Move leb128 helper functions into own build target"
This is a reland of commit fa962ffc698bda5bc7306ac5c3fd626eef737775

Original change's description:
> Move leb128 helper functions into own build target
>
> to remove duplicated implementation of these functions between av1 packetizer, av1 depacketizer and video allocation rtp header extension
>
> Bug: None
> Change-Id: I30049f31c289bdb9e0aad6520f5145d1f999e635
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290731
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39069}

Bug: None
Change-Id: I091276868599a6716407db2972457507ddd46a8c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290961
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39135}
2023-01-18 12:44:46 +00:00
..

This is a collection of corpora for various WebRTC fuzzers. To use
them, the gn targets define seed_corpus=$corpus_dir, which causes the
ClusterFuzz upload bot to bundle $corpus_dir and upload it.

The format is simple: one file per test case. Specific notes are
included below.

### SDP ###
This corpus was initially assembled manually from the following
sources:

  - curl --silent https://www.ietf.org/rfc/rfc4317.txt | grep '^[ a-z]*=[^=]*$' | sed 's/^[[:space:]]*//' | awk -v RS='(^|\n)v=' '/./ {print "v="$0 > NR".sdp"}'
  - all the SDPs used in the parser unit tests
  - some manually gathered SDPs from Firefox and Opera

The SDP tokens come from:

 -  grep "^static const " webrtc/api/webrtcsdp.cc | cut -d'=' -f2 | cut -d ';' -f1 | tr -d '"' | tr -d "'" | tr -d ' ' | sort -u | grep -v '^(\n|\r|\r\n)$|^$' | sed -e 's/^/"/' -e 's/$/"/' | tail -n +2

### STUN ###
This corpus was initially assembled from the STUN unit tests, together
with a crash that it found relatively quickly.

### RT(C)P ###
This corpus was initially assembled from the unittests. RTCP was
minimised first.

There is also rt(c?)p-corpus-with-extra-byte, in which each sample is
prefixed by the byte 0xff. Some of the rtp fuzzers need to decide
which header extensions to enable, and the first byte of the fuzz data
is used for this.

### PseudoTCP ###
Very small corpus minimised from the unit tests.

### SCTP ###
This corpus was extracted from a few manually recorder wireshark dumps.