int fd = 0, rc = 0;
char fileName[255] = {0};
sprintf(fileName, "/tmp/ait.%d", orgid);
+
+ if (data[6] > 0) {
+ eDebug("section_number %d > 0", data[6]);
+ data[6] = 0;
+ }
+ if (data[7] > data[6]) {
+ eDebug("last_section_number %d > section_number %d", data[7], data[6]);
+ data[7] = data[6];
+ }
+
if((fd = open(fileName, O_RDWR|O_CREAT|O_TRUNC)) < 0)
{
eDebug("Fail to save a AIT Data.");
eraseHbbTVApplications(&m_HbbTVApplications);
- memcpy(m_AITData, ptr->getBufferData(), 4096);
-
int sectionLength = 0;
for (std::vector<ApplicationInformationSection*>::const_iterator it = ptr->getSections().begin(); it != ptr->getSections().end(); ++it)
{
std::list<ApplicationInformation *>::const_iterator i = (*it)->getApplicationInformation()->begin();
- sectionLength += (*it)->getSectionLength();
+ memcpy(m_AITData, ptr->getBufferData(), 4096);
+ sectionLength = (*it)->getSectionLength() + 3;
eDebug("Section Length : %d, Total Section Length : %d", (*it)->getSectionLength(), sectionLength);
for (; i != (*it)->getApplicationInformation()->end(); ++i)
{
std::string boundaryExtension = "";
int controlCode = (*i)->getApplicationControlCode();
- ApplicationIdentifier * applicationIdentifier = (*i)->getApplicationIdentifier();
+ const ApplicationIdentifier * applicationIdentifier = (*i)->getApplicationIdentifier();
profilecode = 0;
orgid = applicationIdentifier->getOrganisationId();
appid = applicationIdentifier->getApplicationId();
eDebug("found applicaions ids >> pid : %x, orgid : %d, appid : %d", m_ait_pid, orgid, appid);
+ if (controlCode == 1)
+ saveData(orgid, m_AITData, sectionLength);
if (controlCode == 1 || controlCode == 2) /* 1:AUTOSTART, 2:ETC */
{
for (DescriptorConstIterator desc = (*i)->getDescriptors()->begin();
case APPLICATION_DESCRIPTOR:
{
ApplicationDescriptor* applicationDescriptor = (ApplicationDescriptor*)(*desc);
- ApplicationProfileList* applicationProfiles = applicationDescriptor->getApplicationProfiles();
+ const ApplicationProfileList* applicationProfiles = applicationDescriptor->getApplicationProfiles();
ApplicationProfileConstIterator interactionit = applicationProfiles->begin();
for(; interactionit != applicationProfiles->end(); ++interactionit)
{
}
if(!hbbtvUrl.empty())
{
- char* uu = hbbtvUrl.c_str();
+ const char* uu = hbbtvUrl.c_str();
if(!strncmp(uu, "http://", 7) || !strncmp(uu, "dvb://", 6) || !strncmp(uu, "https://", 8))
{
if(controlCode == 1) m_HBBTVUrl = hbbtvUrl;
if (m_HbbTVApplications.size())
{
- saveData(orgid, m_AITData, sectionLength);//4096);
for(HbbTVApplicationInfoListConstIterator infoiter = m_HbbTVApplications.begin() ; infoiter != m_HbbTVApplications.end() ; ++infoiter)
{
char fileName[255] = {0};
{
for (std::vector<OCSection*>::const_iterator it = ptr->getSections().begin(); it != ptr->getSections().end(); ++it)
{
- unsigned char* sectionData = (*it)->getData();
+ unsigned char* sectionData = (unsigned char*)(*it)->getData();
}
}
/* for now, do not keep listening for table updates */
video.type = videoStream::vtMPEG4_H264;
isvideo = 1;
//break; fall through !!!
+ case 0x24: // H265 HEVC
+ if (!isvideo)
+ {
+ video.type = videoStream::vtH265_HEVC;
+ isvideo = 1;
+ }
+ //break; fall through !!!
case 0x10: // MPEG 4 Part 2
if (!isvideo)
{