Skip to content

Commit

Permalink
update developer section
Browse files Browse the repository at this point in the history
  • Loading branch information
nlsdvl committed Jun 19, 2024
1 parent 7fa8dba commit 7e2e42b
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 32 deletions.
41 changes: 36 additions & 5 deletions docs/Developers/index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,39 @@
## Contributing

## Developer resources
A complex project like GPAC wouldn’t exist and persist without the support of its community. Please contribute: a nice message, supporting us in our communication, reporting issues when you see them … any gesture, even the smallest ones, counts.

## Getting support and reporting issues

Please use [github issues](https://github.com/gpac/gpac/issues) for feature requests and bug reports. When filing a request there, please tag it as feature-request.


## API documentation

The [API documentation](https://doxygen.gpac.io/modules.html) provides information on the GPAC Filter API.

GPAC's core is writen in C, but it can be easily extended using [Javascipt Filters](/Developers/javascript), used in a [Python](/Howtos/python) or [NodeJS application](/Developers/javascript).


## Building

Detailed build [Build](/Build/Build-Introduction) instructions for MP4Box and GPAC on all supported platforms.


## Testing

Learn how to [build and run GPAC's test suite](/Build/tests/GPAC_tests).

The <a href="https://github.com/gpac/testsuite/tree/master/scripts" target="_blank">testsuite scripts</a> is always a good place to understand GPAC tools usage.


## Continuous integration

GPAC is continuously built and tested through a buildbot server:

* Build status of GPAC: <a href="https://buildbot.gpac.io" target="_blank">buildbot.gpac.io</a>
* Tests status of GPAC: <a href="https://tests.gpac.io" target="_blank">tests.gpac.io</a>


## Archives

* current build status of GPAC: <a href="https://buildbot.gpac.io" target="_blank">buildbot.gpac.io</a>
* current test suite status of GPAC: <a href="https://tests.gpac.io" target="_blank">tests.gpac.io</a>
* C API documentation: <a href="https://doxygen.gpac.io/modules.html" target="_blank"> doxygen.gpac.io</a>
* the <a href="https://github.com/gpac/testsuite/tree/master/scripts" target="_blank">testsuite scripts</a> might give you additional info on how to use GPAC tools
* tips and tricks in our [github discussions](https://github.com/gpac/gpac/issues?utf8=%E2%9C%93&q=) and our old [sourceforge forums](https://sourceforge.net/p/gpac/discussion/)
22 changes: 8 additions & 14 deletions docs/Developers/javascript.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,16 @@

Javascript developers have several options to work with GPAC.
The most appropriate solution depends on the project's goal.
Javascript developers have two options to work with GPAC, the most appropriate solution depends on the project's goal:

## customize the gpac application with custom javascript filters
## Javascript Filters

GPAC embeds the [QuickJS](https://bellard.org/quickjs/) runtime, making it easy to extend and customize gpac using custom *javascript filters*.
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 foradaptative streaming, compositing, storage, ...

Some of the gpac application features are actualy implemented as custom javascript filters, for instance [avgen](Filters/avgen) which produces procedural content, or [avmix](Filters/avmix) which provides advanced audio/video mixing.
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.

These - and more - custom *javascript filters* can be found in the gpac's source code [under the `share/scripts/jsf` directory](https://github.com/gpac/gpac/tree/master/share/scripts/jsf).
[JSF documentation](/Howtos/jsf/jsfilter){ .md-button }

- **[Javascript filters documentation](Howtos/jsf/jsfilter)**
## NodeJS

GPAC's NodeJS bindings allow **writing custom NodeJS applications**. It differs slightly from the Javascript Filters API available in the QuickJS runtime.

## write applications with the NodeJS API

GPAC also offers NodeJS bindings to write custom applications using javascript.

The GPAC's NodeJS API differs slightly from the Javascript Filters API available in the QuickJS runtime, it is most suitable to custom application development.

- **[NodeJS documentation](Howtos/nodejs)**
[NodeJS documentation](/Howtos/nodejs){ .md-button }
40 changes: 40 additions & 0 deletions docs/Developers/tutorials/GPAC-concepts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@

## What is GPAC ?

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

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

Filters are configurable processing units consuming and producing data packets.

GPAC provides a wide range of Filters supporting advanced media protocols, formats, codecs, for input, output and processing tasks.

It defines the infrastructure and helper classes to develop applications with advanced media capabilities.


### Concepts

**Filter Session**

- [API documentation](https://doxygen.gpac.io/group__fs__grp.html#details)
- [tutorial](https://git.gpac-licensing.com/slarbi/API_FIlters_tutos/src/branch/master/T0_Filters_session/simple%20gpac%20session.md)

**Filter**
- [API documentation](https://doxygen.gpac.io/group__fs__filter.html#details)

**Filter Properties**
- [API documentation](https://doxygen.gpac.io/group__fs__props.html#details)
- [Built in Properties](https://wiki.gpac.io/Filters/filters_properties/?h=properties)

**Filter Events**
- [API documentation](https://doxygen.gpac.io/group__fs__evt.html#details)

**Filter PIDs & Capabilities**
- [API documentation](https://doxygen.gpac.io/group__fs__pid.html)

**Filter Packet**
- [API documentation](https://doxygen.gpac.io/group__fs__pck.html#details)

**Custom Filter**
- [doxygen](https://doxygen.gpac.io/group__filters____cust__grp.html#details)
- [writing a custom Filter]()
19 changes: 6 additions & 13 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ hooks:
- scripts/mkdocs_hooks.py
markdown_extensions:
- admonition
- attr_list
- toc:
permalink: true
- nl2br
Expand Down Expand Up @@ -325,20 +326,12 @@ nav:
- MP4 dmx examples: Build/MP4-dmx-examples.md
- Developers:
- Developers/index.md
- JavaScript:
- Developers/javascript.md
- Javascript Filters (jsf): Howtos/jsf/jsfilter.md
- GPAC and NodeJS: Howtos/nodejs.md
- Python: Howtos/python.md
- Filter API tutorials:
- Intro to Filter Session: Developers/tutorials/filter-session-intro.md
- Writing a custom Filter: Developers/tutorials/custom-filters.md
- API documentation: https://doxygen.gpac.io/modules.html
- contributing: https://doxygen.gpac.io/index.html#autotoc_md10
- issues: https://github.com/gpac/gpac/issues
- build status: https://buildbot.gpac.io
- test suites: https://github.com/gpac/testsuite/tree/master/scripts
- tests status: https://tests.gpac.io
- Filter API tutorials:
- Intro to Filter Session: Developers/tutorials/filter-session-intro
- Writing a custom Filter: Developers/tutorials/custom-filter
- JavaScript: Developers/javascript.md
- Python: Howtos/python.md
- Playback:
- Overview: Player/Player.md
# - Introduction: Player/Playback.md
Expand Down

0 comments on commit 7e2e42b

Please sign in to comment.