diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c index ebd5402bce..2e2cbf5477 100644 --- a/libavformat/rtpdec.c +++ b/libavformat/rtpdec.c @@ -587,7 +587,8 @@ void ff_rtp_parse_set_crypto(RTPDemuxContext *s, const char *suite, } static int rtp_set_prft(RTPDemuxContext *s, AVPacket *pkt, uint32_t timestamp) { - int64_t rtcp_time, delta_timestamp, delta_time; + int64_t rtcp_time, delta_time; + int32_t delta_timestamp; AVProducerReferenceTime *prft = (AVProducerReferenceTime *) av_packet_new_side_data( @@ -596,7 +597,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; - delta_timestamp = (int64_t)timestamp - (int64_t)s->last_rtcp_timestamp; + delta_timestamp = (int32_t)(timestamp - s->last_rtcp_timestamp); delta_time = av_rescale_q(delta_timestamp, s->st->time_base, AV_TIME_BASE_Q); prft->wallclock = rtcp_time + delta_time;