libadm icon indicating copy to clipboard operation
libadm copied to clipboard

block duration assignment should set rtimes

Open tomjnixon opened this issue 2 years ago • 1 comments

block duration assignment sets duration attributes here:

ttps://github.com/ebu/libadm/blob/9955fbd2941756140b3e4a47c1fdcef7d711e162/src/utilities/block_duration_assignment.cpp#L83C1-L88

If the block has a default rtime, it will still have a duration set, which is invalid.

Thus just needs block.set(block.template get<Rtime>()); added to ensure that rtime is set whenever duration is, and some tests.

Spotted by @davemar-bbc.

tomjnixon avatar Nov 21 '23 10:11 tomjnixon

This code should also probably fix interpolationLengths, which can also be affected by rounding, an may be broken if the duration is reduced.

This should probably be a separate function, as the name (updateBlockFormatDurations) is quite explicit about what it does.

the equivalent EAR code is:

https://github.com/ebu/ebu_adm_renderer/blob/master/ear/fileio/adm/timing_fixes.py

... but because this doesn't issue warnings and doesn't account for audioObject times, it's a bit simpler.

tomjnixon avatar Feb 22 '24 10:02 tomjnixon