Demolition Media Hap: new version is coming, testers needed

the only drawback of VL for this the HAP playback is that there’s only the Skia renderer which I guess could be used for texture playback but I don’t know in VL if you can already use a texture created on the GPU in a Skia context without copying said texture first to system RAM. and I guess that would defeat the purpose. Devvvvs demoing Xenko implementation but that’s nowhere near public yet, or you can just plain implement it for Xenko (which is written in C# or in C++/CLI)

as a start, I’d go for the Iimage interface. if that works, one could use the image in skia and opencv for now. in the future a node for xenkos texture could be added which might be somehow similar to the way the current vvvv node works.

i think the whole point of HAP is that it’s GPU decoded and is available as texture, so the image interface is not really an option, since it is CPU based and would need a read back. but if @lev is interested, he can test it in a Xenko game and make the components there. we then just import them into VL, i think it would basically be a straight forward port of his Unity version…


Xenko looks like what we need for fast Hap in VL. Is it more like Unity compared to vux’s DX11 pack when adding custom nodes/components to it?

Yes, it’s the same concept. Entity component system, only the naming is slightly different: GameObject is called Entity in Xenko, MonoBehavior is SyncScript in Xenko. Components are also called components…

1 Like

It’s been a while, and now I’m ready for a public beta


  1. Reverse playback
  2. Smooth looping. No hiccups at the start of new loop — whether you have the start/end frames set or not!
  3. Better playback speed control
  4. Multi-channel audio support
  5. Async open/close (almost not affecting mainloop if number of videos is not insane)
  6. Improved stability and performance in some cases
  7. Slightly less modular design :)
    All the old nodes are still there, but now have “Deprecated” suffix in their names. You need to update them from the node browser in order for the old patches to work.
    New suggested nodes are HapPlayer/HapPlayerState. Async open works only there. HapAudio remains alive
  8. Extra output pins with some useful info

Bonus: it’s now only 16 megabytes, after I’ve made a custom tiny FFmpeg version

Please send any bug reports/usage impressions either to this topic or by e-mail
I’m really hoping to sell some licenses in order to be able to work further on this long ongoing release (and the next one which I’m already have some ideas for!)

Download link

Cheers everyone, hope you enjoy it!


I’m using this to test, spreaded movies, first time I got multiple textures, (then hang, like out of memory sticky windows) but now when I try it, only one loads. So something seems odd wioth spreading, I also have stream not availble with the ones that don’t load, but they are all hap

01_HapVideoPlayback.v4p (23.9 KB)

Yeah, I guess there might be something missing with spreading. That’s why it’s a beta.
I will try to dig into it tomorrow, and ask you for more information if needed.
Thanks for reporting it!


Download link has been updated with the above spreading problem fix (still need to confirm by @catweasel)

1 Like

Yes that seems to be working now

1 Like

Hi everyone. Should I go ahead and publish the new version? Didn’t get any bug reports over the last weeks

I wonder whether anyone has a chance to test it properly already

hello Lev,
everything seems ok here,
regarding multichannel sound support
i gave a try with a 5.1 file but no luck so far (2 outputs listed)
not sure what format the decoder is supposed to support since only mono, stereo and 5.1 are available in the exporter menu (AE)
anyway as stated in another thread video and audio may run smoothly side by side!

does this version implement the new compressor features?


thanks for your time !!

Hello guest!
Thanks for giving the beta version a try and reaching back!
Please send me the file and I will check why it’s not working.

For the new compressors, it’s not ready for production yet.
LZ4/Lizard show some improvement on the file size, but no significant performance gain so far

A quick update on the Hap player v3 beta (download here) guys.
Lately I’ve been spending time trying to make the texture update operation fully in background, leaving the mainloop untouched, and it seems to be working now!

Big thanks to wirmachenbunt for sponsoring this feature and for pushing me towards finishing it.

Below is comparison playing 2x 4k@60fps Hap Q + 8k@30fps Hap videos (vsync enabled)
Without background texture upload:
With background texture upload:

Hope it is “a thing” for at least some of the people :-)

Please support the further player development by getting licenses for commercial projects.

Full list of changes:

  1. Video texture uploading is being done in background now, making the mainloop decoupled and generally smooth even when playing a lot of videos
  2. Reduced number of memory copying operations, gaining up to 10% of playback performance
  3. Improved calculation of decode threads number for chunked Hap files (mostly relevant to massively multi-core CPUs)

First VL/Hap R test




Will hap be able to run in increment-mode.

Related @tebjan is there / will there be and increment mode equivalent in gamma?

@sunep You could use NextFrame on each new vvvv frame. With the latest background texture upload change, the new frame should appear pretty much immediately

1 Like

Hi @lev.
How is it going with the vl hap Player? Would love to test it

1 Like