void CAEBitstreamPacker::Pack(CAEStreamInfo &info, uint8_t* data, int size) { switch (info.GetDataType()) { case CAEStreamInfo::STREAM_TYPE_TRUEHD: PackTrueHD(info, data, size); break; case CAEStreamInfo::STREAM_TYPE_DTSHD: PackDTSHD (info, data, size); break; case CAEStreamInfo::STREAM_TYPE_DTSHD_CORE: case CAEStreamInfo::STREAM_TYPE_DTS_512: m_dataSize = CAEPackIEC61937::PackDTS_512(data, size, m_packedBuffer, info.IsLittleEndian()); break; case CAEStreamInfo::STREAM_TYPE_DTS_1024: m_dataSize = CAEPackIEC61937::PackDTS_1024(data, size, m_packedBuffer, info.IsLittleEndian()); break; case CAEStreamInfo::STREAM_TYPE_DTS_2048: m_dataSize = CAEPackIEC61937::PackDTS_2048(data, size, m_packedBuffer, info.IsLittleEndian()); break; default: /* pack the data into an IEC61937 frame */ CAEPackIEC61937::PackFunc pack = info.GetPackFunc(); if (pack) m_dataSize = pack(data, size, m_packedBuffer); } }
void CAEBitstreamPacker::Pack(CAEStreamInfo &info, uint8_t* data, int size) { m_pauseDuration = 0; switch (info.m_type) { case CAEStreamInfo::STREAM_TYPE_TRUEHD: PackTrueHD(info, data, size); break; case CAEStreamInfo::STREAM_TYPE_DTSHD: PackDTSHD (info, data, size); break; case CAEStreamInfo::STREAM_TYPE_AC3: m_dataSize = CAEPackIEC61937::PackAC3(data, size, m_packedBuffer); break; case CAEStreamInfo::STREAM_TYPE_EAC3: PackEAC3 (info, data, size); break; case CAEStreamInfo::STREAM_TYPE_DTSHD_CORE: case CAEStreamInfo::STREAM_TYPE_DTS_512: m_dataSize = CAEPackIEC61937::PackDTS_512(data, size, m_packedBuffer, info.m_dataIsLE); break; case CAEStreamInfo::STREAM_TYPE_DTS_1024: m_dataSize = CAEPackIEC61937::PackDTS_1024(data, size, m_packedBuffer, info.m_dataIsLE); break; case CAEStreamInfo::STREAM_TYPE_DTS_2048: m_dataSize = CAEPackIEC61937::PackDTS_2048(data, size, m_packedBuffer, info.m_dataIsLE); break; default: CLog::Log(LOGERROR, "CAEBitstreamPacker::Pack - no pack function"); } }