Author Topic: Nightly (Windows): 26 Sep 2009 - Revision 5610  (Read 4242 times)

0 Members and 1 Guest are viewing this topic.

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: Nightly (Windows): 26 Sep 2009 - Revision 5610
EFF was never intended to be used on the interface, hence it wasn't designed to handle streaming.  Although it could be coded to stream it would be so horribly inefficient that it would hardly be worth the trouble.  I worked on the EFF format with Lightspeed solely for use with in-game effects.  So really, getting EFF working on the interface is something that it was specifically designed NOT to do.

The idea was always to create a new container format which could replace ANI on the interface.  The new format would easily support everything that ANI does, but better.  And it would be able to function equally well for effects as well as UI elements.  This new format was never fully completed, but did have a basic working implementation when I started the Xt builds.  The main missing piece was an app like AniBuilder which could be used to actually combine all of the animation frames into the container. However, the code got put in the back-burner, and unfortunately, it ended up getting lost along the way.

 
Re: Nightly (Windows): 26 Sep 2009 - Revision 5610
EFF was never intended to be used on the interface, hence it wasn't designed to handle streaming.  Although it could be coded to stream it would be so horribly inefficient that it would hardly be worth the trouble.  I worked on the EFF format with Lightspeed solely for use with in-game effects.  So really, getting EFF working on the interface is something that it was specifically designed NOT to do.

Agreed. Saw it firsthand. :nervous:

  

Offline Tomo

  • 28
Re: Nightly (Windows): 26 Sep 2009 - Revision 5610
Tomo: be advised that the FreeSpace code is almost entirely single-threaded. :)
Awk!!

Fair enough... not really a way to do it then!

As to a 'new' container format - wouldn't it make more sense to go out into the world and find an existing, open format to use?
Preferably one that already has (free) editors and viewers.

Maybe Animated PNG?
That's natively supported by Firefox, so it's easy to test. They do seem quite large though, so maybe not such a great format.
« Last Edit: October 04, 2009, 05:31:52 am by Tomo »

 
Re: Nightly (Windows): 26 Sep 2009 - Revision 5610
I already have something in mind for a possible container format, based on what I've seen in a previous job.

The general idea:

http://en.wikipedia.org/wiki/Type-length-value

There are things you can do with it that aren't obvious from the wikipedia entry, especially when used as a container format.

Anyone else got an open format (or method) in mind?

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: Nightly (Windows): 26 Sep 2009 - Revision 5610
As to a 'new' container format - wouldn't it make more sense to go out into the world and find an existing, open format to use?
Preferably one that already has (free) editors and viewers.
The idea of a new format is so that we wouldn't be limited to a single content format/type.  We wanted the flexibility to use (un)compressed DDS or JPG at the very least.  That way it would be possible to use 8-bit/16-bit DDS for the interface if you didn't need a huge color count, but still needed the palette flexibility that ANI does not provide.

You could then use JPG if file size was very important (for huge frame-count animations) on certain interface animations.  Streaming JPG would be pretty efficient since you can use the same decoder stream and just keep feeding it new data to process.  This would work well for large interface animations, such as on the mainhall.  And since JPG has no real size requirements it could be used anywhere that an alpha channel wasn't needed.

And you would have the option of DDS if you wanted a streaming effect or comm animation, something that you might need an alpha channel for, or something that you could use a DXT format with (if the dimensions allowed for it).  Using uncompressed DDS was an issue as far as filesize went, but that is why compressed VPs were on the todo list as well, to negate the size issue.  DDS is highly compressible with BZ2, even the DXT formats.  Decompression overhead is an issue for streaming in that case, but some rudimentary read-ahead support could be added to help reduce that.

 

Offline Tomo

  • 28
Re: Nightly (Windows): 26 Sep 2009 - Revision 5610
So why invent a new container?
There are so many container formats out there that it seems crazy to re-invent the wheel yet again.

Surely it is far more useful to pick a reasonably good, pre-existing container and use that.

I have noticed a tendency in almost all open-source projects to invent new formats 'just for the sake of it'.

Heck, OGG would work, and we already use that for audio.
- OGG is indeed 'just a series of boxes', and it's already specified that it should work with video as well as audio, and maintains very good separation between codec and container.

 
Re: Nightly (Windows): 26 Sep 2009 - Revision 5610
Managed to get ANIs to stream, now to figure out the rendering and the fixing up therof...

EDIT: About to post patch/builds for testing.
« Last Edit: October 10, 2009, 09:45:42 am by Flaming_Sword »