[FFmpeg-devel] [FFmpeg-cvslog] avformat/mpegts: add option max_packet_size

Gyan Doshi ffmpeg at gyani.pro
Wed Feb 2 07:24:53 EET 2022



On 2022-02-02 12:42 am, James Almer wrote:
>
>
> On 2/1/2022 3:47 PM, Michael Niedermayer wrote:
>> On Sun, Jan 16, 2022 at 05:19:15AM +0000, Gyan Doshi wrote:
>>> ffmpeg | branch: master | Gyan Doshi <ffmpeg at gyani.pro> | Wed Jan 12 
>>> 20:57:59 2022 +0530| [bca30570d28bbaa07badadabf55ec3589201a82f] | 
>>> committer: Gyan Doshi
>>>
>>> avformat/mpegts: add option max_packet_size
>>>
>>> Makes maximum size of emitted packet user-tunable.
>>>
>>> Default is existing 204800 bytes.
>>>
>>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bca30570d28bbaa07badadabf55ec3589201a82f 
>>>>
>>> ---
>>>
>>>   doc/demuxers.texi    |  4 ++++
>>>   libavformat/mpegts.c | 11 ++++++-----
>>>   2 files changed, 10 insertions(+), 5 deletions(-)
>>
>> Since this commit there is occasional memory corruption occuring
>>
>>    libavutil      57. 18.100 / 57. 18.100
>>    libavcodec     59. 20.100 / 59. 20.100
>>    libavformat    59. 17.101 / 59. 17.101
>>    libavdevice    59.  5.100 / 59.  5.100
>>    libavfilter     8. 25.100 /  8. 25.100
>>    libswscale      6.  5.100 /  6.  5.100
>>    libswresample   4.  4.100 /  4.  4.100
>>    libpostproc    56.  4.100 / 56.  4.100
>> invalid fastbin entry (free)
>> doom/rtp-video: line 14: 15621 Aborted                 (core dumped) 
>> ./ffmpeg_g -bitexact -protocol_whitelist http,tcp,rtp,udp -i 
>> http://127.0.0.1:8080/test.sdp -bitexact -acodec mp2 -ab 64k -y -t 1 
>> -threads 1 $TMP/out.avi
>> Command exited with non-zero status 134
>
> Is the demuxer used in this scenario mpegts or mpegtsraw? The new 
> option was added to the former but not the latter, yet if both read 
> MpegTSContext.max_packet_size, for mpegtsraw it will always be 0.
>
> The option might need to be added to that demuxer too.

The init appears to be via  avpriv_mpegts_parse_open in mpegts.c

which has this note above,

     /* parsing functions - called from other demuxers such as RTP */

and in it, a few of the context fields are manually initialized. I 
suspect hardcoding a value here may be enough.

Regards,
Gyan


More information about the ffmpeg-devel mailing list