Crash on (invalid) bitstream with TX_PARTITION_[HV][45] for 8x8, 8x16 and 16x8 blocks
For luma blocks, read_tx_partition() allows split coding if allow_horz ((tx_size_high[max_tx_size] >> 1) >= 4) or allow_vert ((tx_size_wide[max_tx_size] >> 1) >= 4). If split, the function allows 7 split types (h, v, split, h4, v4, h5, v5) if allow_horz && allow_vert.
What should a decoder do if [hv][45] is signaled for 8x8 blocks, or if h[45] is signaled for 16x8 blocks, or if v[45] is signaled for 8x16 blocks? I don't see any definitions for 2xN or Nx2 transforms. Should we error out? (If so, where does the decoder does this?) I only see use_tx_partition() enforcing strict size checks, but that's only used in the encoder.
Would it make sense to reduce symbol count for partition_type for affected block sizes? Or is it too late for that?