SlideShare a Scribd company logo
1 of 34
Download to read offline
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

What's hot

Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)Yuren Ju
 
Tutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaTutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaArun Ganesh
 
chainer-trt: ChainerとTensorRTで超高速推論
chainer-trt: ChainerとTensorRTで超高速推論chainer-trt: ChainerとTensorRTで超高速推論
chainer-trt: ChainerとTensorRTで超高速推論belltailjp
 
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang MeetupДоклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang MeetupBadoo Development
 
Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programsBadoo Development
 
Monitoring with Ganglia
Monitoring with GangliaMonitoring with Ganglia
Monitoring with GangliaFastly
 
GR8Conf 2011: GContracts
GR8Conf 2011: GContractsGR8Conf 2011: GContracts
GR8Conf 2011: GContractsGR8Conf
 
Ganglia monitoring
Ganglia monitoringGanglia monitoring
Ganglia monitoringChen Robert
 
LXC on Ganeti
LXC on GanetiLXC on Ganeti
LXC on Ganetikawamuray
 
Ganglia Monitoring Tool
Ganglia Monitoring ToolGanglia Monitoring Tool
Ganglia Monitoring Toolsudhirpg
 
ggExtra Package-ggMarginal and Example -Shiny and Shinyjs
ggExtra Package-ggMarginal and Example -Shiny and ShinyjsggExtra Package-ggMarginal and Example -Shiny and Shinyjs
ggExtra Package-ggMarginal and Example -Shiny and ShinyjsDr. Volkan OBAN
 
Basics of gtk_ilugc
Basics of gtk_ilugcBasics of gtk_ilugc
Basics of gtk_ilugcilugc
 
RSA NetWitness Log Decoder
RSA NetWitness Log DecoderRSA NetWitness Log Decoder
RSA NetWitness Log DecoderSusam Pal
 
Global Interpreter Lock: Episode III - cat &lt; /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat &lt; /dev/zero > GIL;Global Interpreter Lock: Episode III - cat &lt; /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat &lt; /dev/zero > GIL;Tzung-Bi Shih
 
GUI Programming with Perl / GTK
GUI Programming with Perl / GTKGUI Programming with Perl / GTK
GUI Programming with Perl / GTKAnuradha Weeraman
 
OpenStack for Centos
OpenStack for CentosOpenStack for Centos
OpenStack for CentosChandan Kumar
 
Kernel Recipes 2015: Introduction to Kernel Power Management
Kernel Recipes 2015: Introduction to Kernel Power ManagementKernel Recipes 2015: Introduction to Kernel Power Management
Kernel Recipes 2015: Introduction to Kernel Power ManagementAnne Nicolas
 
New Views on your History with git replace
New Views on your History with git replaceNew Views on your History with git replace
New Views on your History with git replaceChristian Couder
 

What's hot (20)

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

Similar to How to Contribute to GStreamer

A Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux KernelA Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux KernelSamsung Open Source Group
 
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTree
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTreeManaging software product versioning with Gitflow, VSTS and Atlassian SourceTree
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTreeBosnia Agile
 
Static Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoverityStatic Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoveritySamsung Open Source Group
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
 
Buytaert kris tools
Buytaert kris toolsBuytaert kris tools
Buytaert kris toolskuchinskaya
 
he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME dmgerman
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays
 
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Geshan Manandhar
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineElasTest Project
 
Git for work groups ironhack talk
Git for work groups ironhack talkGit for work groups ironhack talk
Git for work groups ironhack talkTiago Ameller
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processChristopher Cundill
 
What is version control software and why do you need it?
What is version control software and why do you need it?What is version control software and why do you need it?
What is version control software and why do you need it?Leonid Mamchenkov
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptHitesh Kumar
 

Similar to How to Contribute to GStreamer (20)

A Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux KernelA Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux Kernel
 
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTree
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTreeManaging software product versioning with Gitflow, VSTS and Atlassian SourceTree
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTree
 
Open Source_Git.pptx
Open Source_Git.pptxOpen Source_Git.pptx
Open Source_Git.pptx
 
FFmpeg: A Retrospective
FFmpeg: A RetrospectiveFFmpeg: A Retrospective
FFmpeg: A Retrospective
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
Static Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoverityStatic Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with Coverity
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
 
Buytaert kris tools
Buytaert kris toolsBuytaert kris tools
Buytaert kris tools
 
he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME
 
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
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...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Git for work groups ironhack talk
Git for work groups ironhack talkGit for work groups ironhack talk
Git for work groups ironhack talk
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
Open source
Open sourceOpen source
Open source
 
Git Basics
Git BasicsGit Basics
Git Basics
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
What is version control software and why do you need it?
What is version control software and why do you need it?What is version control software and why do you need it?
What is version control software and why do you need it?
 
git-flow R3Labs
git-flow R3Labsgit-flow R3Labs
git-flow R3Labs
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_ppt
 

More from Samsung Open Source Group

The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)Samsung Open Source Group
 
Rapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBRapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBSamsung Open Source Group
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesSamsung Open Source Group
 
IoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondIoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondSamsung Open Source Group
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialSamsung Open Source Group
 
Open Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategyOpen Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategySamsung Open Source Group
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilitySamsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...Samsung Open Source Group
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceSamsung Open Source Group
 
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivityIoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivitySamsung Open Source Group
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxSamsung Open Source Group
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxSamsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsJerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsSamsung Open Source Group
 

More from Samsung Open Source Group (20)

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

Recently uploaded

cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 

Recently uploaded (20)

cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 

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!