mirror of https://git.ffmpeg.org/ffmpeg.git
avutil/pixdesc: support for self-checking the descriptors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
1314f534e5
commit
20e99a9c10
|
@ -22,6 +22,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "avassert.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "pixfmt.h"
|
#include "pixfmt.h"
|
||||||
#include "pixdesc.h"
|
#include "pixdesc.h"
|
||||||
|
@ -1828,3 +1829,27 @@ int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt)
|
||||||
ret += planes[i];
|
ret += planes[i];
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ff_check_pixfmt_descriptors(void){
|
||||||
|
int i, j;
|
||||||
|
|
||||||
|
for (i=0; i<FF_ARRAY_ELEMS(av_pix_fmt_descriptors); i++) {
|
||||||
|
const AVPixFmtDescriptor *d = &av_pix_fmt_descriptors[i];
|
||||||
|
|
||||||
|
if (!d->name && !d->nb_components && !d->log2_chroma_w && !d->log2_chroma_h && !d->flags)
|
||||||
|
continue;
|
||||||
|
// av_log(NULL, AV_LOG_DEBUG, "Checking: %s\n", d->name);
|
||||||
|
av_assert0(d->log2_chroma_w <= 3);
|
||||||
|
av_assert0(d->log2_chroma_h <= 3);
|
||||||
|
av_assert0(d->nb_components <= 4);
|
||||||
|
av_assert0(d->name && d->name[0]);
|
||||||
|
av_assert0((d->nb_components==4 || d->nb_components==2) == !!(d->flags & PIX_FMT_ALPHA));
|
||||||
|
av_assert2(av_get_pix_fmt(d->name) == i);
|
||||||
|
|
||||||
|
for (j=0; j<FF_ARRAY_ELEMS(d->comp); j++) {
|
||||||
|
const AVComponentDescriptor *c = &d->comp[j];
|
||||||
|
if(j>=d->nb_components)
|
||||||
|
av_assert0(!c->plane && !c->step_minus1 && !c->offset_plus1 && !c->shift && !c->depth_minus1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -239,5 +239,6 @@ int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt,
|
||||||
*/
|
*/
|
||||||
int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt);
|
int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt);
|
||||||
|
|
||||||
|
void ff_check_pixfmt_descriptors(void);
|
||||||
|
|
||||||
#endif /* AVUTIL_PIXDESC_H */
|
#endif /* AVUTIL_PIXDESC_H */
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include "avutil.h"
|
#include "avutil.h"
|
||||||
#include "avassert.h"
|
#include "avassert.h"
|
||||||
#include "samplefmt.h"
|
#include "samplefmt.h"
|
||||||
|
#include "pixdesc.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
|
@ -40,6 +41,8 @@ unsigned avutil_version(void)
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ff_check_pixfmt_descriptors();
|
||||||
|
|
||||||
return LIBAVUTIL_VERSION_INT;
|
return LIBAVUTIL_VERSION_INT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue