diff mbox series

[FFmpeg-devel] libavformat/demux: fix sti->first_dts can not been update when excuting avformat_find_stream_info

Message ID 20240515113522.1921274-1-hiccupzhu@gmail.com
State New
Headers show
Series [FFmpeg-devel] libavformat/demux: fix sti->first_dts can not been update when excuting avformat_find_stream_info | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 fail Make fate failed
andriy/make_x86 success Make finished
andriy/make_fate_x86 fail Make fate failed

Commit Message

Shiqi Zhu May 15, 2024, 11:35 a.m. UTC
Signed-off-by: Shiqi Zhu <hiccupzhu@gmail.com>
---
 libavformat/demux.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/libavformat/demux.c b/libavformat/demux.c
index e19b8b6473..74be509c8b 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -856,15 +856,16 @@  static void update_initial_timestamps(AVFormatContext *s, int stream_index,
 
     uint64_t shift;
 
-    if (sti->first_dts != AV_NOPTS_VALUE ||
-        dts           == AV_NOPTS_VALUE ||
+    if (sti->first_dts == AV_NOPTS_VALUE)
+        sti->first_dts = dts - (sti->cur_dts - RELATIVE_TS_BASE);
+
+    if (dts           == AV_NOPTS_VALUE ||
         sti->cur_dts   == AV_NOPTS_VALUE ||
         sti->cur_dts < INT_MIN + RELATIVE_TS_BASE ||
         dts  < INT_MIN + (sti->cur_dts - RELATIVE_TS_BASE) ||
         is_relative(dts))
         return;
 
-    sti->first_dts = dts - (sti->cur_dts - RELATIVE_TS_BASE);
     sti->cur_dts   = dts;
     shift          = (uint64_t)sti->first_dts - RELATIVE_TS_BASE;