• 1
  • 19
  • 20
  • 21(current)
  • 22
  • 23
  • 24
Web Browser integrated into XBMC - HTML Layout Engine with a GUI embedded into XBMC?
I also like the idea of Chrome inside XBMC. Maybe loading Chrome Within XBMC. Cause sometimes I have to exit XBMC or minimize it to use Chrome and is kind of messy.
Reply
Here is an awesome related article which talks how web based standards are revitalizing the TV user experience

http://www.cedmagazine.com/articles/2013...experience

HTML5, RDK, and HbbTV: Revitalizing the TV user experience

Standards, new technologies converge for better set-top viewing

Today’s consumers demand a much more compelling and personalized video user experience than ever before, based on their daily interaction with tablets, smartphones, and an ever-growing number of other sophisticated connected devices. Yet, until recently, delivering this experience on the TV screen was no simple task.

Pay-TV operators were challenged by a number of set-top box (STB) limitations. STBs were lacking the CPU speed, RAM, and hardware acceleration features necessary to render rich graphics, leading to unimaginative user interfaces.

Application innovation was slow due to a lack of standards and third-party integration. And porting was time-consuming and expensive due to divergence between chipset vendors and an absence of standard approaches to common functions such as streaming.

The landscape is changing, though. Technology advancements and new standards, such as HTML5, RDK, and HbbTV, are dramatically altering the STB user experience, enabling a richer, personalized television experience that includes 3D graphics, real-time connectivity to the Web, social media, targeted advertising, and more. This article describes the latest standards and technologies that are contributing to a revitalized STB user experience, including the need for an intelligent back-office solution.

HTML5 cuts through clutter

One standard that is driving the new STB user experience is HTML5. HTML5 provides developers with a common markup language, ensuring a consistent Web experience on every consumer device. Prior to HTML5, developers were required to author and support separate native applications for every operating system, screen size, device, and environment. This was extremely expensive and time-consuming.

Currently supported by all of the popular Web browsers, including Internet Explorer, Google Chrome, and Firefox, HTML5 is being adopted as the standard for video user interfaces on STBs thanks to its ability to simplify content delivery, provide a single authoring language across multiple devices, and transform what was once a static television user experience into one that is interactive and rich with 3D graphics and targeted advertising.

Through an HTML5-based STB client, broadcasters and pay- TV operators can push interactive content to viewers as well as other IP-connected devices like tablets or smartphones. The key features and benefits of HTML5 include: • Localized storage: With HTML5, content can be stored locally, enabling applications to remain functional even when they’re not connected to the Web. This is advantageous for caching frequently used images or data, as it minimizes the number of times an application needs to send requests to the server, increasing the launch and runtime performance of applications.

• WebSockets: Another HTML5 technology called WebSockets streamlines content delivery by enabling a real-time connection between the TV and video server. This dramatically reduces the complexity of delivering real-time, event-driven Web applications like electronic programming guides, stock tickers, and weather updates.

• Standardized audio and video coding: Another benefit of an HTML5- based STB client is its ability to handle multimedia and graphical content in the browser without relying on proprietary plug-ins and APIs.

• HTML5 standardizes how audio and video files are embedded and played on Web pages, enabling memory that was previously dedicated to plug-ins to be better utilized.

• Advanced multimedia and graphics: By supporting technologies like CSS and WebGL, HTML5 brings engaging graphics, including 3D animation, to the STB.

RDK accelerates innovation

RDK, or Reference Design Kit, is a standardized, pre-integrated software bundle that provides operators with a common framework for powering STBs. The fully tested and integrated system runs on QAM, IP, and hybrid devices and has received substantial support from Tier 1 MSOs based on its ability to accelerate the development and deployment of advanced video services. Since its introduction in early 2012, more than 100 licensees, including OEMs, systems integrators, SOCs, software vendors, and MVPDs have joined the RDK community, which is focused on bringing rich, multi-screen TV home entertainment experiences to consumers faster.

