Skip to content

Commit 8debea4

Browse files
authored
Merge pull request #15 from PierreDillard/wiki-updates
Wiki updates
2 parents e36eb1d + f4146ed commit 8debea4

File tree

290 files changed

+12347
-1370
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

290 files changed

+12347
-1370
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
.ignore/
22
site/
33
.venv/
4+
venv/
45
__pycache__/
56
site.*
67
.DS_Store
8+
node_modules/

content-tagging-system.md

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
2+
3+
# GPAC Wiki Content Tagging and Level Switch System
4+
5+
## Overview
6+
7+
The GPAC wiki implements a content tagging and level switch system to provide a customized reading experience for users with different levels of expertise. This system allows users to toggle between "Beginner" and "Expert" modes, affecting the visibility of content sections and keywords displayed.
8+
9+
## Purpose
10+
11+
The main goals of this system are:
12+
1. To help users new to GPAC access simpler, more approachable content.
13+
2. To provide more in-depth, technical content for experienced users.
14+
3. To create a dynamic reading experience that adapts to the user's knowledge level.
15+
16+
## Implementation
17+
18+
### Content Tagging
19+
20+
21+
Content tagging is implemented in Markdown files using the `attr_list` extension. Tags are applied to H1 headers (single `#` in Markdown) using the following syntax:
22+
23+
```markdown
24+
# Section Title {: data-level="beginner" }
25+
```
26+
27+
Available levels:
28+
- `beginner`: Content suitable for newcomers to GPAC.
29+
- If not specified: More advanced content (considered as expert level).
30+
31+
### Level Switch
32+
33+
The level switch is a toggle located in the "Settings" menu in the header of the user interface. It allows users to switch between "Beginner" and "Expert" modes.
34+
35+
Default setting: The default level is set to "Expert", displaying all documentation.
36+
37+
User preference storage: The selected level is stored in the browser's local storage, persisting between sessions.
38+
39+
40+
## Functionality
41+
42+
### Content Visibility
43+
44+
When switching between levels:
45+
46+
. Expert mode:
47+
- All sections are visible (in Howtos).
48+
- The full Table of Contents (TOC) is displayed, including all sections and subsections.
49+
- For filter options: all options are dispalyed.
50+
51+
2. Beginner mode:
52+
- Only sections tagged as "beginner" are visible (in Howtos).
53+
- Sections not explicitly tagged as "beginner" disappear(in Howtos).
54+
- For filter options: options with the attribute `id="vsize" data-level="basic"` will be visible in beginner mode.
55+
56+
57+
Example:
58+
59+
![Beginner](docs/images/ex_beginner.png)
60+
61+
Beginner mode: Only sections tagged as "beginner" are visible.
62+
63+
![Expert](docs/images/ex_expert.png)
64+
65+
Expert mode: All sections are visible.
66+
67+
### Keywords Cloud
68+
69+
The keywords cloud is dynamic and changes based on the selected level:
70+
71+
- In Expert mode: All keywords are displayed.
72+
- In Beginner mode: Only keywords tagged as "beginner" or "all" are shown.
73+
74+
Keywords are defined in the `data/keywords.json` file with the following structure:
75+
76+
```json
77+
{
78+
"KEYWORD": {
79+
"description": "Keyword description",
80+
"level": "beginner"
81+
}
82+
}
83+
```
84+
85+
When a user clicks on a keyword, a modal appears with the keyword's definition.
86+
87+
## Implementation Details
88+
89+
### Key Files
90+
91+
- `javascripts/levels.js`: Main logic for level switching and content filtering.
92+
- `javascripts/domManipulation.js`: Handles DOM manipulation for showing/hiding content.
93+
94+
### Howtos Section
95+
96+
The level switching functionality is currently implemented only in the "Howtos" section of the documentation.
97+
98+
99+
## Developer Guidelines
100+
101+
1. Tagging new content:
102+
- Always tag H1 headers in Markdown files.
103+
- Use the format: `# Title {: data-level="level" }` where `level` is "beginner".
104+
105+
- Untagged sections are considered "expert" by default.
106+
107+
2. Adding new keywords:
108+
- Add new keywords to the `data/keywords.json` file.
109+
- Include a description and appropriate level tag.
110+
111+
3. Testing:
112+
- Test new content in both Beginner and Expert modes to ensure proper visibility.
113+
- Verify that the TOC updates correctly when switching levels.
114+
- Check that the keywords cloud updates appropriately.
115+
116+
## Best Practices for Content Formatting
117+
118+
When adding or editing content in the GPAC wiki, it's crucial to follow certain formatting practices to ensure readability and proper rendering of the documentation. One key aspect to pay attention to is the spacing between code blocks and other elements.
119+
120+
### Spacing Between Code Blocks
121+
122+
Always add a blank line between code blocks and surrounding text. This practice prevents rendering issues and improves readability.
123+
124+
#### Good Practice:
125+
126+
Example:
127+
128+
![Code block formatting issue](docs/images/good_format.png)
129+
130+
#### Bad Practice:
131+
132+
Avoid this:
133+
Example:
134+
135+
![Code block formatting issue](docs/images/bad_format.png)
136+
137+

