0x3fLL, 0x1ffffLL, 0xfffffLL, 0x7ffffffLL, 0x3ffffffffLL,
0x1ffffffffffLL, 0xffffffffffffffLL, 0x7fffffffffffffLL };
-EbmlElement::EbmlElement(
- signed long long id, signed long long size, signed long long pos, Stream fs)
+EbmlElement::EbmlElement(signed long long id, signed long long size, signed long long pos, Stream& fs)
{
return;
}
-EbmlElement* EbmlElement::ParseEbml(Stream fs)
+EbmlElement* EbmlElement::ParseEbml(Stream& fs)
{
return NULL;
return 'A';
}
-signed long long EbmlElement::VintToInt64(Stream fs)
+signed long long EbmlElement::VintToInt64(Stream& fs)
{
return 1;
}
-MkvPesFile::MkvPesFile(BackgroundWorker bw)
+MkvPesFile::MkvPesFile(BackgroundWorker& bw)
{
return;
}
-TrackInfo::TrackInfo(unsigned short pid, std::string codec, char* data, EbmlElement info)
+TrackInfo::TrackInfo(unsigned short pid, std::string codec, char* data, EbmlElement& info)
{
return;
}
#ifndef TSREMUXCPP_MKV_H_
#define TSREMUXCPP_MKV_H_
-#include <string>
#include "Utils.h"
#include "define_temporary.h"
-#include "define_stream.h"
#include "define_backgroundworker.h"
namespace TsRemux {
class EbmlElement {
public:
static EbmlElement* ParseEbml(Stream fs);
- signed long long Id;
- signed long long Size;
+ Int64 Id;
+ Int64 Size;
Stream DataStream;
EbmlElement* Children;
static char VintLength(char vint);
- static signed long long VintToInt64(Stream fs);
+ static Int64 VintToInt64(Stream fs);
protected:
- signed long long id;
- signed long long size;
- signed long long pos;
+ Int64 id;
+ Int64 size;
+ Int64 pos;
Stream fs;
- signed long long Position;
- EbmlElement(signed long long id, signed long long size, signed long long pos, Stream fs);
+ Int64 Position;
+ EbmlElement(Int64 id, Int64 size, Int64 pos, Stream& fs);
private:
-/* static const signed long long vsint_subtr[] = {
+/* static const Int64 vsint_subtr[] = {
0x3fLL, 0x1ffffLL, 0xfffffLL, 0x7ffffffLL, 0x3ffffffffLL,
0x1ffffffffffLL, 0xffffffffffffffLL, 0x7fffffffffffffLL };*/
};
struct TrackInfo {
public:
- TrackInfo(unsigned short pid, std::string codec, char* data, EbmlElement info);
- unsigned short pid;
+ TrackInfo(ushort pid, std::string codec, pByte data, EbmlElement& info);
+ ushort pid;
std::string codec;
char data[];
EbmlElement info;
class MkvPesFile {
public:
- MkvPesFile(BackgroundWorker bw);
+ MkvPesFile(BackgroundWorker& bw);
DTCP_Descriptor DtcpInfo;
- PesPacket* GetNextPesPackets(void);
- void Seek(signed long pcr);
+ boost::shared_array<PesPacket> GetNextPesPackets(void);
+ void Seek(Int32 pcr);
protected:
void GetInitialValues(void);
private:
- SortedList<signed long long, EbmlElement> Clusters;
+ SortedList<Int64, EbmlElement> Clusters;
signed int CuurentIndex;
- Dictionary<unsigned short, TrackInfo> TrackList;
+ Dictionary<ushort, TrackInfo> TrackList;
unsigned long long GetClusterClock(EbmlElement cluster);
- PesPacket BuildAc3Pes(signed long long timestamp, char data[], unsigned short pid);
- PesPacket BuildMpeg2Pes(signed long long timestamp, char data[], unsigned short pid);
- PesPacket BuildAvcPes(signed long long timestamp, char data[], unsigned short pid);
- PesPacket BuildVc1Pes(signed long long timestamp, char data[], unsigned short pid);
+ PesPacket BuildAc3Pes(Int64 timestamp, char data[], ushort pid);
+ PesPacket BuildMpeg2Pes(Int64 timestamp, char data[], ushort pid);
+ PesPacket BuildAvcPes(Int64 timestamp, char data[], ushort pid);
+ PesPacket BuildVc1Pes(Int64 timestamp, char data[], ushort pid);
void GetTimeStamps(void);
};
}
#include <cstring>
#include <ctime>
#include <list>
+#include <iosfwd>
#include <vector>
#include <stdexcept>
+#include <boost/date_time/posix_time/posix_time.hpp>
+#include <boost/shared_ptr.hpp>
#include <boost/shared_array.hpp>
#include <boost/filesystem.hpp>
-#include "tsremuxcpp_define.h"
+#include <boost/iostreams/stream.hpp>
+
+#define readonly const
namespace TsRemux {
+
+/** tsremuxcpp original **/
+typedef unsigned char byte;
+typedef unsigned short ushort;
+typedef unsigned int uint;
+typedef unsigned int UInt32;
+typedef signed int Int32;
+typedef unsigned long long UInt64;
+typedef signed long long Int64;
+typedef boost::posix_time::time_duration TimeSpan;
+typedef boost::shared_array<byte> pByte;
+
+class Stream {
+ public:
+ Stream(void);
+ ~Stream(void);
+ private:
+ std::ifstream& input_file;
+ std::ofstream& output_file;
+};
+
+class FileStream {
+ public:
+ FileStream(void);
+ ~FileStream(void);
+ private:
+ std::ifstream& input_file;
+ std::ofstream& output_file;
+};
+
enum TsFileType {
UNKNOWN = 0,
TS,