Re: [FFmpeg-devel] [PATCH 2/5] avformat/mpeg: Add padding to extradata

2019-10-24 Thread Michael Niedermayer
On Tue, Oct 22, 2019 at 03:16:42PM +0200, Andreas Rheinhardt wrote:
> Extradata is supposed to be padded with AV_INPUT_BUFFER_PADDING_SIZE bytes,
> yet the VobSub demuxer used av_strdup for the allocation of extradata.
> This has been changed.
> 
> Signed-off-by: Andreas Rheinhardt 
> ---
> I did not change the extradata_size in order to explicitly include a
> zero byte; i.e. the first byte of the padding is the zero byte ending
> the string. This is just like now.
> 
>  libavformat/mpeg.c | 12 +---
>  1 file changed, 5 insertions(+), 7 deletions(-)

will apply

thx

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Everything should be made as simple as possible, but not simpler.
-- Albert Einstein


signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

[FFmpeg-devel] [PATCH 2/5] avformat/mpeg: Add padding to extradata

2019-10-22 Thread Andreas Rheinhardt
Extradata is supposed to be padded with AV_INPUT_BUFFER_PADDING_SIZE bytes,
yet the VobSub demuxer used av_strdup for the allocation of extradata.
This has been changed.

Signed-off-by: Andreas Rheinhardt 
---
I did not change the extradata_size in order to explicitly include a
zero byte; i.e. the first byte of the padding is the zero byte ending
the string. This is just like now.

 libavformat/mpeg.c | 12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index ebc064931a..46c59163fd 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -769,7 +769,7 @@ static int vobsub_read_header(AVFormatContext *s)
 goto end;
 }
 
-av_bprint_init(&header, 0, AV_BPRINT_SIZE_UNLIMITED);
+av_bprint_init(&header, 0, INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE);
 while (!avio_feof(s->pb)) {
 char line[MAX_LINE_SIZE];
 int len = ff_get_line(s->pb, line, sizeof(line));
@@ -896,14 +896,12 @@ static int vobsub_read_header(AVFormatContext *s)
 }
 av_bprint_finalize(&header, &header_str);
 for (i = 0; i < s->nb_streams; i++) {
-AVStream *sub_st = s->streams[i];
-sub_st->codecpar->extradata  = av_strdup(header_str);
-if (!sub_st->codecpar->extradata) {
-ret = AVERROR(ENOMEM);
-sub_st->codecpar->extradata_size = 0;
+AVCodecParameters *par = s->streams[i]->codecpar;
+ret = ff_alloc_extradata(par, header.len);
+if (ret < 0) {
 goto end;
 }
-sub_st->codecpar->extradata_size = header.len;
+memcpy(par->extradata, header_str, header.len);
 }
 end:
 
-- 
2.20.1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".