Jump to content


Photo

Openpli-5 (still next master)


  • Please log in to reply
1177 replies to this topic

Re: Openpli-5 (still next master) #341 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 26 May 2016 - 07:52

@Beeker can You build master-next on ubuntu 16.04 ? (gcc > 5.0)



Re: Openpli-5 (still next master) #342 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 26 May 2016 - 13:47

lol, I've been patching all the oe-core stuff for building using my host's gcc-5 compiler (fedora 23) manually.

But PLi4 itself uses gcc-4.9 so no trouble with kernel's and such.



Re: Openpli-5 (still next master) #343 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 26 May 2016 - 14:44

O I'm using master-next that is all gcc5.3 and that's ok for all pli supported boxes.

 

Question was if master-next build works when native compiler is gcc5.3 after all it's only needed to build the croscompilers. and perhaps some tools.



Re: Openpli-5 (still next master) #344 Beeker

  • PLi® Contributor
  • 1,616 posts

+204
Excellent

Posted 26 May 2016 - 16:36

@Beeker can You build master-next on ubuntu 16.04 ? (gcc > 5.0)

 

Master-next no problem with Ubuntu 16.04 (gcc 5.3.1).


Dreambox dm920, Uclan Ustym4Kpro, Gigablue UHD TRIO 4K and Dreambox dm8000. Wavefrontier T55 13.0|19.2|23.5|28.2 + Ziggo.


Re: Openpli-5 (still next master) #345 Beeker

  • PLi® Contributor
  • 1,616 posts

+204
Excellent

Posted 28 May 2016 - 09:31

First test with gcc 6.1.1 looks good for kernel.

 

I only have to add the file compiler-gcc6.h  to  openpli-oe-core/build/tmp/work-shared/dm8000/kernel-source/include/linux.

 

It isn't present when compiling with gcc 6.1.1, but with gcc 5.3.0 it is.

 

A patch for dreambox_3.2.bb is needed to ship the file by default.

 

faac_1.28 fails to compile

 

So some work to do...


Dreambox dm920, Uclan Ustym4Kpro, Gigablue UHD TRIO 4K and Dreambox dm8000. Wavefrontier T55 13.0|19.2|23.5|28.2 + Ziggo.


Re: Openpli-5 (still next master) #346 Beeker

  • PLi® Contributor
  • 1,616 posts

+204
Excellent

Posted 28 May 2016 - 18:59

Voila..

Image and feed for dm8000 with gcc 6.1.1.

One of these days, gcc 6.1.1 will be the default in OE-core.So good time to test it now.

For anyone who is interested.

Issues:

1- comiler-gcc6.h is missing.At least for dreambox.

Add a patch to linux-dreambox_3.2.bb.

			file://fixme-hardfloat.patch \
			file://0001-correctly-initiate-nand-flash-ecc-config-when-old-2n.patch \
+			file://kernel-add-support-for-gcc6.patch \
			file://defconfig \

info:

 

https://lkml.org/lkml/2015/4/14/576

 

2- Enigma2 fails to compile due to narrowing conversations error. The old code is forbidden now by gcc 6.

Patch:

