[FFmpeg-devel] [PATCH] dxva2: bump maximum number of slieces for mpeg2

Hendrik Leppkes h.leppkes at gmail.com
Mon Jan 27 09:23:47 CET 2014


On Mon, Jan 27, 2014 at 8:22 AM, Rainer Hochecker <fernetmenta at online.de> wrote:
> ---
>  libavcodec/dxva2_mpeg2.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c
> index 1827dd5..e2f6b70 100644
> --- a/libavcodec/dxva2_mpeg2.c
> +++ b/libavcodec/dxva2_mpeg2.c
> @@ -22,7 +22,7 @@
>
>  #include "dxva2_internal.h"
>
> -#define MAX_SLICES (SLICE_MAX_START_CODE - SLICE_MIN_START_CODE + 1)
> +#define MAX_SLICES 1024
>  struct dxva2_picture_context {
>      DXVA_PictureParameters pp;
>      DXVA_QmatrixData       qm;
> --
> 1.8.3.2
>

Note that this value was empirically chosen, and there is no "spec" to
dictate the value.
The old MAX_SLICES was OK for SD content, but with HD and UHD content
files will have more slices, and so far 1024 was a safe limit with
plenty headroom to work on every file found.

Another solution would be to dynamically allocate the slice array,
however since HWAccels don't have a global state to store the
information about the number of slices in, it would mean every frame
has to re-allocate the slice array hundreds of times, which is not
ideal.
The struct is  small enough to not worry about a few KB of memory
usage by the fixed-size array.

- Hendrik


More information about the ffmpeg-devel mailing list