vdpau: allow state tracker to report a lower number of macroblocks
NVIDIA hardware can process tall or wide videos, but not both at the same time (for some gens). This limit is provided in units of macroblocks. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Leo Liu <leo.liu@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10677>
This commit is contained in:
@@ -205,7 +205,11 @@ vlVdpDecoderQueryCapabilities(VdpDevice device, VdpDecoderProfile profile,
|
||||
PIPE_VIDEO_CAP_MAX_HEIGHT);
|
||||
*max_level = pscreen->get_video_param(pscreen, p_profile, PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
|
||||
PIPE_VIDEO_CAP_MAX_LEVEL);
|
||||
*max_macroblocks = (*max_width/16)*(*max_height/16);
|
||||
*max_macroblocks = pscreen->get_video_param(pscreen, p_profile, PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
|
||||
PIPE_VIDEO_CAP_MAX_MACROBLOCKS);
|
||||
if (*max_macroblocks == 0) {
|
||||
*max_macroblocks = (*max_width/16)*(*max_height/16);
|
||||
}
|
||||
} else {
|
||||
*max_width = 0;
|
||||
*max_height = 0;
|
||||
|
@@ -88,7 +88,8 @@ enum pipe_video_cap
|
||||
PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE = 6,
|
||||
PIPE_VIDEO_CAP_SUPPORTS_INTERLACED = 7,
|
||||
PIPE_VIDEO_CAP_MAX_LEVEL = 8,
|
||||
PIPE_VIDEO_CAP_STACKED_FRAMES = 9
|
||||
PIPE_VIDEO_CAP_STACKED_FRAMES = 9,
|
||||
PIPE_VIDEO_CAP_MAX_MACROBLOCKS = 10,
|
||||
};
|
||||
|
||||
enum pipe_video_entrypoint
|
||||
|
Reference in New Issue
Block a user