Skip to content

Commit

Permalink
fixes in links
Browse files Browse the repository at this point in the history
  • Loading branch information
jeanlf committed Jan 9, 2025
1 parent caf037b commit b6b55c9
Show file tree
Hide file tree
Showing 40 changed files with 348 additions and 392 deletions.
2 changes: 1 addition & 1 deletion docs/Developers/javascript.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Javascript developers have two options to work with GPAC, the most appropriate s

The JS filter API makes it easy to **extend gpac** using the internal QuickJS runtime, giving access to the Filter API for frame and packet processing, but also APIs for adaptative streaming, compositing, storage, ...

Some of the gpac built-in filters - eg. [avgen](Filters/avgen), [avmix](Filters/avmix) - are actualy implemented as custom javascript filters. Their source code can be found under the[`share/scripts/jsf`](https://github.com/gpac/gpac/tree/master/share/scripts/jsf) directory.
Some of the gpac built-in filters - eg. [avgen](/Filters/avgen), [avmix](/Filters/avmix) - are actualy implemented as custom javascript filters. Their source code can be found under the[`share/scripts/jsf`](https://github.com/gpac/gpac/tree/master/share/scripts/jsf) directory.

[JSF documentation](/Howtos/jsf/jsfilter){ .md-button }

Expand Down
4 changes: 2 additions & 2 deletions docs/Developers/tutorials/GPAC-concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ tags:

## What is GPAC ?

The **GPAC Filter API** is at the core of the [MP4Box and GPAC](Howtos/gpac-mp4box) applications.
The **GPAC Filter API** is at the core of the [MP4Box and GPAC](/Howtos/gpac-mp4box) applications.

The `gpac` application allows building media pipelines by conveniently [combining and configuring Filters](Filters/filters_general) from the command line.
The `gpac` application allows building media pipelines by conveniently [combining and configuring Filters](/Filters/filters_general) from the command line.

Filters are configurable processing units consuming and producing data packets.

Expand Down
2 changes: 1 addition & 1 deletion docs/Developers/tutorials/custom-filter.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ Set the process event callback for a custom filter. This callback handles events

The reconfigure_output callback may be needed to reconfigure the output PID(s) of a filter during the execution of a filters session.

### [gf_filter_set_probe_data_cbk()](%28https://doxygen.gpac.io/group__filters____cust__grp.html#ga3b067ec9d2067d683ea5d3fdb4d32833%29)
### [gf_filter_set_probe_data_cbk()](https://doxygen.gpac.io/group__filters____cust__grp.html#ga3b067ec9d2067d683ea5d3fdb4d32833%29)

Set the data prober function for a custom filter.

Expand Down
1 change: 0 additions & 1 deletion docs/Filters/avgen.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ If NTP injection is used, each video packet (but not audio ones) has a `SenderNT
More than one output size can be specified. This will result in multiple sources being generated, one per size.
A size can be specified more than once, resulting in packet references when [copy](#copy) is not set, or full copies otherwise.
Target encoding bitrates can be assigned to each output using [rates](#rates). This can be useful when generating dash:
Example
```
gpac avgen:sizes=1280x720,1920x1080:rates=2M,5M c=aac:FID=1 c=264:FID=2:clone -o live.mpd:SID=1,2
```
Expand Down
2 changes: 1 addition & 1 deletion docs/Filters/btplay.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This filter may be automatically loaded during graph resolution.

This filter parses MPEG-4 BIFS (BT and XMT), VRML97 and X3D (wrl and XML) files directly into the scene graph of the compositor.

When [sax_dur=N](#sax_dur=N) is set, the filter will do a progressive load of the source and cancel current loading when processing time is higher than `N`.
When [sax_dur](#sax_dur) is set to `N`, the filter will do a progressive load of the source and cancel current loading when processing time is higher than `N`.


# Options {.no-collapse}
Expand Down
2 changes: 0 additions & 2 deletions docs/Filters/compositor.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,12 @@ For `views://` syntax, the number of rendered views is set by [nbviews](#nbviews


The compositor can act as a source filter when the [src](#src) option is explicitly set, independently from the operating mode:
Example
```
gpac compositor:src=source.mp4 vout
```


The compositor can act as a source filter when the source url uses one of the compositor built-in protocol schemes:
Example
```
gpac -i mosaic://URL1:URL2 vout
```
Expand Down
6 changes: 6 additions & 0 deletions docs/Filters/core_options.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

# libgpac core options:

<div markdown class="option">
<a id="tmp" data-level="basic">__-tmp__</a> (string): specify directory for temporary file creation instead of OS-default temporary file management
</div>
<div markdown class="option">
<a id="noprog">__-noprog__</a>: disable progress messages
</div>
Expand Down Expand Up @@ -94,6 +97,9 @@
<a id="xml-max-csize">__-xml-max-csize__</a> (int, default: __100k__): maximum XML content or attribute size
</div>
<div markdown class="option">
<a id="users">__-users__</a> (string): authentication configuration file for users and groups
</div>
<div markdown class="option">
<a id="netcap">__-netcap__</a> (string): set packet capture and filtering rules formatted as [CFG][RULES]. Each `-netcap` argument will define a configuration
[CFG] is an optional comma-separated list of:

Expand Down
5 changes: 1 addition & 4 deletions docs/Filters/dasher.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,6 @@ gpac -i m1.mp4:#ASCDesc=&lt;ElemName val="attval"&gt;text&lt;/ElemName&gt; -o te
This will assign the specified XML descriptor to the adaptation set.
_Note: this can be used to inject most DASH descriptors not natively handled by the segmenter._
The segmenter handles the XML descriptor as a string and does not attempt to validate it. Descriptors, as well as some segmenter filter arguments, are string lists (comma-separated by default), so that multiple descriptors can be added:
Example
```
gpac -i m1.mp4:#RDesc=&lt;Elem attribute="1"/&gt;,&lt;Elem2&gt;text&lt;/Elem2&gt; -o test.mpd
```
Expand Down Expand Up @@ -237,7 +236,6 @@ gpac -i source.mp4 reframer:rt=on -o live.m3u8:segdur=2:cdur=0.2:llhls=sf:dmode=
This will create DASH segments of 2 seconds made of fragments of 200 ms and produce HLS low latency parts using dedicated files.

You can combine LL-HLS and DASH-LL generation:
Example
```
gpac -i source.mp4 reframer:rt=on -o live.mpd:dual:segdur=2:cdur=0.2:asto=1.8:llhls=br:profile=live:dmode=dynamic
```
Expand Down Expand Up @@ -282,7 +280,6 @@ __Warning: Cues shall be listed in decoding order.__

If the `DashCue` property of a PID equals `inband`, the PID will be segmented according to the `CueStart` property of input packets.
This feature is typically combined with a list of files as input:
Example
```
gpac -i list.m3u:sigcues -o res/live.mpd
```
Expand Down Expand Up @@ -672,7 +669,7 @@ The segmenter adds the following properties to the output PIDs:
<a id="strict_sap">__strict_sap__</a> (enum, default: _off_): strict mode for sap

- off: ignore SAP types for PID other than video, enforcing `AdaptationSet@startsWithSAP=1`
- sig: same as [off](#off) but keep `AdaptationSet@startsWithSAP` to the true SAP value
- sig: same as `-off` but keep `AdaptationSet@startsWithSAP` to the true SAP value
- on: warn if any PID uses SAP 3 or 4 and switch to FULL profile
- intra: ignore SAP types greater than 3 on all media types
</div>
Expand Down
1 change: 0 additions & 1 deletion docs/Filters/dashin.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ In this mode, the manifest is forwarded as an output PID.
__Warning: This mode cannot be set through inheritance as it changes the link capabilities of the filter. The filter MUST be explicitly declared.__

To expose a live DASH session to route:
Example
```
gpac -i MANIFEST_URL dashin:forward=file -o route://225.0.0.1:8000/
```
Expand Down
10 changes: 5 additions & 5 deletions docs/Filters/evgs.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ This filter rescales raw video data using GPAC's EVG library to the specified si
## Output size assignment
If [osize](#osize) is {0,0}, the output dimensions will be set to the input size, and input aspect ratio will be ignored.

If [osize](#osize) is {0,H} (resp. {W,0}), the output width (resp. height) will be set to respect input aspect ratio. If [keepar=nosrc](#keepar=nosrc), input sample aspect ratio is ignored.
If [osize](#osize) is {0,H} (resp. {W,0}), the output width (resp. height) will be set to respect input aspect ratio. If [keepar](#keepar) = `nosrc`, input sample aspect ratio is ignored.

## Aspect Ratio and Sample Aspect Ratio
When output sample aspect ratio is set, the output dimensions are divided by the output sample aspect ratio.
Expand All @@ -22,19 +22,19 @@ evgs:osize=288x240:osar=3/2

The output dimensions will be 192x240.

When aspect ratio is not kept ([keepar=off](#keepar=off)):
When aspect ratio is not kept ([keepar](#keepar) = `off`):

- source is resampled to desired dimensions
- if output aspect ratio is not set, output will use source sample aspect ratio


When aspect ratio is partially kept ([keepar=nosrc](#keepar=nosrc)):
When aspect ratio is partially kept ([keepar](#keepar) = `nosrc`):

- resampling is done on the input data without taking input sample aspect ratio into account
- if output sample aspect ratio is not set ([osar=0/N](#osar=0/N)), source aspect ratio is forwarded to output.
- if output sample aspect ratio is not set ([osar](#osar) = `0/N`), source aspect ratio is forwarded to output.


When aspect ratio is fully kept ([keepar=full](#keepar=full)), output aspect ratio is force to 1/1 if not set.
When aspect ratio is fully kept ([keepar](#keepar) = `full`), output aspect ratio is force to 1/1 if not set.

When sample aspect ratio is kept, the filter will:

Expand Down
2 changes: 0 additions & 2 deletions docs/Filters/ffavf.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,11 @@ ffavf::f=anullsrc=channel_layout=5.1:sample_rate=48000


For complex filter graphs, it is possible to store options in a file (e.g. `opts.txt`):
Example
```
:f=anullsrc=channel_layout=5.1:sample_rate=48000
```

And load arguments from file:
Example
```
ffavf:opts.txt aout
```
Expand Down
1 change: 0 additions & 1 deletion docs/Filters/ffavin.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ gpac -i av://:fmt=libndi_newtek:dev=MY_NDI_TEST ...


You may need to escape the [dev](#dev) option if the format uses ':' as separator, as is the case for AVFoundation:
Example
```
gpac -i av://::dev=0:1 ...
```
Expand Down
10 changes: 5 additions & 5 deletions docs/Filters/ffsws.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ This filter rescales raw video data using FFmpeg to the specified size and pixel
## Output size assignment
If [osize](#osize) is {0,0}, the output dimensions will be set to the input size, and input aspect ratio will be ignored.

If [osize](#osize) is {0,H} (resp. {W,0}), the output width (resp. height) will be set to respect input aspect ratio. If [keepar=nosrc](#keepar=nosrc), input sample aspect ratio is ignored.
If [osize](#osize) is {0,H} (resp. {W,0}), the output width (resp. height) will be set to respect input aspect ratio. If [keepar](#keepar) = `nosrc`, input sample aspect ratio is ignored.

## Aspect Ratio and Sample Aspect Ratio
When output sample aspect ratio is set, the output dimensions are divided by the output sample aspect ratio.
Expand All @@ -22,19 +22,19 @@ ffsws:osize=288x240:osar=3/2

The output dimensions will be 192x240.

When aspect ratio is not kept ([keepar=off](#keepar=off)):
When aspect ratio is not kept ([keepar](#keepar) = `off`):

- source is resampled to desired dimensions
- if output aspect ratio is not set, output will use source sample aspect ratio


When aspect ratio is partially kept ([keepar=nosrc](#keepar=nosrc)):
When aspect ratio is partially kept ([keepar](#keepar) = `nosrc`):

- resampling is done on the input data without taking input sample aspect ratio into account
- if output sample aspect ratio is not set ([osar=0/N](#osar=0/N)), source aspect ratio is forwarded to output.
- if output sample aspect ratio is not set ([osar](#osar) = `0/N`), source aspect ratio is forwarded to output.


When aspect ratio is fully kept ([keepar=full](#keepar=full)), output aspect ratio is force to 1/1 if not set.
When aspect ratio is fully kept ([keepar](#keepar) = `full`), output aspect ratio is force to 1/1 if not set.

When sample aspect ratio is kept, the filter will:

Expand Down
4 changes: 0 additions & 4 deletions docs/Filters/filters_general.md
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,6 @@ This will create a cropped version of the source, encoded in AVC at 1M, and a fu
# Cloning filters

When a filter accepts a single connection and has a connected input, it is no longer available for dynamic resolution. There may be cases where this behavior is undesired. Take a HEIF file with N items and do:
Example
```
gpac -i img.heif -o dump_$ItemID$.jpg
```
Expand Down Expand Up @@ -548,7 +547,6 @@ gpac -i dual_audio resample:osr=48k c=aac -o dst

The `resampler` filter will be cloned for each audio PID, and the encoder will be cloned for each resampler output.
You can explicitly deactivate the cloning instructions:
Example
```
gpac -i dual_audio resample:osr=48k:clone=0 c=aac -o dst
```
Expand All @@ -571,7 +569,6 @@ gpac -i source.ts -o file_$ServiceID$.mp4:SID=#ServiceID=
In this case, each new `ServiceID` value found when connecting PIDs to the destination will create a new destination file.

Cloning in implicit linking mode applies to output as well:
Example
```
gpac -i dual_audio -o dst_$PID$.aac
```
Expand Down Expand Up @@ -724,7 +721,6 @@ Defined keywords:


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
```
Expand Down
1 change: 0 additions & 1 deletion docs/Filters/ghidmx.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ This generates init segment for representation `FOO` in file `BAR2`.
The filter outputs are PIDs using framed packets marked with segment boundaries and can be chained to other filters before entering the dasher (e.g. for encryption, transcode...).

If representation IDs are not assigned during index creation, they default to the 1-based index of the source. You can check them using:
Example
```
gpac -i src.ghi inspect:full
```
Expand Down
2 changes: 1 addition & 1 deletion docs/Filters/gpac_general.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Usage: gpac [options] FILTER [LINK] FILTER [...]
gpac is GPAC's command line tool for setting up and running filter chains.

_FILTER_: a single filter declaration (e.g., `-i file`, `-o dump`, `inspect`, ...), see [gpac -h doc](filters_general#filter-declaration-filter).
_[LINK]_: a link instruction (e.g., `@`, `@2`, `@2#StreamType=Visual`, ...), see [gpac -h doc](filters_general#explicit-links-between-filters-link).
_[LINK]_: a link instruction (e.g., `@`, `@2`, `@2#StreamType=Visual`, ...), see [gpac -h doc](filters_general#filter-linking-link).
_[options]_: one or more option strings, each starting with a `-` character.

- an option using a single `-` indicates an option of gpac (see [gpac -hx](gpac_general#h)) or of libgpac (see [gpac -hx core](core_options))
Expand Down
3 changes: 0 additions & 3 deletions docs/Filters/gsfmx.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ The [IV](#IV) is constant to avoid packet overhead, randomly generated if not se

The header/tunein packet may get quite big when all PID properties are kept. In order to help reduce its size, the [minp](#minp) option can be used: this will remove all built-in properties marked as droppable (cf property help) as well as all non built-in properties.
The [skp](#skp) option may also be used to specify which property to drop:
Example
```
skp="4CC1,Name2
```
Expand All @@ -40,7 +39,6 @@ gpac -i source.mp4 gsfmx:dst=manifest.mpd -o dump.gsf

This will DASH the source and store every files produced as PIDs in the GSF mux.
In order to demultiplex such a file, the `gsfdmx`filter will likely need to be explicitly loaded:
Example
```
gpac -i mux.gsf gsfdmx -o dump/$File$:dynext
```
Expand All @@ -49,7 +47,6 @@ This will extract all files from the GSF mux.

By default when working in file mode, the filter only accepts PIDs of type `file` as input.
To allow a mix of files and streams, use [mixed](#mixed):
Example
```
gpac -i source.mp4 gsfmx:dst=manifest.mpd:mixed -o dump.gsf
```
Expand Down
3 changes: 1 addition & 2 deletions docs/Filters/httpout.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ When enabled, a GET on a directory will return a simple HTML listing of the cont

Custom headers can be specified using [hdrs](#hdrs), they apply to all requests. For more advanced control on requests, use a javascript binding (see [js](#js) and howtos).

Text files are compressed using gzip or deflate if the client accepts these encodings, unless [no_z](#no_z) is set.
Text files are compressed using gzip or deflate if the client accepts these encodings, unless [zmax](#zmax) is set to 0.


# Simple HTTP server
Expand Down Expand Up @@ -92,7 +92,6 @@ This sets up a read-write server running on [port](#port) 8080.
In this mode, the filter will forward input PIDs to connected clients, trashing the data if no client is connected unless [hold](#hold) is specified.
The filter does not use any read directory in this mode.
This mode is mostly useful to setup live HTTP streaming of media sessions such as MP3, MPEG-2 TS or other multiplexed representations:
Example
```
gpac -i MP3_SOURCE -o http://localhost/live.mp3 --hold
```
Expand Down
2 changes: 1 addition & 1 deletion docs/Filters/inspect.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This filter is not checked during graph resolution and needs explicit loading.
The inspect filter can be used to dump PID and packets. It may also be used to check parts of payload of the packets.

The default options inspect only PID changes.
If [full](#full) is not set, [mode=frame](#mode=frame) is forced and PID properties are formatted in human-readable form, one PID per line.
If [full](#full) is not set, [mode](#mode) is forced to `frame` and PID properties are formatted in human-readable form, one PID per line.
Otherwise, all properties are dumped.
_Note: specifying [xml](#xml), [analyze](#analyze), [fmt](#fmt) or using `-for-test` will force [full](#full) to true._

Expand Down
2 changes: 1 addition & 1 deletion docs/Filters/m2tsmx.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Inserts an external TEMI with ID 4 and timescale 30000, NTP injection and carous

__Warning: multipliers (k,m,g) are not supported in TEMI options.__

When input TEMI properties are found, they can be removed using [drop_temi](#drop_temi). When rewritten, any NTP information present is rewritten to the current NTP.
When input TEMI properties are found, they can be removed using [temi_fwd](#temi_fwd). When rewritten, any NTP information present is rewritten to the current NTP.

# Adaptive Streaming

Expand Down
Loading

0 comments on commit b6b55c9

Please sign in to comment.