SlideShare a Scribd company logo
Samsung Open Source Group 1
How to Contribute to GStreamer
Luis de Bethencourt
Samsung Open Source Group
luisbg@osg.samsung.com
Samsung Open Source Group 2
About Me
● Originally from the Canary Islands. Currently in London.
● Joined GStreamer in 2010
– b870ff15b50c76ef2bad9733493e97b60eca32de
gaudieffects: Adds new plugin 'gaudieffects'
● Working for Samsung's Open Source Group
Samsung Open Source Group 3
Agenda
● Motivation
● The GStreamer Community
● GStreamer development process
– Good practices
– Infrastructure
Samsung Open Source Group 4
Motivation
Samsung Open Source Group 5
Motivation
● GStreamer is a large and global collaborative software development project
● To handle this, maintainers have a very well optimized workflow
● Each project is different. There isn't a single way to submit a patch
● This talk aims to introduce the GStreamer Community
● And give you a running start to help you join and contribute
Join us now and play with GStreamer.
You'll be cool hacker, you'll be cool.
Samsung Open Source Group 6
The GStreamer Community
Samsung Open Source Group 7
Global Community
Samsung Open Source Group 8
Growing Community
Data from openhub.net
● 1,056 contributors (989 by my count)
Samsung Open Source Group 9
Growing Community
git log --reverse --format="%aI %aN" | sort -k 2 | uniq -f 1
Samsung Open Source Group 10
Active Community
Data from openhub.net
● 88,547 commits
Samsung Open Source Group 11
Codebase Growth
Data from openhub.net
● 1,556,544 lines of code
Samsung Open Source Group 12
Professional
● Commits by the day of the week
Samsung Open Source Group 13
Easy to have impact
● 13.6% of contributors have more than 20 commits
● Top 5 contributors represent 42% of commits
● Commits by author
Samsung Open Source Group 14
Release Cycle
● 0.0.1 [1999-06]
● 0.10 [2005-12]
● 1.0 [2012-09]
● 1.2 [2013-09]
● 1.4 [2014-07]
● 1.6 [2015-09]
Samsung Open Source Group 15
1.6 Release Stats
● 6,558 commits
● 230 contributors
● 122 new contributors
Samsung Open Source Group 16
Commercially Backed
● 1.6 Release contributions
– Centricular 44%
– Collabora 17%
– Samsung 15%
– Rest 24%
(Mostly) based on email address domains
Samsung Open Source Group 17
People stay, must be fun!
● 1.6 Release contributors
– 4% joined before 2006
– 17% joined before 2010
– 28% joined before 2012
Samsung Open Source Group 18
Contribution steps
Samsung Open Source Group 19
Contribution steps
● Early research
● Patch preparation
● Patch formatting and posting
● Waiting feedback
● Patches landed
Samsung Open Source Group 20
Early research
● Experiment with gst-launch-1.0
● Learn about elements with gst-inspect-1.0
● Read GStreamer Application Development Manual
– http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html
● Read GStreamer Plugin Writer's Guide
– http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/index.html
● Read examples in codebase
– They can be found in the “tests/examples” folder of each GStreamer module
– For example: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples
● GstPlayer (or any other application based on Gstreamer, except snappy)
● Read the codebase
● Ask questions in the mailing list or IRC
Samsung Open Source Group 21
Contribution ladder
GStreamer is a big Open Source project where you not only have to do technical
work but also will have to interact with its big (and diverse) friendly community.
For that reason, it's important to get started in a way that enables the newcomer to
contribute patches but also to understand the community and related workflows
Contribution ladder to get started:
– Bug triaging
– Bug reporting
– Code reviewing
– Bug fixing
– Enhancements or new features
Samsung Open Source Group 22
Build GStreamer
●
mkdir -p gst/uninstalled
●
cd gst/uninstalled
●
git clone git://anongit.freedesktop.org/gstreamer/gstreamer
(and all interesting modules in http://cgit.freedesktop.org/gstreamer/)
●
cd ../..
●
cp gst/uninstalled/gstreamer/scripts/gst-uninstalled ..
●
edit MYGST in gst-uninstalled
●
/gst-uninstalled
(now all paths lead to the uninstalled version)
●
echo $PATH
●
cd gstreamer
●
/autogen.sh; make
(congratulations! you have your own latest gstreamer core)
●
which gst-launch-1.0
(gst-inspect-1.0 will only have coreelements)
●
cd ..; cp gstreamer/scripts/git-update.sh .
●
/git-update.sh
Samsung Open Source Group 23
First Steps with GStreamer
●
Test failures: Test reported bugs in GStreamer's Bugzilla (bugzilla.gnome.org/browse.cgi?
product=GStreamer)
●
Report bugs: Check the continuous integration server
(https://jenkins.arracacha.collabora.co.uk/) or you run 'make check'. Once you selected the tests,
you check if it has been reported in Bugzilla. If it isn't, report it. You can try to find the root issue
why they fail and work on a patch to fix it. Join the conversation with useful information!
●
Fix bugs: you go to the GStreamer's Bugzilla and search for relevant bugs that you might help
with and/or you might have an interest in working on.
●
Enhancements or new features: open a new bug thread in Bugzilla with your idea and design.
Confirm the feature is of interest and the design is approved before you start coding.
Small steps: at the beginning, it's normally more useful to start with bug triaging, test failures,
small fixes because it allows you know the workflow and community in an easier and faster way
Samsung Open Source Group 24
Patch formatting and posting
● Gst-indent
– Run gst-indent on .c files.
– You can find it at: http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tools/gst-indent
●Bugzilla
– Register an account in bugzilla.gnome.org
– Two possible ways to submit a patch:
–Create a new bug
● https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
– If a bug already exist, attach your patch to it
– Add link to bugzilla as the last line of the commit message
Samsung Open Source Group 25
The perfect commit message
commit 41fdf21a60ca69bdc90bef367fbce41dcf4415ad
Author: Tim-Philipp Müller <tim@centricular.com>
Date: Sat May 30 14:27:05 2015 +0100
queue: avoid slice allocs/frees for each item
Microoptimisation: Let GstQueueArray store our
item struct. That way we don't have to alloc/free
temporary QueueItem slices for every item we want
to put into the queue.
https://bugzilla.gnome.org/show_bug.cgi?id=750149
Samsung Open Source Group 26
Patch formatting and posting
● Gst-indent
– Run gst-indent on .c files.
– You can find it at: http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tools/gst-indent
●Bugzilla
– Register an account in bugzilla.gnome.org
– Two possible ways to submit a patch:
–Create a new bug
● https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
– If a bug already exist, attach your patch to it
– Add link to bugzilla as the last line of the commit message
Samsung Open Source Group 27
Waiting for feedback
●
Review happens in bugzilla
●
Give some time for reviewers to show up
●
If no reviews in a week
– Ask people directly
– Who? Git log and git blame are your friends
Samsung Open Source Group 28
Patches landed
●Once accepted. A maintainer will push the commit upstream.
●Set the patch state to 'Committed' in bugzilla.
●Set the bug milestone and status.
– Current milestone 1.7.1
– Status: Resolved and Fixed
●
o/
Samsung Open Source Group 29
Be Social
It is very important to communicate with the group. They are a lovely bunch.
●
Mailing lists: http://gstreamer.freedesktop.org/lists/
– gstreamer-announce – for important announcements (moderated)
– gstreamer-devel – general discussion (open for you to talk here)
●
IRC: #gstreamer @ irc.freenode.net
●
GStreamer Conference: every year around October
●
GStreamer Hackfests: twice a year
If you do this, you will normally be able to get engaged in GStreamer in a much
easier way, which will help you to grow your knowledge and status in the
community.
Samsung Open Source Group 30
Finding Bugs
●
Use GStreamer from the git (development version)
●
Run gstreamer/tree/scripts/five-bugs-a-day.pl
●
Search in https://bugzilla.gnome.org/browse.cgi?product=GStreamer
Samsung Open Source Group 31
Finding Bugs
●
That said, it is best to focus on an area of Gstreamer to develop
expertise or even maintain a component. Then bugs will come to you.
Samsung Open Source Group 32
Find Me
● If you ever struggle when joining or participating with the community…
●
luis@debethencourt.com
luisbg@osg.samsung.com
luisbg @ freenode
@luisbg
Samsung Open Source Group 33
Questions?
Samsung Open Source Group 34
Thank You!

More Related Content

PDF
Synchronised Multidevice Media Playback with Gstreamer
PPTX
UDPSRC GStreamer Plugin Session VIII
PDF
Gstreamer Basics
PDF
Improving GStreamer performance on large pipelines: from profiling to optimiz...
PPT
Gstreamer plugin devpt_1
ODP
GStreamer Instruments
PDF
SWT Tech Sharing: Node.js + Redis
PPT
GStreamer 101
Synchronised Multidevice Media Playback with Gstreamer
UDPSRC GStreamer Plugin Session VIII
Gstreamer Basics
Improving GStreamer performance on large pipelines: from profiling to optimiz...
Gstreamer plugin devpt_1
GStreamer Instruments
SWT Tech Sharing: Node.js + Redis
GStreamer 101

What's hot (20)

PDF
Javascript in linux desktop (ICOS ver.)
DOCX
Tutorial to setup OpenStreetMap tileserver with customized boundaries of India
PDF
chainer-trt: ChainerとTensorRTで超高速推論
PDF
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
PDF
Profiling and optimizing go programs
PDF
Monitoring with Ganglia
PDF
Ganeti - build your own cloud
PDF
GR8Conf 2011: GContracts
PPT
Ganglia monitoring
PDF
LXC on Ganeti
PPT
Ganglia Monitoring Tool
DOCX
ggExtra Package-ggMarginal and Example -Shiny and Shinyjs
PPTX
Efficient containers
PDF
Basics of gtk_ilugc
PDF
RSA NetWitness Log Decoder
PDF
Global Interpreter Lock: Episode III - cat &lt; /dev/zero > GIL;
PDF
GUI Programming with Perl / GTK
PDF
OpenStack for Centos
PDF
Kernel Recipes 2015: Introduction to Kernel Power Management
PDF
New Views on your History with git replace
Javascript in linux desktop (ICOS ver.)
Tutorial to setup OpenStreetMap tileserver with customized boundaries of India
chainer-trt: ChainerとTensorRTで超高速推論
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
Profiling and optimizing go programs
Monitoring with Ganglia
Ganeti - build your own cloud
GR8Conf 2011: GContracts
Ganglia monitoring
LXC on Ganeti
Ganglia Monitoring Tool
ggExtra Package-ggMarginal and Example -Shiny and Shinyjs
Efficient containers
Basics of gtk_ilugc
RSA NetWitness Log Decoder
Global Interpreter Lock: Episode III - cat &lt; /dev/zero > GIL;
GUI Programming with Perl / GTK
OpenStack for Centos
Kernel Recipes 2015: Introduction to Kernel Power Management
New Views on your History with git replace
Ad

Similar to How to Contribute to GStreamer (20)

PDF
A Survivor's Guide to Contributing to the Linux Kernel
PPTX
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTree
PPTX
Open Source_Git.pptx
PDF
FFmpeg: A Retrospective
PPTX
Introduction to git & github
PDF
Static Analysis of Your OSS Project with Coverity
PDF
7 tools for your devops stack
PDF
Buytaert kris tools
PDF
he Future of Continuous Integration in GNOME
PDF
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
PDF
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
PDF
How to plan and define your CI-CD pipeline
PPTX
Git for work groups ironhack talk
PDF
Releaseflow: a healthy build and deploy process
PPTX
Open source
PPTX
Git Basics
PDF
Gerrit Code Review
PDF
What is version control software and why do you need it?
PPTX
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
PPTX
git-flow R3Labs
A Survivor's Guide to Contributing to the Linux Kernel
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTree
Open Source_Git.pptx
FFmpeg: A Retrospective
Introduction to git & github
Static Analysis of Your OSS Project with Coverity
7 tools for your devops stack
Buytaert kris tools
he Future of Continuous Integration in GNOME
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
How to plan and define your CI-CD pipeline
Git for work groups ironhack talk
Releaseflow: a healthy build and deploy process
Open source
Git Basics
Gerrit Code Review
What is version control software and why do you need it?
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
git-flow R3Labs
Ad

More from Samsung Open Source Group (20)

PDF
The Complex IoT Equation (and FLOSS solutions)
PDF
Easy IoT with JavaScript
PDF
Spawny: A New Approach to Logins
PDF
Rapid SPi Device Driver Development over USB
PDF
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
PDF
IoTivity: Smart Home to Automotive and Beyond
PDF
IoTivity for Automotive: meta-ocf-automotive tutorial
PDF
GENIVI + OCF Cooperation
PDF
Framework for IoT Interoperability
PDF
Open Source Metrics to Inform Corporate Strategy
PDF
IoTivity for Automotive IoT Interoperability
PDF
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
PDF
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
PDF
IoTivity: From Devices to the Cloud
PDF
SOSCON 2016 JerryScript
PDF
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
PDF
Run Your Own 6LoWPAN Based IoT Network
PDF
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
PDF
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
PDF
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
The Complex IoT Equation (and FLOSS solutions)
Easy IoT with JavaScript
Spawny: A New Approach to Logins
Rapid SPi Device Driver Development over USB
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
IoTivity: Smart Home to Automotive and Beyond
IoTivity for Automotive: meta-ocf-automotive tutorial
GENIVI + OCF Cooperation
Framework for IoT Interoperability
Open Source Metrics to Inform Corporate Strategy
IoTivity for Automotive IoT Interoperability
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
IoTivity: From Devices to the Cloud
SOSCON 2016 JerryScript
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
Run Your Own 6LoWPAN Based IoT Network
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things

Recently uploaded (20)

PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
AI in Product Development-omnex systems
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Digital Strategies for Manufacturing Companies
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
System and Network Administration Chapter 2
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Online Work Permit System for Fast Permit Processing
DOCX
The Five Best AI Cover Tools in 2025.docx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Materi-Enum-and-Record-Data-Type (1).pptx
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
top salesforce developer skills in 2025.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Complete React Javascript Course Syllabus.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
AI in Product Development-omnex systems
Odoo POS Development Services by CandidRoot Solutions
2025 Textile ERP Trends: SAP, Odoo & Oracle
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Digital Strategies for Manufacturing Companies
Which alternative to Crystal Reports is best for small or large businesses.pdf
System and Network Administration Chapter 2
ManageIQ - Sprint 268 Review - Slide Deck
Online Work Permit System for Fast Permit Processing
The Five Best AI Cover Tools in 2025.docx
Upgrade and Innovation Strategies for SAP ERP Customers
Materi-Enum-and-Record-Data-Type (1).pptx
How Creative Agencies Leverage Project Management Software.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
How to Migrate SBCGlobal Email to Yahoo Easily
top salesforce developer skills in 2025.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Complete React Javascript Course Syllabus.pdf

How to Contribute to GStreamer

  • 1. Samsung Open Source Group 1 How to Contribute to GStreamer Luis de Bethencourt Samsung Open Source Group luisbg@osg.samsung.com
  • 2. Samsung Open Source Group 2 About Me ● Originally from the Canary Islands. Currently in London. ● Joined GStreamer in 2010 – b870ff15b50c76ef2bad9733493e97b60eca32de gaudieffects: Adds new plugin 'gaudieffects' ● Working for Samsung's Open Source Group
  • 3. Samsung Open Source Group 3 Agenda ● Motivation ● The GStreamer Community ● GStreamer development process – Good practices – Infrastructure
  • 4. Samsung Open Source Group 4 Motivation
  • 5. Samsung Open Source Group 5 Motivation ● GStreamer is a large and global collaborative software development project ● To handle this, maintainers have a very well optimized workflow ● Each project is different. There isn't a single way to submit a patch ● This talk aims to introduce the GStreamer Community ● And give you a running start to help you join and contribute Join us now and play with GStreamer. You'll be cool hacker, you'll be cool.
  • 6. Samsung Open Source Group 6 The GStreamer Community
  • 7. Samsung Open Source Group 7 Global Community
  • 8. Samsung Open Source Group 8 Growing Community Data from openhub.net ● 1,056 contributors (989 by my count)
  • 9. Samsung Open Source Group 9 Growing Community git log --reverse --format="%aI %aN" | sort -k 2 | uniq -f 1
  • 10. Samsung Open Source Group 10 Active Community Data from openhub.net ● 88,547 commits
  • 11. Samsung Open Source Group 11 Codebase Growth Data from openhub.net ● 1,556,544 lines of code
  • 12. Samsung Open Source Group 12 Professional ● Commits by the day of the week
  • 13. Samsung Open Source Group 13 Easy to have impact ● 13.6% of contributors have more than 20 commits ● Top 5 contributors represent 42% of commits ● Commits by author
  • 14. Samsung Open Source Group 14 Release Cycle ● 0.0.1 [1999-06] ● 0.10 [2005-12] ● 1.0 [2012-09] ● 1.2 [2013-09] ● 1.4 [2014-07] ● 1.6 [2015-09]
  • 15. Samsung Open Source Group 15 1.6 Release Stats ● 6,558 commits ● 230 contributors ● 122 new contributors
  • 16. Samsung Open Source Group 16 Commercially Backed ● 1.6 Release contributions – Centricular 44% – Collabora 17% – Samsung 15% – Rest 24% (Mostly) based on email address domains
  • 17. Samsung Open Source Group 17 People stay, must be fun! ● 1.6 Release contributors – 4% joined before 2006 – 17% joined before 2010 – 28% joined before 2012
  • 18. Samsung Open Source Group 18 Contribution steps
  • 19. Samsung Open Source Group 19 Contribution steps ● Early research ● Patch preparation ● Patch formatting and posting ● Waiting feedback ● Patches landed
  • 20. Samsung Open Source Group 20 Early research ● Experiment with gst-launch-1.0 ● Learn about elements with gst-inspect-1.0 ● Read GStreamer Application Development Manual – http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html ● Read GStreamer Plugin Writer's Guide – http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/index.html ● Read examples in codebase – They can be found in the “tests/examples” folder of each GStreamer module – For example: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples ● GstPlayer (or any other application based on Gstreamer, except snappy) ● Read the codebase ● Ask questions in the mailing list or IRC
  • 21. Samsung Open Source Group 21 Contribution ladder GStreamer is a big Open Source project where you not only have to do technical work but also will have to interact with its big (and diverse) friendly community. For that reason, it's important to get started in a way that enables the newcomer to contribute patches but also to understand the community and related workflows Contribution ladder to get started: – Bug triaging – Bug reporting – Code reviewing – Bug fixing – Enhancements or new features
  • 22. Samsung Open Source Group 22 Build GStreamer ● mkdir -p gst/uninstalled ● cd gst/uninstalled ● git clone git://anongit.freedesktop.org/gstreamer/gstreamer (and all interesting modules in http://cgit.freedesktop.org/gstreamer/) ● cd ../.. ● cp gst/uninstalled/gstreamer/scripts/gst-uninstalled .. ● edit MYGST in gst-uninstalled ● /gst-uninstalled (now all paths lead to the uninstalled version) ● echo $PATH ● cd gstreamer ● /autogen.sh; make (congratulations! you have your own latest gstreamer core) ● which gst-launch-1.0 (gst-inspect-1.0 will only have coreelements) ● cd ..; cp gstreamer/scripts/git-update.sh . ● /git-update.sh
  • 23. Samsung Open Source Group 23 First Steps with GStreamer ● Test failures: Test reported bugs in GStreamer's Bugzilla (bugzilla.gnome.org/browse.cgi? product=GStreamer) ● Report bugs: Check the continuous integration server (https://jenkins.arracacha.collabora.co.uk/) or you run 'make check'. Once you selected the tests, you check if it has been reported in Bugzilla. If it isn't, report it. You can try to find the root issue why they fail and work on a patch to fix it. Join the conversation with useful information! ● Fix bugs: you go to the GStreamer's Bugzilla and search for relevant bugs that you might help with and/or you might have an interest in working on. ● Enhancements or new features: open a new bug thread in Bugzilla with your idea and design. Confirm the feature is of interest and the design is approved before you start coding. Small steps: at the beginning, it's normally more useful to start with bug triaging, test failures, small fixes because it allows you know the workflow and community in an easier and faster way
  • 24. Samsung Open Source Group 24 Patch formatting and posting ● Gst-indent – Run gst-indent on .c files. – You can find it at: http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tools/gst-indent ●Bugzilla – Register an account in bugzilla.gnome.org – Two possible ways to submit a patch: –Create a new bug ● https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer – If a bug already exist, attach your patch to it – Add link to bugzilla as the last line of the commit message
  • 25. Samsung Open Source Group 25 The perfect commit message commit 41fdf21a60ca69bdc90bef367fbce41dcf4415ad Author: Tim-Philipp Müller <tim@centricular.com> Date: Sat May 30 14:27:05 2015 +0100 queue: avoid slice allocs/frees for each item Microoptimisation: Let GstQueueArray store our item struct. That way we don't have to alloc/free temporary QueueItem slices for every item we want to put into the queue. https://bugzilla.gnome.org/show_bug.cgi?id=750149
  • 26. Samsung Open Source Group 26 Patch formatting and posting ● Gst-indent – Run gst-indent on .c files. – You can find it at: http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tools/gst-indent ●Bugzilla – Register an account in bugzilla.gnome.org – Two possible ways to submit a patch: –Create a new bug ● https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer – If a bug already exist, attach your patch to it – Add link to bugzilla as the last line of the commit message
  • 27. Samsung Open Source Group 27 Waiting for feedback ● Review happens in bugzilla ● Give some time for reviewers to show up ● If no reviews in a week – Ask people directly – Who? Git log and git blame are your friends
  • 28. Samsung Open Source Group 28 Patches landed ●Once accepted. A maintainer will push the commit upstream. ●Set the patch state to 'Committed' in bugzilla. ●Set the bug milestone and status. – Current milestone 1.7.1 – Status: Resolved and Fixed ● o/
  • 29. Samsung Open Source Group 29 Be Social It is very important to communicate with the group. They are a lovely bunch. ● Mailing lists: http://gstreamer.freedesktop.org/lists/ – gstreamer-announce – for important announcements (moderated) – gstreamer-devel – general discussion (open for you to talk here) ● IRC: #gstreamer @ irc.freenode.net ● GStreamer Conference: every year around October ● GStreamer Hackfests: twice a year If you do this, you will normally be able to get engaged in GStreamer in a much easier way, which will help you to grow your knowledge and status in the community.
  • 30. Samsung Open Source Group 30 Finding Bugs ● Use GStreamer from the git (development version) ● Run gstreamer/tree/scripts/five-bugs-a-day.pl ● Search in https://bugzilla.gnome.org/browse.cgi?product=GStreamer
  • 31. Samsung Open Source Group 31 Finding Bugs ● That said, it is best to focus on an area of Gstreamer to develop expertise or even maintain a component. Then bugs will come to you.
  • 32. Samsung Open Source Group 32 Find Me ● If you ever struggle when joining or participating with the community… ● luis@debethencourt.com luisbg@osg.samsung.com luisbg @ freenode @luisbg
  • 33. Samsung Open Source Group 33 Questions?
  • 34. Samsung Open Source Group 34 Thank You!