Set restrictions on packet_size, as per ISO-11172 / H-222 specifications
(max packet size should fit in 13 bits as a kB value, so 1<<23, plus the header which is 10 bytes), and as per mpegenc.c internal assumptions (min packet size is 20 bytes). See "[PATCH] make packet_size in AVFormatContext unsigned" thread. Originally committed as revision 19215 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
fa8c408b26
commit
f4ca612fbd
@ -304,9 +304,14 @@ static int mpeg_mux_init(AVFormatContext *ctx)
|
||||
(CONFIG_MPEG2SVCD_MUXER && ctx->oformat == &mpeg2svcd_muxer));
|
||||
s->is_dvd = (CONFIG_MPEG2DVD_MUXER && ctx->oformat == &mpeg2dvd_muxer);
|
||||
|
||||
if(ctx->packet_size)
|
||||
if(ctx->packet_size) {
|
||||
if (ctx->packet_size < 20 || ctx->packet_size > (1 << 23) + 10) {
|
||||
av_log(ctx, AV_LOG_ERROR, "Invalid packet size %d\n",
|
||||
ctx->packet_size);
|
||||
goto fail;
|
||||
}
|
||||
s->packet_size = ctx->packet_size;
|
||||
else
|
||||
} else
|
||||
s->packet_size = 2048;
|
||||
|
||||
s->vcd_padding_bytes_written = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user