Development of Basic Editing Capabilities for Libreoffice for Android – Milestone 1

Total Page:16

File Type:pdf, Size:1020Kb

Development of Basic Editing Capabilities for Libreoffice for Android – Milestone 1 Work Report: TDF0002 – Milestone 1 Development of Basic Editing Capabilities for LibreOffice for Android – Milestone 1 This project targets implementing basic editing in the LibreOffice for Android code. This first milestone demonstrates that the basic functionality required for the project is making good progress. Ta!le of ontents Development of Basic !diting "apabilities for LibreOffice for Android – $ilestone %...........................% Overvie& of the task...................................................................................................................................... ' '.%.1 (%).1.1* +ntegration of on,screen keyboard that is only visible in editing mode.......................' '.%.3 (%).1.3* Triggering updates of vie&s, /endering and invalidation of tiles..................................- '.%.2 (%).1.2* /outing Android events to LibreOffice app.......................................................................0 Keyboard events........................................................................................................................................ 0 Touch !vents.............................................................................................................................................. 0 "ursor overlay........................................................................................................................................... 2 '.%.4 (%).1.4* +nsertion and deletion of content........................................................................................2 '.%.5 (%).1.5* Threading................................................................................................................................ 3 +n progress features....................................................................................................................................... 4 '.1.6 (%).%.6* 6erformance considerations, 7upport for Open8L.....................................................4 '.1.7 (%).%.7* /endering of selections on overlays...............................................................................4 '.1.8 (%).%.8* /outing of application information from the program module9s core.....................: '.1.9 (%).%.9* Te;ts and lists. Tables for <riter and +mpress. Tables for "alc, 6ictures and shapes ..................................................................................................................................................................... : Development and Documentation.............................................................................................................: Project management................................................................................................................................... %) 8tkTiled=ie&er , a LibreOfficeKit test,bed..............................................................................................%) /isks > +ssues................................................................................................................................................. %% "ommunity engagement ? public promotion........................................................................................%% "onclusion..................................................................................................................................................... %% Appendi; A: "ommits /elated to Deliverables.......................................................................................%' Appendi; B: "ommits /elated to Android &ork.....................................................................................%3 8eneral Android bug,fi;ing..................................................................................................................%3 8eneral +nteroperability component inclusion..................................................................................%3 8tkTiled/enderer development test,bed...........................................................................................%4 [email protected] ☎ A00 %''- -5' :53 Work Report: TDF0002 – Milestone 1 #vervie& of t'e task This $ilestone &as to deliver five of the relevant '.% items from the contract # including relevant items from '.' and '.-. An analysis of five completed items. and status on all remaining items may be found belo&. Bnfortunately due to a cut?paste problem the final consolidated contract re,numbered the 7O< headings. Thus all headers marked %).%.; are referred to as '.%.; in the contract te;t. <e provide both numberings in the heading hoping to clarify things in this regard. The five items completed in their entirety for $ilestone % are@ '.%.% (%).%.%*. '.%.' (%).%.'*. '.%.- (%).%.-*. '.%.0 (%).%.0* and '.%.2 (%).%.2*. 2(1(1 )10(1(1) +ntegration of on,screen ke-!oard t'at is onl- visi!le in editing mode <e provided a &ay to trigger the visibility of the on-screen keyboard. y default. it is not visible. so the editor acts as a vie&er. Co&ever. as soon as the user taps inside a paragraph, the on-screen keyboard appears. <hen the “do&n” button belo& the on-screen keyboard is pressed, it gets hidden. <e added a LibreOffice1it callback mechanism to LibreOffice core. so that &hen in the future &e add support for e.g. selection of graphic objects &here sho&ing the on-screen keyboard does not make sense. &e can easily notify Android &hen to sho&?hide the on,screen keyboard automatically. Figure 1: Default, viewer mode: no on-screen keyboard. Figure 2: On-screen keyboard is shown after the user taps inside a paragra h. [email protected] ☎ A00 %''- -5' :53 Work Report: TDF0002 – Milestone 1 2(1(. )10(1(.) Triggering /pdates of vie&s, Rendering and invalidation of tiles "ommunication bet&een Android and LibreOffice is a t&o,&ay channel. To avoid implementing both at the same time. first &e &ent after the LibreOffice→ Android direction. This means that &hile the previous assumption &as that once a tile is rendered, it can be kept in a cache on the Android side forever # due to editing, &e need some &ay to invalidate a subset of that cache as part of the document is changed. The desktop rendering uses a mi; of direct painting and “invalidation. then repaint using a timerE. The e;pected approach &ould have been that &e al&ays just invalidate an area of the &indo& &hen &e &ant to repaint. and then the main loop &ould decide &hen to repaint. Bnfortunately at the moment our main loop has no priorities (this is being &orked on in the feature?priorities branch by $unich students*. so &hen &e need lo&,latency repaints on the desktop. &e must paint directly for no&. This is a problem for Android, &here &e &ant to subscribe to invalidations and repaint the Android vie& accordingly. <e solved this problem by making the applications a&are of being used in tiled editing mode. and if that's the case. then &e al&ays invalidate the to,be,repainted area. never paint directly. This required code changes in both <riter and EditEngine. The other problem is ho& to notify Android about &hat tiles to thro& a&ay. as LibreOffice doesn't kno& &hat tiles Android has. Android just asks for tiles. LibreOffice gives them a&ay. but their lifecycle is managed by Android. <e solved this by sending a rectangle of the invalidated area to Android (in document model coordinates*. and then Android evaluates &hat cached tiles intersect &ith the area. and discards those. Using this technique. &e e;tended the vcl::Window subclass of <riter. Impress. and "alc to emit such invalidation events to Android. Figure !: "linking te#t -- second paragraph is visible Figure $: "linking te#t -- second paragraph is hidden Gou can see this in action at http://youtu.be/EkGpCrGlhiY. [email protected] ☎ A00 %''- -5' :53 Work Report: TDF0002 – Milestone 1 2(1(2 )10(1(2) Routing Android events to "i!re#f$ce app 7ending events in the Android → LibreOffice direction is a bit more comple;. as LibreOffice is a desktop application. so &e had to find a &ay to map the events of the on,screen keyboard and the touchscreen to events e;pected by LibreOffice (keyboard, mouse*. and e;tend LibreOffice &hen such mapping &as not possible. There &ere - major sub-tasks here@ routing keyboard events. routing touch events and cursor overlay. 1e-!oard events oth Android and LibreOffice can handle real characters by their Unicode integer representation. Co&ever. for special keys. &e need to map bet&een them. as both Android and LibreOffice only provide constants for them. <e added mapping for the most frequent special keys like backspace and enter. The mapping is done on the Android side. the constants of LibreOffice are available to Android using the Hava BIO binding. Then the LibreOfficeKit implementation of the keypresses simply sends the event to the currently active frame # the benefit of this is that it &orks out of the bo; in all applications. To/ch Events <e map touch events to LibreOffice's ="L events. LibreOffice sees a long tap as a doubleclick and so on. <here that &as not possible. &e e;tended core to recogniJe the touch guestures. Kor e;ample the desktop application did not allo& adjusting the start of a selection # the ne& lok::Document::setTextSelection() A6+ allo&s to do that. The other problem is that Android sends the coordinates of the event in document model units (i.e. it's independent from the vie& state of the document*. but LibreOffice e;pects to get them in screen pi;els. $apping from document model coordinates to screen ones &ould not be clean, the pi;el position depends on the siJe of the menus. toolbars
Recommended publications
  • Libreoffice 10Th Anniversary Digital Sovereignty & Open
    LibreOffice 10th Anniversary Digital Sovereignty & Open Document Standards Italo Vignoli 10 Years / 20 Years July 19, 2000: Sun announces OpenOffice.org Sept 28, 2010: OpenOffice.org community announces LibreOffice Timeline 35 years since Marco Börries releases the first version of StarWriter in 1985 2009: Oracle acquires Sun OpenOffice vs LibreOffice SEPTEMBER 28, 2010 OpenOffice.org Community announces The Document Foundation The community of volunteers developing and promoting OpenOffice.org sets up an independent Foundation to drive the further growth of the project The brand "LibreOffice" has been chosen for the software going forward Gamalielsson, J. and Lundell, B. (2011) Open Source communities for long-term maintenance of digital assets: what is offered for ODF & OOXML?, in Hammouda, I. and Lundell, B. (Eds.) Proceedings of SOS 2011: Towards Sustainable Open Source, Tampere University of Technology, Tampere, ISBN 978-952-15-2718-0, ISSN 1797-836X. LibreOffice 3.3 at FOSDEM 2011 Roadmap to the Future … • Time based, six-monthly release train … • Synchronised with the Linux distributions cadence • i.e. a normal Free Software project • Rapid fire, (monthly) bug-fix release on stable branch The Document Foundation The Document Foundation Founding Principles COPYLEFT LICENSE NO CONTRIBUTOR AGREEMENT MERITOCRACY COMMUNITY GOVERNANCE VENDOR INDEPENDENCE LibreOffice Main Asset Incredible Easy Hacks Huge Mentoring Effort 100 200 300 400 500 600 0 Sep 10 Oct 10 Nov 10 CumulativeNumber of LibreOffice New Code Committers New Hackers New Dec
    [Show full text]
  • Collabora 2017 16X9
    GStreamer in the world of Android Camera 3 Olivier Crête Open First Who am I ? ● GStreamer at Collabora since 2007 ● Started with VVoIP: Telepathy & Farstream ● Helps our customers use GStreamer – Many hardware integration projects 2 What is Camera 3? ● New Camera API style ● Introduced by Android 5.0 in 2004 ● Exposes modern SoC cameras 3 Modern SoCs? ● Used in all phones ● Multiple hardware blocks ● Configurable hardware pipeline ● Signal level transfer 4 Features ● Multiple streams from same sensor – Different characteristics for each ● Request based – Pull instead of push 5 What is a Request? ● Request to capture one frame ● Per request parameters ● Enables – HDR – Burst captures – Traditional video: timed requests 6 Existing APIs ● Linux: Media Controller – Requires per-hardware userspace code ● Android has HAL for this – Generic Linux has nothing – Intel has icamerasrc ● Android Java/NDK Camera2 API 7 Our design ● New base class – Not GstBaseSrc ● We tried, it was a huge pain ● Multiple source pads – Request pads – Stream APIs on pads 8 Pad API ● Per stream properties using GObject Properties ● Two types based on Caps frame rate 9 Caps frame rate = 0 / 1 ● Manual request using action signal or Ginterface ● Start/Stop method to start bursts – Possibly infinite bursts 10 Caps Frame rate > 0 ● Automatic timed requests based on framerate ● Stop on not-linked – Restart on reconfigure 11 Limitations ● Media Controller not dynamic – Only allow caps change in the READY→ PAUSED transition – Maybe only if more than one stream (pad) ● Some “” stream properties apply globally ¯\_( )_/¯ ツ 12 Android HAL limitations ● Requires single threaded access ● Recommendation: – One thread to interact – Queues frames for each pad – Streaming threads pick up from there ● Specific to Android HAL 13 Implementation status ● Only horribly prototype ● Code has no value – Based on GstBaseSrc – Tested with a single Android HAL ● Will not publish ● Code by Nicolas, Vincent P and Wonchul 14 Thank you!.
    [Show full text]
  • COPYRIGHT NOTE: This Source Code, and All of Its Derivations, Is Subject to the "ITU-T General Public License"
    COPYRIGHT NOTE: This source code, and all of its derivations, is subject to the "ITU-T General Public License". Please have it read in the distribution disk, or in the ITU-T Recommendation G.191 on "SOFTWARE TOOLS FOR SPEECH AND AUDIO CODING STANDARDS". This code has (C) Copyright by AT&T Corp. ** Copyright (C) 2010 David Schleef <[email protected]> Copyright (C) 2010 Sebastian Dröge <[email protected]> Copyright (C) <2011> Intel Corporation Copyright (C) <2011> Collabora Ltd. Copyright (C) <2011> Thibault Saunier <[email protected]> &copy; Panasonic System Networks Co., Ltd. 2012 &copy; Panasonic System Networks Co., Ltd. 2013 (c) 2003 Ronald Bultje <[email protected]> (c) 2003 Ronald Bultje <[email protected]> (c) 2005 Michal Benes <[email protected]> (c) 2003 Ronald Bultje <[email protected]> (c) 2005 Michal Benes <[email protected]> (c) 2008 Sebastian Dröge <[email protected]> (c) 2011 Mark Nauwelaerts <[email protected]> (C) 2003 Ronald Bultje <[email protected]> (C) 2006 Tim-Philipp Müller <tim centricular net> (c) 2003 Ronald Bultje <[email protected]> (c) 2006 Tim-Philipp Müller <tim centricular net> (c) 2008 Sebastian Dröge <[email protected]> (c) 2011 Debarshi Ray <[email protected]> (c) 2003 Ronald Bultje <[email protected]> (c) 2011 Debarshi Ray <[email protected]> (c) 2004 Arwed v. Merkatz <[email protected]> (c) 2004 Ronald Bultje <[email protected]> (c) 2005 Arwed v. Merkatz <[email protected]> (c) 2005 Ronald S. Bultje <[email protected]> (c) 2005 Ronald S.
    [Show full text]
  • Resuing Libreoffice in Your Application
    Reusing Libreoffice in your application GUADEC 2014 2014-07-26 1 GUADEC 2014 - Reusing LibreOffice in your application Overview Short bio LibreOfficeKit Document Liberation Features Libreoffice & Gnome How to get involved 2 GUADEC 2014 - Reusing LibreOffice in your application Bio math student at Karlsruhe Institute for Technology LibreOffice developer member of the ESC working on calc, chart2, testing framework maintainer for cppunit co-maintainer for orcus, ixion, mdds work part time for Collabora on LibreOffice 3 GUADEC 2014 - Reusing LibreOffice in your application LibreOfficeKit 4 GUADEC 2014 - Reusing LibreOffice in your application I'm not doing the work currently moved forward by Andrzej Hunt as GSoC desing to large degree by Michael Meeks 5 GUADEC 2014 - Reusing LibreOffice in your application Design known also as liblibreoffice has been renamed recently tiny static library exposes Libreoffice functionality at run-time simple interface C, C++ and Java bindings 6 GUADEC 2014 - Reusing LibreOffice in your application What is already implemented? stable import export unstable tiled rendering improved API handling 7 GUADEC 2014 - Reusing LibreOffice in your application Example 8 GUADEC 2014 - Reusing LibreOffice in your application Ideas Have a simple API that exposes the most common functions for what would you use the API? which features would you need? Allow fast rendering of documents for any application tiled rendering Gnome Documents? avoid UNO and/or unoconv no setUp/tearDown for repeated usage 9 GUADEC 2014 - Reusing LibreOffice
    [Show full text]
  • Let's Make GNOME a Collaborative Desktop
    Let’s make GNOME a collaborative desktop Let’s make GNOME a collaborative desktop Guillaume Desmottes ([email protected]) Collabora Ltd. (www.collabora.co.uk) 7 July 2009 Let’s make GNOME a collaborative desktop About Me Plan About Me Collaboration in Sugar Telepathy Introduction D-Bus API Implementation Tubes Collaboration in GNOME Tube integration Deeper Telepathy integration Get more from XMPP Conclusion Let’s make GNOME a collaborative desktop About Me About Me Let’s make GNOME a collaborative desktop Collaboration in Sugar Plan About Me Collaboration in Sugar Telepathy Introduction D-Bus API Implementation Tubes Collaboration in GNOME Tube integration Deeper Telepathy integration Get more from XMPP Conclusion Let’s make GNOME a collaborative desktop Collaboration in Sugar Sugar I OLPC User interface 1 I Sugarlabs I Education Plateform I Collaboration Oriented 1http://www.sugarlabs.org/ Let’s make GNOME a collaborative desktop Collaboration in Sugar Sugar Activity I Sugar Application I Shareable I Invite friends Let’s make GNOME a collaborative desktop Collaboration in Sugar Mesh View I Friends I Shared Activities Let’s make GNOME a collaborative desktop Collaboration in Sugar Journal I Previous activities I Participants I Share entry (File Transfer) Let’s make GNOME a collaborative desktop Collaboration in Sugar Write Together Let’s make GNOME a collaborative desktop Collaboration in Sugar Read Together Let’s make GNOME a collaborative desktop Collaboration in Sugar Browse the Web Together Let’s make GNOME a collaborative
    [Show full text]
  • Lightning Talks
    X.Org Developer’s Conference 2019 Report of Contributions https://xdc2020.x.org/e/XDC2019 X.Org Develope … / Report of Contributions State of the X.org Contribution ID: 8 Type: not specified State of the X.org Friday, 4 October 2019 14:50 (20 minutes) Your secretary’s yearly report on the state of the X.org Foundation. Expect updates on the freedeskop- top.org merger, internship and student programs, XDC, and more! Code of Conduct Yes GSoC, EVoC or Outreachy No Presenter: VETTER, Daniel (Intel) Session Classification: Main Track September 26, 2021 Page 1 X.Org Develope … / Report of Contributions Everything Wrong With FPGAs Contribution ID: 10 Type: not specified Everything Wrong With FPGAs Friday, 4 October 2019 11:40 (45 minutes) FPGAs and their less generic cousin, specialized accelerators have come onto the scene in a way that GPUs did 20 or so years ago. Indeed new interfaces have cropped up to support them in a fashion resembling early GPUs, and some vendors have even opted to try to use DRM/GEM APIs for their devices. This talk will start with a background of what FPGAs are, how they work, and where they’re currently used. Because the audience is primarily people with graphics/display background, I will make sure to cover this well. It will then discuss the existing software ecosystem around the various usage models with some comparison of the existing tools. If time permits, I will provide a demo comparing open tools vs. closed ones. The goal of the talk is to find people who have lived through DRI1 days and are abletohelp contribute their experience (and coding) toward improving the stack for the future accelerators.
    [Show full text]
  • Multimedia 1 Contents
    Multimedia 1 Contents 2 Requirements ................................ 2 3 Hardware-accelerated media rendering ............... 2 4 Multimedia Framework ....................... 2 5 Progressive download and buffered playback ............ 3 6 Distributed playback support .................... 3 7 Camera display on boot ....................... 3 8 Video playback on boot ....................... 3 9 Camera widget ............................ 3 10 Transcoding .............................. 4 11 DVD playback ............................ 4 12 Traffic control ............................. 4 13 Solutions .................................. 5 14 Multimedia Framework ....................... 5 15 Hardware-accelerated Media Rendering .............. 5 16 Buffering playback in GStreamer and clutter-gst ......... 6 17 Distributed playback ......................... 7 18 Camera and Video display on boot ................. 7 19 Camera widget and clutter-gst ................... 8 20 Transcoding .............................. 9 21 DVD playback ............................ 9 22 Traffic control ............................. 9 23 This document covers the various requirements for multimedia handling in the 24 Apertis platform. 25 The FreeScale I.MX/6 platform provides several IP blocks offering low-power 26 and hardware-accelerated features: 27 • GPU : For display and 3D transformation/processing 28 • VPU : For decoding and encoding video streams 29 The Apertis platform will provide robust and novel end-user features by getting 30 the most out of those hardware components.
    [Show full text]
  • Resurrecting Personas of Libreoffice
    Collabora Productivity Resurrecting Personas for LibreOffice By Muhammet Kara Consultant Software Engineer at Collabora Productivity @muhamm3tkara Collabora Productivity www.collaboraoffice.co m Muhammet Kara Work ● Working on the core & UI ● Since Dec 2018 ● Was @Pardus project before Community ● LibreOffice certified developer ● Long-time GNOME contributor ● Member of The Document Foundation & the GNOME Foundation Collabora Productivity www.collaboraoffice.co m Mozilla Themes, aka Personas Tools > Options > Personalization > Load Firefox theme ● Allows applying Mozilla Firefox themes on LibreOffice ● Can select a pre-installed theme ● Can search online for new ones ● Changes background of main menus, and toolbars ● Relies heavily on Mozilla add-ons API & web content Collabora Productivity www.collaboraoffice.co m Past Some of the issues ● Performance & reliability issues ● Error-prone ● Unrelated/incomplete categories ● Getting broken & fixed every now and then ● Simply not working / is practically dead Collabora Productivity www.collaboraoffice.co m Performance & Reliability Issues ● ~40 seconds to search for a keyword ● Fetching whole html pages ● Relying on the design & content of the html (easily broken) ● Multiple & repetitive string searches ● Overwriting existing data every time ● Using unreliable lib for download Collabora Productivity www.collaboraoffice.co m Categories ● 15 on Mozilla & only 6 on LibreOffice ● There is no LibreOffice category ● Not even actual categories! Collabora Productivity www.collaboraoffice.co m Fetch/Download
    [Show full text]
  • Collabora Online & Owncloud
    LIBOCON19 Collabora Online & ownCloud Collabora Productivity Michael Meeks <[email protected]> General Manager at Collabora Productivity @michael_meeks, mmeeks #libreoffice-dev irc.freenode.net “Stand at the crossroads and look; ask for the ancient paths, ask where the good way is, and walk in it, and you will find rest for your souls...” - Jeremiah 6:16 Collabora Productivity What is Collabora Online ? Documents + Spreadsheets + Slides • Viewing and Collaborative editing Excellent interoperability with Microsoft formats • DOCX, DOC, RTF, XLSX, XLS, PPTX, PPT Many other Import filters / Viewin !or • PDF, Visio, P"#lisher $$$ Power!"l %&SIW' ren(erin On-premise Integration with ownClo"($ *r+hitecture , a #et on CP- threa(s . networ/ 0 collabora online . com Collabora Productivity Overview Collabora Shared mission / raison d’etre: ● >100 staff, Cambridge & Montreal ● Make Open Source rock: simple goal of the shareholders ● Parent company – 14 years old ● We re-invest your support into FLOSS software Collabora Productivity – Office Productivity Leaders in the LibreOffice Community ● ~30 staff – 6 years old (last week) ● ~300 developers/year, ~1000 contributors ● 50% C’bra, 50% me ● Collabora Online (DE) – 20+ million docker images collabora online . com ownCloud-2019-09 .. 3 Collabora Productivity Collabora Parent: eg. Monado / OpenXR – play later ... Monado Fun & Games for hackers on Linux ● Founders & driving force behind ● Get involved FLOSS VR / XR ● https://gitlab.freedesktop.org/monado ● When the world goes this way ● https://monado.freedesktop.org/ ● Vital to have an open-source run- time, stack, drivers & community. collabora online . com Nextcloud-2019-09 .. 4 Collabora Productivity Collabora Productivity: examples One of the top three Italian banks 20,000 seats deployed in all their branch offices.
    [Show full text]
  • Libreoffice and Collabora
    Exploiting Concurrency How I stopped worrying and started threading Michael Meeks [email protected] mmeeks / irc.freenode.net Collabora Productivity “Stand at the crossroads and look; ask for the ancient paths, ask where the good way is, and walk in it, and you will find rest for your souls...” - Jeremiah 6:16 @CollaboraOfficeFOSDEM 2017 | Michael Meekswww.CollaboraOffice.com 1 / 15 The exciting (insurmountable?) opportunity ● Processor clocks are stymied at 3-4Ghz ● Various clever tricks improve IPC still ● But the real IPC wins: ● Those other cores – 16 threads: the new normal ● If we use a single thread: we waste 90+% FOSDEM 2017 | Michael Meeks 2 / 15 So where are we at ? LibreOffice Threading Status ● We use lots of threads ● Start impress: 6 threads. – VCL / main – thread – custom allocator thread: rtl_cache – factory thread → accept on argument pipe. – update-check thread → in a sleep. – gio thread → ? pulseaudio thread → ? ● Windows: worse → GDI + real-time timer threads ● Approximately 1+epsilon – zero concurrency FOSDEM 2017 | Michael Meeks 4 / 15 Its not all bad ... ● We have some threads that make sense ● eg. writing configuration thread (short lived) ● Thread-pool for larger tasks ● Large high-fidelity image scaling: – we parallelize nicely: easy to partition task. ● Zipping → ODF & DOCX – Deflation → expensive → implemented this. – Turns out the big problem: images → solved. ● XML parsing / tokenize / sheet loading. ● Drawing Layer / 3D / Software rendering fallback FOSDEM 2017 | Michael Meeks 5 / 15 Why thread ? ● Benefits: ● Focus limited CPU resources; Limited !? – Branch predictor complexity – L1 data cache size – memory bandwidth – Instruction decode logic & micro-op caches ● Splitting your work into a series of passes: – Each going in a thread → maximizes resource use ● eg.
    [Show full text]
  • COLLABORA JOINS GENIVI ALLIANCE UK Open Source
    COLLABORA JOINS GENIVI ALLIANCE UK open source software consultancy adds weight to industry group that enables quicker route to market for in-vehicle entertainment Cambridge, United Kingdom, October 12, 2011 -- UK-based multimedia and open source turnkey solutions company Collabora has today announced it has become an Associate Member of the GENIVI Alliance. The GENIVI Alliance gathers companies from the entire In-Vehicle Infotainment (IVI) industry, including: software, consumer electronics and communication, and major vehicle manufacturers including BMW, Hyundai Motor Group, PSA Peugeot-Citroen, Jaguar Land Rover, General Motors and Renault. Collabora will contribute to make GENIVI an open source platform with best of breed multimedia support and ease of deployment. "GENIVI is a critical organisation in enabling a quick route to market for new and innovative in-vehicle entertainment solutions," said Rob McQueen, Collabora co- founder and CTO. "We are regarded as one of the foremost open source consultancies and as the company behind leading multimedia technologies like the GStreamer multimedia framework, the Telepathy and Farstream real-time communications stack and with the Rygel DLNA implementation, we are convinced we can help propel GENIVI forward as a cutting edge platform." The GENIVI platform is built on top of the Linux kernel, GStreamer, D-bus, Webkit and other open source technologies in which Collabora is a major contributor. Collabora engineers have been contributing to the Linux community for more than six years, becoming one of the most widely-respected and effective open source consulting companies. The company is seen as a pioneer for its work in system infrastructure on open source platforms in fields such as multimedia, web technologies and Inter process communications (IPC).
    [Show full text]
  • Making Sense of the Audio Stack on Unix
    Making Sense of The Audio Stack On Unix Patrick Louis 2021-02-07 Published online on venam.nixers.net © Patrick Louis 2021 This publication is in copyright. Subject to statutory exception and to the provision of relevant collective licensing agreements, no reproduction of any part may take place without the written permission of the rightful author. First published eBook format 2021 The author has no responsibility for the persistence or accuracy of urls for external or third-party internet websites referred to in this publication, and does not guarantee that any content on such websites is, or will remain, accurate or appropriate. Contents Introduction 4 Hardware layer 6 Analog to Digital & Digital to Analog (ADC & DAC) 7 Libraries 10 Audio Driver 11 Advanced Linux Sound Architecture (ALSA) 15 Open Sound System (OSS) and SADA 22 Sound Servers 25 sndio 26 aRts (analog Real time synthesizer) and ESD or ESounD (Enlight- ened Sound Daemon) 28 PulseAudio 29 PulseAudio — What Is It? ........................ 29 Pulseaudio — Overall Design ....................... 30 Pulseaudio — Sink, Sink Input, Source, and Source Input ....... 32 Pulseaudio — Internal Concepts: Cards, Card Profile, Device Port, Device ................................. 34 Pulseaudio — Everything Is A Module Thinking ............ 35 Pulseaudio — Startup Process And Configuration ........... 36 Pulseaudio — Interesting Modules And Features ............ 38 Pulseaudio — Tools ............................ 40 Pulseaudio — Suspending ......................... 41 JACK 42 PipeWire 45 Conclusion 53 Bibliography 55 3 Introduction Come see my magical gramophone Audio on Unix is a little zoo, there are so many acronyms for projects and APIs that it’s easy to get lost. Let’s tackle that issue! Most articles are confusing because they either use audio technical jargon, or because they barely scratch the surface and leave people clueless.
    [Show full text]