This repository has been archived by the owner on Apr 23, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO-FEATURES.txt
172 lines (110 loc) · 6.29 KB
/
TODO-FEATURES.txt
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
bmx TODO Features
-----------------
(list is in no particular order)
4. add support for edit-while-record Avid MXF flavour
7. add essence group detection (e.g. DV, MPEG-2, MJPEG, VC3) to provide more
info than "unknown essence". Supports apps where specific essence type
info is not required, e.g. FFmpeg decoder
9. read and display material package timecode in avidmxfinfo
10. add general support for setting track id and numbers for material packages.
Setting output track numbers is currently supported, but not setting track ids.
11. add general support for setting track id and numbers for physical source
packages. Particulary useful if need to match the ids from an existing source
package when supporting Avid source file relinking
13. implement more complete h264 / AVCI essence parser in bmx library
15. might be worth raising the gcc warning level to catch potential errors and
catch warnings that Visual C++ would emit
16. maybe better to drop the autoconf test framework and instead go with
a native test script. This would also allow easier implementation of specialised
tests
17. implement setting track number in the Wave writer
19. add option to disable audio inputs, or more generally, add ability to map
audio inputs to audio outputs
21. investigate I/O performance for frame wrapped essence reading. Might be
better to read a content package in a single read
22. investigate performance improvements resulting from avoiding copies and
using data buffer array structures
23. investigate support for non-zero start position in Avid clips, e.g. this
was found in Avid generated files when creating a sub-clip of an XDCAM clip.
24. cleanup commandline usage texts. Limit commandline usage widths to 80
chars.
25. investigate improving / cleaning-up libMXF file structure, particularly to
help writing wrappers
27. factorize common code in bmxtranswrap and raw2bmx
29. add requested num samples for Frame class so that client knows that
there are less samples than requested without having to remember this elsewhere
30. reduce the number of regression tests if some are redundant / equivalent to
other tests
31. add Avid uncompressed 10-bit / v210 / 16-bit YUV / v216 conversion
functions
32. optimize index table creation (e.g. OP1AIndexTable) to avoid realloc and
use a linked list for example
33. add option to set the start timecode in the OP-1A file source package. The
material package start timecode could default to the file source package
timecode
34. add display dimension parsing to MPEG-2 video essence parser
35. add general purpose GetTrack/ClipInfo methods and data structures similar
to MXFTrackInfo when writing a file
36. support sound quantization other than 16 and 24-bit in apps
37. optimize searches in MXF essence reading by using STL algorithms for
example
38. implement support for reading and storing dark metadata
39. add option to write audio at video frame rate in clip wrapped file
40. add support for XDCAM overcrank files
41. add WAVE output option to mxf2raw
42. add WAVE input option to bmxtranswrap
43. add metadata-only mode to MXFReader and mxf2raw
44. allow partition selection in MXFReader and mxf2raw
47. add support for an OP-1A flavour that is Avid AMA link compatible
48. create common ClipReader class and restructure MXFReader to subclass it
and create a raw essence clip reader.
49. combine bmxtranswrap and raw2bmx into one utility that uses the ClipReader
class
50. change ClipWriter from a wrapper to a interface super class and sub classes.
This will allow other ClipWriters to be added without having to modify the
ClipWriter class
51. add support for ClipWriter and ClipReader plugins
52. create a generalised data buffer structure that supports fragmented byte
arrays. Add methods to get and set data and avoid requiring access to a
non-fragmented byte array. This will avoid several memory copies which is
useful in applications where the performance is CPU bound rather than disk
bound
53. Support clip wrapped WAVE PCM files with no index table and varying number
of samples per edit unit
54. Support clip wrapped files with no index table and varying edit units size.
Use available essence parsers
55. Support sparse index tables
56. Support incomplete / growing clip wrapped essence files
57. Support incomplete / growing last segment in clip sequence reader
58. Investigate different ways to set read limits and to supports tracks with
different durations / precharge / rollout / origins. Maybe default to all
available essence data when start and duration not specified.
59. Support --start and --dur in apps when input file is incomplete / growing
61. Simplify test shell scripts
62. Add support for metadata to package metadata set in RDD9 writer, e.g. UMID
and essence marks
63. Add more built-in Panasonic AVCI SPS+PPS variations and maybe create them
using code rather than including chunks of bytes in the library
64. Improve logic around selecting sequence and group reading
66. Add options to disable some or all essence tracks
67. Support for separate metadata tracks containing metadata extracted from
the essence container, e.g. System Item UMID, timecodes, timestamps, marks.
Possibly only enable this feature when requested.
68. Support setting the output audio layout, e.g. single channel per track, all
channels in 1 track, 2 channels per track.
69. Support selecting audio routing from input track/channel to output
track/channel and setting mute/invalid output channels
71. Support incomplete files piped through stdin. The MXF reader tries to seek
back when it reaches the (incomplete) end and this throws an exception for
stdin. It should fail gracefully instead.
72. Support stdout outputs in raw2bmx and bmxtranswrap
73. Set errno in MXF file I/O structure functions. This would allow the exact
error to be surfaced higher up the chain (e.g. in exception messages) and
avoid having to log the exact cause in the file I/O layer or losing the
exact cause.
74. Add KLV essence parser to raw essence reader to support variable size ANC
data wrapped in KLV in raw2bmx
75. Allow that same file to be concatenated, i.e. ignore grouping based on
package identifiers and add option to mxf2raw and bmxtranswrap
76. Use variadic macros for logging
78. Add ANC/VBI support to AS-02 and Avid OP-Atom