[FFmpeg-devel] Fix for KLV in mpegts

Carl Eugen Hoyos ceffmpeg at gmail.com
Fri Dec 7 14:46:56 EET 2018


2018-12-07 13:27 GMT+01:00, Peter Ross <pross at xvid.org>:
> On Fri, Dec 07, 2018 at 12:06:36PM +0200, Artyom Lebedev wrote:
>> This fixes bug which prevents from proper muxing-in KLV stream into
>> mpeg-ts.
>>
>> mpegtsenc.c:1526
>>
>>     char *side_data = NULL;
>>     int stream_id = -1;
>>
>>     side_data = av_packet_get_side_data(pkt,
>> AV_PKT_DATA_MPEGTS_STREAM_ID,
>>                                         &side_data_size);
>>     if (side_data)
>>         stream_id = side_data[0];
>>
>> One-byte stream ID is read from "char *" array to integer making it to
>> sign-extend which is not correct. Although it writes it correctly to
>> stream,
>> since it is treated as one byte again, but it fails with some condition
>> checks, e.g. in mpegtsenc.c:1278:
>>
>> if (stream_id == 0xbd) /* asynchronous KLV */
>>     pts = dts = AV_NOPTS_VALUE;
>> stream_id value in such case is 0xffffffbd.
>>
>> Fix should be changing side_data type from "char *" to "uint8_t *".
>
> looks good. i will apply if no one else rejects.

Please mention ticket #7597.

Carl Eugen


More information about the ffmpeg-devel mailing list