add UHD Blu-Ray disk type, command line option, enable UHD Blu-Ray files, folders and playlists to be created and enable UHD Blu-Ray in MPLS
parent
08106ada39
commit
622f41a610
|
@ -110,7 +110,7 @@ bool BlurayHelper::open(const string& dst, DiskType dt, int64_t diskSize, int ex
|
|||
|
||||
bool BlurayHelper::createBluRayDirs()
|
||||
{
|
||||
if (m_dt == DT_BLURAY)
|
||||
if (m_dt == DT_BLURAY || m_dt == UHD_BLURAY)
|
||||
{
|
||||
if (m_isoWriter) {
|
||||
m_isoWriter->createDir("BDMV/META");
|
||||
|
@ -168,7 +168,10 @@ bool BlurayHelper::writeBluRayFiles(bool usedBlackPL, int mplsNum, int blankNum,
|
|||
|
||||
if (m_dt == DT_BLURAY) {
|
||||
bdMovieObjectData[5] = bdIndexData[5] = '2';
|
||||
bdIndexData[15] = 0;
|
||||
fileSize = 0x78;
|
||||
}
|
||||
else if (m_dt == UHD_BLURAY) {
|
||||
bdMovieObjectData[5] = bdIndexData[5] = '3';
|
||||
fileSize = 0x78;
|
||||
}
|
||||
else {
|
||||
|
@ -226,6 +229,8 @@ bool BlurayHelper::createCLPIFile(TSMuxer* muxer, int clpiNum, bool doLog)
|
|||
string version_number;
|
||||
if (m_dt == DT_BLURAY)
|
||||
memcpy(&clpiParser.version_number, "0200", 5);
|
||||
else if (m_dt == UHD_BLURAY)
|
||||
memcpy(&clpiParser.version_number, "0300", 5);
|
||||
else
|
||||
memcpy(&clpiParser.version_number, "0100", 5);
|
||||
clpiParser.clip_stream_type = 1; // AV stream
|
||||
|
@ -239,6 +244,9 @@ bool BlurayHelper::createCLPIFile(TSMuxer* muxer, int clpiNum, bool doLog)
|
|||
if (m_dt == DT_BLURAY) {
|
||||
LTRACE(LT_INFO, 2, "Creating Blu-ray stream info and seek index");
|
||||
}
|
||||
else if (m_dt == UHD_BLURAY) {
|
||||
LTRACE(LT_INFO, 2, "Creating UHD Blu-ray stream info and seek index");
|
||||
}
|
||||
else {
|
||||
LTRACE(LT_INFO, 2, "Creating AVCHD stream info and seek index");
|
||||
}
|
||||
|
@ -411,6 +419,9 @@ bool BlurayHelper::createMPLSFile(TSMuxer* mainMuxer, TSMuxer* subMuxer,
|
|||
if (dt == DT_BLURAY) {
|
||||
LTRACE(LT_INFO, 2, "Creating Blu-ray playlist");
|
||||
}
|
||||
else if (dt == UHD_BLURAY) {
|
||||
LTRACE(LT_INFO, 2, "Creating UHD Blu-ray playlist");
|
||||
}
|
||||
else {
|
||||
LTRACE(LT_INFO, 2, "Creating AVCHD playlist");
|
||||
}
|
||||
|
|
|
@ -91,7 +91,9 @@ DiskType checkBluRayMux(const char* metaFileName, int& autoChapterLen, vector<do
|
|||
}
|
||||
}
|
||||
|
||||
if (str.find("--blu-ray") != string::npos)
|
||||
if (str.find("--blu-ray v3") != string::npos)
|
||||
result = UHD_BLURAY;
|
||||
else if (str.find("--blu-ray") != string::npos)
|
||||
result = DT_BLURAY;
|
||||
else if (str.find("--avchd") != string::npos)
|
||||
result = DT_AVCHD;
|
||||
|
|
|
@ -1434,6 +1434,8 @@ int MPLSParser::compose(uint8_t* buffer, int bufferSize, DiskType dt)
|
|||
std::string version_number;
|
||||
if (dt == DT_BLURAY)
|
||||
version_number = "0200";
|
||||
else if (dt == UHD_BLURAY)
|
||||
version_number = "0300";
|
||||
else
|
||||
version_number = "0100";
|
||||
CLPIStreamInfo::writeString(type_indicator.c_str(), writer, 4);
|
||||
|
@ -2853,6 +2855,8 @@ int MovieObject::compose(uint8_t* buffer, int len, DiskType dt)
|
|||
CLPIStreamInfo::writeString("MOBJ", writer, 4);
|
||||
if (dt == DT_BLURAY)
|
||||
CLPIStreamInfo::writeString("0200", writer, 4);
|
||||
else if (dt == UHD_BLURAY)
|
||||
CLPIStreamInfo::writeString("0300", writer, 4);
|
||||
else
|
||||
CLPIStreamInfo::writeString("0100", writer, 4);
|
||||
writer.putBits(32,0); //uint32_t ExtensionData_start_address
|
||||
|
|
|
@ -94,7 +94,7 @@ struct AVRational{
|
|||
|
||||
typedef std::vector<std::pair<int, int> > PriorityDataInfo; // mark some data as priority data
|
||||
|
||||
enum DiskType {DT_NONE, DT_BLURAY, DT_AVCHD};
|
||||
enum DiskType {DT_NONE, DT_BLURAY, UHD_BLURAY, DT_AVCHD};
|
||||
|
||||
uint16_t AV_RB16(const uint8_t* buffer);
|
||||
uint32_t AV_RB24(const uint8_t* buffer);
|
||||
|
|
Loading…
Reference in New Issue