示例#1
0
void MP4HvcCAtom::Generate()
{
    MP4Atom::Generate();
	
#if 0 //cwm 322
	uint8_t *out_buf = NULL;
	uint32_t out_size = 0;
	if(NULL != m_File.m_pPsData)
	{
		mov_write_hvcc_tag(m_File.m_pPsData, m_File.m_ui32PsDataSize, &out_buf, &out_size);
	    m_pProperties[0]->SetReadOnly(false);
	    ((MP4BytesProperty*)m_pProperties[0])->
	    SetValue(out_buf, out_size);
	    m_pProperties[0]->SetReadOnly(true);
		m_File.m_ui32PsDataSize = 0;
		free(m_File.m_pPsData);
	}
#else //cwm 322

	((MP4Integer8Property*)m_pProperties[0])->SetValue(1);

	#if 0 //cwm 351
	((MP4Integer8Property*)m_pProperties[0])->SetValue(1);

    m_pProperties[4]->SetReadOnly(false);
    ((MP4BitfieldProperty*)m_pProperties[4])->SetValue(0x3f);
    m_pProperties[4]->SetReadOnly(true);

    m_pProperties[6]->SetReadOnly(false);
    ((MP4BitfieldProperty*)m_pProperties[6])->SetValue(0x7);
    m_pProperties[6]->SetReadOnly(true);
	#endif //cwm 351
	#if 0 //cwm 389
	const uint8_t buffer[4] = {0x12, 0x34, 0x56, 0x78};
	
    MP4BytesProperty *pUnit;
	if(this->FindProperty("hvcC.sequenceEntries.sequenceParameterSetNALUnit",
                                    (MP4Property **)&pUnit) == false)
	{
		PrintInfo("hvcC.sequenceEntries.sequenceParameterSetNALUnit failed");
	}
    pUnit->AddValue(buffer, sizeof(buffer));
	#endif //cwm 389
	#if 0 //cwm_add 336
	uint8_t *out_buf = NULL;
	uint32_t out_size = 0;
	if(NULL != m_File.m_pPsData)
	{
		mov_write_hvcc_tag(m_File.m_pPsData, m_File.m_ui32PsDataSize, &out_buf, &out_size);
	    m_pProperties[0]->SetReadOnly(false);
	    ((MP4BytesProperty*)m_pProperties[0])->
	    SetValue(out_buf, out_size);
	    m_pProperties[0]->SetReadOnly(true);
		m_File.m_ui32PsDataSize = 0;
		free(m_File.m_pPsData);
	}

	#endif //cwm_add 336
	
#endif //cwm 322

}