text rerendering issue solved

Asked by jian

Hi, Alex

These days, I was focusing on the text missing and rerendering issue.

1 for the rerendering issue,
   the concept is : move some of the init codes in prerender to the browsernode construction code, and then don't go the python call back function in loadingstatechange, move the callback function after the view is painted, so that for browsermediabase.py, I removed the rerendering mechanism.
I changed three files, browsermediabase.py, browsernode.cpp and berkeliumdelegate.cpp, and those two cpps are built into the libbrowsernode.so
the benefit for this change is that if you have a lot of text views in a layout, the display is quite fast, but the text to webpage convert still needs to take a few time.

2 for the text missing issue
I just removed the several lines in xiboclient.py
if mediacount == 1:
    self.oneitemonly = true
    log.log.......

so if you need the codes and library for review, please let me know.

Thanks.

Question information

Language:
English Edit question
Status:
Solved
For:
Xibo Edit question
Assignee:
No assignee Edit question
Solved by:
Alex Harrington
Solved:
Last query:
Last reply:
Revision history for this message
Best Alex Harrington (alexharrington) said :
#1

If we can have the modifications you've made please that would be really
helpful.

Best wishes

Alex
On 7 Nov 2013 15:35, "jian" <email address hidden> wrote:

> New question #238841 on Xibo:
> https://answers.launchpad.net/xibo/+question/238841
>
> Hi, Alex
>
> These days, I was focusing on the text missing and rerendering issue.
>
> 1 for the rerendering issue,
> the concept is : move some of the init codes in prerender to the
> browsernode construction code, and then don't go the python call back
> function in loadingstatechange, move the callback function after the view
> is painted, so that for browsermediabase.py, I removed the rerendering
> mechanism.
> I changed three files, browsermediabase.py, browsernode.cpp and
> berkeliumdelegate.cpp, and those two cpps are built into the
> libbrowsernode.so
> the benefit for this change is that if you have a lot of text views in a
> layout, the display is quite fast, but the text to webpage convert still
> needs to take a few time.
>
> 2 for the text missing issue
> I just removed the several lines in xiboclient.py
> if mediacount == 1:
> self.oneitemonly = true
> log.log.......
>
>
> so if you need the codes and library for review, please let me know.
>
> Thanks.
>
> --
> You received this question notification because you are a member of Xibo
> Developers, which is an answer contact for Xibo.
>

Revision history for this message
jian (huangjian0209) said :
#2

Ok, the dropbox is blocked in our company, so I will post them on dropbox after work today, and then let you know.

Thanks.

Revision history for this message
jian (huangjian0209) said :
#3
Revision history for this message
jian (huangjian0209) said :
#4
Revision history for this message
jian (huangjian0209) said :
#5

Thanks Alex Harrington, that solved my question.

Revision history for this message
Alex Harrington (alexharrington) said :
#6

I'm rolling a new version of the Python client now for 1.6.0 release using the patches from this thread.

In the interim, Berkelium has been marked as unmaintained.

Does anyone here have the skills/time to look at moving us over to Chromium Embedded Framework?
https://code.google.com/p/chromiumembedded/

Revision history for this message
Alex Harrington (alexharrington) said :
#7

Hi Jian

Which version of libavg are these pataches against please?

I've spent a day and a half trying to figure it out and get a working binary built from scratch. In order to distribute a binary blob as we do, we need to offer build instructions.

So I'm trying to get your patch with the pre-rendering built against the newest version of libavg I can, on Ubuntu 12.04 32bit

I can get it to compile after some fiddling around, but it doesn't then run.

When I try and build, it complains about the line in BrowserNode.cpp so I patched it as shown here:
http://bazaar.launchpad.net/~alexharrington/browsernode/jian-prerender/revision/7

It will then compile, however when I finally run the built binary I get:
Could not load plugin. dlopen failed with message './libbrowsernode.so: undefined symbol: _ZN9Berkelium6Window6createEPKNS_7ContextE'

So I'm guessing my modification is wrong, but I'm not sure how.

I've been building against the current head of the libavg trunk (1.8.0-pre2) SVN commit 9546

Thanks for any insight you can offer!

Alex

Revision history for this message
jian (huangjian0209) said :
#8

Hi, Alex

The libavg version I was working on is 1.7.1

For the error you got when you were running the binary:
Could not load plugin. dlopen failed with message './libbrowsernode.so: undefined symbol: _ZN9Berkelium6Window6createEPKNS_7ContextE'
That means you did not link berkelium library correctly, you can use ldd libbrowsernode.so to check if the berkelium.so was linked in.

To build libbrowsernode.so, besides what you changed in your Makefile, maybe you can try to modify the following line like this
EXTRA_LDFLAGS = -XCClinker liblibberkelium.so -XCClinker ../../wrapper/.libs/avg.so
of course you should copy the liblibberkelium.so under this directory.

Thanks.
Jian

Revision history for this message
Alex Harrington (alexharrington) said :
#9

Thanks Jian

Adding the extra flags in the Makefile solved it.

Many thanks for all your help with this!

ALex

Revision history for this message
franc (francozzy) said :
#10

Hi Jian,

Is it possible we can get your modified script to solved those issues ?
it will be very helpful for us

thanks

regard

franc

Revision history for this message
Alex Harrington (alexharrington) said :
#11

What you have already includes Jian's patches