BradLarson / GPUImage2

GPUImage 2 is a BSD-licensed Swift framework for GPU-accelerated video and image processing.
BSD 3-Clause "New" or "Revised" License
4.88k stars 611 forks source link

Upgrade to Swift 4 #212

Closed andrewcampoli closed 6 years ago

andrewcampoli commented 7 years ago

This PR upgrades to Swift4, resolving issues: #199 and #206.

andrewcampoli commented 6 years ago

@BradLarson I'm sure you're quite busy but can I get review on this? This framework rocks and I'm sure there are a lot of Swift 4 projects out there itching to use it!

EriFisher commented 6 years ago

The changes worked without any issues, so I think they should be accepted.

ShivaHuang commented 6 years ago

Actually, I haven't seen any PR accepted by @BradLarson. Maybe he like it a one-man work? For those who need a framework to use, I think a fork would be a good idea.

andrewcampoli commented 6 years ago

@ShivaHuang He has accepted a few PRs. I think #82 was the last to be accepted back in Oct, 2016. He mentioned in #82 that he had been busy and wasn't doing much iOS work at the time. I assume that's still the case.

BradLarson commented 6 years ago

I apologize for not reviewing this in a timely manner, but I have had very little time to maintain any of this lately. I've put a tremendous amount of time into this and the original GPUImage, but I'm not paid for any of this work, so it naturally falls lower on my list of priorities.

To @ShivaHuang, I do welcome contributions, as you can see by the many accepted pull requests in the Objective-C version of GPUImage. One thing I learned from those, however, is that I became personally responsible for the code those pull requests introduce. If there was a bug, memory leak, or incompatibility introduced by a pull request, I got blamed for it (sometimes in quite harsh terms in private emails). I've therefore been a little more reluctant to accept pull requests without a thorough review. At the least, people can use the code in the pull requests in their own local versions of the framework to deal with pressing issues, so it's good for this to be public.

Also, I had wanted to maintain backwards compatibility for as long as I could for people using older versions of Xcode, so I'd dragged my feet on updating this to Swift 4. I'll take a look at this and other pull requests sometime soon, because I'm working on making this compatible with Linux again.

andrewcampoli commented 6 years ago

@BradLarsen I’d just like to say thank you for putting so much work into writing this framework (and GPUImage). GPUImage2 has greatly improved my project, and undoubtedly countless others. I really appreciate you putting in the effort with no financial reward, and I totally understand that this can’t be your first priority.

ShivaHuang commented 6 years ago

First of all, I want to thank @BradLarson created such a great work, twice.

However, I think this the worst situation a OSS project could face. Such a great project but the main contributor has so few time to keep this project go on at a reasonable pace.

We know there are some bugs or lacking of some features, and we are willing to fix it or implement it by our own. And the most important is, we want to share these improvements to others. This is OSS. We contribute what we can do to the world.

So, for this project good, my suggestions as follows:

  1. Let some one join the maintenance of this project. Don't put all responsibility on @BradLarson. or
  2. Since this project is OSS, thank @BradLarson again, just fork it and keep this project more active.

I really hope every one won't need to collect patches for issues already solved from every where in PRs and issue posts anymore.

andrewcampoli commented 6 years ago

@SoundandStuff @ShivaHuang In the meantime, feel free to try out my fork which has the changes that have been proposed in this PR. I have deployed this in production and have had no issues, but use at your own risk. https://github.com/andrewcampoli/GPUImage2

arielelkin commented 6 years ago

I've integrated @andrewcampoli's changes for Swift 4 compatibility into a local podspec made by @m1entus: https://github.com/BradLarson/GPUImage2/issues/1#issuecomment-367414911

anonym24 commented 6 years ago

errors 'Camera' cannot be constructed because it has no accessible initializers 'MovieOutput' cannot be constructed because it has no accessible initializers

anonym24 commented 6 years ago

doesn't look like swift 4... screenshot at mar 02 13-00-28

andrewcampoli commented 6 years ago

@anonym24 I did not touch the sample projects, I only upgraded the framework. The warnings in the iOS framework are there because I needed to conditionally support iOS 8.

BradLarson commented 6 years ago

I'm very sorry this fell by the side for so long. I had very little time to work on this project over the last year. I took some time off this week to get caught up on this and other items.

I've also modernized the iOS and Mac sample applications.