pulseaudio --log-time 输出的timestamps两个数字是什么含义?

最大的社区版本,Ubuntu的发源地
回复
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

pulseaudio --log-time 输出的timestamps两个数字是什么含义?

#1

帖子 科学之子 » 2017-09-21 3:24

pulseaudio --log-time 输出的timestamps两个数字是什么含义?

代码: 全选

$ grep --color=always -F "module-alsa-card.c:" ./pulseverbose.log 
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Found 9 jacks.
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Line Out Jack' is now unplugged
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Line Out Jack' is now unplugged
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Speaker Phantom Jack' is now plugged in
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Front Mic Jack' is now unplugged
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Rear Mic Jack' is now unplugged
(   0.051|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Line Jack' is now unplugged
( 366.442|  95.713) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now plugged in
(2814.597|1424.326) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
(2830.576|  15.978) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now plugged in
看了代码还是没看明白是什么意思
./pulseaudio-10.0/src/pulsecore/log.c:

代码: 全选

    if (_flags & PA_LOG_PRINT_TIME) {
        static pa_usec_t start, last;
        pa_usec_t u, a, r;

        u = pa_rtclock_now();

        PA_ONCE_BEGIN {
            start = u;
            last = u;
        } PA_ONCE_END;

        r = u - last;
        a = u - start;

        /* This is not thread safe, but this is a debugging tool only
         * anyway. */
        last = u;

        pa_snprintf(timestamp, sizeof(timestamp), "(%4llu.%03llu|%4llu.%03llu) ",
                    (unsigned long long) (a / PA_USEC_PER_SEC),
                    (unsigned long long) (((a / PA_USEC_PER_MSEC)) % 1000),
                    (unsigned long long) (r / PA_USEC_PER_SEC),
                    (unsigned long long) (((r / PA_USEC_PER_MSEC)) % 1000));

    } else
        timestamp[0] = 0;
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: pulseaudio --log-time 输出的timestamps两个数字是什么含义?

#2

帖子 poloshiao » 2017-09-21 8:18

https://zh.wikipedia.org/wiki/%E6%99%82 ... 3%E6%88%B3
時間戳

https://en.wikipedia.org/wiki/Timestamp
A timestamp is a sequence of characters or encoded information identifying when a certain event occurred, usually giving date and time of day, sometimes accurate to a small fraction of a second.
pulseaudio --log-time 输出的timestamps两个数字是什么含义?
--log-time[=BOOL]
Show timestamps in log messages.

进一步参阅
https://freedesktop.org/software/pulsea ... tions.html
PulseAudio Documentation
Data Structures
Data Fields
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: pulseaudio --log-time 输出的timestamps两个数字是什么含义?

#3

帖子 科学之子 » 2017-09-21 20:06

poloshiao 写了:https://zh.wikipedia.org/wiki/%E6%99%82 ... 3%E6%88%B3
時間戳

https://en.wikipedia.org/wiki/Timestamp
A timestamp is a sequence of characters or encoded information identifying when a certain event occurred, usually giving date and time of day, sometimes accurate to a small fraction of a second.
pulseaudio --log-time 输出的timestamps两个数字是什么含义?
--log-time[=BOOL]
Show timestamps in log messages.

进一步参阅
https://freedesktop.org/software/pulsea ... tions.html
PulseAudio Documentation
Data Structures
Data Fields
感谢解答,时间戳的含义我已理解.
但是:

代码: 全选

(2814.597|1424.326) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
(2830.576|  15.978) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now plugged in
这种时间戳的含义是什么?
两个数字或者说两个时间分别什么含义?
头像
astolia
论坛版主
帖子: 6396
注册时间: 2008-09-18 13:11

Re: pulseaudio --log-time 输出的timestamps两个数字是什么含义?

#4

帖子 astolia » 2017-09-22 16:27

这么简单的代码都读不懂?
u = pa_rtclock_now();
r = u - last;
a = u - start;
从这三句就知道了。
u:当前时刻
r:当前时刻减去上一次记录的时刻
a:当前时刻减去开始时刻
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

Re: pulseaudio --log-time 输出的timestamps两个数字是什么含义?

#5

帖子 科学之子 » 2017-09-22 17:40

astolia 写了:这么简单的代码都读不懂?
u = pa_rtclock_now();
r = u - last;
a = u - start;
从这三句就知道了。
u:当前时刻
r:当前时刻减去上一次记录的时刻
a:当前时刻减去开始时刻
但是含义还是没明白

代码: 全选

(9085.135|   0.000) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
(9092.559|   0.175) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now plugged in
(9383.808|   0.502) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
(9389.312|   0.347) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now plugged in
(9424.746|   0.035) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
(9432.938|   0.084) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now plugged in
第一列直觉感觉是运行时间,类似dmesg里的时间戳
第二列的时间,含义看不明白,有些时候很长有些时候很短.
难道是因为3.5mm插座坏了的原因?
同样是插拔耳机,有些时候时间很短,有些时候就类似上次插拔的时间间隔.
但0.x秒的那几行从a上判断应该是正常插拔,并非硬件自身原因导致快速状态切换.
头像
astolia
论坛版主
帖子: 6396
注册时间: 2008-09-18 13:11

Re: pulseaudio --log-time 输出的timestamps两个数字是什么含义?

#6

帖子 astolia » 2017-09-22 18:04

都说到这份上还不明白?

代码: 全选

(2814.597|1424.326) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
(2830.576|  15.978) D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now plugged in
正好拿这两条来说
2814.597 + 15.978 = 2830.575,可以说和 2830.576 是相同的

明白了吗?第二列只是在说距离上一条日志产生后过了多久才产生了这条日志。你用grep处理了输出结果之后,这一列基本就没有意义了,因为它的“上一条”日志已经被grep过滤掉了,你也不知道上一条是什么内容
回复