Specific filter options

Some specific keywords are replaced when processing filter options.  

__Warning: These keywords do not apply to PID properties. Multiple keywords cannot be defined for a single option.__  
  
Defined keywords:  

- $GSHARE: replaced by system path to GPAC shared directory (e.g. /usr/share/gpac)  
- $GJS: replaced by the first path from global share directory and paths set through [-js-dirs](core_options/#js-dirs) that contains the file name following the macro, e.g. $GJS/source.js  
- $GDOCS: replaced by system path to:  

    - application document directory for iOS  
    - `EXTERNAL_STORAGE` environment variable if present or `/sdcard` otherwise for Android  
    - user home directory for other platforms  

- $GLANG: replaced by the global config language option [-lang](core_options/#lang)  
- $GUA: replaced by the global config user agent option [-user-agent](core_options/#user-agent)  
- $GINC(init_val[,inc]): replaced by `init_val` and increment `init_val` by `inc` (positive or negative number, 1 if not specified) each time a new filter using this string is created.  

  
The `$GINC` construct can be used to dynamically assign numbers in filter chains:  
Example
```
gpac -i source.ts tssplit @#ServiceID= -o dump_$GINC(10,2).ts
```
  
This will dump first service in dump_10.ts, second service in dump_12.ts, etc...  
  
As seen previously, the following options may be set on any filter, but are not visible in individual filter help:  

- FID: filter identifier  
- SID: filter source(s) (string value)  
- N=NAME: filter name (string value)  
- FS: sub-session identifier (unsigned int value)  
- RSID: require sourceID to be present on target filters (no value)  
- TAG: filter tag (string value)  
- ITAG: filter inherited tag (string value)  
- FBT: buffer time in microseconds (unsigned int value)  
- FBU: buffer units (unsigned int value)  
- FBD: decode buffer time in microseconds (unsigned int value)  
- clone: explicitly enable/disable filter cloning flag (no value)  
- nomux: enable/disable direct file copy (no value)  
- gfreg: preferred filter registry names for link solving (string value)  
- gfloc: following options are local to filter declaration, not inherited (no value)  
- gfopt: following options are not tracked (no value)  
- gpac: argument separator for URLs (no value)  
- ccp: filter replacement control (string list value)  
- NCID: ID of netcap configuration to use (string)  
- LT: set additionnal log tools and levels for the filter usin same syntax as -logs, e.g. `:LT=filter@debug` (string value)  
- DBG: debug missing input PID property (`=pid`), missing input packet property (`=pck`) or both (`=all`)  

  
The buffer control options are used to change the default buffering of PIDs of a filter:  

- `FBT` controls the maximum buffer time of output PIDs of a filter  
- `FBU` controls the maximum number of packets in buffer of output PIDs of a filter when timing is not available  
- `FBD` controls the maximum buffer time of input PIDs of a decoder filter, ignored for other filters  

  
If another filter sends a buffer requirement messages, the maximum value of `FBT` (resp. `FBD`) and the user requested buffer time will be used for output buffer time (resp. decoding buffer time).  
  
The options `FBT`, `FBU`, `FBD`  and `DBG` can be set:  

- per filter instance: `fA reframer:FBU=2`  
- per filter class for the run: `--reframer@FBU=2`  
- in the GPAC config file in a per-filter section: `[filter@reframer]FBU=2`  

  
The default values are defined by the session default parameters `-buffer-gen`, `buffer-units` and `-buffer-dec`.