Skip to content

Commit

Permalink
Fixed #2
Browse files Browse the repository at this point in the history
  • Loading branch information
jeanlf committed Jul 4, 2024
1 parent bfe5583 commit e2d1beb
Show file tree
Hide file tree
Showing 80 changed files with 2,599 additions and 1,654 deletions.
2 changes: 1 addition & 1 deletion docs/Filters/aout.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Register name used to load filter: __aout__
This filter may be automatically loaded during graph resolution.

This filter writes a single uncompressed audio input PID to a sound card or other audio output device.
This filter writes a single PCM (uncompressed) audio input PID to a sound card or other audio output device.

The longer the audio buffering [bdur](#bdur) is, the longer the audio latency will be (pause/resume). The quality of fast forward audio playback will also be degraded when using large audio buffers.

Expand Down
18 changes: 10 additions & 8 deletions docs/Filters/avgen.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
# AV Counter Generator

Register name used to load filter: __avgen__
This is a JavaScript filter, not checked during graph resolution and needs explicit loading.
This is a JavaScript filter. It is not checked during graph resolution and needs explicit loading.
Author: GPAC Team

This filter generates AV streams representing a counter. Streams can be enabled or disabled using [type](#type).
The filter is software-based and does not use GPU.

When [adjust](#adjust) is set, the first video frame is adjusted such that a full circle happens at each exact second according to the system UTC clock.
By default, video UTC and date are computed at each frame generation from current clock and not from frame number.
This will result in broken timing when playing at speeds other than 1.0.
This will result in broken UTC timing text when playing at speeds other than 1.0.
This can be changed using [lock](#lock).

Audio beep is generated every second, with octave (2xfreq) of even beep used every 10 seconds.
Expand Down Expand Up @@ -47,9 +47,10 @@ If multiple [views](#views) are generated, they are assigned the names `videoN_v
# Options

<a id="type">__type__</a> (enum, default: _av_): output selection
* a: audio only
* v: video only
* av: audio and video

- a: audio only
- v: video only
- av: audio and video

<a id="freq">__freq__</a> (uint, default: _440_): frequency of beep
<a id="freq2">__freq2__</a> (uint, default: _659_): frequency of odd beep
Expand All @@ -68,9 +69,10 @@ If multiple [views](#views) are generated, they are assigned the names `videoN_v
<a id="dur">__dur__</a> (frac, default: _0/0_): run for the given time in second
<a id="adjust">__adjust__</a> (bool, default: _true_): adjust start time to synchronize counter and UTC
<a id="pack">__pack__</a> (enum, default: _no_): packing mode for stereo views
* no: no packing
* ss: side by side packing, forces [views](#views) to 2
* tb: top-bottom packing, forces [views](#views) to 2

- no: no packing
- ss: side by side packing, forces [views](#views) to 2
- tb: top-bottom packing, forces [views](#views) to 2

<a id="disparity">__disparity__</a> (uint, default: _20_): disparity in pixels between left-most and right-most views
<a id="views">__views__</a> (uint, default: _1_): number of views
Expand Down
964 changes: 563 additions & 401 deletions docs/Filters/avmix.md

Large diffs are not rendered by default.

29 changes: 19 additions & 10 deletions docs/Filters/bsrw.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,33 @@ Filters of this class can connect to each-other.

This filter rewrites some metadata of various bitstream formats.
The filter can currently modify the following properties in video bitstreams:

- MPEG-4 Visual:
- sample aspect ratio
- profile and level

- sample aspect ratio
- profile and level

- AVC|H264, HEVC and VVC:
- sample aspect ratio
- profile, level, profile compatibility
- video format, video fullrange
- color primaries, transfer characteristics and matrix coefficients (or remove all info)

- sample aspect ratio
- profile, level, profile compatibility
- video format, video fullrange
- color primaries, transfer characteristics and matrix coefficients (or remove all info)

- ProRes:
- sample aspect ratio
- color primaries, transfer characteristics and matrix coefficients

- sample aspect ratio
- color primaries, transfer characteristics and matrix coefficients


Values are by default initialized to -1, implying to keep the related info (present or not) in the bitstream.
A [sar](#sar) value of `0/0` will remove sample aspect ratio info from bitstream if possible.

The filter can currently modify the following properties in the stream configuration but not in the bitstream:
* HEVC: profile IDC, profile space, general compatibility flags
* VVC: profile IDC, general profile and level indication

- HEVC: profile IDC, profile space, general compatibility flags
- VVC: profile IDC, general profile and level indication


The filter will work in passthrough mode for all other codecs and media types.

Expand Down
41 changes: 25 additions & 16 deletions docs/Filters/bssplit.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,36 @@ Splitting is based on temporalID value (start from 1) and layerID value (start f
For AVC|H264, layerID is the dependency value, or quality value if `svcqid` is set.

Each input stream is filtered according to the `ltid` option as follows:
* no value set: input stream is split by layerID, i.e. each layer creates an output
* `all`: input stream is split by layerID and temporalID, i.e. each {layerID,temporalID} creates an output
* `lID`: input stream is split according to layer `lID` value, and temporalID is ignored
* `.tID`: input stream is split according to temporal sub-layer `tID` value and layerID is ignored
* `lID.tID`: input stream is split according to layer `lID` and sub-layer `tID` values

- no value set: input stream is split by layerID, i.e. each layer creates an output
- `all`: input stream is split by layerID and temporalID, i.e. each {layerID,temporalID} creates an output
- `lID`: input stream is split according to layer `lID` value, and temporalID is ignored
- `.tID`: input stream is split according to temporal sub-layer `tID` value and layerID is ignored
- `lID.tID`: input stream is split according to layer `lID` and sub-layer `tID` values


_Note: A tID value of 0 in `ltid` is equivalent to value 1._

Multiple values can be given in `ltid`, in which case each value gives the maximum {layerID,temporalID} values for the current layer.
A few examples on an input with 2 layers each with 2 temporal sublayers:
* `ltid=0.2`: this will split the stream in:
- one stream with {lID=0,tID=1} and {lID=0,tID=2} NAL units
- one stream with all other layers/substreams
* `ltid=0.1,1.1`: this will split the stream in:
- one stream with {lID=0,tID=1} NAL units
- one stream with {lID=0,tID=2}, {lID=1,tID=1} NAL units
- one stream with the rest {lID=0,tID=2}, {lID=1,tID=2} NAL units
* `ltid=0.1,0.2`: this will split the stream in:
- one stream with {lID=0,tID=1} NAL units
- one stream with {lID=0,tID=2} NAL units
- one stream with the rest {lID=1,tID=1}, {lID=1,tID=2} NAL units

- `ltid=0.2`: this will split the stream in:

- one stream with {lID=0,tID=1} and {lID=0,tID=2} NAL units
- one stream with all other layers/substreams

- `ltid=0.1,1.1`: this will split the stream in:

- one stream with {lID=0,tID=1} NAL units
- one stream with {lID=0,tID=2}, {lID=1,tID=1} NAL units
- one stream with the rest {lID=0,tID=2}, {lID=1,tID=2} NAL units

- `ltid=0.1,0.2`: this will split the stream in:

- one stream with {lID=0,tID=1} NAL units
- one stream with {lID=0,tID=2} NAL units
- one stream with the rest {lID=1,tID=1}, {lID=1,tID=2} NAL units


The filter can also be used on AVC and HEVC DolbyVision streams to split base stream and DV RPU/EL.

Expand Down
13 changes: 7 additions & 6 deletions docs/Filters/cdcrypt.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ When the file is set per PID, the first `CryptInfo` with the same ID is used, ot

<a id="cfile">__cfile__</a> (str): crypt file location
<a id="decrypt">__decrypt__</a> (enum, default: _full_): decrypt mode (CENC only)
* full: decrypt everything, throwing error if keys are not found
* nokey: decrypt everything for which a key is found, skip decryption otherwise
* skip: decrypt nothing
* pad0: decrypt nothing and replace all crypted bits with 0
* pad1: decrypt nothing and replace all crypted bits with 1
* padsc: decrypt nothing and replace all crypted bytes with start codes

- full: decrypt everything, throwing error if keys are not found
- nokey: decrypt everything for which a key is found, skip decryption otherwise
- skip: decrypt nothing
- pad0: decrypt nothing and replace all crypted bits with 0
- pad1: decrypt nothing and replace all crypted bits with 1
- padsc: decrypt nothing and replace all crypted bytes with start codes

<a id="drop_keys">__drop_keys__</a> (uintl): consider keys with given 1-based indexes as not available (multi-key debug)
<a id="kids">__kids__</a> (strl): define KIDs. If `keys` is empty, consider keys with given KID (as hex string) as not available (debug)
Expand Down
Loading

0 comments on commit e2d1beb

Please sign in to comment.