Leveraging RDK and the advanced 3D UI effects enabled by HTML5, operators can quickly develop and deliver innovative Web-based applications to optimize the STB user experience for IP video services.

These applications include: • HTML5 electronic program guides with compelling graphics

• Captivating user interfaces with HTML5 and 3D animations

• Blended interaction with popular Web apps like Facebook and Twitter

• Advanced 3D animation effects such as rubber banding built into the navigation • Personalization of services for each STB user in the household.

To achieve the full promise of RDK, MSOs should look to take advantage of an advanced application framework to optimize performance and rapid app development with RDK. An application framework should provide:

• Industry leading application performance based on video acceleration, graphics acceleration, and applications performance acceleration

• A full lineup of standard video applications including: EPG, VoD, PVR/DVR, Parental controls, Settings, Catch-up TV, PPV

• Seamless integration and certification with leading HTML5 web apps such as YouTube on TV.

• Rapid application development and creation environment to allow MSOs to achieve user experience and service innovation at Web speed by adding their own or select third-party applications.

Unity with HbbTV

The delivery of hybrid television services via open broadcast standards. such as HbbTV, are also having a significant impact on the STB user experience. HbbTV is an open and business-neutral technology platform that unifies the delivery of broadcast and broadband services on STBs, enabling consumers to access a variety of services, including catch-up TV, video on demand (VoD), interactive advertising, personalization, voting, games and social networking as well as program-related services such as digital text and EPGs.

While HbbTV started out as a pan-European standard — having already been deployed in Austria, the Czech Republic, Denmark, France, Germany, Poland, Spain, Switzerland, the Netherlands, and Turkey — it’s starting to gain global acceptance. At IBC2013 in Amsterdam, U.S. broadcasters met to discuss HbbTV and whether certain capabilities of the standard could be adapted to complement the U.S. interactive broadcasting standard ATSC 2.0.

Back-Office Intelligence and Integration Services

Deploying anSTB client that supports the latest hardware and software innovations as well as open technology standards is one piece of the puzzle when it comes to delivering a compelling user experience on STBs. In addition, an intelligent back-office solution, along with rich integration services, is needed.

The back-office platform is the engine responsible for powering a personalized STB user experience with social media, Web video, and recommendations and multi-screen services such as place-shifting. It should be based on a modular design that supports Web and video ecosystem integration, merchandizing, multi-screen control, cloud UX delivery, and TV service management.

When looking to deploy an STB client and back-office solution, it’s also important that operators partner with a vendor that provides an end-to-end set of RDK integration services including: • Architecture and planning: Recommend an optimized STB and back-office architecture based on RDK roadmap capabilities.

• RDK-based STB porting: Leverage deep experience in optimizing RDK solutions based on Broadcom, Entropic, Intel, and other chipsets.

• Proof of concept development: Quickly evaluate RDK-based services with rapid porting and prototyping services.

• Back-office integration: Integrate advanced RDK-based STBs with back-office systems.

• HTML5 and RDK app development: Design and develop a cloud-based HTML5 UX around essential video applications such as EPG and VOD. Build a blended user experience with popular Web apps such as YouTube on TV and operator apps such as video security.

The next-generation STB experience has arrived. Harnessing the latest technology developments and open Web standards, combined with an intelligent back-office solution, today’s operators can replace tired, old user interfaces with an innovative STB experience that offers personalization, targeted advertising, real-time connectivity to Web apps, compelling graphics and user interfaces, social networking, and much more.

Supporting a STB software approach that is vendor independent, open, flexible, and capable of providing a dramatically improved user experience, operators can dramatically increase subscriber satisfaction as well as their revenue streams.
Reply
Sounds as if CLR Browser Source plugin/addon for OBS (Open Broadcaster Software) media player software are using CEF (Chromium Embedded Framework ) as a framework for web based plugin addons as I suggested

