diff options
author | rcombs <rcombs@rcombs.me> | 2021-12-23 15:12:44 -0600 |
---|---|---|
committer | rcombs <rcombs@rcombs.me> | 2022-01-04 20:01:10 -0600 |
commit | b059ded2a91064ee9997dba042bace49c2f65fa6 (patch) | |
tree | 87ef0a8367c36d7d6b49430676ae491314b22b03 /libavfilter/drawutils.c | |
parent | 2641f7338df35340f8f5d4c5d32fe0a4ae0ce5b5 (diff) | |
download | ffmpeg-b059ded2a91064ee9997dba042bace49c2f65fa6.tar.gz |
lavfi/drawutils: reject shift-packed formats
Disables x2bgr10/x2rgb10 (which did not behave correctly before).
Diffstat (limited to 'libavfilter/drawutils.c')
-rw-r--r-- | libavfilter/drawutils.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 6b46f5803d..0965afb03e 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -105,6 +105,9 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) return AVERROR(ENOSYS); if (c->plane >= MAX_PLANES) return AVERROR(ENOSYS); + /* data must either be in the high or low bits, never middle */ + if (c->shift && ((c->shift + c->depth) & 0x7)) + return AVERROR(ENOSYS); /* strange interleaving */ if (pixelstep[c->plane] != 0 && pixelstep[c->plane] != c->step) |