Closed sivileri closed 1 year ago
one value is enough? 16 bit for each?
@XinfengZhang thanks for taking a look. We've discussed this previously with @dvrogozh . It may be easier for the user to have separate values instead of having to deal with bit manipulation, there are other caps like VASurfaceAttribMaxWidth
and VASurfaceAttribMaxHeight
that are separate (but could be combined as low/high 16 bit too with [0..65536] each) or VAConfigAttribEncMaxRefFrames
that is combined for L0/L1 in low/hight 16 bits, so not clear on any specific style/trend for these.
Do you think keeping the separate values would be okay for VAConfigAttribEncMaxTileRows
and VAConfigAttribEncMaxTileCols
in this PR and the related https://github.com/intel/libva-utils/pull/344?
These attributes are not directly involved in bitstream packing. In such cases I think it's better to favor usability over compactness.
@XinfengZhang kindly pinging on this MR :)
Currently there is no way of exposing the driver tile_rows and tile_cols limitations for encoding with tiles. For codecs like AV1 there is a cap specifying the max number of tiles, but without differentiating cols/rows.
Different hardware may have restrictions which may need to be taken into account. More specifically, D3D12 encode exposes the maximum rows/cols and adding VAConfigAttribEncMaxTileRows/Cols allows for mapping that information to the VAOn12 driver.
Related vainfo change: https://github.com/intel/libva-utils/pull/344
@dvrogozh @XinfengZhang