BLUEPRINT: Define a Core Design
Open, HighPublic


Design a core design breakdown and workflow that outlines several context sensitive processes in order to define what Open Cine should address, and how it should be distributed across Open Cine's applications.

Loosely, in a fully high quality offline post production pipeline, we can see several discrete phases that require very specific needs regarding formats and outputs, with a focus on making the camera output suitable for ingestion and manipulation at the various phases of a post production pipeline. In particular:

  • Archival Tool. SHA / MD5 checked based rsync tool for archiving data off of drives.
  • Temporary Grading Tool. On-set one-light grading of footage. Considerations include input needs such as SDI, and output needs. Realtime visualization of temporary one-light / temporary grades for display and adjustment. Store grades in industry standardized formats and schemas such as CDL.
  • Logging Tool. Post shooting evaluation and manipulation of media. This includes but is not limited to the ability to log useful notes and sorting, trim and slice shots from series or excess footage, apply temporary grades for editorial output, sync sound for editorial, and generate editorial proxies. Output formats might include ProRes or DNxHD encoded material in MOV or AVI wrappers, along with a metadata payload. Should be designed for interchange from the onset, for communication across platforms and individuals.
  • High Quality Rendering Tool. Take input and out points from various EDL formats and generate highest quality 32 bit float or like EXRs, or high quality DPX files for ingestion or intra-pipeline post production work.
troy_s created this task.Jul 6 2015, 3:44 AM
troy_s updated the task description. (Show Details)
troy_s raised the priority of this task from to High.
troy_s added a project: Open Cine.
troy_s moved this task to Design on the Open Cine board.
troy_s updated the task description. (Show Details)
troy_s added a subscriber: troy_s.
troy_s updated the task description. (Show Details)Jul 6 2015, 3:47 AM

So, I'm a big visual learner and I'd like to understand the code, dependencies, and intercommunication in this software. On that note, I sketched the above dependency drawing illustrating how I think the pieces fit together from the information scattered about.

So, from the inside out, we have in green the core libraries that make up OCcore. These are then wrapped in an API. The API is accessed by OCui and OCLauncher which both depend Qt as well. Then Open Cine is the collection of all of these things within the interface.

Am I correct? As far as dependencies and names go, what did I miss? What did I get wrong?

I'd like to spend some time creating documentation for this project before I commit myself to code.

Also, has any thought been put in to auto-documentation (like Pheonix)?

Hi. OC hierarchy consists of (currently) 2 main shared libs OCcore and OCui. OCBackup, OCLauncher and ProcessingTest are building upon this libs. Idea is to have a suite of tools, which have same look and feel (provided by OCui).

OCcore contains all the things for image/data processing and general platform-dependent things, so i would call it the API. Also possible scripting feature would access this lib, to set or get properties and so on. CMake is also used to control that separation (Windows and Linux, maybe MacOS later), so we can avoid to do many if/else in code which is unnecessary (e.g. see DriveManager).

OCui provides general framework to build up OC applications. It has a general theme, so the things look the same for every app (can be exchangeable later). Partially QML is used, as it's simple to provide nice controls, without need to code too much.

Feel free to ask, if anything is not clear or you need further support. I will create a diagram of OC modules and their dependencies (similar to yours) and put it on the OC page in apertus° Wiki, to visualize the structure.

Which wiki are you referring to?

To tihs one ->

OC page ->

Have still to create the diagram, but my work and other stuff came in between.

Original SVG file: