* [FFmpeg-devel] [PATCH] rtpdec: explicit timestamp wraparound handling
@ 2025-06-08 15:07 Clément Péron
2025-06-14 20:55 ` Michael Niedermayer
0 siblings, 1 reply; 2+ messages in thread
From: Clément Péron @ 2025-06-08 15:07 UTC (permalink / raw)
To: ffmpeg-devel, Kieran Kunhya; +Cc: Clément Péron
Change delta_timestamp to int32_t and add explicit cast to handle
RTP timestamp wraparound correctly. This fixes implementation-defined
behavior when computing negative timestamp differences due to 32-bit
wraparound.
Signed-off-by: Clément Péron <peron.clem@gmail.com>
---
libavformat/rtpdec.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
index 7664ab58bd..e302203db8 100644
--- a/libavformat/rtpdec.c
+++ b/libavformat/rtpdec.c
@@ -643,6 +643,7 @@ static int rtp_set_prft(RTPDemuxContext *s, AVPacket *pkt, uint32_t timestamp) {
return AVERROR(ENOMEM);
rtcp_time = ff_parse_ntp_time(s->last_rtcp_ntp_time) - NTP_OFFSET_US;
+ /* Cast to int32_t to handle timestamp wraparound correctly */
delta_timestamp = (int32_t)(timestamp - s->last_rtcp_timestamp);
delta_time = av_rescale_q(delta_timestamp, s->st->time_base, AV_TIME_BASE_Q);
@@ -670,10 +671,11 @@ static void finalize_packet(RTPDemuxContext *s, AVPacket *pkt, uint32_t timestam
if (s->last_rtcp_ntp_time != AV_NOPTS_VALUE && s->ic->nb_streams > 1) {
int64_t addend;
- int delta_timestamp;
+ int32_t delta_timestamp;
/* compute pts from timestamp with received ntp_time */
- delta_timestamp = timestamp - s->last_rtcp_timestamp;
+ /* Cast to int32_t to handle timestamp wraparound correctly */
+ delta_timestamp = (int32_t)(timestamp - s->last_rtcp_timestamp);
/* convert to the PTS timebase */
addend = av_rescale(s->last_rtcp_ntp_time - s->first_rtcp_ntp_time,
s->st->time_base.den,
--
2.48.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [FFmpeg-devel] [PATCH] rtpdec: explicit timestamp wraparound handling
2025-06-08 15:07 [FFmpeg-devel] [PATCH] rtpdec: explicit timestamp wraparound handling Clément Péron
@ 2025-06-14 20:55 ` Michael Niedermayer
0 siblings, 0 replies; 2+ messages in thread
From: Michael Niedermayer @ 2025-06-14 20:55 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 844 bytes --]
On Sun, Jun 08, 2025 at 05:07:37PM +0200, Clément Péron wrote:
> Change delta_timestamp to int32_t and add explicit cast to handle
> RTP timestamp wraparound correctly. This fixes implementation-defined
> behavior when computing negative timestamp differences due to 32-bit
> wraparound.
>
> Signed-off-by: Clément Péron <peron.clem@gmail.com>
> ---
> libavformat/rtpdec.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
will apply
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Any man who breaks a law that conscience tells him is unjust and willingly
accepts the penalty by staying in jail in order to arouse the conscience of
the community on the injustice of the law is at that moment expressing the
very highest respect for law. - Martin Luther King Jr
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-06-14 20:55 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-08 15:07 [FFmpeg-devel] [PATCH] rtpdec: explicit timestamp wraparound handling Clément Péron
2025-06-14 20:55 ` Michael Niedermayer
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git