[FFmpeg-devel] [PATCH v2] avformat/flvdec: use milisecond precision for parsing timestamps
Anton Khirnov
anton at khirnov.net
Sun May 16 13:29:45 EEST 2021
Quoting Marton Balint (2021-05-14 21:28:06)
> Also use helper function to set the timestamp. Maybe we could also use
> nanosecond precision, but there were some float rounding concerns.
>
> Signed-off-by: Marton Balint <cus at passwd.hu>
> ---
> libavformat/flvdec.c | 11 ++---------
> tests/ref/fate/flv-demux | 2 +-
> 2 files changed, 3 insertions(+), 10 deletions(-)
>
> diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
> index ddaceaafe4..6bd6c8c944 100644
> --- a/libavformat/flvdec.c
> +++ b/libavformat/flvdec.c
> @@ -28,6 +28,7 @@
> #include "libavutil/channel_layout.h"
> #include "libavutil/dict.h"
> #include "libavutil/opt.h"
> +#include "libavutil/internal.h"
> #include "libavutil/intfloat.h"
> #include "libavutil/mathematics.h"
> #include "libavutil/time_internal.h"
> @@ -682,17 +683,9 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream,
> } else if (amf_type == AMF_DATA_TYPE_STRING) {
> av_dict_set(&s->metadata, key, str_val, 0);
> } else if (amf_type == AMF_DATA_TYPE_DATE) {
> - time_t time;
> - struct tm t;
> - char datestr[128];
> - time = date.milliseconds / 1000; // to seconds
> - gmtime_r(&time, &t);
> -
> // timezone is ignored, since there is no easy way to offset the UTC
> // timestamp into the specified timezone
> - strftime(datestr, sizeof(datestr), "%Y-%m-%dT%H:%M:%SZ", &t);
> -
> - av_dict_set(&s->metadata, key, datestr, 0);
> + avpriv_dict_set_timestamp(&s->metadata, key, 1000 * (int64_t)date.milliseconds);
No objections, if it passes FATE everywhere.
--
Anton Khirnov
More information about the ffmpeg-devel
mailing list