Fix hang when running multiple encoders in same process

In scenarios where multiple encoders are executed in single process todays code may crash or hang if configurations differ in block geometries. This change removes svt_aom_blk_geom_mds and moves it into SequenceControlSet so this array is tied to specific encoder instance. Added tests for multiple encoders running on separate threads, on master they hang or crash, with this change tests pass correctly.

RTCD guards are minor safety, as pointers assignment should be atomic, but as it has no perf impact - adding these for safety. There are few other global tables which might need blocked handling, but I don't have test cases to exposure failures so far.

./SvtAv1ApiTests --gtest_filter="*MultiEncoderTest*"

Merge request reports

Loading