summaryrefslogtreecommitdiff
path: root/libswscale
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-05-14 01:31:18 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-05-14 01:32:11 +0200
commitc3417ed7fd9239b349921ea15228682586daba88 (patch)
tree17b4f88cc05a105f7c708d5992e8ac1c2f436cf5 /libswscale
parentc683e6aa2c698a5b347d85cf662984c3776ec713 (diff)
swscale/utils: Add check that ensures that the hardcoded struct offsets are valid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswscale')
-rw-r--r--libswscale/swscale_internal.h1
-rw-r--r--libswscale/utils.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index f40f915fd8..a258f31bb6 100644
--- a/libswscale/swscale_internal.h
+++ b/libswscale/swscale_internal.h
@@ -429,6 +429,7 @@ typedef struct SwsContext {
#define UV_OFF_BYTE "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+56"
#define DITHER16 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+64"
#define DITHER32 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+80"
+#define DITHER32_INT (11*8+4*4*MAX_FILTER_SIZE*3+80) // value equal to above, used for checking that the struct hasnt been changed by mistake
DECLARE_ALIGNED(8, uint64_t, redDither);
DECLARE_ALIGNED(8, uint64_t, greenDither);
diff --git a/libswscale/utils.c b/libswscale/utils.c
index eda1164c52..29c57119e7 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -1107,6 +1107,8 @@ SwsContext *sws_alloc_context(void)
{
SwsContext *c = av_mallocz(sizeof(SwsContext));
+ av_assert0(offsetof(SwsContext, redDither) + DITHER32_INT == offsetof(SwsContext, dither32));
+
if (c) {
c->av_class = &sws_context_class;
av_opt_set_defaults(c);