bmx icon indicating copy to clipboard operation
bmx copied to clipboard

RDD9 partition segmentation and index size not compliant with RDD 9:2013

Open ajhoddinott opened this issue 2 years ago • 1 comments

The calculation at RDD9File.cpp:112 mPartitionInterval = 10 * frame_rate.numerator / frame_rate.denominator; does not comply with RDD 9:2013, which says (Annex B, B.6 Table B.2) the partition length should be exactly 10.01s or 9.6s depending on the frame rate (23.98p/25p/50i: 240 frames, 29.97p/59.94i: 300 frames, 50p: 480 frames, 59.94p: 600 frames).

And the test at RDD9File.cpp:769, mPartitionFrameCount + MAX_GOP_SIZE >= mPartitionInterval means the partitions are all 15 frames shorter than expected.

Under RDD 9-2009, these would both be compliant, since it specifies “up to approximately 10 seconds” (Table 1) and “up to 10 seconds” (8.2).

ajhoddinott avatar Apr 24 '23 05:04 ajhoddinott

Thanks for the report. I've created https://github.com/bbc/bmx/pull/12 which should ensure that the values match the "Constraints of the Conformant Implementation" appendix of the spec.

philipnbbc avatar Apr 24 '23 13:04 philipnbbc