[FFmpeg-devel] [PATCH 2/2] avformat/mp3enc: Avoid SEEK_END as it is unsupported

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Tue May 14 15:58:00 EEST 2019


James Almer:
> On 5/14/2019 8:04 AM, Michael Niedermayer wrote:
>> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
>> ---
>>  libavformat/mp3enc.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c
>> index dd662f5473..f4814be80e 100644
>> --- a/libavformat/mp3enc.c
>> +++ b/libavformat/mp3enc.c
>> @@ -391,6 +391,7 @@ static void mp3_update_xing(AVFormatContext *s)
>>      uint16_t tag_crc;
>>      uint8_t *toc;
>>      int i, rg_size;
>> +    int64_t old_pos = avio_tell(s->pb);
>>  
>>      /* replace "Xing" identification string with "Info" for CBR files. */
>>      if (!mp3->has_variable_bitrate)
>> @@ -450,7 +451,7 @@ static void mp3_update_xing(AVFormatContext *s)
>>  
>>      avio_seek(s->pb,  mp3->xing_frame_offset, SEEK_SET);
>>      avio_write(s->pb, mp3->xing_frame, mp3->xing_frame_size);
>> -    avio_seek(s->pb, 0, SEEK_END);
>> +    avio_seek(s->pb, old_pos, SEEK_SET);
> 
> What do you mean unsupported?
> 
avio_seek only accepts SEEK_CUR and SEEK_SET (possibly OR'ed with
AVSEEK_FORCE) as whence parameter (everything else is AVERROR(EINVAL)).

- Andreas


More information about the ffmpeg-devel mailing list