AVC feature TODO
----------------

(list is in no particular order)


1) Add levels of parsing complexity to AVCEssenceParser to avoid unnecessary work
   for some applications, e.g. AVC-Intra

2) Use the parsed NAL units from AVCEssenceParser::ParseFrameSize in
   AVCEssenceParser::ParseFrameInfo, avoiding doing it twice

3) Support separate field encoded bitstreams where 2 (or 1 for single fields)
   need to combined together into a single frame

4) Support non-I / IDR based "key frame encodings", e.g. intra-refresh

5) Extract field order information for Field Dominance descriptor property.
   Could possibly IsBottomField be used for field encoded, but what about frame
   encoded for example

6) Extract references and is-referenced information for the index entry flags and
   to reduce the key frame offset when a B-frame only uses backward prediction
   before the I-frame. Also helps determine whether the GOP is open or closed.

7) Warn / workaround / do nothing when the frame_num jumps or missing frames are
   detected

8) Check whether slices that refer to different SPS/PPS is possible and needs to
   be supported. The effects whether there are multiple active SPS/PPS in a frame

9) Rename AVC/AVCI classes to help readability, e.g. call AVCI RP2027

10) Identify more bitstream fields that have a defined min/max, avoiding use of
   generic int64_t/uint64_t and type casts

11) Rename/add new color primary, coding equation and transfer characteristic
   labels to match the SMPTE metadata registry

12) Check whether some of the detailed AVC features need to be supported such as
   no_output_of_prior_pics_flag

13) Add regression tests for a wider range of AVC bitstream types

14) Analyse POC decoding / temporal offset extraction to see if it can be
   optimised and/or simplified

15) Set descriptor properties when starting the file to that they are valid and
   available to readers whilst the file is growing

16) Add option to strip trailing zeros / padding from the input bitstream

17) Check whether bitstreams that don't have a SPS/PPS for the first frame could
   or should be supported

18) Add option to set Frame Layout in descriptor if the coding parameters don't
   provide a conclusive answer. Check to see if a SEI message could provide an
   answer.

19) Add commandline options / writer parameters to set the signal standard or
   something equivalent to set descriptor properties that cannot or only sometimes
   be extracted from the AVC bitstream parameters

20) Add commandline options / writer parameters to set descriptor properties that
   cannnot or only sometimes be extracted from the AVC bitstream parameters

21) Try work out which HRD bitrate is intended to go into the AVC descriptor

22) Decide whether to calculate the average bit rate for the AVC descriptor

23) Check whether Display/StoredF2Offset information can be extracted from the
   AVC bitstream

24) Set BlackRefLevel, WhiteRefLevel and ColorRange descriptor properties. Use
   the full range flag and work out when or if to ignore it because of known
   issues.

25) Add option to treat RP2027 / AVC-Intra as regular AVC

26) Add option to use the AVC sub-descriptor for RP2027

27) Merge the AVCI and AVC descriptor and writer helpers where possible

28) Make use of SEI messages if they provide missing information

29) Extend bmxparse with more AVC properties if useful
