|
|
|
@@ -24,6 +24,7 @@ |
|
|
|
#include "bytestream.h" |
|
|
|
#include "internal.h" |
|
|
|
#include "libavutil/colorspace.h" |
|
|
|
#include "libavutil/imgutils.h" |
|
|
|
#include "libavutil/opt.h" |
|
|
|
|
|
|
|
#define DVBSUB_PAGE_SEGMENT 0x10 |
|
|
|
@@ -1242,6 +1243,7 @@ static int dvbsub_parse_region_segment(AVCodecContext *avctx, |
|
|
|
DVBSubObject *object; |
|
|
|
DVBSubObjectDisplay *display; |
|
|
|
int fill; |
|
|
|
int ret; |
|
|
|
|
|
|
|
if (buf_size < 10) |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
@@ -1270,6 +1272,12 @@ static int dvbsub_parse_region_segment(AVCodecContext *avctx, |
|
|
|
region->height = AV_RB16(buf); |
|
|
|
buf += 2; |
|
|
|
|
|
|
|
ret = av_image_check_size(region->width, region->height, 0, avctx); |
|
|
|
if (ret < 0) { |
|
|
|
region->width= region->height= 0; |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
if (region->width * region->height != region->buf_size) { |
|
|
|
av_free(region->pbuf); |
|
|
|
|
|
|
|
|