summaryrefslogtreecommitdiff
path: root/doc/design
blob: ee1706734eda3d47713b7d66540aaccead10179d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

Read an existing DCP, adjust it, write it back out again, preserving things we didn't adjust;
perhaps being variably strict and pointing out errors.
Read multiple DCPs and pull bits out
Create a new DCP without having to remember to fill in every detail

Structures & their unique (important) components

-- CPL
"playlist"; entry points, durations of assets, frame rates, aspect ratios

-- PKL
Hashes, sizes

-- ASSETMAP
MXF filenames (also CPL/PKL filenames)

-- VOLINDEX
Nothing (unless we support multiple volumes)

-- MXFs
actual data


Approaches

1.
Load a DCP -> we get some assets [each with hash, size, filename] and a CPL (pointing to assets via real pointer or ID)
CPL its own class; then we can do things like 
cpl = new CPL
cpl->add_asset (picture, ...)
DCP dcp (cpl);
dcp.write_xml ();

Can't see a drawback with this, and it's pretty much what is happening now.