Jump to content


Photo

AAC auto language selection


  • Please log in to reply
31 replies to this topic

#1 orizatriznyak

  • Member
  • 12 posts

0
Neutral

Posted 3 May 2015 - 10:01

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.



Re: AAC auto language selection #2 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 3 May 2015 - 10:22

Could please tell us on witch sattelite channel this occurs? Or it is happening on stream?


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: AAC auto language selection #3 orizatriznyak

  • Member
  • 12 posts

0
Neutral

Posted 3 May 2015 - 18:07

Amos at 4.0W, channels of T-Home package.



Re: AAC auto language selection #4 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

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?


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: AAC auto language selection #5 Dimitrij

  • PLi® Core member
  • 9,993 posts

+338
Excellent

Posted 3 May 2015 - 19:28

http://forums.openpl...che#entry450158


GigaBlue UHD Quad 4K /Lunix3-4K/Solo 4K


Re: AAC auto language selection #6 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

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.


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: AAC auto language selection #7 Dimitrij

  • PLi® Core member
  • 9,993 posts

+338
Excellent

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


Re: AAC auto language selection #8 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

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)?


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: AAC auto language selection #9 Dimitrij

  • PLi® Core member
  • 9,993 posts

+338
Excellent

Posted 4 May 2015 - 07:40


 

Is there a way to test it (any FTA channel on 9E or 13E with AAC)?

 

It seems only iptv.


Edited by Dimitrij, 4 May 2015 - 07:40.

GigaBlue UHD Quad 4K /Lunix3-4K/Solo 4K


Re: AAC auto language selection #10 Erik Slagter

  • PLi® Core member
  • 46,951 posts

+541
Excellent

Posted 4 May 2015 - 18:03

Maybe it is not working because we do not set CacheEntry for AAC. Also there is no cacheID for AAC.

That's probably because aac is not allowed in DVB ;)

* 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.


Re: AAC auto language selection #11 Rob van der Does

  • Senior Member
  • 7,766 posts

+184
Excellent

Posted 5 May 2015 - 05:40

That's probably because aac is not allowed in DVB ;)

Are you sure? According to Attached File  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.

But I'm far from an expert in this area, so I might have misinterpreted the text.

Re: AAC auto language selection #12 Dimitrij

  • PLi® Core member
  • 9,993 posts

+338
Excellent

Posted 5 May 2015 - 06:33

It's easy to add.


GigaBlue UHD Quad 4K /Lunix3-4K/Solo 4K


Re: AAC auto language selection #13 Erik Slagter

  • PLi® Core member
  • 46,951 posts

+541
Excellent

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.


Re: AAC auto language selection #14 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 5 May 2015 - 16:24

DVB-T maybe, who knows. Then it may be worth to add it.

 
Here is the code for latest HEAD.
 
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.

(We might need to adapt ptmparse.cpp if it uses different service type than 0x0f, dvbsnoop output might help here?)
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: AAC auto language selection #15 Dimitrij

  • PLi® Core member
  • 9,993 posts

+338
Excellent

Posted 5 May 2015 - 16:43

athoik

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


Re: AAC auto language selection #16 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 5 May 2015 - 16:59

No autoaudio level should be 4 (auto1 to auto4).

I guess OpenPLi will commit this one, if not I will compile it.
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: AAC auto language selection #17 Erik Slagter

  • PLi® Core member
  • 46,951 posts

+541
Excellent

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.


Re: AAC auto language selection #18 janejak

  • Senior Member
  • 284 posts

+11
Neutral

Posted 5 May 2015 - 18:29

In norway on DVB-T/T2 use MPEG-4, AAC-HE / AC3



Re: AAC auto language selection #19 Dimitrij

  • PLi® Core member
  • 9,993 posts

+338
Excellent

Posted 5 May 2015 - 18:47

Amos at 4.0W, channels of T-Home package


GigaBlue UHD Quad 4K /Lunix3-4K/Solo 4K


Re: AAC auto language selection #20 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 5 May 2015 - 18:49

PS. I forgot to upload patch...

Attached Files


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users