[FFmpeg-devel] [PATCH V2] lavf/flvdec: Fix AMF NUMBER type to metadata lost precision
mypopy at gmail.com
mypopy at gmail.com
Wed Apr 3 04:22:18 EEST 2019
On Thu, Mar 28, 2019 at 9:23 PM Jun Zhao <mypopydev at gmail.com> wrote:
>
> From: Jun Zhao <barryjzhao at tencent.com>
>
> Use %.12g replace %.f when save AMF NUMBER(double) type to
> metadata. And update fate ref.
>
> before this fix, we get FLV metadata like:
>
> Metadata:
> lasttimestamp : 113
> lastkeyframetimestamp: 112
>
> after this fix:
>
> Metadata:
> lasttimestamp : 113.005
> lastkeyframetimestamp: 111.678
>
> Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
> ---
> libavformat/flvdec.c | 2 +-
> tests/ref/fate/flv-add_keyframe_index | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
> index 445d58d..12bfd4b 100644
> --- a/libavformat/flvdec.c
> +++ b/libavformat/flvdec.c
> @@ -649,7 +649,7 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream,
> sizeof(str_val));
> av_dict_set(&s->metadata, key, str_val, 0);
> } else if (amf_type == AMF_DATA_TYPE_NUMBER) {
> - snprintf(str_val, sizeof(str_val), "%.f", num_val);
> + snprintf(str_val, sizeof(str_val), "%.12g", num_val);
> av_dict_set(&s->metadata, key, str_val, 0);
> } else if (amf_type == AMF_DATA_TYPE_STRING) {
> av_dict_set(&s->metadata, key, str_val, 0);
> diff --git a/tests/ref/fate/flv-add_keyframe_index b/tests/ref/fate/flv-add_keyframe_index
> index 1c4da65..ce3809e 100644
> --- a/tests/ref/fate/flv-add_keyframe_index
> +++ b/tests/ref/fate/flv-add_keyframe_index
> @@ -7,6 +7,6 @@ canSeekToEnd=true
> datasize=629776
> videosize=629381
> audiosize=0
> -lasttimestamp=20
> +lasttimestamp=19.8571428571
> lastkeyframetimestamp=19
> lastkeyframelocation=597963
> --
Ping, any comments?
More information about the ffmpeg-devel
mailing list