gingaf
gingaf is an MIT-licensed, multi-platform implementation of the interactive TV middleware Ginga standardised by ITU-T and SBTVD.
Architecture
The gingaf repository is organized as a monorepo: the root directory contains the Flutter host application. See the main components below.
packages/gingacc/: configuration, users, and CCWSpackages/ncldoc/: NCL headless execution enginepackages/nclui/: NCL and visual widgetsnode/: npm package which also contains web interactive playground
Developing Ginga Applications using gingaf
You can use gingaf to develop Ginga applications at web by using the playground or acessing ginga.org.br/gingaf/playground or at desktop by the Visual Studio Code extension ginga-code.
Demonstration Videos
Windows
https://github.com/user-attachments/assets/07c9fb0f-a9f1-406b-b650-fa4eee331af0
Android
https://github.com/user-attachments/assets/5bbecb80-04c7-4574-88d5-e979d1c11e22
Chrome
https://github.com/user-attachments/assets/b04eabac-4636-453c-beec-7ec845d841a4
NCL headless
https://github.com/user-attachments/assets/576cba53-04b7-4b55-b4a5-97d1b78f4a79
Playground Ginga-NCL (video.ncl)
https://github.com/user-attachments/assets/c6fd4ce3-66a5-4888-8b49-50dde510c2d8
Playground Ginga-HTML5 (current_service.html)
https://github.com/user-attachments/assets/3f4aa3f4-5950-4b6e-8a32-50021e8b014f
Playground Ginga-NCL with Lua (lua.ncl)
https://github.com/user-attachments/assets/b06bf145-4cc2-4431-9f00-98b218cfedde
Launch Ginga Application from VSCode
https://github.com/user-attachments/assets/717948df-64ab-42c9-8dd6-3a4a2e3603da
gingaf (desktop) run applications from local examples/
All example NCL and HTML documents are stored in the examples/ folder. You can configure and run the application via APP environment variable (e.g. examples/image.ncl or examples/image.html).
flutter run -d windows --dart-define="APP=examples/video.ncl"
flutter run -d windows --dart-define="APP=examples/image.html"
For convenience, you can use make run-example for the current platform:
make run-example app=video.ncl
make run-example app=image.html
gingaf (web, mobile) run applications from URLs
flutter run -d chrome --dart-define="APP=https://raw.githubusercontent.com/ginga-org-br/gingaf/refs/heads/main/examples/video.ncl"
Libraries
- gingacc
- Ginga-CommonCore configuration, users management, and CCWS web services.
- ncldoc
- NCL headless execution engine, parser, scheduler, and document model.
- nclui
- Flutter widgets and UI components for rendering NCL media and documents.
- ginga Setup
- Main Ginga player application and widgets.
Setup
Setup