Alan L. V. Guedes Computer Science, University of Reading, UK
ACM International Conference on Multimedia (MM '26) Rio de Janeiro, BR
Paper Website (slides, code, demo): https://alanlivio.github.io/paper-mm26-gingaf/
<media id="video" src="butterfly.mp4"> <area id="a1" begin="2s" end="4s"/> </media> <media id="green_bg"> <property name="background" value="green"/> <property name="bounds" value="0%,80%,20%,20%"/> </media> <media id="red_bg"> <property name="background" value="red"/> <property name="bounds" value="80%,80%,20%,20%"/> <property name="explicitDur" value="2s"/> </media> ...
... <port id="init" component="video"/> <link id="l1"> <bind role="onBegin" component="video" interface="a1"/> <bind role="start" component="green_bg"/> </link> <link id="l2"> <bind role="onEnd" component="video" interface="a1"/> <bind role="stop" component="green_bg"/> <bind role="start" component="red_bg"/> </link>
Compare Mozilla (https://developer.mozilla.org/) with Ginga-VM (2010)
PUC-Rio (Java AWT) PUC-Rio (C++, FFmpeg) PUC-Rio (C++, GStreamer)
gingaf (ours) Ginga-NCL + Ginga-HTML5
PUC-Rio (Netscape) UFSCar (WebNCL) Sidia NuGinga (NodeJS)
Dart Flutter
Native
Browser
(a) Windows
(b) Android
(c) Web Browser
Previous ginga Implementations
No virtual clock & coupled UI-logic
gingaf Architecture
gingaf
Virtual clock & decoupled UI-logic
It allows advancing simulated playback time arbitrarily without waiting for real-world elapsed seconds.
1. Multiplatform Graphics Engine Single Dart/Flutter multiplatform code
2. Decoupled UI In-memory NCL state machine isolated from UI rendering
3. Virtual Clock Time progression via tick() and allow debug
tick()
4. Open-Source https://github.com/ginga-org-br/gingaf
Find more about Ginga at https://ginga.org.br
Contact: a.guedes@reading.ac.uk
a.guedes@reading.ac.uk