This was the most clickbait sounding sentence i've ever read.Someguynamedpie wrote:But yeah I don't have the source anymore due to a harddrive failure but I got around the Lua linking problem somehow that I don't remember
Why was JPEG encoding/GIF decoding removed?
Forum rules
Before you make a thread asking for help, read this.
Before you make a thread asking for help, read this.
- zorg
- Party member
- Posts: 3468
- Joined: Thu Dec 13, 2012 2:55 pm
- Location: Absurdistan, Hungary
- Contact:
Re: Why was JPEG encoding/GIF decoding removed?
Me and my stuff True Neutral Aspirant. Why, yes, i do indeed enjoy sarcastically correcting others when they make the most blatant of spelling mistakes. No bullying or trolling the innocent tho.
- bartbes
- Sex machine
- Posts: 4946
- Joined: Fri Aug 29, 2008 10:35 am
- Location: The Netherlands
- Contact:
Re: Why was JPEG encoding/GIF decoding removed?
Please don't double-post. And yes, we are aware. But whilst ffmpeg itself is LGPL, many of the libraries it uses are GPL, and/or patent-encumbered. Not just that, the specific interpretation of the LGPL they promote is also annoying. Basically, a pain to distribute in binary form.
- slime
- Solid Snayke
- Posts: 3166
- Joined: Mon Aug 23, 2010 6:45 am
- Location: Nova Scotia, Canada
- Contact:
Re: Why was JPEG encoding/GIF decoding removed?
LGPL is "fine" (but still not ideal) on most platforms because we can just ship the dynamic library with LÖVE (or use one provided by the OS or installed by the user) and there will be no licensing issues.Someguynamedpie wrote:On the subject of licenses, yall are aware that most openal implementations use LGPL right
- Someguynamedpie
- Citizen
- Posts: 71
- Joined: Wed Mar 31, 2010 10:59 pm
Re: Why was JPEG encoding/GIF decoding removed?
Very used to auto-merging of a forum I frequent, apologies.bartbes wrote:Please don't double-post. And yes, we are aware. But whilst ffmpeg itself is LGPL, many of the libraries it uses are GPL, and/or patent-encumbered. Not just that, the specific interpretation of the LGPL they promote is also annoying. Basically, a pain to distribute in binary form.
And dear god do not include FFMPEG it is very massive
- Positive07
- Party member
- Posts: 1014
- Joined: Sun Aug 12, 2012 4:34 pm
- Location: Argentina
Re: Why was JPEG encoding/GIF decoding removed?
You can write a libvlc wrapper for LÖVE but you can't write a GIF decoding algorithm?
Also you pointed that GIF is somehow better to APNG, LÖVE supports neither!, This is because supporting animations means that they would be tied to the update loop somehow, and that is why it was so difficult to incorporate LÖVE video, and also well because it is bloat to most simple projects.
JPEG encoding is simply stupid, there is no reason whatsoever to have it, you pointed out that it is useful for pictures, of course it is, because cameras are not that good and the loss of image quality is not noticeable in JPEG pictures. But games are not made of pictures so if you are actually encoding an image from LÖVE I can guarantee that having a lossy compression has no meaning and a lossless compression is way better. Also PNG is not that big! Your users won't care that much, and if they do then they will recompress all images.
If you don't like any of the above, write your own library! FFI, Lua or C/C++ will do!! That is the best part of this
LÖVE tries to be bloated as little as it can, it tries to ship what is needed for MOST projects and doesn't try to cover ALL use cases. Why? Well because if a developer has an specific use case and LÖVE doesn't cover then there may be another tool that does, or maybe you can easily create a library to do that!
If you need animations then probably GIF is not what you will need anyway, use Anim8 or a similar library.
If you want video then GIF probably isn't what you want, use love.video.
If you want to encode images then JPEG is not what you want because of it lossy factor, use PNG encoding instead which is great for MOST use cases.
Also libtheora is Open Source and heavily supported!! And is not a bad format, it is used all over the place, and does the job most of the time.
OpenAL is LGPL and that is why it is shipped as a separate DLL with no modifications to it's source code
libvlc is huge, LÖVE tries to be as little as it can, because as you said games are already big enough so keeping the framework little is best. Simple games will be lightweight and HUGE games will be huge because of the content and not because of the framework
If you don't like LÖVE, search for another tool, you may not be using the right one. If you don't like the politics of LÖVE go and write your own framework, bloated as hell with whatever you want. If you want to add features to LÖVE you can always fork it and work on whatever feature you may need. Or you can simply write a library to support whatever you want in LÖVE!
Also you pointed that GIF is somehow better to APNG, LÖVE supports neither!, This is because supporting animations means that they would be tied to the update loop somehow, and that is why it was so difficult to incorporate LÖVE video, and also well because it is bloat to most simple projects.
JPEG encoding is simply stupid, there is no reason whatsoever to have it, you pointed out that it is useful for pictures, of course it is, because cameras are not that good and the loss of image quality is not noticeable in JPEG pictures. But games are not made of pictures so if you are actually encoding an image from LÖVE I can guarantee that having a lossy compression has no meaning and a lossless compression is way better. Also PNG is not that big! Your users won't care that much, and if they do then they will recompress all images.
If you don't like any of the above, write your own library! FFI, Lua or C/C++ will do!! That is the best part of this
LÖVE tries to be bloated as little as it can, it tries to ship what is needed for MOST projects and doesn't try to cover ALL use cases. Why? Well because if a developer has an specific use case and LÖVE doesn't cover then there may be another tool that does, or maybe you can easily create a library to do that!
If you need animations then probably GIF is not what you will need anyway, use Anim8 or a similar library.
If you want video then GIF probably isn't what you want, use love.video.
If you want to encode images then JPEG is not what you want because of it lossy factor, use PNG encoding instead which is great for MOST use cases.
Also libtheora is Open Source and heavily supported!! And is not a bad format, it is used all over the place, and does the job most of the time.
OpenAL is LGPL and that is why it is shipped as a separate DLL with no modifications to it's source code
libvlc is huge, LÖVE tries to be as little as it can, because as you said games are already big enough so keeping the framework little is best. Simple games will be lightweight and HUGE games will be huge because of the content and not because of the framework
If you don't like LÖVE, search for another tool, you may not be using the right one. If you don't like the politics of LÖVE go and write your own framework, bloated as hell with whatever you want. If you want to add features to LÖVE you can always fork it and work on whatever feature you may need. Or you can simply write a library to support whatever you want in LÖVE!
for i, person in ipairs(everybody) do
[tab]if not person.obey then person:setObey(true) end
end
love.system.openURL(github.com/pablomayobre)
[tab]if not person.obey then person:setObey(true) end
end
love.system.openURL(github.com/pablomayobre)
- Someguynamedpie
- Citizen
- Posts: 71
- Joined: Wed Mar 31, 2010 10:59 pm
Re: Why was JPEG encoding/GIF decoding removed?
Did you miss the posts I/everyone else made? And JPEGs are great for photographs because of how efficient JPEGs are with photographs as opposed to other formats that are lossless. I don't care about filesize, and JPEG decoding is still supported so your primary point is mute anyway, which can be useful if a game provides a photobook. As I said (repeatedly) in the thread, the GIFs I used aren't animated, they're downloaded from the web and are single frame. I also said I was going to make a pure-Lua decoder, and additionally said why FFI was infeasible. I never said that theora was a bad format, nor did I suggest embedding libvlc, and I already gave a reason to not fork LOVE (My personal game engine runs on android/ios/windows/etc so it doesn't bother me much anyway).
The primary downside to using FFI in Love is you have to extract the binaries and it can be difficult to do that properly but isn't impossible, and you have to compile binaries for all of the platforms you intend to support.
The primary downside to using FFI in Love is you have to extract the binaries and it can be difficult to do that properly but isn't impossible, and you have to compile binaries for all of the platforms you intend to support.
Re: Why was JPEG encoding/GIF decoding removed?
For one of the uses of FFI, that's true, but there are more. You can also interface with pre-existing libraries, and you can also use FFI to speed up memory management or access to some structures.Someguynamedpie wrote:The primary downside to using FFI in Love is you have to extract the binaries and it can be difficult to do that properly but isn't impossible, and you have to compile binaries for all of the platforms you intend to support.
I've been considering making an FFI-based pure-luajit library for GIF decoding, after reading this thread. The LZW decoder is not that difficult. An encoder is harder to get right. I'll see if I have time in the next weeks, but I don't promise anything.
- Positive07
- Party member
- Posts: 1014
- Joined: Sun Aug 12, 2012 4:34 pm
- Location: Argentina
Re: Why was JPEG encoding/GIF decoding removed?
Are you gonna encode photographs? Because if you just need to encode screenshots from your game then PNG is better suited. If you are gonna encode photogaphs, where did you get them from in the first place? JPEG's?Someguynamedpie wrote:Did you miss the posts I/everyone else made? And JPEGs are great for photographs because of how efficient JPEGs are with photographs as opposed to other formats that are lossless. I don't care about filesize, and JPEG decoding is still supported so your primary point is mute anyway which can be useful if a game provides a photobook.
JPEG decoding is supported, this is so as you said you can make a photobook or similar, I find no reason why you would encode this photos back though when they are already in the format you want.
We are talking about encoding here
And when I said that I totally meant in a game engine, so don't take it out of context, I think it's a great format for photographs as you said, but not that great for screenshots or game assets. That is why JPEG encoding as a part of LÖVE is pointless.Positive07 wrote:JPEG encoding is simply stupid, ...
Fine with me!Someguynamedpie wrote:As I said (repeatedly) in the thread, the GIFs I used aren't animated, they're downloaded from the web and are single frame. I also said I was going to make a pure-Lua decoder, and additionally said why FFI was infeasible.
Someguynamedpie wrote:I never said that theora was a bad format, nor did I suggest embedding libvlc
Someguynamedpie wrote:Psh, love.video only supports theora, libvlc supports literally everything (cough including DVDs)
Fine then, don't complain that much about LÖVE, it is this way and won't change unless it's needed, and you haven't proven a point about why this features you are asking for are actually needed in this game framework. And if you have a personal game engine you like better than LÖVE just go and use that! I'm sure you would be happier if you didn't have to complain about the lack of JPEG encoding support in LÖVESomeguynamedpie wrote:I already gave a reason to not fork LOVE (My personal game engine runs on android/ios/windows/etc so it doesn't bother me much anyway).
I agree to this, yet that isn't that hard eitherSomeguynamedpie wrote:The primary downside to using FFI in Love is you have to extract the binaries and it can be difficult to do that properly but isn't impossible, and you have to compile binaries for all of the platforms you intend to support.
for i, person in ipairs(everybody) do
[tab]if not person.obey then person:setObey(true) end
end
love.system.openURL(github.com/pablomayobre)
[tab]if not person.obey then person:setObey(true) end
end
love.system.openURL(github.com/pablomayobre)
- Someguynamedpie
- Citizen
- Posts: 71
- Joined: Wed Mar 31, 2010 10:59 pm
Re: Why was JPEG encoding/GIF decoding removed?
I actually am using FFI types to aid in decoding.pgimeno wrote:For one of the uses of FFI, that's true, but there are more. You can also interface with pre-existing libraries, and you can also use FFI to speed up memory management or access to some structures.Someguynamedpie wrote:The primary downside to using FFI in Love is you have to extract the binaries and it can be difficult to do that properly but isn't impossible, and you have to compile binaries for all of the platforms you intend to support.
I've been considering making an FFI-based pure-luajit library for GIF decoding, after reading this thread. The LZW decoder is not that difficult. An encoder is harder to get right. I'll see if I have time in the next weeks, but I don't promise anything.
- Someguynamedpie
- Citizen
- Posts: 71
- Joined: Wed Mar 31, 2010 10:59 pm
Re: Why was JPEG encoding/GIF decoding removed?
..you're missing the point. I retracted my need for encoding anywayPositive07 wrote:Are you gonna encode photographs? Because if you just need to encode screenshots from your game then PNG is better suited. If you are gonna encode photogaphs, where did you get them from in the first place? JPEG's?Someguynamedpie wrote:Did you miss the posts I/everyone else made? And JPEGs are great for photographs because of how efficient JPEGs are with photographs as opposed to other formats that are lossless. I don't care about filesize, and JPEG decoding is still supported so your primary point is mute anyway which can be useful if a game provides a photobook.
I understand that but I thought you were dismissing jpegs entirely.JPEG decoding is supported, this is so as you said you can make a photobook or similar, I find no reason why you would encode this photos back though when they are already in the format you want.
We are talking about encoding herePositive07 wrote:JPEG encoding is simply stupid, ...
And when I said that I totally meant in a game engine, so don't take it out of context, I think it's a great format for photographs as you said, but not that great for screenshots or game assets. That is why JPEG encoding as a part of LÖVE is pointless.
What exactly is wrong about critiquing a library or piece of software? What is wrong with using LOVE occasionally? Am I banned from using LOVE because I have my own game engine?Fine with me!Someguynamedpie wrote:As I said (repeatedly) in the thread, the GIFs I used aren't animated, they're downloaded from the web and are single frame. I also said I was going to make a pure-Lua decoder, and additionally said why FFI was infeasible.
Someguynamedpie wrote:I never said that theora was a bad format, nor did I suggest embedding libvlcSomeguynamedpie wrote:Psh, love.video only supports theora, libvlc supports literally everything (cough including DVDs)Fine then, don't complain that much about LÖVE, it is this way and won't change unless it's needed, and you haven't proven a point about why this features you are asking for are actually needed in this game framework. And if you have a personal game engine you like better than LÖVE just go and use that! I'm sure you would be happier if you didn't have to complain about the lack of JPEG encoding support in LÖVESomeguynamedpie wrote:I already gave a reason to not fork LOVE (My personal game engine runs on android/ios/windows/etc so it doesn't bother me much anyway).
I agree to this, yet that isn't that hard either[/quote]Someguynamedpie wrote:The primary downside to using FFI in Love is you have to extract the binaries and it can be difficult to do that properly but isn't impossible, and you have to compile binaries for all of the platforms you intend to support.
Its -very- hard to get a proper cross compiler setup and FFI isn't even enabled on iOS compiles of LuaJIT.
Who is online
Users browsing this forum: Bing [Bot], GoldenTCat, Google [Bot] and 4 guests