diff mbox

[FFmpeg-devel,6/7] avformat/dashenc: add missing padding to the updated extradata

Message ID 20190730201951.2033-6-jamrial@gmail.com
State New
Headers show

Commit Message

James Almer July 30, 2019, 8:19 p.m. UTC
Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavformat/dashenc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Andreas Rheinhardt Aug. 2, 2019, 2:46 p.m. UTC | #1
James Almer:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
>  libavformat/dashenc.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> index bded260806..50eba370d9 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -1476,12 +1476,13 @@ static int update_stream_extradata(AVFormatContext *s, OutputStream *os,
>      if (!extradata_size)
>          return 0;
>  
> -    new_extradata = av_malloc(extradata_size);
> +    new_extradata = av_malloc(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
>  
>      if (!new_extradata)
>          return AVERROR(ENOMEM);
>  
>      memcpy(new_extradata, extradata, extradata_size);
> +    memset(new_extradata + extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
>  
>      os->ctx->streams[0]->codecpar->extradata = new_extradata;
>      os->ctx->streams[0]->codecpar->extradata_size = extradata_size;
> 
Is there a reason you are not using ff_alloc_extradata?

- Andreas
James Almer Aug. 2, 2019, 3:01 p.m. UTC | #2
On 8/2/2019 11:46 AM, Andreas Rheinhardt wrote:
> James Almer:
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>>  libavformat/dashenc.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
>> index bded260806..50eba370d9 100644
>> --- a/libavformat/dashenc.c
>> +++ b/libavformat/dashenc.c
>> @@ -1476,12 +1476,13 @@ static int update_stream_extradata(AVFormatContext *s, OutputStream *os,
>>      if (!extradata_size)
>>          return 0;
>>  
>> -    new_extradata = av_malloc(extradata_size);
>> +    new_extradata = av_malloc(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
>>  
>>      if (!new_extradata)
>>          return AVERROR(ENOMEM);
>>  
>>      memcpy(new_extradata, extradata, extradata_size);
>> +    memset(new_extradata + extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
>>  
>>      os->ctx->streams[0]->codecpar->extradata = new_extradata;
>>      os->ctx->streams[0]->codecpar->extradata_size = extradata_size;
>>
> Is there a reason you are not using ff_alloc_extradata?
> 
> - Andreas

Not really. I can replace this patch with one implementing
ff_alloc_extradata().
Andreas Rheinhardt Aug. 2, 2019, 3:09 p.m. UTC | #3
James Almer:
> On 8/2/2019 11:46 AM, Andreas Rheinhardt wrote:
>> James Almer:
>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>> ---
>>>  libavformat/dashenc.c | 3 ++-
>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
>>> index bded260806..50eba370d9 100644
>>> --- a/libavformat/dashenc.c
>>> +++ b/libavformat/dashenc.c
>>> @@ -1476,12 +1476,13 @@ static int update_stream_extradata(AVFormatContext *s, OutputStream *os,
>>>      if (!extradata_size)
>>>          return 0;
>>>  
>>> -    new_extradata = av_malloc(extradata_size);
>>> +    new_extradata = av_malloc(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
>>>  
>>>      if (!new_extradata)
>>>          return AVERROR(ENOMEM);
>>>  
>>>      memcpy(new_extradata, extradata, extradata_size);
>>> +    memset(new_extradata + extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
>>>  
>>>      os->ctx->streams[0]->codecpar->extradata = new_extradata;
>>>      os->ctx->streams[0]->codecpar->extradata_size = extradata_size;
>>>
>> Is there a reason you are not using ff_alloc_extradata?
>>
>> - Andreas
> 
> Not really. I can replace this patch with one implementing
> ff_alloc_extradata().

I have no strong feelings about this. Proceed as you wish.

- Andreas
Paul B Mahol Aug. 5, 2019, 3:42 p.m. UTC | #4
On Fri, Aug 2, 2019 at 5:07 PM James Almer <jamrial@gmail.com> wrote:

> On 8/2/2019 11:46 AM, Andreas Rheinhardt wrote:
> > James Almer:
> >> Signed-off-by: James Almer <jamrial@gmail.com>
> >> ---
> >>  libavformat/dashenc.c | 3 ++-
> >>  1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> >> index bded260806..50eba370d9 100644
> >> --- a/libavformat/dashenc.c
> >> +++ b/libavformat/dashenc.c
> >> @@ -1476,12 +1476,13 @@ static int
> update_stream_extradata(AVFormatContext *s, OutputStream *os,
> >>      if (!extradata_size)
> >>          return 0;
> >>
> >> -    new_extradata = av_malloc(extradata_size);
> >> +    new_extradata = av_malloc(extradata_size +
> AV_INPUT_BUFFER_PADDING_SIZE);
> >>
> >>      if (!new_extradata)
> >>          return AVERROR(ENOMEM);
> >>
> >>      memcpy(new_extradata, extradata, extradata_size);
> >> +    memset(new_extradata + extradata_size, 0,
> AV_INPUT_BUFFER_PADDING_SIZE);
> >>
> >>      os->ctx->streams[0]->codecpar->extradata = new_extradata;
> >>      os->ctx->streams[0]->codecpar->extradata_size = extradata_size;
> >>
> > Is there a reason you are not using ff_alloc_extradata?
> >
> > - Andreas
>
> Not really. I can replace this patch with one implementing
> ff_alloc_extradata().
>

Please do so, less code :)


> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Andreas Rheinhardt Aug. 5, 2019, 3:43 p.m. UTC | #5
Paul B Mahol:
> On Fri, Aug 2, 2019 at 5:07 PM James Almer <jamrial@gmail.com> wrote:
> 
>> On 8/2/2019 11:46 AM, Andreas Rheinhardt wrote:
>>> James Almer:
>>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>>> ---
>>>>  libavformat/dashenc.c | 3 ++-
>>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
>>>> index bded260806..50eba370d9 100644
>>>> --- a/libavformat/dashenc.c
>>>> +++ b/libavformat/dashenc.c
>>>> @@ -1476,12 +1476,13 @@ static int
>> update_stream_extradata(AVFormatContext *s, OutputStream *os,
>>>>      if (!extradata_size)
>>>>          return 0;
>>>>
>>>> -    new_extradata = av_malloc(extradata_size);
>>>> +    new_extradata = av_malloc(extradata_size +
>> AV_INPUT_BUFFER_PADDING_SIZE);
>>>>
>>>>      if (!new_extradata)
>>>>          return AVERROR(ENOMEM);
>>>>
>>>>      memcpy(new_extradata, extradata, extradata_size);
>>>> +    memset(new_extradata + extradata_size, 0,
>> AV_INPUT_BUFFER_PADDING_SIZE);
>>>>
>>>>      os->ctx->streams[0]->codecpar->extradata = new_extradata;
>>>>      os->ctx->streams[0]->codecpar->extradata_size = extradata_size;
>>>>
>>> Is there a reason you are not using ff_alloc_extradata?
>>>
>>> - Andreas
>>
>> Not really. I can replace this patch with one implementing
>> ff_alloc_extradata().
>>
> 
> Please do so, less code :)
> 
> 
He already did. The whole patchset has been merged already.

- Andreas
James Almer Aug. 5, 2019, 3:43 p.m. UTC | #6
On 8/5/2019 12:42 PM, Paul B Mahol wrote:
> On Fri, Aug 2, 2019 at 5:07 PM James Almer <jamrial@gmail.com> wrote:
> 
>> On 8/2/2019 11:46 AM, Andreas Rheinhardt wrote:
>>> James Almer:
>>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>>> ---
>>>>  libavformat/dashenc.c | 3 ++-
>>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
>>>> index bded260806..50eba370d9 100644
>>>> --- a/libavformat/dashenc.c
>>>> +++ b/libavformat/dashenc.c
>>>> @@ -1476,12 +1476,13 @@ static int
>> update_stream_extradata(AVFormatContext *s, OutputStream *os,
>>>>      if (!extradata_size)
>>>>          return 0;
>>>>
>>>> -    new_extradata = av_malloc(extradata_size);
>>>> +    new_extradata = av_malloc(extradata_size +
>> AV_INPUT_BUFFER_PADDING_SIZE);
>>>>
>>>>      if (!new_extradata)
>>>>          return AVERROR(ENOMEM);
>>>>
>>>>      memcpy(new_extradata, extradata, extradata_size);
>>>> +    memset(new_extradata + extradata_size, 0,
>> AV_INPUT_BUFFER_PADDING_SIZE);
>>>>
>>>>      os->ctx->streams[0]->codecpar->extradata = new_extradata;
>>>>      os->ctx->streams[0]->codecpar->extradata_size = extradata_size;
>>>>
>>> Is there a reason you are not using ff_alloc_extradata?
>>>
>>> - Andreas
>>
>> Not really. I can replace this patch with one implementing
>> ff_alloc_extradata().
>>
> 
> Please do so, less code :)

Already did and pushed it last Saturday :p
diff mbox

Patch

diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index bded260806..50eba370d9 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -1476,12 +1476,13 @@  static int update_stream_extradata(AVFormatContext *s, OutputStream *os,
     if (!extradata_size)
         return 0;
 
-    new_extradata = av_malloc(extradata_size);
+    new_extradata = av_malloc(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
 
     if (!new_extradata)
         return AVERROR(ENOMEM);
 
     memcpy(new_extradata, extradata, extradata_size);
+    memset(new_extradata + extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
 
     os->ctx->streams[0]->codecpar->extradata = new_extradata;
     os->ctx->streams[0]->codecpar->extradata_size = extradata_size;