Compare commits

...

9 Commits

Author SHA1 Message Date
manh-td
e70aa31c2d Merge branch 'cdxl_decode_frame' into the-rest
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 2m24s
Build system / Build (pull_request) Successful in 16m46s
2025-12-22 12:27:47 +08:00
manh-td
6586ad1cf1 Merge branch 'flv_write_packet' into the-rest 2025-12-22 12:27:33 +08:00
manh-td
b353027ffa Merge branch 'mv_read_header' into the-rest 2025-12-22 12:27:19 +08:00
manh-td
7b8cdc8ecf Merge branch 'decode_frame' into the-rest 2025-12-22 12:27:03 +08:00
manh-td
ca6b0f142c Check size_bmp more fully
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 3m8s
Build system / Build (pull_request) Successful in 31m48s
2025-12-19 10:00:54 +08:00
manh-td
e128a90e62 Fix logic error
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 2m12s
Build system / Build (pull_request) Successful in 35m32s
2025-12-19 09:52:49 +08:00
manh-td
f1b4023d99 Fix DoS due to lack of eof check
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 2m22s
Build system / Build (pull_request) Successful in 36m9s
2025-12-19 09:47:21 +08:00
manh-td
2727f1a5bd Check audio packet size
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 2m25s
Build system / Build (pull_request) Successful in 19m26s
2025-12-19 09:31:47 +08:00
manh-td
cb1d476932 Check format for BGR24
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 2m25s
Build system / Build (pull_request) Successful in 16m34s
2025-12-17 16:28:59 +08:00
6 changed files with 12 additions and 4 deletions

View File

@@ -256,7 +256,7 @@ static int cdxl_decode_frame(AVCodecContext *avctx, void *data,
return AVERROR_INVALIDDATA;
if (!encoding && c->palette_size && c->bpp <= 8) {
avctx->pix_fmt = AV_PIX_FMT_PAL8;
} else if (encoding == 1 && (c->bpp == 6 || c->bpp == 8)) {
} else if (encoding == 1 && (c->bpp == 6 || c->bpp == 8) && c->format != CHUNKY) {
if (c->palette_size != (1 << (c->bpp - 1)))
return AVERROR_INVALIDDATA;
avctx->pix_fmt = AV_PIX_FMT_BGR24;

View File

@@ -306,6 +306,8 @@ static int mv_read_header(AVFormatContext *avctx)
uint32_t pos = avio_rb32(pb);
uint32_t asize = avio_rb32(pb);
uint32_t vsize = avio_rb32(pb);
if (avio_feof(pb))
return AVERROR_INVALIDDATA;
avio_skip(pb, 8);
av_add_index_entry(ast, pos, timestamp, asize, 0, AVINDEX_KEYFRAME);
av_add_index_entry(vst, pos + asize, i, vsize, 0, AVINDEX_KEYFRAME);

View File

@@ -256,7 +256,7 @@ static int cdxl_decode_frame(AVCodecContext *avctx, void *data,
return AVERROR_INVALIDDATA;
if (!encoding && c->palette_size && c->bpp <= 8) {
avctx->pix_fmt = AV_PIX_FMT_PAL8;
} else if (encoding == 1 && (c->bpp == 6 || c->bpp == 8)) {
} else if (encoding == 1 && (c->bpp == 6 || c->bpp == 8) && c->format != CHUNKY) {
if (c->palette_size != (1 << (c->bpp - 1)))
return AVERROR_INVALIDDATA;
avctx->pix_fmt = AV_PIX_FMT_BGR24;

View File

@@ -142,7 +142,7 @@ static int decode_frame(AVCodecContext *avctx,
if (av_image_check_size(s->width, s->height, 0, avctx) < 0)
return -1;
if (s->width != avctx->width && s->height != avctx->height) {
if (s->width != avctx->width || s->height != avctx->height) {
ret = ff_set_dimensions(avctx, s->width, s->height);
if (ret < 0)
return ret;

View File

@@ -695,7 +695,8 @@ static int parse_video_info(AVIOContext *pb, AVStream *st)
st->codec->codec_tag = tag;
st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, tag);
if (size > BMP_HEADER_SIZE) {
if (size > BMP_HEADER_SIZE &&
size < INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE) {
int ret;
st->codec->extradata_size = size - BMP_HEADER_SIZE;
if (!(st->codec->extradata = av_malloc(st->codec->extradata_size +

View File

@@ -514,6 +514,11 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt)
uint8_t *data = NULL;
int flags = -1, flags_size, ret;
if (enc->codec_type == AVMEDIA_TYPE_AUDIO && !pkt->size) {
av_log(s, AV_LOG_WARNING, "Empty audio Packet\n");
return AVERROR(EINVAL);
}
if (enc->codec_id == AV_CODEC_ID_VP6F || enc->codec_id == AV_CODEC_ID_VP6A ||
enc->codec_id == AV_CODEC_ID_VP6 || enc->codec_id == AV_CODEC_ID_AAC)
flags_size = 2;