1 #ifndef TSREMUXCPP_MKV_H_
2 #define TSREMUXCPP_MKV_H_
5 #include "define_temporary.h"
6 #include "define_backgroundworker.h"
19 static boost::shared_ptr<EbmlElement> ParseEbml(Stream fs);
23 void SetSize(Int64 size);
25 void SetPos(Int64 pos);
26 boost::shared_ptr<Stream> GetStream(void);
27 void SetStream(boost::shared_ptr<Stream> fs);
29 boost::shared_ptr<EbmlElement> Children;
30 static byte VintLength(char vint);
31 static Int64 VintToInt64(Stream fs);
36 boost::shared_ptr<Stream> fs;
37 EbmlElement(Int64 id, Int64 size, Int64 pos, boost::shared_ptr<Stream> fs);
42 TrackInfo(ushort pid, std::string codec, pByte data, EbmlElement& info);
51 MkvPesFile(BackgroundWorker& bw);
52 DTCP_Descriptor DtcpInfo;
53 boost::shared_array<PesPacket> GetNextPesPackets(void);
56 void GetInitialValues(void);
58 SortedList<Int64, EbmlElement> Clusters;
60 Dictionary<ushort, TrackInfo> TrackList;
61 UInt64 GetClusterClock(EbmlElement cluster);
62 PesPacket BuildAc3Pes(Int64 timestamp, pByte data, ushort pid);
63 PesPacket BuildMpeg2Pes(Int64 timestamp, pByte data, ushort pid);
64 PesPacket BuildAvcPes(Int64 timestamp, pByte data, ushort pid);
65 PesPacket BuildVc1Pes(Int64 timestamp, pByte data, ushort pid);
66 void GetTimeStamps(void);