https://obsproject.com/forum/resources/c...plugin.22/

"CLR Browser Source allows you to add web-based content as a source, such as web pages and Flash SWFs"
  • Notable features:

    Accelerated offscreen webgl.
    Per-source FPS control
    Pepper Flash Player support (removes need for single-process mode)
Source: https://github.com/kc5nra/CLRBrowserSourcePlugin

I otherwise never heard about this "OBS (Open Broadcaster Software)" open source media player software before.

(2014-12-03, 17:23)Hedda Wrote: What about using Chromium Embedded Framework (CEF) as an embedded HTML-engine inside Kodi itself? It could then be used as framework for Kodi addons

http://en.wikipedia.org/wiki/Chromium_Em..._Framework

Chromium Embedded Framework (CEF) is an open source framework for embedding a web browser control based on Google Chrome. It is a convenient way to implement an HTML5 based GUI in a desktop application or to provide browser capabilities to an application, and provides the infrastructure developers need to quickly add HTML renderer and JavaScript to a C++ project It also comes with bindings for C, C++, Delphi, Java, .NET, and Python and runs on Linux, Mac OS X, and Windows.

CEF insulates the user from the underlying Chromium and Blink code complexity by offering production-quality stable APIs, release branches tracking specific Chromium releases, and binary distributions.


CEF supports: "Rendering Web content “off-screen” in applications that have their own custom drawing frameworks"


Maybe try it out it as a proof-of-concept? CEF is probably the most well maintained HTML engine for embedding right now? And hopefully it would not even have to be a full web browser if embedded into Kodi, at least not in the GUI experience sense as only simple remote control style navigation is needed, because is would primarily be used a framework for HTML5 addons and other HTML based addons inside Kodi.

Huh

Another approach could be making a HTML layout engine like CEF (or Chromium/WebKit/Blink) into a new video player for Kodi, similar to the DVDPlayer, and have that player be cross-platform.

DVDPlayer can today use libdvdnav/libdvdread/libdvdcss to playback DVD-Video movies with menus, and it can use libbluray/libaacs to playback Blu-ray Disc movies with menus.

Maybe an HTML layout engine like Chromium/WebKit/Blink could be made into its own player for XBMC, and that way "playback" Netflix HTML5 apps with menus.

At least then all the code would be contain within that one "Chromium/WebKit/Blink" (HTML5) player.

If that would be possible then it would also be simpler to one day replace that first HTML5 player with one made from a other HTML5 layout engine in the future.


Anyway, here is a good article about some benefits and what to consider when integrating Chromium Embedded Framework (CEF) as HTML5 rendering engine into applications like Kodi

http://coherent-labs.com/what-developers...eir-games/

Chromium Embedded Framework (CEF) is a free, open-source framework that is based on Chromium web browser and provides the infrastructure developers need to quickly add HTML renderer and JavaScript to a C++ project


https://code.google.com/p/chromiumembedded/

Chromium Embedded Framework (CEF) - Simple framework for embedding Chromium-based browsers in other applications


Introduction


The Chromium Embedded Framework (CEF) is a simple framework for embedding Chromium-based browsers in other applications. It is a BSD-licensed open source project founded by Marshall Greenblatt in 2008 and based on the Google Chromium project. Unlike the Chromium project itself, which focuses mainly on Google Chrome application development, CEF focuses on facilitating embedded browser use cases in third-party applications. CEF insulates the user from the underlying Chromium and Blink code complexity by offering production-quality stable APIs, release branches tracking specific Chromium releases, and binary distributions. Most features in CEF have default implementations that provide rich functionality while requiring little or no integration work from the user. There are currently over 100 million installed instances of CEF around the world embedded in products from a wide range of companies and industries. A partial list of companies and products using CEF is available on the CEF Wikipedia page. Some use cases for CEF include:
  • Embedding an HTML5-compliant Web browser control in an existing native application.
  • Creating a light-weight native “shell” application that hosts a user interface developed primarily using Web technologies.
  • Rendering Web content “off-screen” in applications that have their own custom drawing frameworks.
  • Acting as a host for automated testing of existing Web properties and applications.
