diff --git a/libavformat/rtp_mpv.c b/libavformat/rtp_mpv.c index 061eb35192..2c67f058a0 100644 --- a/libavformat/rtp_mpv.c +++ b/libavformat/rtp_mpv.c @@ -66,7 +66,7 @@ void ff_rtp_send_mpegvideo(AVFormatContext *s1, const uint8_t *buf1, int size) begin_of_sequence = 1; } - if (r - buf1 < len) { + if (r - buf1 - 4 <= len) { /* The current slice fits in the packet */ if (begin_of_slice == 0) { /* no slice at the beginning of the packet... */ @@ -76,7 +76,7 @@ void ff_rtp_send_mpegvideo(AVFormatContext *s1, const uint8_t *buf1, int size) } r1 = r; } else { - if (r - r1 < max_packet_size - 4) { + if ((r1 - buf1 > 4) && (r - r1 < max_packet_size)) { len = r1 - buf1 - 4; end_of_slice = 1; }