[FFmpeg-devel] [PATCH] libavformat/demux: fix sti->first_dts can not been update when excuting avformat_find_stream_info
Shiqi Zhu
hiccupzhu at gmail.com
Wed May 15 14:35:22 EEST 2024
Signed-off-by: Shiqi Zhu <hiccupzhu at gmail.com>
---
libavformat/demux.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
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;
--
2.34.1
More information about the ffmpeg-devel
mailing list