docs/Build/Basic-Player-Application-using-GPAC.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
---
2+
tags:
3+
- scene
4+
- source
5+
- input
6+
- media
7+
- data
8+
- stream
9+
- raw
10+
- output
11+
- frame
12+
- compositor
13+
- sink
14+
- dump
15+
---
16+
17+
18+
119
## Objective
220

321
This example shows a basic GPAC player application. It takes an URL as input and outputs it in a terminal.

docs/Build/Build-Introduction.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
---
2+
tags:
3+
- option
4+
---
5+
6+
7+
18
This section describes how to build GPAC from scratch and how to develop with it.
29

310
You can get pre-compiled binaries on [the GPAC website](https://gpac.io/downloads/gpac-nightly-builds/).

docs/Build/GPAC-build-MP4Box-only-all-platforms.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
1+
---
2+
tags:
3+
- option
4+
- data
5+
---
16

2-
## Build MP4Box with Visual Studio
7+
8+
9+
10+
# Build MP4Box with Visual Studio {: data-level="all"}
311

412
We published a minimal solution to build MP4Box.exe only, with zero dependency. No DLL to distribute.
513

614
You need Visual Studio 2010 or more recent (a pop-up will ask you to upgrade your projects, just accept). Open [build/msvc10/gpac\_mp4box\_mini.sln](https://github.com/gpac/gpac/blob/master/build/msvc10/gpac_mp4box_mini.sln) and build (Debug or Release).
715

816
That's all!
917

10-
## Build MP4Box with Make
18+
# Build MP4Box with Make
1119

1220
On your system, you need the following tools installed on your system:
1321

@@ -103,7 +111,7 @@ make -j4
103111

104112
You can find more examples in [our TravisCI script](https://github.com/gpac/gpac/blob/master/.travis.yml).
105113

106-
## Next Step
114+
# Next Step
107115

108116
We have started [a multimedia component-level build system called Zenbuild](https://github.com/gpac/zenbuild). Zenbuild builds FFmpeg/libav, VLC or GPAC with most of their features enabled (librtmp, jack, openHEVC, etc.). You can start using Zenbuild, it is fully operational!
109117

docs/Build/MP4-dmx-examples.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
---
2+
tags:
3+
- mp4
4+
- source
5+
- sample
6+
- block
7+
- input
8+
- media
9+
- isomedia
10+
- segment
11+
- isobmff
12+
- data
13+
- stream
14+
- frame
15+
- buffer
16+
- box
17+
- rebuffer
18+
- dash
19+
- chunk
20+
---
21+
22+
23+
124
We have added to GPAC some sample applications demonstrating how to use GPAC to demux MP4 files.
225

326
They are not full applications, just examples taking some MP4 files as input and displaying some information about the media samples contained in the file.

docs/Build/Upgrading.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
# In source tree building
1+
---
2+
tags:
3+
- input
4+
- data
5+
- source
6+
---
7+
8+
9+
10+
# In source tree building {: data-level="all" }
211
If you build GPAC directly in the source tree (i.e., running `./configure && make` in the same directory as the configure script), the following steps must be done when upgrading your code base to a new version of GPAC, or when switching branches:
312

413
- uninstall any previous version of GPAC (optional, the build system as of 1.0 is independent from the presence of any other version of libgpac headers on the system)

docs/Build/build/GPAC-Build-Guide-for-Android.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
1-
The Android build is a bit complicated. The method described here is the one used for the official Android builds. It is fairly rigid, with some hard-coded paths and versions. It should not be too hard to adapt it to one's own set up, but there is no guarantee that it will work as is on (for example) more recent versions of the ndk/sdk.
1+
---
2+
tags:
3+
- input
4+
- data
5+
- source
6+
- link
7+
---
28

3-
It was tested on Ubuntu 14 to 18.
49

5-
The process has three main steps: set up the build environment, cross-compile the dependencies, build the GPAC apk.
610

7-
In the following, we'll call the main working directory `<GPAC_ROOT_DIR>`.
11+
!!! note
12+
The Android build is a bit complicated. The method described here is the one used for the official Android builds. It is fairly rigid, with some hard-coded paths and versions. It should not be too hard to adapt it to one's own setup, but there is no guarantee that it will work as is on (for example) more recent versions of the ndk/sdk.
813

9-
# Set up the build toolchain
14+
It was tested on Ubuntu 14 to 18.
15+
16+
The process has three main steps: set up the build environment, cross-compile the dependencies, build the GPAC apk.
17+
18+
In the following, we'll call the main working directory `<GPAC_ROOT_DIR>`.
19+
20+
21+
# Set up the build toolchain {: data-level="all"}
1022

1123
## JVM and tools
1224

docs/Build/build/GPAC-Build-Guide-for-Linux.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
1-
_Preliminary notes: the following instructions will be based on Ubuntu and Debian. It should be easily applicable to other distributions, the only changes should be name of the packages to be installed, and the package manager used._
1+
---
2+
tags:
3+
- option
4+
- data
5+
- binary
6+
---
7+
8+
9+
10+
!!! note
11+
Preliminary notes: the following instructions will be based on Ubuntu and Debian. It should be easily applicable to other distributions, the only changes should be the name of the packages to be installed, and the package manager used.
12+
213

314
GPAC is a modular piece of software which depends on third-party libraries. During the build process it will try to detect and leverage the installed third-party libraries on your system. Here are the instructions to:
415

516
* build GPAC easily (recommended for most users) from what's available on your system,
617
* build a minimal 'MP4Box' and 'gpac' (only contains GPAC core features like muxing and streaming),
718
* build a complete GPAC by rebuilding all the dependencies manually.
819

9-
# General case for all builds
20+
# General case for all builds {: data-level="all" }
1021

1122
## Development tools
1223

@@ -185,6 +196,7 @@ If you already have a gpac version installed, or if you have already built gpac
185196
<GPAC_ROOT_DIR>/gpac_public$ make uninstall
186197
<GPAC_ROOT_DIR>/gpac_public$ make distclean
187198
```
199+
188200
**before** running `./configure`.
189201

190202
### Install for developers

docs/Build/build/GPAC-Build-Guide-for-MSYS-MinGW.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1-
The following is the guide to build GPAC on Windows using MSYS2 and the MinGW gcc toolchain. It is a bit clunky and will probably only work on x64 and without cross-compilation.
1+
---
2+
tags:
3+
- input
4+
- data
5+
- source
6+
---
27

3-
# Setting up
8+
9+
10+
_The following is the guide to build GPAC on Windows using MSYS2 and the MinGW gcc toolchain. It is a bit clunky and will probably only work on x64 and without cross-compilation._
11+
12+
# Setting up {: data-level="all"}
413

514
## MSYS
615

docs/Build/build/GPAC-Build-Guide-for-OSX.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
1-
Since the OSX build is essentially the same as the Linux build, this doc will be succinct. Please refer to the [Linux build guide](GPAC-Build-Guide-for-Linux) for further details.
1+
---
2+
tags:
3+
- data
4+
- encode
5+
- encoder
6+
---
27

38

4-
# MP4Box only
9+
10+
_Since the OSX build is essentially the same as the Linux build, this doc will be succinct. Please refer to the [Linux build guide](GPAC-Build-Guide-for-Linux) for further details._
11+
12+
13+
# MP4Box only {: data-level="all"}
514

615
Same as Linux:
716

docs/Build/build/GPAC-Build-Guide-for-WASM.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,23 @@
1+
---
2+
tags:
3+
- option
4+
- source
5+
- heif
6+
- data
7+
- frame
8+
---
9+
10+
11+
112
[**HOME**](Home) » [**Build**](Build-Introduction) » WASM
213

3-
This page describes how to build GPAC for WASM/Emscripten.
14+
_This page describes how to build GPAC for WASM/Emscripten._
15+
16+
!!! note
17+
You can check a live demo at [https://wasm.gpac.io](https://wasm.gpac.io).
418

5-
A live demo can be seen at [https://wasm.gpac.io](https://wasm.gpac.io)
619

7-
# (Recommended) Use Docker
20+
# (Recommended) Use Docker {: data-level="all"}
821

922
The easiest way to build GPAC for WASM is to use the provided Dockerfile at `build/docker/wasm.Dockerfile` in the GPAC repository.
1023

0 commit comments

Comments
 (0)