diff --git a/lib/base/estring.cpp b/lib/base/estring.cpp
index 6fd53fc..4258ddb 100644
--- a/lib/base/estring.cpp
+++ b/lib/base/estring.cpp
@@ -10,8 +10,8 @@
 std::string buildShortName( const std::string &str )
 {
 	std::string tmp;
-	static char stropen[3] = { 0xc2, 0x86, 0x00 };
-	static char strclose[3] = { 0xc2, 0x87, 0x00 };
+	const static char stropen[3] = { (char)0xc2, (char)0x86, (char)0x00 };
+	const static char strclose[3] = { (char)0xc2, (char)0x87, (char)0x00 };
 	size_t open=std::string::npos-1;
 	while ( (open = str.find(stropen, open+2)) != std::string::npos )
 	{

Info how to,why.(i used this as a example how to).

 

https://github.com/g...0d68c7ce01979cd

 

3- iperf fails to compile.

Solution. Upgrade to 3.1.2

In openpli-enigma2-feed.bb

	hddtemp \
	hdparm \
	inadyn-mt \
-	iperf \
+	iperf3 \
	joe \
	libbluray \
	libudfread 

Attached Files


Dreambox dm920, Uclan Ustym4Kpro, Gigablue UHD TRIO 4K and Dreambox dm8000. Wavefrontier T55 13.0|19.2|23.5|28.2 + Ziggo.


Re: Openpli-5 (still next master) #347 Beeker

  • PLi® Contributor
  • 1,616 posts

+204
Excellent

Posted 29 May 2016 - 11:53

Problem faac also solved.

 

bbappend and patch for copy to openpli-oe-core/meta-openpli/recipes-multimedia.

 

Now just wait at guys of OE-core to putt gcc6 in master.It is now in master-next.

 

And wait at openpli-dev's to update OE-core in openpli-core of master-next.

 

But in git master HEAD of OE-core  more problems like giflib.

 

Anyway..gcc6 feels faster than 5.3.0. In build-environment and E2 is faster with restart :)

 

 

Attached Files


Dreambox dm920, Uclan Ustym4Kpro, Gigablue UHD TRIO 4K and Dreambox dm8000. Wavefrontier T55 13.0|19.2|23.5|28.2 + Ziggo.


Re: Openpli-5 (still next master) #348 daimon

  • Senior Member
  • 224 posts

+5
Neutral

Posted 1 June 2016 - 08:13

new build  fail

 

ERROR: Task 214 /openpli-oe-core/meta-openpli/recipes-openpli/enigma2-plugins/enigma2-plugins.bb, do_compile) failed with exit code '1'


Re: Openpli-5 (still next master) #349 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 1 June 2016 - 10:59

Yes indeed autoresolution plugin :

make[2]: Entering directory `/home/christophe/openpli50/openpli-oe-core/build/tmp/work/mips32el-oe-linux/enigma2-plugins/y-gitAUTOINC+5351434537-r0/git/autoresolution'
| make[2]: *** No rule to make target `cs.mo', needed by `all'.  Stop.
| make[2]: Leaving directory `/home/christophe/openpli50/openpli-oe-core/build/tmp/work/mips32el-oe-linux/enigma2-plugins/y-gitAUTOINC+5351434537-r0/git/autoresolution'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory `/home/christophe/openpli50/openpli-oe-core/build/tmp/work/mips32el-oe-linux/enigma2-plugins/y-gitAUTOINC+5351434537-r0/git'
| make: *** [all] Error 2
| ERROR: oe_runmake failed
| ERROR: Function failed: do_compile (log file is located at /home/christophe/openpli50/openpli-oe-core/build/tmp/work/mips32el-oe-linux/enigma2-plugins/y-gitAUTOINC+5351434537-r0/temp/log.do_compile.13564)
ERROR: Task 122 (/home/christophe/openpli50/openpli-oe-core/meta-openpli/recipes-openpli/enigma2-plugins/enigma2-plugins.bb, do_compile) failed with exit code '1'


Re: Openpli-5 (still next master) #350 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 1 June 2016 - 11:27

Culprit commit is this one :

 

https://github.com/O...5d006dfdf0a0236



Re: Openpli-5 (still next master) #351 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 1 June 2016 - 11:47

Yes also checked that the base pli4 standard image self from pli build server did not build due to the merge 17 hours ago :

where the culprit commit was included:

https://github.com/O...5d006dfdf0a0236

 

 

also the pli server did not build the last recipes since this has been merged 17 hours ago :

 

https://github.com/O...296223c25df7a4a



Re: Openpli-5 (still next master) #352 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 1 June 2016 - 17:28

Build back ok since commit :

 

https://github.com/O...4b85e9603011a52

 

:)



Re: Openpli-5 (still next master) #353 daimon

  • Senior Member
  • 224 posts

+5
Neutral

Posted 1 June 2016 - 22:51

thanks build ok.



