mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-08-09 09:32:43 +00:00
avformat/utils: fix ff_dict_set_timestamp() with negative timestamps
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
@@ -609,14 +609,15 @@ int ff_bprint_to_codecpar_extradata(AVCodecParameters *par, struct AVBPrint *buf
|
||||
|
||||
int ff_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp)
|
||||
{
|
||||
time_t seconds = timestamp / 1000000;
|
||||
int microsecs = timestamp % 1000000;
|
||||
time_t seconds = timestamp / 1000000 - (microsecs < 0);
|
||||
struct tm *ptm, tmbuf;
|
||||
ptm = gmtime_r(&seconds, &tmbuf);
|
||||
if (ptm) {
|
||||
char buf[32];
|
||||
if (!strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S", ptm))
|
||||
return AVERROR_EXTERNAL;
|
||||
av_strlcatf(buf, sizeof(buf), ".%06dZ", (int)(timestamp % 1000000));
|
||||
av_strlcatf(buf, sizeof(buf), ".%06dZ", microsecs + (microsecs < 0) * 1000000);
|
||||
return av_dict_set(dict, key, buf, 0);
|
||||
} else {
|
||||
return AVERROR_EXTERNAL;
|
||||
|
||||
Reference in New Issue
Block a user