直接贴代码, 这个class用于TS包的PCR计算
头文件
#ifndef _CPCR_H_
#define _CPCR_H_
#pragma once
/*
Title:PCR的计算
Author:kagula
Date:2019-3-1
Environment:
【1】Visual studio 2017 Community Update5
Desc:
用于S PES包中PCR,PTS字段的设置。
Feature:
[1]取当前时间并生成PCR
参考文档
【1】《TS科普25 TS音视频同步及PCR相关计算》
https://blog.csdn.net/cabbage2008/article/details/50281475
上文中从PCR逆推时间的公式是错误的.
[2]《ISO/IEC 13818-1》 TS标准 Page35
Specifically:
PCR_ base(i) = ((system_ clock_ frequency * t(i)) DIV 300) % 2^33 (2-1)
PCR_ ext(i) = ((system_ clock_ frequency * t(i)) DIV 1) % 300 (2-2)
PCR(i) = PCR_ base(i) * 300 + PCR_ ext(i) (2-3)
*/
#include <string>
namespace kagula
{
class CPCR
{
public:
CPCR(const unsigned short hour,
const unsigned short minute,
const double second);//时分秒转PCR
CPCR(const long long PCR);//PCR转时分秒
CPCR();//设置当前时间到时分秒,并转PCR
~CPCR();
unsigned short getHour() { return