Re: Openpli-5 (still next master) #354 daimon

  • Senior Member
  • 224 posts

+5
Neutral

Posted 2 June 2016 - 10:07

ok build master-next dm8000 and vusolo2   ubuntu 16.04 :)



Re: Openpli-5 (still next master) #355 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 5 June 2016 - 22:51

Enigma2 next-master.

 

I noticed that a program like for example handbrake version 0.10.5 or greater when adding srt subtitles before rendering the media,

does add a blank line at the end off string to the imported reencoded srt to ssa codec. By 0.10.2 this was not the case. It is clear that this is a bug.

In e2 the result is that You're real subittle off one line will become 2 lines which means the subittle self and a extra blank line. That of 2 lines will become 3 lines the 2 off the sub + one blank line.

The user will see this as a subtittle which is printed one line higher which is very annoying.

 

Other players like vlc(which uses ffmpeg) or totem-gstreamer( standard ubuntu videoplayer which is using gst-1.x now) do solve this issue by stripping the last return (new line ) '\n'.

 

Here the patch for next-master to solve this like other players did.

 

 

Attached Files



Re: Openpli-5 (still next master) #356 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 6 June 2016 - 14:47

Just enabel reformat mode and every additional whitespace is killed.


* 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: Openpli-5 (still next master) #357 littlesat

  • PLi® Core member
  • 57,460 posts

+708
Excellent

Posted 6 June 2016 - 15:23

Just enabel reformat mode and every additional whitespace is killed.

->

But this will break the original intended line break from the subtitels.... which is also sometimes not wanted...

 

When no removing a \n at the end of the subtitle the subs are displayed one raw too high...


Edited by littlesat, 6 June 2016 - 15:24.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Openpli-5 (still next master) #358 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 6 June 2016 - 16:34

Just enabel reformat mode and every additional whitespace is killed.

It is not the white space which cause the problem but the line return which is wrong, yes it's a bug from the muxers/encoders program (and a severe one). All other players (vlc and totem anyway do it) just solved that by just removing the '\n'  at the end off string since that is wrong.

 

But it's evident that Handbrake apart from adding an wrong line break (new line at the end off the subtiitles) add's a space and a line brake both wrong. Reformat will not remove the line break.

 

I filed an issue report to HandBrake :

https://github.com/H...rake/issues/215

 

There You can see what is happening whit the hex analyse off the presented string.

 

Handrake 0.10.2 ok

Handbrake 0.10.5 and higher adds by each subtittle an extra space and new-line. (extra 0x20 and 0x0A char). Just cause other players by default if a \n was present at the end off string the \n was stripped. I just do the same in e2 , in the mean time a lot off media has already been made with the bug into it concerning subtitles. And this issue remained undetected just cause most other players did not suffered from it. By e2 well. Since every subtittle wil have an extra blank line to it. Result is that all subtiitles are showing to high in e2.

 

Since we are working in cpp and work further with the cpp string passed to std:: map std::pair. Just the code adaptation by a extra rules in function  void eServiceMP3::pullSubtitle(GstBuffer *buffer) do solve the issue.

 

Code change from