CEF supports a wide range of programming languages and operating systems and can be easily integrated into both new and existing applications. It was designed from the ground up with both performance and ease of use in mind. The base framework includes C and C++ programming interfaces exposed via native libraries that insulate the host application from Chromium and Blink implementation details. It provides close integration between the browser and the host application including support for custom plugins, protocols, JavaScript objects and JavaScript extensions. The host application can optionally control resource loading, navigation, context menus, printing and more, while taking advantage of the same performance and HTML5 technologies available in the Google Chrome Web browser.

Users new to CEF development should start by reading the Tutorial Wiki page for an overview of CEF usage and then proceed to the GeneralUsage Wiki page for a more in-depth discussion or architectural and usage issues. Complete API documentation is available here. CEF support and related discussion is available on the CEF Forum.

Numerous individuals and organizations contribute time and resources to support CEF development, but more involvement from the community is always welcome. This includes support for both the core CEF project and external projects that integrate CEF with additional programming languages and frameworks (see the "External Projects" section below). If you are interested in donating time to help with CEF development please see the "Helping Out" section below. If you are interested in donating money to support general CEF development and infrastructure efforts please visit the CEF Donations page.

Binary Distributions

Binary distributions, which include all files necessary to build a CEF-based application, are available on the Downloads page. Automated nightly builds, available from http://cefbuilds.com, include the newest changes but may not be fully tested. Binary distributions are stand-alone and do not require the download of CEF or Chromium source code. Symbol files for debugging binary distributions of libcef can also be downloaded from the above links.

Release notes for past and current CEF binary distributions are available here.

Source Distributions

The CEF project is an extension of the Chromium project. CEF maintains development and release branches that track Chromium branches. CEF source code can be downloaded, built and packaged manually or with automated tools. Visit the BranchesAndBuilding Wiki page for more information.
External Projects

The base CEF framework includes support for the C and C++ programming languages. Thanks to the hard work of external maintainers CEF can integrate with a number of other programming languages and frameworks. These external projects are not maintained by CEF so please contact the respective project maintainer if you
have any questions or issues.


Regarding alternative methods of rendering CEF onto a frame buffer under Linux checkout these tips:
http://stackoverflow.com/questions/30326...eb-browser
http://stackoverflow.com/questions/64509...ramebuffer
https://groups.google.com/a/chromium.org...AEfjQEsemQ
http://comments.gmane.org/gmane.linux.em...scale/7691
Reply
i did some preliminary tests using CEF. it's gonna be a biatch. it forks its processes from the main application. bam! multiple kodis. so you will have to run CEF in a separate process, this process manages the tabs and then you have to ipc back to kodi. not fun.
Reply
(2014-12-09, 15:30)ironic_monkey Wrote: i did some preliminary tests using CEF. it's gonna be a biatch. it forks its processes from the main application. bam! multiple kodis. so you will have to run CEF in a separate process, this process manages the tabs and then you have to ipc back to kodi. not fun.

And it might be a problem on iOS. IIRC jfcarroll once had the python stuff running in separate processes communicating with XBMC/Kodi through IPC but he gave up when he realized that iOS didn't support/allow forking processes.
Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
Reply
well then screw ios! /hides.
Reply
(2014-12-09, 15:49)Montellese Wrote:
(2014-12-09, 15:30)ironic_monkey Wrote: i did some preliminary tests using CEF. it's gonna be a biatch. it forks its processes from the main application. bam! multiple kodis. so you will have to run CEF in a separate process, this process manages the tabs and then you have to ipc back to kodi. not fun.

