New Sound Datatypes

miker1264 · 1155

magorium

  • Senior Member
  • ****
    • Posts: 375
    • Karma: +50/-0
  • Convicted non contributor
Reply #30 on: December 17, 2021, 12:18:32 AM
Datatypes aren't aware of that type of file streaming.  It's reasons like that that the Anim file loads into RAM before it starts to play even though the file is large.  IFF is not streaming aware and Datatypes.library was designed around the idea that importing to IFF would be all that was needed.
Uhm... would you be able to elaborate on that (from a technical point of view).

Because to my knowledge iff anim is per definition a good example of how different chunks put together one after another makes it a fairly good candidate for streaming. There even exist a delta packing for one frame to another in order to reduce filesize.

Even the supported iff libraries has provision for it by offering functionality to load one chunk at a time.

Admittingly, you can only be sure the file in it's whole is a valid iff-anim file when parsed entirely. But that is also true for mp3.

But perhaps i have my facts with regards to datatype and iff library mixed up as it has been a while since i worked on these things, if so then please feel free to correct.


Samurai_Crow

  • Junior Member
  • **
    • Posts: 88
    • Karma: +31/-0
  • Hobby coder
Reply #31 on: December 17, 2021, 05:21:56 AM
@magorium

This has more to do with datatypes than IFF.  Datatypes.library, as originally implemented, will load the entire file into RAM before it tries to identify it.  For MorphOS they essentially replaced many datatypes with Reggae classes capable of streaming files.  AmigaOS 4 made a minor change in the Datatypes.library implementation to support streaming.  I don't know if AROS followed the AmigaOS 3.1 example or not but I hope it didn't because streaming is not supported by the AmigaOS 3.1 datatypes.



magorium

  • Senior Member
  • ****
    • Posts: 375
    • Karma: +50/-0
  • Convicted non contributor
Reply #32 on: December 18, 2021, 12:38:54 AM
Thank you very much for the clarification Samurai_Crow.


afaik Aros follows the same road as classic did/does. Odd that such memory restricted platform would opt  for such an implementation. Then again it was probably enough for the time when it was conceived/implemented.