void eServiceMP3::pullSubtitle(GstBuffer *buffer)
{
	if (buffer && m_currentSubtitleStream >= 0 && m_currentSubtitleStream < (int)m_subtitleStreams.size())
	{
		if (m_change_aktif_subtitle == 1)
		{
			pts_t ppos = 0;
			if (getPlayPosition(ppos) >= 0)
			{
				/* seek flush */
				seekTo(ppos);
			}
			m_change_aktif_subtitle = 0;
		}
#if GST_VERSION_MAJOR < 1
		gint64 buf_pos = GST_BUFFER_TIMESTAMP(buffer);
		size_t len = GST_BUFFER_SIZE(buffer);
#else
		GstMapInfo map;
		if(!gst_buffer_map(buffer, &map, GST_MAP_READ))
		{
			eLog(3, "[eServiceMP3] pullSubtitle gst_buffer_map failed");
			return;
		}
		gint64 buf_pos = GST_BUFFER_PTS(buffer);
		size_t len = map.size;
		eLog(6, "[eServiceMP3] gst_buffer_get_size %zu map.size %zu", gst_buffer_get_size(buffer), len);
#endif
		gint64 duration_ns = GST_BUFFER_DURATION(buffer);
		int subType = m_subtitleStreams[m_currentSubtitleStream].type;
		eLog(6, "[eServiceMP3] pullSubtitle type=%d size=%zu", subType, len);
		if ( subType )
		{
			if ( subType < stVOB )
			{
				int delay = eConfigManager::getConfigIntValue("config.subtitles.pango_subtitles_delay");
				int subtitle_fps = eConfigManager::getConfigIntValue("config.subtitles.pango_subtitles_fps");

				double convert_fps = 1.0;
				if (subtitle_fps > 1 && m_framerate > 0)
					convert_fps = subtitle_fps / (double)m_framerate;

#if GST_VERSION_MAJOR < 1
				std::string line((const char*)GST_BUFFER_DATA(buffer), len);
#else
				std::string line((const char*)map.data, len);
#endif
				eLog(4, "[eServiceMP3] got new text subtitle @ buf_pos = %lld ns (in pts=%lld), dur=%lld: '%s' ", buf_pos, buf_pos/11111, duration_ns, line.c_str());

				uint32_t start_ms = ((buf_pos / 1000000ULL) * convert_fps) + (delay / 90);
				uint32_t end_ms = start_ms + (duration_ns / 1000000ULL);
				m_subtitle_pages.insert(subtitle_pages_map_pair_t(end_ms, subtitle_page_t(start_ms, end_ms, line)));
				m_subtitle_sync_timer->start(1, true);
			}
			else
			{
				eLog(3, "[eServiceMP3] unsupported subpicture... ignoring");
			}
		}
#if GST_VERSION_MAJOR >= 1
		gst_buffer_unmap(buffer, &map);
#endif
	}
}

to :

void eServiceMP3::pullSubtitle(GstBuffer *buffer)
{
	if (buffer && m_currentSubtitleStream >= 0 && m_currentSubtitleStream < (int)m_subtitleStreams.size())
	{
		if (m_change_aktif_subtitle == 1)
		{
			pts_t ppos = 0;
			if (getPlayPosition(ppos) >= 0)
			{
				/* seek flush */
				seekTo(ppos);
			}
			m_change_aktif_subtitle = 0;
		}
#if GST_VERSION_MAJOR < 1
		gint64 buf_pos = GST_BUFFER_TIMESTAMP(buffer);
		size_t len = GST_BUFFER_SIZE(buffer);
#else
		GstMapInfo map;
		if(!gst_buffer_map(buffer, &map, GST_MAP_READ))
		{
			eLog(3, "[eServiceMP3] pullSubtitle gst_buffer_map failed");
			return;
		}
		gint64 buf_pos = GST_BUFFER_PTS(buffer);
		size_t len = map.size;
		eLog(6, "[eServiceMP3] gst_buffer_get_size %zu map.size %zu", gst_buffer_get_size(buffer), len);
#endif
		gint64 duration_ns = GST_BUFFER_DURATION(buffer);
		int subType = m_subtitleStreams[m_currentSubtitleStream].type;
		eLog(6, "[eServiceMP3] pullSubtitle type=%d size=%zu", subType, len);
		if ( subType )
		{
			if ( subType < stVOB )
			{
				int delay = eConfigManager::getConfigIntValue("config.subtitles.pango_subtitles_delay");
				int subtitle_fps = eConfigManager::getConfigIntValue("config.subtitles.pango_subtitles_fps");

				double convert_fps = 1.0;
				if (subtitle_fps > 1 && m_framerate > 0)
					convert_fps = subtitle_fps / (double)m_framerate;

#if GST_VERSION_MAJOR < 1
				std::string line((const char*)GST_BUFFER_DATA(buffer), len);
#else
				std::string line((const char*)map.data, len);
#endif
				/* some media muxers do add an extra new line at the end off a muxed/reencoded srt to ssa codec
					yes that's a bug but looks like a lot off encoders do it now (ffmpeg bug ?) */
				if (!line.empty() && line[line.length()-1] == '\n')
					line.erase(line.length()-1);
				eLog(4, "[eServiceMP3] got new text subtitle @ buf_pos = %lld ns (in pts=%lld), dur=%lld: '%s' ", buf_pos, buf_pos/11111, duration_ns, line.c_str());

				uint32_t start_ms = ((buf_pos / 1000000ULL) * convert_fps) + (delay / 90);
				uint32_t end_ms = start_ms + (duration_ns / 1000000ULL);
				m_subtitle_pages.insert(subtitle_pages_map_pair_t(end_ms, subtitle_page_t(start_ms, end_ms, line)));
				m_subtitle_sync_timer->start(1, true);
			}
			else
			{
				eLog(3, "[eServiceMP3] unsupported subpicture... ignoring");
			}
		}
#if GST_VERSION_MAJOR >= 1
		gst_buffer_unmap(buffer, &map);
#endif
	}
}

