Browse Source

swscale/utils: Add check that ensures that the hardcoded struct offsets are valid

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.3
Michael Niedermayer 11 years ago
parent
commit
c3417ed7fd
2 changed files with 3 additions and 0 deletions
  1. +1
    -0
      libswscale/swscale_internal.h
  2. +2
    -0
      libswscale/utils.c

+ 1
- 0
libswscale/swscale_internal.h View File

@@ -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);


+ 2
- 0
libswscale/utils.c View File

@@ -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);


Loading…
Cancel
Save