[FFmpeg-cvslog] swscale/utils: Add check that ensures that the hardcoded struct offsets are valid

Michael Niedermayer git at videolan.org
Wed May 14 01:57:49 CEST 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed May 14 01:31:18 2014 +0200| [c3417ed7fd9239b349921ea15228682586daba88] | committer: Michael Niedermayer

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

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c3417ed7fd9239b349921ea15228682586daba88
---

 libswscale/swscale_internal.h |    1 +
 libswscale/utils.c            |    2 ++
 2 files changed, 3 insertions(+)

diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index f40f915..a258f31 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 eda1164..29c5711 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);



More information about the ffmpeg-cvslog mailing list