Does solve the issue.

 

added :

				if (!line.empty() && line[line.length()-1] == '\n')
					line.erase(line.length()-1);

to strip the wrong new line at the end of string.


Edited by christophecvr, 6 June 2016 - 16:35.


Re: Openpli-5 (still next master) #359 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 7 June 2016 - 13:09

Here a patch to servicemp3 concerning subtitles for e2 next-master only.

 

This patch does contain 3 patches .

 

The first is the ssa codec issue so do not use the patch on toppic http://forums.openpl...ndpost&p=551228 anymore.

The second adapted the possibility to still use internal (ssa subtitles) if and external subtitle(srt) file has been added.

  Now it's possible to switch to an internal subtitle the cache off external will be cleared.

  Then switching between several internal subtitles if there are several ones no problem anymore. Switching back to the extrenal file also ok.

  Disabling reanibling external or internal subtitle ok.

The third is to solve a little issue one changing subtitle if media is paused.

 

general very extended testings on duo2 and dm8000.

 

Duo2.

switching between internal subtitles only 100 % enabling disabling 100 %

When an external subtitle was aktif and you switch to a avbl internal subtitle it may happen that the internal (very rare) that the internal does not start.

An automated solution for that was not possible, but what does work is disabling and re-enabling the subtitle.

How ?? double push yellow button and ok will disable the aktif sub. Then again double push yellow button and select again the subtitle you wanted.

 

dm8000 idem dito.

except with dts audio who uses downmix it may cause a freeze. (that is due to the driver off dm8000 hack required to keep audio in sink)

Keep in mind that if you use media with dts audio and external subtitle First deselect the external (double yellow and ok). Then only reselect the wanted internal if avbl (sorry on dm8000 driver I can't change anything).

 

 

Attached Files



Re: Openpli-5 (still next master) #360 littlesat

  • PLi® Core member
  • 57,460 posts

+708
Excellent

Posted 7 June 2016 - 15:20

Just my comments...

 

I would to like two seperate patches...

 

The red line below is not required... and instead of 1 or 2 we could give it some defined name... 

 

+ /* required if previous subtitle was external or new one is back to external */
+ if (m_change_aktif_subtitle == 1 || m_change_aktif_subtitle == 2)
+ {
+ if (m_change_aktif_subtitle == 1)
+ {
+ eDebug("[eServiceMP3] Switch back/restart external subtittle");
+ pts_t ppos = 0;
+ if (getPlayPosition(ppos) >= 0)
+ {
+ // seek flush
+ seekTo(ppos);
+ }
+ m_change_aktif_subtitle = 0;
+ }
+ else if (m_change_aktif_subtitle == 2)
+ {
+ eDebug("[eServiceMP3] switch to internal subtitle comming from external subtitle.");
+ m_change_aktif_subtitle = 3;
+ }
+ return;
+

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W



1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users