I’m a C++ (plus various assembly languages, DSP, etc.) developer with 30 some years of experience in graphics, audio, video products. Desktop and large embedded.
I’ve become sort of tired of tracking down new contracts, so I was considering writing some sort of standalone app in JUCE. If nothing else, it’s really interesting to see how someone else has dealt with the problem of multi-platform libraries for these types of products (a side note to Jules, a good job ignoring the haters. I know how hard it is to write these things and have to defend them).
What I was fishing for is ideas. My first thought it to build a music transcription program (ala Transcribe!) to give away. That seems a reasonable size as doing Premiere from scratch would involve too much typing to be practical. Another possibility might be some sort of adjunct library consisting of video-oriented components (file parsers, SIMD color space converters, etc.).
In any case, I’d really appreciate any more thoughts. Basically, things I can write in a reasonable amount of time that someone might actually need.
I don’t think asking other developers for ideas is going to help you – you’d be far better off going to sites like KVR or Gearslutz where potential end-users would be.
JUCE definitely needs more robust image processing algorithms, i.e. proper blending.
Video support in general is also pretty poor currently, i.e. there’s currently no truly unified interface for accessing and processing video objects in a cross-platform way.
Perhaps those can give you some direction!
I’ve got lots of things that need programming … Bloody hundreds of things… Can’t type them in quick enough!
You know, that’s a good idea. I suppose that the point in posting here was because everyone is more familiar in what kinds of projects/apps are best suited to this set of libraries.
Since I’ve written all this stuff before, I admit that I’m sort of attracted to writing a video library. You can argue that that would include glue for Adobe plug-ins etc.
There’s quite a few things that make pretty good basic features for a library I think. Down in the guts, you don’t often run into things like proper timecode libraries, good handling for CC, image conversion/processing for YCbCr, handling of fast disk I/O for file parsing, serial control of external devices. etc. that are publicly available. I’ll think on it.
…also…thanks for the responses.
that sounds very interesting. I have a half-ready project getting ffmpeg into juce:
If you are interested to help me with that, please PM me. We have even some budget reserved to make it stable…
Looking forward to hear from you!
Thanks. I’ll drop a line.
ffmpeg is definitely a mixed bag. I couldn’t tell you if there are copyright issues with it, but it’s definitely a big ball of stuff. As I remember, things like libquicktime don’t support all the atoms plus has nasty performance bottlenecks, I’d be surprised if it deals properly with (so-called) ‘sequential’ files (ie. a bunch of png/bmp/cin/dpx + let’s say, a .wav), uncached reads and writes (which get super important in the higher resolution uncompressed streams), etc.
But the price is definitely right.
+100 on @daniel’s project. If you can figure out how to pass in juce::Image’s and timestamps to a new video file and spit out an mp4, i’ll be forever grateful!!
I’m seriously considering writing a full-blown video library. I’d have to look at the juce::Image class, I expect I’d have to descend from that with something else, since I’d be surprised if it had aspect ratio, the umpteen fourcc’s you really need, frame number, interlace, line pitch, bottom to top switch, timecode, ability to store compressed images, byte alignment for SSE or non-cached disk access, ancillary data, etc. etc.