You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/Filters/avmix.md
+58-42
Original file line number
Diff line number
Diff line change
@@ -192,6 +192,22 @@ When reloading the playlist:
192
192
193
193
### Notes
194
194
195
+
The special URL scheme `ipid://` can be used to locate an input pid by link directives.
196
+
Example
197
+
```
198
+
in=ipid://#foo=bar
199
+
```
200
+
This will use pids having property `foo` with value `bar`, regardless of source filter ID.
201
+
202
+
Example
203
+
```
204
+
in=ipid://TEST#foo=bar
205
+
```
206
+
This will use pids having property `foo` with value `bar` coming from filter with ID `TEST`.
207
+
208
+
When using the `ipid://` scheme, filter chains cannot be specified (in accepts a single argument) and `port` is ignored.
209
+
The syntax for link directive is the same as in gpac. However, if a listed property is not found on the input pid, the matching will fail.
210
+
195
211
When launching a child process, the input filter is created first and the child process launched afterwards.
196
212
197
213
__Warning: When launching a child process directly (e.g. `in="ffmpeg ..."`), any relative URL used in `in` must be relative to the current working directory.__
@@ -624,45 +640,6 @@ Example
624
640
625
641
# Scene modules
626
642
627
-
## Scene `mask`
628
-
This scene sets the canvas alpha mask mode.
629
-
630
-
The canvas alpha mask is always full screen.
631
-
632
-
In software mode, combining mask effect in record mode and reverse group drawing allows drawing front to back while writing pixels only once.
633
-
634
-
Options:
635
-
* mode ('off'): if set, reset clipper otherwise set it to scene position and size
636
-
* off: mask is disabled
637
-
* on: mask is enabled and cleared, further draw operations will take place on mask
638
-
* onkeep: mask is enabled but not cleared, further draw operations will take place on mask
639
-
* use: mask is enabled, further draw operations will be filtered by mask
640
-
* use_inv: mask is enabled, further draw operations will be filtered by 1-mask
641
-
* rec: mask is in record mode, further draw operations will be drawn on output and will set mask value to 0
642
-
643
-
644
-
## Scene `clear`
645
-
This scene clears the canvas area covered by the scene with a given color.
646
-
647
-
The default clear color of the mixer is `black`.
648
-
649
-
The clear area is always axis-aligned in output frame, so when skew/rotation are present, the axis-aligned bounding box of the transformed scene area will be cleared.
650
-
651
-
Options:
652
-
* color ('none'): clear color
653
-
654
-
## Scene `clip`
655
-
This scene resets the canvas clipper or sets the canvas clipper to the scene area.
656
-
657
-
The clipper is always axis-aligned in output frame, so when skew/rotation are present, the axis-aligned bounding box of the transformed clipper will be used.
658
-
659
-
Clippers are handled through a stack, resetting the clipper pops the stack and restores previous clipper.
660
-
If a clipper is already defined when setting the clipper, the clipper set is the intersection of the two clippers.
661
-
662
-
Options:
663
-
* reset (false): if set, reset clipper otherwise set it to scene position and size
664
-
* stack (true): if false, clipper is set/reset independently of the clipper stack (no intersection, no push/pop of the stack)
665
-
666
643
## Scene `shape`
667
644
This scene can be used to setup a shape, its outline and specify the fill and strike modes.
668
645
Supported shapes include:
@@ -848,13 +825,55 @@ Options:
848
825
* rs_rep (false): same as `rs` for local image in replace mode
849
826
* rt_rep (false): same as `rt` for local image in replace mode
850
827
828
+
## Scene `mask`
829
+
This scene sets the canvas alpha mask mode.
830
+
831
+
The canvas alpha mask is always full screen.
832
+
833
+
In software mode, combining mask effect in record mode and reverse group drawing allows drawing front to back while writing pixels only once.
834
+
835
+
Options:
836
+
* mode ('off'): if set, reset clipper otherwise set it to scene position and size
837
+
* off: mask is disabled
838
+
* on: mask is enabled and cleared, further draw operations will take place on mask
839
+
* onkeep: mask is enabled but not cleared, further draw operations will take place on mask
840
+
* use: mask is enabled, further draw operations will be filtered by mask
841
+
* use_inv: mask is enabled, further draw operations will be filtered by 1-mask
842
+
* rec: mask is in record mode, further draw operations will be drawn on output and will set mask value to 0
843
+
844
+
845
+
## Scene `clear`
846
+
This scene clears the canvas area covered by the scene with a given color.
847
+
848
+
The default clear color of the mixer is `black`.
849
+
850
+
The clear area is always axis-aligned in output frame, so when skew/rotation are present, the axis-aligned bounding box of the transformed scene area will be cleared.
851
+
852
+
Options:
853
+
* color ('none'): clear color
854
+
855
+
## Scene `clip`
856
+
This scene resets the canvas clipper or sets the canvas clipper to the scene area.
857
+
858
+
The clipper is always axis-aligned in output frame, so when skew/rotation are present, the axis-aligned bounding box of the transformed clipper will be used.
859
+
860
+
Clippers are handled through a stack, resetting the clipper pops the stack and restores previous clipper.
861
+
If a clipper is already defined when setting the clipper, the clipper set is the intersection of the two clippers.
862
+
863
+
Options:
864
+
* reset (false): if set, reset clipper otherwise set it to scene position and size
865
+
* stack (true): if false, clipper is set/reset independently of the clipper stack (no intersection, no push/pop of the stack)
866
+
851
867
# Transition modules
852
868
853
869
## Transition `gltrans` - GPU only
854
870
This transition module wraps gl-transitions, see https://gl-transitions.com/ and `gpac -h avmix:gltrans` for builtin transitions
855
871
Options:
856
872
* fx (''): effect name for built-in effects, or path to gl-transition GLSL file
857
873
874
+
## Transition `mix` - software/GPU
875
+
This transition performs cross-fade of source videos
876
+
858
877
## Transition `swipe` - software/GPU
859
878
This transition performs simple 2D affine transformations for source videos transitions, with configurable effect origin
860
879
Options:
@@ -875,9 +894,6 @@ Options:
875
894
* grow: video 2 size increases, video 1 not modified
876
895
* swap: video 2 size increases, video 1 size decreases
877
896
878
-
## Transition `mix` - software/GPU
879
-
This transition performs cross-fade of source videos
880
-
881
897
## Transition `fade` - software/GPU
882
898
This transition performs fade to/from color of source videos
Copy file name to clipboardExpand all lines: docs/Filters/bsrw.md
+6-3
Original file line number
Diff line number
Diff line change
@@ -32,9 +32,12 @@ The filter will work in passthrough mode for all other codecs and media types.
32
32
33
33
# Options
34
34
35
-
<aid="cprim">__cprim__</a> (cprm, default: _-1_, minmax: reserved0,BT709,undef,reserved3,BT470M,BT470G,SMPTE170,SMPTE240,FILM,BT2020,SMPTE428,SMPTE431,SMPTE432,EBU3213, updatable): color primaries according to ISO/IEC 23001-8 / 23091-2
36
-
<aid="ctfc">__ctfc__</a> (ctfc, default: _-1_, minmax: reserved0,BT709,undef,reserved3,BT470M,BT470BG,SMPTE170,SMPTE249,Linear,Log100,Log316,IEC61966,BT1361,sRGB,BT2020_10,BT2020_12,SMPTE2084,SMPTE428,STDB67, updatable): color transfer characteristics according to ISO/IEC 23001-8 / 23091-2
37
-
<aid="cmx">__cmx__</a> (cmxc, default: _-1_, minmax: GBR,BT709,undef,FCC,BT601,SMPTE170,SMPTE240,YCgCo,BT2020,BT2020cl,YDzDx, updatable): color matrix coeficients according to ISO/IEC 23001-8 / 23091-2
35
+
<aid="cprim">__cprim__</a> (cprm, default: _-1_, Enum: reserved0|BT709|undef|reserved3|BT470M|BT470G|SMPTE170|SMPTE240|FILM|BT2020|SMPTE428|SMPTE431|SMPTE432|EBU3213, updatable): color primaries according to ISO/IEC 23001-8 / 23091-2
36
+
37
+
<aid="ctfc">__ctfc__</a> (ctfc, default: _-1_, Enum: reserved0|BT709|undef|reserved3|BT470M|BT470BG|SMPTE170|SMPTE249|Linear|Log100|Log316|IEC61966|BT1361|sRGB|BT2020_10|BT2020_12|SMPTE2084|SMPTE428|STDB67, updatable): color transfer characteristics according to ISO/IEC 23001-8 / 23091-2
38
+
39
+
<aid="cmx">__cmx__</a> (cmxc, default: _-1_, Enum: GBR|BT709|undef|FCC|BT601|SMPTE170|SMPTE240|YCgCo|BT2020|BT2020cl|YDzDx, updatable): color matrix coeficients according to ISO/IEC 23001-8 / 23091-2
40
+
38
41
<aid="sar">__sar__</a> (frac, default: _-1/-1_, updatable): aspect ratio to rewrite
39
42
<aid="m4vpl">__m4vpl__</a> (sint, default: _-1_, updatable): set ProfileLevel for MPEG-4 video part two
40
43
<aid="fullrange">__fullrange__</a> (bool, default: _false_, updatable): video full range flag
Copy file name to clipboardExpand all lines: docs/Filters/cdcrypt.md
+4-5
Original file line number
Diff line number
Diff line change
@@ -9,23 +9,22 @@ The CENC decryptor supports decrypting CENC, ISMA, HLS Sample-AES (MPEG2 ts) and
9
9
10
10
For HLS, key is retrieved according to the key URI in the manifest.
11
11
Otherwise, the filter uses a configuration file.
12
-
The syntax is available at https://wiki.gpac.io/Common-Encryption
12
+
The syntax is available at https://wiki.gpac.io/xmlformats/Common-Encryption
13
13
The DRM config file can be set per PID using the property `DecryptInfo` (highest priority), `CryptInfo` (lower priority) or set at the filter level using [cfile](#cfile) (lowest priority).
14
14
When the file is set per PID, the first `CryptInfo` with the same ID is used, otherwise the first `CryptInfo` is used.When the file is set globally (not per PID), the first `CrypTrack` in the DRM config file with the same ID is used, otherwise the first `CrypTrack` with ID 0 or not set is used.
Copy file name to clipboardExpand all lines: docs/Filters/cecrypt.md
+2-1
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ Register name used to load filter: __cecrypt__
6
6
This filter is not checked during graph resolution and needs explicit loading.
7
7
8
8
The CENC encryptor supports CENC, ISMA and Adobe encryption. It uses a DRM config file for declaring keys.
9
-
The syntax is available at https://wiki.gpac.io/Common-Encryption
9
+
The syntax is available at https://wiki.gpac.io/xmlformats/Common-Encryption
10
10
The DRM config file can be set per PID using the property `CryptInfo`, or set at the filter level using [cfile](#cfile).
11
11
When the DRM config file is set per PID, the first `CrypTrack` in the DRM config file with the same ID is used, otherwise the first `CrypTrack` is used (regardless of the `CrypTrack` ID).
12
12
When the DRM config file is set globally (not per PID), the first `CrypTrack` in the DRM config file with the same ID is used, otherwise the first `CrypTrack` with ID 0 or not set is used.
@@ -17,4 +17,5 @@ If no DRM config file is defined for a given PID, this PID will not be encrypted
Copy file name to clipboardExpand all lines: docs/Filters/compositor.md
+4-2
Original file line number
Diff line number
Diff line change
@@ -112,7 +112,8 @@ Whether the setting is applied or not depends on the graphics module and player
112
112
<aid="asr">__asr__</a> (uint, default: _0_): force output sample rate (0 for auto)
113
113
<aid="ach">__ach__</a> (uint, default: _0_): force output channels (0 for auto)
114
114
<aid="alayout">__alayout__</a> (uint, default: _0_): force output channel layout (0 for auto)
115
-
<aid="afmt">__afmt__</a> (afmt, default: _s16_, minmax: none,u8,s16,s16b,s24,s24b,s32,s32b,flt,fltb,dbl,dblb,u8p,s16p,s24p,s32p,fltp,dblp): force output channel format (0 for auto)
115
+
<aid="afmt">__afmt__</a> (afmt, default: _s16_, Enum: none|u8|s16|s16b|s24|s24b|s32|s32b|flt|fltb|dbl|dblb|u8p|s16p|s24p|s32p|fltp|dblp): force output channel format (0 for auto)
116
+
116
117
<aid="asize">__asize__</a> (uint, default: _1024_): audio output packet size in samples
117
118
<aid="abuf">__abuf__</a> (uint, default: _100_): audio output buffer duration in ms - the audio renderer fills the output PID up to this value. A too low value will lower latency but can have real-time playback issues
118
119
<aid="avol">__avol__</a> (uint, default: _100_, updatable): audio volume in percent
@@ -225,7 +226,8 @@ Whether the setting is applied or not depends on the graphics module and player
<aid="opfmt">__opfmt__</a> (pfmt, default: _none_, minmax: none,yuv420,yvu420,yuv420_10,yuv422,yuv422_10,yuv444,yuv444_10,uyvy,vyuy,yuyv,yvyu,uyvl,vyul,yuyl,yvyl,nv12,nv21,nv1l,nv2l,yuva,yuvd,yuv444a,yuv444p,v308,yuv444ap,v408,v410,v210,grey,algr,gral,rgb4,rgb5,rgb6,rgba,argb,bgra,abgr,rgb,bgr,xrgb,rgbx,xbgr,bgrx,rgbd,rgbds,uncv): pixel format to use for output. Ignored in [player](#player) mode
229
+
<aid="opfmt">__opfmt__</a> (pfmt, default: _none_, Enum: none|yuv420|yvu420|yuv420_10|yuv422|yuv422_10|yuv444|yuv444_10|uyvy|vyuy|yuyv|yvyu|uyvl|vyul|yuyl|yvyl|nv12|nv21|nv1l|nv2l|yuva|yuvd|yuv444a|yuv444p|v308|yuv444ap|v408|v410|v210|grey|algr|gral|rgb4|rgb5|rgb6|rgba|argb|bgra|abgr|rgb|bgr|xrgb|rgbx|xbgr|bgrx|rgbd|rgbds|uncv): pixel format to use for output. Ignored in [player](#player) mode
230
+
229
231
<aid="drv">__drv__</a> (enum, default: _auto_): indicate if graphics driver should be used
230
232
* no: never loads a graphics driver, software blit is used, no 3D possible (in player mode, disables OpenGL)
231
233
* yes: always loads a graphics driver, output pixel format will be RGB (in player mode, same as `auto`)
Copy file name to clipboardExpand all lines: docs/Filters/core_options.md
+13-14
Original file line number
Diff line number
Diff line change
@@ -37,23 +37,25 @@
37
37
<aid="no-fd">__-no-fd__</a>: use buffered IO instead of file descriptor for read/write - this can speed up operations on small files
38
38
39
39
<aid="no-mx">__-no-mx__</a>: disable all mutexes, threads and semaphores (do not use if unsure about threading used)
40
+
<aid="xml-max-csize">__-xml-max-csize__</a> (int, default: __100k__): maximum XML content or attribute size
40
41
<aid="netcap">__-netcap__</a> (string): set packet capture and filtering rules formatted as [CFG][RULES]. Each `-netcap` argument will define a configuration
41
42
[CFG] is an optional comma-separated list of:
42
43
* id=ID: ID (string) for this configuration. If NULL, configuration will apply to all sockets not specifying a netcap ID
43
44
* src=F: read packets from `F`, as produced by GPAC or a pcap or pcapng file
44
-
* dst=F: output packets to `F` (no pcap/pcapng support), cannot be set if src is set
45
+
* dst=F: output packets to `F` (GPAC or pcap/pcapng file), cannot be set if src is set
45
46
* loop[=N]: loop capture file N times, or forever if N is not set or negative
46
47
* nrt: disable real-time playback
47
48
[RULES] is an optional list of `[OPT,OPT2...]` with OPT in:
48
-
* m=N: set rule mode - `N` can be `r` for reception only (default), `w` for send only or `rw` for both
49
-
* s=N: set packet start range to `N`
50
-
* e=N: set packet end range to `N` (only used for `r` and `f` rules)
51
-
* n=N: set number of packets to drop to `N` - not set, 0 or 1 means single packet
52
-
* r=N: random drop one packet every `N`
53
-
* f=N: drop first packet every `N`
54
-
* p=P: local port number to filter, if not set the rule applies to all packets
55
-
* o=N: patch packet instead of droping (always true for TCP), replacing byte at offset `N` (0 is first byte, <0 for random)
56
-
* v=N: set patch byte value to `N` (hexa) or negative value for random (default)
49
+
* m=K: set rule mode - `K` can be `r` for reception only (default), `w` for send only or `rw` for both
50
+
* s=K: set packet start range to `K`
51
+
* e=K: set packet end range to `K` - only used for `r` and `f` rules, 0 or not set means rule apply until end
52
+
* n=K: set number of packets to drop to `K` - not set, 0 or 1 means single packet
53
+
* r=K: random drop `n` packet every `K`
54
+
* f=K: drop first `n` packets every `K`
55
+
* d=K: reorder `n` packets after the next `K` packets, can be used with `f` or `r` rules
56
+
* p=K: filter packets on port `K` only, if not set the rule applies to all packets
57
+
* o=K: patch packet instead of droping (always true for TCP), replacing byte at offset `K` (0 is first byte, <0 for random)
58
+
* v=K: set patch byte value to `K` (hexa) or negative value for random (default)
57
59
58
60
Example
59
61
```
@@ -93,10 +95,7 @@ This will use regular network interface and drop packets 100 to 119 on port 1234
93
95
<aid="dm-threads">__-dm-threads__</a>: force using threads for async download requests rather than session scheduler
94
96
<aid="cte-rate-wnd">__-cte-rate-wnd__</a> (int, default: __20__): set window analysis length in milliseconds for chunk-transfer encoding rate estimation
95
97
<aid="cred">__-cred__</a> (string): path to 128 bits key for credential storage
96
-
<aid="no-h2">__-no-h2__</a>: disable HTTP2
97
-
<aid="no-h2c">__-no-h2c__</a>: disable HTTP2 upgrade (i.e. over non-TLS)
98
-
<aid="h2-copy">__-h2-copy__</a>: enable intermediate copy of data in nghttp2 (default is disabled but may report as broken frames in wireshark)
99
-
<aid="dbg-edges">__-dbg-edges__</a>: log edges status in filter graph before dijkstra resolution (for debug). Edges are logged as edge_source(status, weight, src_cap_idx, dst_cap_idx)
98
+
<aid="dbg-edges">__-dbg-edges__</a>: log edges status in filter graph before dijkstra resolution (for debug). Edges are logged as edge_source(status(disable_depth), weight, src_cap_idx -> dst_cap_idx)
100
99
<aid="full-link">__-full-link__</a>: throw error if any PID in the filter graph cannot be linked
0 commit comments