summaryrefslogtreecommitdiff
path: root/libavcore/imgutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcore/imgutils.c')
-rw-r--r--libavcore/imgutils.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/libavcore/imgutils.c b/libavcore/imgutils.c
index ebaeff16c5..2131f0ac14 100644
--- a/libavcore/imgutils.c
+++ b/libavcore/imgutils.c
@@ -24,6 +24,24 @@
#include "imgutils.h"
#include "libavutil/pixdesc.h"
+void av_fill_image_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4],
+ const AVPixFmtDescriptor *pixdesc)
+{
+ int i;
+ memset(max_pixsteps, 0, 4*sizeof(max_pixsteps[0]));
+ if (max_pixstep_comps)
+ memset(max_pixstep_comps, 0, 4*sizeof(max_pixstep_comps[0]));
+
+ for (i = 0; i < 4; i++) {
+ const AVComponentDescriptor *comp = &(pixdesc->comp[i]);
+ if ((comp->step_minus1+1) > max_pixsteps[comp->plane]) {
+ max_pixsteps[comp->plane] = comp->step_minus1+1;
+ if (max_pixstep_comps)
+ max_pixstep_comps[comp->plane] = i;
+ }
+ }
+}
+
int av_get_image_linesize(enum PixelFormat pix_fmt, int width, int plane)
{
const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[pix_fmt];