fix ait parsing descriptors in any order
authorsmlee <smlee@dev3>
Wed, 20 Dec 2017 01:29:52 +0000 (10:29 +0900)
committersmlee <smlee@dev3>
Wed, 20 Dec 2017 01:29:52 +0000 (10:29 +0900)
lib/dvb/pmt.cpp

index fbd9b8f..ded43a0 100644 (file)
@@ -289,6 +289,7 @@ void eDVBServicePMTHandler::AITready(int error)
                        {
                                std::string hbbtvUrl = "", applicaionName = "";
                                std::string boundaryExtension = "";
                        {
                                std::string hbbtvUrl = "", applicaionName = "";
                                std::string boundaryExtension = "";
+                               std::string TPDescPath = "", SALDescPath = "";
                                
                                int controlCode = (*i)->getApplicationControlCode();
                                const ApplicationIdentifier * applicationIdentifier = (*i)->getApplicationIdentifier();
                                
                                int controlCode = (*i)->getApplicationControlCode();
                                const ApplicationIdentifier * applicationIdentifier = (*i)->getApplicationIdentifier();
@@ -351,7 +352,7 @@ void eDVBServicePMTHandler::AITready(int error)
                                                                        InterActionTransportConstIterator interactionit = transport->getInteractionTransports()->begin();
                                                                        for(; interactionit != transport->getInteractionTransports()->end(); ++interactionit)
                                                                        {
                                                                        InterActionTransportConstIterator interactionit = transport->getInteractionTransports()->begin();
                                                                        for(; interactionit != transport->getInteractionTransports()->end(); ++interactionit)
                                                                        {
-                                                                               hbbtvUrl = (*interactionit)->getUrlBase()->getUrl();
+                                                                               TPDescPath = (*interactionit)->getUrlBase()->getUrl();
                                                                                break;
                                                                        }
                                                                        break;
                                                                                break;
                                                                        }
                                                                        break;
@@ -364,7 +365,7 @@ void eDVBServicePMTHandler::AITready(int error)
                                                case SIMPLE_APPLICATION_LOCATION_DESCRIPTOR:
                                                {
                                                        SimpleApplicationLocationDescriptor *applicationlocation = (SimpleApplicationLocationDescriptor*)(*desc);
                                                case SIMPLE_APPLICATION_LOCATION_DESCRIPTOR:
                                                {
                                                        SimpleApplicationLocationDescriptor *applicationlocation = (SimpleApplicationLocationDescriptor*)(*desc);
-                                                       hbbtvUrl += applicationlocation->getInitialPath();
+                                                       SALDescPath = applicationlocation->getInitialPath();
                                                        break;
                                                }
                                                case APPLICATION_USAGE_DESCRIPTOR:
                                                        break;
                                                }
                                                case APPLICATION_USAGE_DESCRIPTOR:
@@ -373,6 +374,7 @@ void eDVBServicePMTHandler::AITready(int error)
                                                        break;
                                                }
                                        }
                                                        break;
                                                }
                                        }
+                                       hbbtvUrl = TPDescPath + SALDescPath;
                                }
                                if(!hbbtvUrl.empty())
                                {
                                }
                                if(!hbbtvUrl.empty())
                                {