It seems like auto language selection is not working if the prefered language only exists in AAC format.
Image version: 2015-04-25
Please solve the problem.
Posted 3 May 2015 - 19:06
Maybe it is not working because we do not set CacheEntry for AAC. Also there is no cacheID for AAC.
if (m_dvb_service && ((i != -1) || (program.audioStreams.size() == 1) || ((m_dvb_service->getCacheEntry(eDVBService::cMPEGAPID) == -1) && (m_dvb_service->getCacheEntry(eDVBService::cAC3PID)== -1) && (m_dvb_service->getCacheEntry(eDVBService::cDDPPID)== -1) && (m_dvb_service->getCacheEntry(eDVBService::cAACHEAPID) == -1)))) { m_dvb_service->setCacheEntry(eDVBService::cMPEGAPID, apidtype == eDVBAudio::aMPEG ? apid : -1); m_dvb_service->setCacheEntry(eDVBService::cAC3PID, apidtype == eDVBAudio::aAC3 ? apid : -1); m_dvb_service->setCacheEntry(eDVBService::cDDPPID, apidtype == eDVBAudio::aDDP ? apid : -1); m_dvb_service->setCacheEntry(eDVBService::cAACHEAPID, apidtype == eDVBAudio::aAACHE ? apid : -1); } .... enum cacheID { cVPID, cMPEGAPID, cTPID, cPCRPID, cAC3PID, cVTYPE, cACHANNEL, cAC3DELAY, cPCMDELAY, cSUBTITLE, cAACHEAPID=12, cDDPPID, cacheMax };
@OpenPLi Is correct to add cAACPID? And what value we should use?
Posted 3 May 2015 - 19:28
GigaBlue UHD Quad 4K /Lunix3-4K/Solo 4K
Posted 3 May 2015 - 20:01
Maybe you had to increase also autoaudio_level to 5 (in lib/dvb/pmt.cpp)?
- int autoaudio_level = 4; + int autoaudio_level = 5;
Also your patch now does not apply so you have to recreate on top of latest changes.
Posted 3 May 2015 - 20:49
Maybe you had to increase also autoaudio_level to 5 (in lib/dvb/pmt.cpp)?
- int autoaudio_level = 4; + int autoaudio_level = 5;Also your patch now does not apply so you have to recreate on top of latest changes.
You could create a new patch?
I do not have Linux operating system to check the patch.
GigaBlue UHD Quad 4K /Lunix3-4K/Solo 4K
Posted 3 May 2015 - 21:13
Maybe you had to increase also autoaudio_level to 5 (in lib/dvb/pmt.cpp)?
- int autoaudio_level = 4; + int autoaudio_level = 5;Also your patch now does not apply so you have to recreate on top of latest changes.
You could create a new patch?
I do not have Linux operating system to check the patch.
Is there a way to test it (any FTA channel on 9E or 13E with AAC)?
Posted 4 May 2015 - 18:03
That's probably because aac is not allowed in DVBMaybe it is not working because we do not set CacheEntry for AAC. Also there is no cacheID for AAC.
* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.
Posted 5 May 2015 - 05:40
Are you sure? According to en_300468v010901p.pdf 1.2MB 2 downloads it is part of the DVB-standard, and if I'm to believe https://en.wikipedia...eo_Broadcasting it's actually being used in some countries for DVB-T.That's probably because aac is not allowed in DVB
Posted 5 May 2015 - 07:48
DVB-T maybe, who knows. Then it may be worth to add it.
* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.
Posted 5 May 2015 - 16:24
DVB-T maybe, who knows. Then it may be worth to add it.
Subject: [PATCH] Cache AAC pid in lamedb diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index d5575ac..5c28e7a 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -275,7 +275,7 @@ public: { cVPID, cMPEGAPID, cTPID, cPCRPID, cAC3PID, cVTYPE, cACHANNEL, cAC3DELAY, cPCMDELAY, - cSUBTITLE, cAACHEAPID=12, cDDPPID, cacheMax + cSUBTITLE, cAACHEAPID=12, cDDPPID, cAACAPID, cacheMax }; int getCacheEntry(cacheID); diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index ceddf0a..b6f71ba 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -360,6 +360,7 @@ int eDVBServicePMTHandler::getProgramInfo(program &program) int cached_apid_ddp = -1; int cached_apid_mpeg = -1; int cached_apid_aache = -1; + int cached_apid_aac = -1; int cached_vpid = -1; int cached_tpid = -1; int ret = -1; @@ -380,6 +381,7 @@ int eDVBServicePMTHandler::getProgramInfo(program &program) cached_apid_ac3 = m_service->getCacheEntry(eDVBService::cAC3PID); cached_apid_ddp = m_service->getCacheEntry(eDVBService::cDDPPID); cached_apid_aache = m_service->getCacheEntry(eDVBService::cAACHEAPID); + cached_apid_aac = m_service->getCacheEntry(eDVBService::cAACAPID); cached_tpid = m_service->getCacheEntry(eDVBService::cTPID); } @@ -392,6 +394,7 @@ int eDVBServicePMTHandler::getProgramInfo(program &program) int autoaudio_ac3 = -1; int autoaudio_ddp = -1; int autoaudio_aache = -1; + int autoaudio_aac = -1; int autoaudio_level = 4; std::string configvalue; @@ -454,7 +457,8 @@ int eDVBServicePMTHandler::getProgramInfo(program &program) if (program.audioStreams[i].pid == cached_apid_ac3 || program.audioStreams[i].pid == cached_apid_ddp || program.audioStreams[i].pid == cached_apid_mpeg - || program.audioStreams[i].pid == cached_apid_aache) + || program.audioStreams[i].pid == cached_apid_aache + || program.audioStreams[i].pid == cached_apid_aac) { /* if we find the cached pids, this will be our default stream */ audio_cached = i; @@ -463,7 +467,8 @@ int eDVBServicePMTHandler::getProgramInfo(program &program) if ((program.audioStreams[i].type != audioStream::atMPEG) && ((first_non_mpeg == -1) || (program.audioStreams[i].pid == cached_apid_ac3) || (program.audioStreams[i].pid == cached_apid_ddp) - || (program.audioStreams[i].pid == cached_apid_aache))) + || (program.audioStreams[i].pid == cached_apid_aache) + || (program.audioStreams[i].pid == cached_apid_aac))) { first_non_mpeg = i; } @@ -482,6 +487,8 @@ int eDVBServicePMTHandler::getProgramInfo(program &program) autoaudio_ddp = i; else if (program.audioStreams[i].type == audioStream::atAACHE && (autoaudio_level > x || autoaudio_aache == -1)) autoaudio_aache = i; + else if (program.audioStreams[i].type == audioStream::atAAC && (autoaudio_level > x || autoaudio_aac == -1)) + autoaudio_aac = i; autoaudio_level = x; break; } @@ -540,6 +547,8 @@ int eDVBServicePMTHandler::getProgramInfo(program &program) program.defaultAudioStream = autoaudio_ddp; else if (autoaudio_aache != -1) program.defaultAudioStream = autoaudio_aache; + else if (autoaudio_aac != -1) + program.defaultAudioStream = autoaudio_aac; else if (first_non_mpeg != -1) program.defaultAudioStream = first_non_mpeg; } @@ -626,6 +635,15 @@ int eDVBServicePMTHandler::getProgramInfo(program &program) program.audioStreams.push_back(s); ++cnt; } + if ( cached_apid_aac != -1 ) + { + audioStream s; + s.type = audioStream::atAAC; + s.pid = cached_apid_aac; + s.rdsPid = -1; + program.audioStreams.push_back(s); + ++cnt; + } if ( cached_apid_mpeg != -1 ) { audioStream s; diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 29f7975..9c9a560 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -1979,6 +1979,9 @@ int eDVBServicePlay::getInfo(int w) apid = m_dvb_service->getCacheEntry(eDVBService::cAACHEAPID); if (apid != -1) return apid; + apid = m_dvb_service->getCacheEntry(eDVBService::cAACAPID); + if (apid != -1) + return apid; } if (no_program_info) return -1; if (program.audioStreams.empty()) return -1; return program.audioStreams[0].pid; case sPCRPID: @@ -2206,12 +2209,14 @@ int eDVBServicePlay::selectAudioStream(int i) || ((m_dvb_service->getCacheEntry(eDVBService::cMPEGAPID) == -1) && (m_dvb_service->getCacheEntry(eDVBService::cAC3PID)== -1) && (m_dvb_service->getCacheEntry(eDVBService::cDDPPID)== -1) - && (m_dvb_service->getCacheEntry(eDVBService::cAACHEAPID) == -1)))) + && (m_dvb_service->getCacheEntry(eDVBService::cAACHEAPID) == -1) + && (m_dvb_service->getCacheEntry(eDVBService::cAACAPID) == -1)))) { m_dvb_service->setCacheEntry(eDVBService::cMPEGAPID, apidtype == eDVBAudio::aMPEG ? apid : -1); m_dvb_service->setCacheEntry(eDVBService::cAC3PID, apidtype == eDVBAudio::aAC3 ? apid : -1); m_dvb_service->setCacheEntry(eDVBService::cDDPPID, apidtype == eDVBAudio::aDDP ? apid : -1); m_dvb_service->setCacheEntry(eDVBService::cAACHEAPID, apidtype == eDVBAudio::aAACHE ? apid : -1); + m_dvb_service->setCacheEntry(eDVBService::cAACAPID, apidtype == eDVBAudio::aAAC ? apid : -1); } h.resetCachedProgram(); --I test that compiles successfully. I cannot test if it works cause I do not have an access to such dvb-t/s program.
Posted 5 May 2015 - 16:43
It is not necessary?
http://forums.openpl...ndpost&p=489884
You can compile binaries еnigma for et8000?
GigaBlue UHD Quad 4K /Lunix3-4K/Solo 4K
Posted 5 May 2015 - 16:59
Posted 5 May 2015 - 18:10
It seems there already is an entry for aac-he, why isn't that simply aac actually?
* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.
0 members, 0 guests, 0 anonymous users