And it might be a problem on iOS. IIRC jfcarroll once had the python stuff running in separate processes communicating with XBMC/Kodi through IPC but he gave up when he realized that iOS didn't support/allow forking processes.

You just need to put the process stuff very early, atleast for CEF. I have a local branch here aswell with CEF were I start kodi and a browser. If its early in the main it won't trigger the initiations of all other subsystems, only CEF stuff, in the seperate ones. AFAICT essentially all the IPC is hidden in CEF when its up and running.

But tbh, XULRunner and such would be nicer to not have to use multiple processes. And something which works on all platforms would also be nice.

Regarding iOS, and Android, we should probably just send an intent to start the normal browser instead.
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
(2014-12-09, 15:54)ironic_monkey Wrote: well then screw ios! /hides.

+1 It shouldn't need a browser inside kodi tbh.
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
but you are doing it in mainline i assume. can't initialize an addon that early on..

and yes, the internal IPC is hidden, but as i said it looks like you need to fire up CEF in a separate binary, so that it doesn't fork off the main app. then you'd have to IPC from *that* binary to kodi on your own.
Reply
I think that XULRunner and XUL based web addon was used in Boxee's fork of XBMC IIRC?

Anyway, are web browsers integration like CEF and HTML5 addons the way to take Kodi to "the next level" ? Other than addons, HTML5 engine could maybe also help port Kodi's GUI to new platforms?

CEF framework and HTML5 addons for Kodi does sound better on paper as XUL language is much less commonly used today, and would be really nice to seamlessly integrate HTML5 addons into Kodi.

Cool stuff regardless, again would be nice to someday see Netflix seamlessly integrated.
Reply
(2014-12-09, 18:13)RockerC Wrote: Anyway, are web browsers integration like CEF and HTML5 addons the way to take Kodi to "the next level" ? Other than addons, HTML5 engine could maybe also help port Kodi's GUI to new platforms?

it won't help much, it will help as much as it helps chrome to be ported to firefox.

The only thing, if anything, it could potentially help with is if every addon drops python and starts integrating it in javascript, which is highly unlikely.

Using CEF would realistically help us with a) Have a webbrowser in OpenELEC b) allow for html5 apps to be run. Nothing more.

If you want to port xbmc to a webbrowser you can try and compile it with emscripten or implement our guilib in css/canvas/webgl.
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
(2014-12-09, 15:58)ironic_monkey Wrote: but you are doing it in mainline i assume. can't initialize an addon that early on..

and yes, the internal IPC is hidden, but as i said it looks like you need to fire up CEF in a separate binary, so that it doesn't fork off the main app. then you'd have to IPC from *that* binary to kodi on your own.

Yup. I did it in core, so not addon. IMO this would be ok, not sure if everyone agrees. But if we yank out other stuff, which makes more sense, there ought to be enough room for CEF or an alternative.
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
CEF is about 40MB. there is no sensible reason to keep it in core imnsho.
Reply
Perhaps add the code in core but have the binary as addon? And enable it if the addon is available?

Its very ugly but seeing as CEF seems to be doable to integrate with it might be ok? Obviously a pure addon solution is by far better, but I reckon that means doing it via webcore2 (which is single process) or XULRunner.

@RockerC yes boxee used XULRunner but IIRC they streamed the rendered content via IPC to Boxee and never open sourced the actual XULRunner implementation
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
you could do that but i don't see the big difference tbh. you still need to define some iface between the addon and kodi since you cannot link at compile time.. do a slightly more involved job and you'd have done most of the work to have it as an addon. my idea was to expose a gui control ext point to do the browser part of it. eventually you'd also want a player ext point to handle the html5 player part.

i did the tests using the screensaver interfaces.
Reply
  • 1
  • 19
  • 20
  • 21(current)
  • 22
  • 23
  • 24

Logout Mark Read Team Forum Stats Members Help
Web Browser integrated into XBMC - HTML Layout Engine with a GUI embedded into XBMC?2