/* if the buffer has not been setup yet */ if (!m_trueHD) { /* create the buffer and copy in the MAT codes */ m_trueHD = new uint8_t[MAT_FRAME_SIZE]; memset(m_trueHD, 0, MAT_FRAME_SIZE); memcpy(m_trueHD, mat_start_code, sizeof(mat_start_code)); memcpy(m_trueHD + (12 * TRUEHD_FRAME_OFFSET) - BURST_HEADER_SIZE + MAT_MIDDLE_CODE_OFFSET, mat_middle_code, sizeof(mat_middle_code)); memcpy(m_trueHD + MAT_FRAME_SIZE - sizeof(mat_end_code), mat_end_code, sizeof(mat_end_code)); } if (m_trueHDPos == 0 ) memcpy(m_trueHD + (m_trueHDPos * TRUEHD_FRAME_OFFSET) + sizeof(mat_start_code ), m_buffer, size); else if (m_trueHDPos == 12) memcpy(m_trueHD + (m_trueHDPos * TRUEHD_FRAME_OFFSET) + sizeof(mat_middle_code) + MAT_MIDDLE_CODE_OFFSET, m_buffer, size); else