Gstreamer Application Development Manual (0.10.21.3)

Total Page:16

File Type:pdf, Size:1020Kb

Gstreamer Application Development Manual (0.10.21.3) GStreamer Application Development Manual (0.10.21.3) Wim Taymans Steve Baker Andy Wingo Ronald S. Bultje Stefan Kost GStreamer Application Development Manual (0.10.21.3) by Wim Taymans, Steve Baker, Andy Wingo, Ronald S. Bultje, and Stefan Kost This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/opl.shtml ( http://www.opencontent.org/opl.shtml)). Table of Contents Foreword.................................................................................................................................................. vii Introduction............................................................................................................................................ viii 1. Who should read this manual?................................................................................................... viii 2. Preliminary reading.................................................................................................................... viii 3. Structure of this manual ............................................................................................................. viii I. About GStreamer...................................................................................................................................x 1. What is GStreamer? .......................................................................................................................1 2. Design principles............................................................................................................................4 2.1. Clean and powerful............................................................................................................4 2.2. Object oriented ..................................................................................................................4 2.3. Extensible ..........................................................................................................................4 2.4. Allow binary-only plugins.................................................................................................4 2.5. High performance..............................................................................................................5 2.6. Clean core/plugins separation............................................................................................5 2.7. Provide a framework for codec experimentation...............................................................5 3. Foundations....................................................................................................................................6 3.1. Elements ............................................................................................................................6 3.2. Pads....................................................................................................................................6 3.3. Bins and pipelines..............................................................................................................7 II. Building an Application .......................................................................................................................8 4. Initializing GStreamer....................................................................................................................9 4.1. Simple initialization...........................................................................................................9 4.2. The GOption interface.....................................................................................................10 5. Elements.......................................................................................................................................12 5.1. What are elements?..........................................................................................................12 5.2. Creating a GstElement..................................................................................................14 5.3. Using an element as a GObject......................................................................................15 5.4. More about element factories ..........................................................................................16 5.5. Linking elements .............................................................................................................18 5.6. Element States .................................................................................................................19 6. Bins ..............................................................................................................................................21 6.1. What are bins...................................................................................................................21 6.2. Creating a bin ..................................................................................................................21 6.3. Custom bins.....................................................................................................................22 7. Bus ...............................................................................................................................................24 7.1. How to use a bus..............................................................................................................24 7.2. Message types..................................................................................................................27 8. Pads and capabilities ....................................................................................................................29 8.1. Pads..................................................................................................................................29 8.2. Capabilities of a pad ........................................................................................................32 8.3. What capabilities are used for .........................................................................................34 8.4. Ghost pads .......................................................................................................................37 9. Buffers and Events .......................................................................................................................39 9.1. Buffers .............................................................................................................................39 9.2. Events ..............................................................................................................................39 iii 10. Your first application..................................................................................................................41 10.1. Hello world....................................................................................................................41 10.2. Compiling and Running helloworld.c ...........................................................................44 10.3. Conclusion.....................................................................................................................45 III. Advanced GStreamer concepts........................................................................................................46 11. Position tracking and seeking ....................................................................................................47 11.1. Querying: getting the position or length of a stream.....................................................47 11.2. Events: seeking (and more) ...........................................................................................48 12. Metadata.....................................................................................................................................50 12.1. Metadata reading ...........................................................................................................50 12.2. Tag writing.....................................................................................................................50 13. Interfaces....................................................................................................................................51 13.1. The URI interface..........................................................................................................51 13.2. The Mixer interface .......................................................................................................51 13.3. The Tuner interface........................................................................................................51 13.4. The Color Balance interface..........................................................................................52 13.5. The Property Probe interface.........................................................................................52 13.6. The X Overlay interface ................................................................................................52 14. Clocks in GStreamer ..................................................................................................................54 14.1. Clock providers .............................................................................................................54 14.2. Clock slaves...................................................................................................................55 15. Dynamic Controllable Parameters
Recommended publications
  • Red Bud School Board Says No Mask Mandate Within District Buildings
    Volume 42 Number 32 Thursday, August 12, 2021 20 Pages | 75¢ Red Bud school board says no mask mandate within district buildings. Use of face masks strongly “The decision to wear a mask or not to wear one should not be judged in recommended but not required any way,” Tallman stated By Dan Zobel the usage of masks only on in the message. “We are a Governor J.B. Pritzker an- school buses. close-knit community, and nounced August 4 a mask In speaking to the County a pillar of our community mandate for schools in the Journal August 10, Red is a collective spirit of sup- wake of rising positive Bud Superintendent Jona- port. I hope you will help us COVID-19 cases throughout than Tallman said, “The promote that by reminding the state, but the Red Bud parents were very pas- your child how important school district has chosen sionate, and at the same that is before we begin to not follow the mandate. time very respectful, and school.” The district held a special understood the position Tallman said that, so meeting August 5, the day the district was in. They far, he has heard a lot of after Pritzker’s announce- pleaded with our board to support and appreciation ment. consider the ramifications from parents. Although, After much discussion the masks have had on as he expected, he has also among board members their own children, and One mother illustrated man knows that a lot of received several notes and and with concerned par- for the district to maintain one of the ways face masks work still has to be done for emails from parents who ents who were in attend- local control.” become a hinderence.
    [Show full text]
  • Nix on SHARCNET
    Nix on SHARCNET Tyson Whitehead May 14, 2015 Nix Overview An enterprise approach to package management I a package is a specific piece of code compiled in a specific way I each package is entirely self contained and does not change I each users select what packages they want and gets a custom enviornment https://nixos.org/nix Ships with several thousand packages already created https://nixos.org/nixos/packages.html SHARCNET What this adds to SHARCNET I each user can have their own custom environments I environments should work everywhere (closed with no external dependencies) I several thousand new and newer packages Current issues (first is permanent, second will likely be resolved) I newer glibc requires kernel 2.6.32 so no requin I package can be used but not installed/removed on viz/vdi https: //sourceware.org/ml/libc-alpha/2014-01/msg00511.html Enabling Nix Nix is installed under /home/nixbld on SHARCNET. Enable for a single sessiong by running source /home/nixbld/profile.d/nix-profile.sh To always enable add this to the end of ~/.bash_profile echo source /home/nixbld/profile.d/nix-profile.sh \ >> ~/.bash_profile Reseting Nix A basic reset is done by removing all .nix* files from your home directory rm -fr ~/.nix* A complete reset done by remove your Nix per-user directories rm -fr /home/nixbld/var/nix/profile/per-user/$USER rm -fr /home/nixbld/var/nix/gcroots/per-user/$USER The nix-profile.sh script will re-create these with the defaults next time it runs. Environment The nix-env commands maintains your environments I query packages (available and installed) I create a new environment from current one by adding packages I create a new environment from current one by removing packages I switching between existing environments I delete unused environements Querying Packages The nix-env {--query | -q} ..
    [Show full text]
  • Downloads." the Open Information Security Foundation
    Performance Testing Suricata The Effect of Configuration Variables On Offline Suricata Performance A Project Completed for CS 6266 Under Jonathon T. Giffin, Assistant Professor, Georgia Institute of Technology by Winston H Messer Project Advisor: Matt Jonkman, President, Open Information Security Foundation December 2011 Messer ii Abstract The Suricata IDS/IPS engine, a viable alternative to Snort, has a multitude of potential configurations. A simplified automated testing system was devised for the purpose of performance testing Suricata in an offline environment. Of the available configuration variables, seventeen were analyzed independently by testing in fifty-six configurations. Of these, three variables were found to have a statistically significant effect on performance: Detect Engine Profile, Multi Pattern Algorithm, and CPU affinity. Acknowledgements In writing the final report on this endeavor, I would like to start by thanking four people who made this project possible: Matt Jonkman, President, Open Information Security Foundation: For allowing me the opportunity to carry out this project under his supervision. Victor Julien, Lead Programmer, Open Information Security Foundation and Anne-Fleur Koolstra, Documentation Specialist, Open Information Security Foundation: For their willingness to share their wisdom and experience of Suricata via email for the past four months. John M. Weathersby, Jr., Executive Director, Open Source Software Institute: For allowing me the use of Institute equipment for the creation of a suitable testing
    [Show full text]
  • FFV1, Matroska, LPCM (And More)
    MediaConch Implementation and policy checking on FFV1, Matroska, LPCM (and more) Jérôme Martinez, MediaArea Innovation Workshop ‑ March 2017 What is MediaConch? MediaConch is a conformance checker Implementation checker Policy checker Reporter Fixer What is MediaConch? Implementation and Policy reporter What is MediaConch? Implementation report: Policy report: What is MediaConch? General information about your files What is MediaConch? Inspect your files What is MediaConch? Policy editor What is MediaConch? Public policies What is MediaConch? Fixer Segment sizes in Matroska Matroska “bit flip” correction FFV1 “bit flip” correction Integration Archivematica is an integrated suite of open‑source software tools that allows users to process digital objects from ingest to access in compliance with the ISO‑OAIS functional model MediaConch interfaces Graphical interface Web interface Command line Server (REST API) (Work in progress) a library (.dll/.so/.dylib) MediaConch output formats XML (native format) Text HTML (Work in progress) PDF Tweakable! (with XSL) Open source GPLv3+ and MPLv2+ Relies on MediaInfo (metadata extraction tool) Use well‑known open source libraries: Qt, sqlite, libevent, libxml2, libxslt, libexslt... Supported formats Priorities for the implementation checker Matroska FFV1 PCM Can accept any format supported by MediaInfo for the policy checker MXF + JP2k QuickTime/MOV Audio files (WAV, BWF, AIFF...) ... Supported formats Can be expanded By plugins Support of PDF checker: VeraPDF plugin Support of TIFF checker: DPF Manager plugin You use another checker? Let us know By internal development More tests on your preferred format is possible It depends on you! Versatile Several input formats are accepted FFV1 from MOV or AVI Matroska with other video formats (Work in progress) Extraction of a PDF or TIFF aachement from a Matroska container and analyze with a plugin (e.g.
    [Show full text]
  • Feature-Oriented Defect Prediction: Scenarios, Metrics, and Classifiers
    1 Feature-Oriented Defect Prediction: Scenarios, Metrics, and Classifiers Mukelabai Mukelabai, Stefan Strüder, Daniel Strüber, Thorsten Berger Abstract—Software defects are a major nuisance in software development and can lead to considerable financial losses or reputation damage for companies. To this end, a large number of techniques for predicting software defects, largely based on machine learning methods, has been developed over the past decades. These techniques usually rely on code-structure and process metrics to predict defects at the granularity of typical software assets, such as subsystems, components, and files. In this paper, we systematically investigate feature-oriented defect prediction: predicting defects at the granularity of features—domain-entities that abstractly represent software functionality and often cross-cut software assets. Feature-oriented prediction can be beneficial, since: (i) particular features might be more error-prone than others, (ii) characteristics of features known as defective might be useful to predict other error-prone features, and (iii) feature-specific code might be especially prone to faults arising from feature interactions. We explore the feasibility and solution space for feature-oriented defect prediction. We design and investigate scenarios, metrics, and classifiers. Our study relies on 12 software projects from which we analyzed 13,685 bug-introducing and corrective commits, and systematically generated 62,868 training and test datasets to evaluate the designed classifiers, metrics, and scenarios. The datasets were generated based on the 13,685 commits, 81 releases, and 24, 532 permutations of our 12 projects depending on the scenario addressed. We covered scenarios, such as just-in-time (JIT) and cross-project defect prediction.
    [Show full text]
  • Creating Custom Debian Live for USB FD with Encrypted Persistence
    Creating Custom Debian Live for USB FD with Encrypted Persistence INTRO Debian is a free operating system (OS) for your computer. An operating system is the set of basic programs and utilities that make your computer run. Debian provides more than a pure OS: it comes with over 43000 packages, precompiled software bundled up in a nice format for easy installation on your machine. PRE-REQ * Debian distro installed * Free Disk Space (Depends on you) Recommended Free Space >20GB * Internet Connection Fast * USB Flash Drive atleast 4GB Installing Required Softwares on your distro: Open Root Terminal or use sudo: $ sudo apt-get install debootstrap syslinux squashfs-tools genisoimage memtest86+ rsync apt-cacher-ng live-build live-config live-boot live-boot-doc live-config-doc live-manual live-tools live-manual-pdf qemu-kvm qemu-utils virtualbox virtualbox-qt virtualbox-dkms p7zip-full gparted mbr dosfstools parted Configuring APT Proxy Server (to save bandwidth) Start apt-cacher-ng service if not running # service apt-cacher-ng start Edit /etc/apt/sources.list with your favorite text editor. Terminal # nano /etc/apt/sources.list Output: (depends on your APT Mirror configuration) deb http://security.debian.org/ jessie/updates main contrib non-free deb http://http.debian.org/debian jessie main contrib non-free deb http://ftp.debian.org/debian jessie main contrib non-free Add “localhost:3142” : deb http://localhost:3142/security.debian.org/ jessie/updates main contrib non-free deb http://localhost:3142/http.debian.org/debian jessie main contrib non-free deb http://localhost:3142/ftp.debian.org/debian jessie main contrib non-free Press Ctrl + X and Y to save changes Terminal # apt-get update # apt-get upgrade NOTE: BUG in Debian Live.
    [Show full text]
  • Camcorder Multimedia Framework with Linux and Gstreamer
    Camcorder multimedia framework with Linux and GStreamer W. H. Lee, E. K. Kim, J. J. Lee , S. H. Kim, S. S. Park SWL, Samsung Electronics [email protected] Abstract Application Applications Layer Along with recent rapid technical advances, user expec- Multimedia Middleware Sequencer Graphics UI Connectivity DVD FS tations for multimedia devices have been changed from Layer basic functions to many intelligent features. In order to GStreamer meet such requirements, the product requires not only a OSAL HAL OS Layer powerful hardware platform, but also a software frame- Device Software Linux Kernel work based on appropriate OS, such as Linux, support- Drivers codecs Hardware Camcorder hardware platform ing many rich development features. Layer In this paper, a camcorder framework is introduced that is designed and implemented by making use of open Figure 1: Architecture diagram of camcorder multime- source middleware in Linux. Many potential develop- dia framework ers can be referred to this multimedia framework for camcorder and other similar product development. The The three software layers on any hardware platform are overall framework architecture as well as communica- application, middleware, and OS. The architecture and tion mechanisms are described in detail. Furthermore, functional operation of each layer is discussed. Addi- many methods implemented to improve the system per- tionally, some design and implementation issues are ad- formance are addressed as well. dressed from the perspective of system performance. The overall software architecture of a multimedia 1 Introduction framework is described in Section 2. The framework design and its operation are introduced in detail in Sec- It has recently become very popular to use the internet to tion 3.
    [Show full text]
  • Free Mpc Download MPC-HC (Media Player Classic) 1.9.14
    free mpc download MPC-HC (Media Player Classic) 1.9.14. MPC-HC is a lightweight, open source media player. It supports most video and audio file formats out there. Download. What's New. Certified. Similar to 11. Windows 64-bit Windows 32-bit Portable 64-bit Portable 32-bit. The player supports all common video and audio file formats available for playback. Most important thing is that we're completely free, 0 spyware, 0 ads and no user tracking. It has a built in DVD player with real-time zoom, support for AVI subtitles, QuickTime and RealVideo support (requires QuickTime and/or Real Player); built-in MPEG2/SVCD/DVD codec. Media Player Classic was created and is currently maintained by a programmer named "Gabest". This is a mod of Media Player Classic design for home cinema usage. Watch movies on any SSE CPU, even on your old computer back from '99. With its wide array of options, MPC-HC can be customized to fit almost any needs. Among other things we added custom toolbars. MPC-HC can also be used as DVB player. Note: The original MPC-HC was abandoned by developers in 2017 but this version carries on the legacy. Media Player Classic. Media Player Classic is an open-source media player for 32-bit and 64-bit versions of Windows operating systems. MPC-HC is capable of playing Video CD, Super Video CD, and other digital optical disc storage formats automatically; all necessary codecs have been installed in the program. The program and its source code are based on the K-lite Codec Pack and the Combined Community Codec Pack.
    [Show full text]
  • Evaluation of a Rat Model of Exercise-Induced Fatigue Using Treadmill Running with Progressively Increasing Load
    Anais da Academia Brasileira de Ciências (2019) 91(4): e20180957 (Annals of the Brazilian Academy of Sciences) Printed version ISSN 0001-3765 / Online version ISSN 1678-2690 http://dx.doi.org/10.1590/0001-3765201920180957 www.scielo.br/aabc | www.fb.com/aabcjournal Evaluation of a rat model of exercise-induced fatigue using treadmill running with progressively increasing load LIJUAN HOU1, KE LI1, YANRU HU2, YIJUN BIAN3, WEI JI1, KAIXUAN SHI1, YITING LI1, MENGJIAO CHEN1, JIAXIN LI1, XIAOLI LIU1 and DECAI QIAO1 1Beijing Normal University, No. 19, XinJieKouWai St., HaiDian District, Beijing, 100875, P.R. China 2Central South University, No. 932 South Lushan Road, Changsha, Hunan, 410083, P.R. China 3University of Science and Technology of China, No. 96, JinZhai Road Baohe District, Hefei, Anhui, 230027, P.R. China Manuscript received on September 17, 2018; accepted for publication on January 23, 2019 How to cite: HOU L, LI K, HU Y, BIAN Y, JI W, SHI K, LI Y, CHEN M, LI J, LIU X AND QIAO D. 2019. Evaluation of a rat model of exercise-induced fatigue using treadmill running with progressively increasing load. An Acad Bras Cienc 91: e20180957. DOI 10.1590/0001-3765201920180957. Abstract: The mechanism behind exercise-induced fatigue is a significant topic in the field of sports physiology. Therefore, establishing and evaluating an acute exercise-induced fatigue animal model that explores the limits of the motor system may provide greater insight into these mechanisms. Heart rate is an important quantitative parameter that accurately reflects the immediate change in physical function due to exercise load. And there is likely to be an important correlation between heart rate and behavioral performance.
    [Show full text]
  • Praise for the Official Ubuntu Book
    Praise for The Official Ubuntu Book “The Official Ubuntu Book is a great way to get you started with Ubuntu, giving you enough information to be productive without overloading you.” —John Stevenson, DZone Book Reviewer “OUB is one of the best books I’ve seen for beginners.” —Bill Blinn, TechByter Worldwide “This book is the perfect companion for users new to Linux and Ubuntu. It covers the basics in a concise and well-organized manner. General use is covered separately from troubleshooting and error-handling, making the book well-suited both for the beginner as well as the user that needs extended help.” —Thomas Petrucha, Austria Ubuntu User Group “I have recommended this book to several users who I instruct regularly on the use of Ubuntu. All of them have been satisfied with their purchase and have even been able to use it to help them in their journey along the way.” —Chris Crisafulli, Ubuntu LoCo Council, Florida Local Community Team “This text demystifies a very powerful Linux operating system . in just a few weeks of having it, I’ve used it as a quick reference a half dozen times, which saved me the time I would have spent scouring the Ubuntu forums online.” —Darren Frey, Member, Houston Local User Group This page intentionally left blank The Official Ubuntu Book Sixth Edition This page intentionally left blank The Official Ubuntu Book Sixth Edition Benjamin Mako Hill Matthew Helmke Amber Graner Corey Burger With Jonathan Jesse, Kyle Rankin, and Jono Bacon Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks.
    [Show full text]
  • A Brief History of GNOME
    A Brief History of GNOME Jonathan Blandford <[email protected]> July 29, 2017 MANCHESTER, UK 2 A Brief History of GNOME 2 Setting the Stage 1984 - 1997 A Brief History of GNOME 3 Setting the stage ● 1984 — X Windows created at MIT ● ● 1985 — GNU Manifesto Early graphics system for ● 1991 — GNU General Public License v2.0 Unix systems ● 1991 — Initial Linux release ● Created by MIT ● 1991 — Era of big projects ● Focused on mechanism, ● 1993 — Distributions appear not policy ● 1995 — Windows 95 released ● Holy Moly! X11 is almost ● 1995 — The GIMP released 35 years old ● 1996 — KDE Announced A Brief History of GNOME 4 twm circa 1995 ● Network Transparency ● Window Managers ● Netscape Navigator ● Toolkits (aw, motif) ● Simple apps ● Virtual Desktops / Workspaces A Brief History of GNOME 5 Setting the stage ● 1984 — X Windows created at MIT ● 1985 — GNU Manifesto ● Founded by Richard Stallman ● ● 1991 — GNU General Public License v2.0 Our fundamental Freedoms: ○ Freedom to run ● 1991 — Initial Linux release ○ Freedom to study ● 1991 — Era of big projects ○ Freedom to redistribute ○ Freedom to modify and ● 1993 — Distributions appear improve ● 1995 — Windows 95 released ● Also, a set of compilers, ● 1995 — The GIMP released userspace tools, editors, etc. ● 1996 — KDE Announced This was an overtly political movement and act A Brief History of GNOME 6 Setting the stage ● 1984 — X Windows created at MIT “The licenses for most software are ● 1985 — GNU Manifesto designed to take away your freedom to ● 1991 — GNU General Public License share and change it. By contrast, the v2.0 GNU General Public License is intended to guarantee your freedom to share and ● 1991 — Initial Linux release change free software--to make sure the ● 1991 — Era of big projects software is free for all its users.
    [Show full text]
  • Kmplayer 42231 Crack
    KMPlayer 4.2.2.31 Crack KMPlayer 4.2.2.31 Crack 1 / 2 Wondershare Filmora v9.2.11.6 (x64) + Crack ~(rana), 11 months ago, 205.64 ... Software, KMPlayer 4.2.2.31 For Windows(rana) Download .... 『국내 토렌트 사이트가 한 자리에』 대한민국 No.1 바다보아 > 유틸 | KMPlayer is a versatile media player which can cover various types of .... Download Crack + Setup KMPlayer 4.2.2.31 Crack with Product Number Free & Torrent Download The KMPlayer is a most well- known media player that can ... - Download KMPlayer 4.2.2.31 for Windows ... ﺍﻟﺪﺭﺱ ﺍﻷﻭﻝ ﻣﻦ .After the crack is applied, just remove the following two lines from the hosts file ... KMPlayer 4.2.2.31 32-bit: http://update.kmpmedia.net/player/update 64-bit: .... 5 days ago 4K Video Downloader 4.11.0.3360 Crack For Mac Windows With Torrent to ... ===Download KMPlayer 4.2.2.31 for Windows .... Dark skies torrent .& AVG Secure VPN 1.10.765 Crack License Key ... ﺟﺴﻮﺭ ﻓﻴﻠﻢ ?Filehippo.com kmplayer 64x kmplayer for windows 10, kmplayer 64x, kmplayer old version, kmplayer for mac, kmplayer, kmplayer download, kmplayer pro, kmplayer apk, kmplayer mod apk, kmplayer vs vlc, kmplayer pc, kmplayer exe, kmplayer for pc 32 bit, kmplayer for pc 64 bit download, kmplayer pro apk, kmplayer for pc 64 bit KMPlayer Crack is the most advanced & terrific software and acts as a media player for many types of video formats. KMPlayer Free Download.. Crack Download Wondershare AllMyTube 7.4.0.9 Multilingual.Crack, 2 years ago, 38.86 MB, 599, 399. Software, KMPlayer 4.2.2.31 For Windows(Alisa) ...
    [Show full text]