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.

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to