Demolition Media Hap: new version is coming, testers needed

Hey everyone!
I’m planning to release an updated version of Hap Player, with two main changes:

  1. (Still a bit experimental) reverse playback / improved playback speed control
  2. Multichannel audio support (sponsored by @idab) – easy to use home theater inside vvvv

Is anyone interested in giving it a try in prior to the release?

UPDATE - beta available!

CHANGELOG

  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

7 Likes

Hey Lev, good to hear that!

what about doing a version for vl? in my understanding this shouldn’t be much effort…

2 Likes

Snappy works in VL, so a node based version might be feasible…

I`m up for testing :)

Hey Sebl!
I think I can do it, but I don’t know much about VL yet…
Is making nodes for VL similar to making usual vvvv nodes? Is there any tutorial for that?

@synth cool! could you drop me a mail on lev.panov@gmail.com ?

With VL it’s probably even simpler, @lev. Here is some info
I can help you with it. But I’m not sure yet what kind of image we should output in VL… Any suggestions @sebl?

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…

3 Likes

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

CHANGELOG

  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!

9 Likes

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!

2 Likes

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?

HapCompressorNone,
HapCompressorSnappy,
HapCompressorLZ4,
HapCompressorLZ4fast
HapCompressorLZ4fast3,
HapCompressorLZ4fast17,
HapCompressorLZ4hc4,
HapCompressorLizard10,
HapCompressorLizard12,
HapCompressorZSTD,

?
thanks for your time !!