码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • av_gettime() 与 av_gettime_relative() 是什么含义?


    av_gettime() 与 av_gettime_relative() 是什么含义?

    读函数头的说明,云里雾里一堆,表示看不懂,干脆写程序测试一下:

    1. $cat main.cpp
    2. #include
    3. extern "C"
    4. {
    5. #include
    6. }
    7. int main()
    8. {
    9. int64_t time1=av_gettime();
    10. int64_t time2=av_gettime_relative();
    11. printf("%-24s:%ld\n","av_gettime",time1);
    12. printf("%-24s:%ld\n","av_gettime_relative",time2);
    13. return 0;
    14. }

    结果:
    $ ./main
    av_gettime              :1668047258787826
    av_gettime_relative     :101219318785

    可见gettime 比 relative 大得多.
    我们知道av_gettime 从公元1970年1月1日0时0分0秒开始的微秒值,

    而relative 从近期的某一点开始.
    这近期的点是什么时间?
    看这结果差1万多倍,
     

    跟踪ffmpeg 代码
    int64_t av_gettime(void)  //返回1970年1月1日0时0分0秒开始的微秒值,查资料得.
    {
        struct timeval tv;
        gettimeofday(&tv, NULL); //时区填空即可
        return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec;
    }
    注意: timeval 结构,微秒级.
    struct timeval
    {
           time_t      tv_sec;     /* seconds */
           suseconds_t tv_usec;    /* microseconds */
    };
    int gettimeofday(struct timeval *tv, struct timezone *tz);
    gives the number of seconds and microseconds since the Epoch
    给出自大纪元以来的秒数和微秒数

    int64_t av_gettime_relative(void) // 返回某一点开始后的微妙数
    {
        struct timespec ts;
        clock_gettime(CLOCK_MONOTONIC, &ts);
        return (int64_t)ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
    }

    注意: timespec 是纳秒级, 与上面的timeval 结构不同
    struct timespec
    {
           time_t   tv_sec;        /* seconds */
           long     tv_nsec;       /* nanoseconds */
    };

    重启一次机器,
    这次看清了也确认了. clock_gettime(CLOCK_MONOTONIC,&ts)是
    开机后开始的微妙数. 如下表示开机到执行测试程序时58秒
    执行结果:
     ./main
     av_gettime              :1668049206167258
     av_gettime_relative     :58553202

    总结:
    int64_t av_gettime(void)  //
    从公元1970年1月1日0时0分0秒开始的微秒值
    int64_t av_gettime_relative(void) // 返回开机后开始的微妙值

  • 相关阅读:
    爬虫入门四(抽屉半自动点赞、xpath使用、动作链、打码平台、scrapy框架介绍与安装及创建项目)
    [附源码]计算机毕业设计JAVA小说网站的设计与实现1
    JAVA计算机毕业设计延安市图书馆管理Mybatis+系统+数据库+调试部署
    《C和指针》笔记35:结构体
    计算机毕业设计之java+ssm基于web的实验室课程管理系统
    golang 发起 http 请求,获取访问域名的 ip 地址(net, httptrace)
    Codeforces Round #658 (Div. 2) B. Sequential Nim
    最新|全新风格原创YOLOv7、YOLOv5和YOLOX网络结构解析图
    vue3前端开发-flex布局篇
    爬虫中Selenium和DrissionPage的区别
  • 原文地址:https://blog.csdn.net/hejinjing_tom_com/article/details/127785262
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号