Commit 5fafc401 authored by Thibault Saunier's avatar Thibault Saunier

doc: Minor cleanup and image link fixes

parent 5c99b850
......@@ -84,15 +84,17 @@ it would be good to provide a **stack trace**.
Make sure you have the GNOME Sdk and Debug symbols installed:
` GNOME_REPO=$(flatpak remote-list --user -d | grep `[`http://sdk.gnome.org/repo/`](http://sdk.gnome.org/repo/)` | awk '{ print $1 }')`\
` flatpak install --user $GNOME_REPO org.gnome.Sdk 3.20`\
` flatpak install --user $GNOME_REPO org.gnome.Sdk.Debug 3.20`\
` flatpak install --user $GNOME_REPO org.gnome.Sdk 3.22`\
` flatpak install --user $GNOME_REPO org.gnome.Sdk.Debug 3.22`
```
GNOME_REPO=$(flatpak remote-list --user -d | grep "http://sdk.gnome.org/repo/" | awk '{ print $1 }') && \
flatpak install --user $GNOME_REPO org.gnome.Sdk 3.20; \
flatpak install --user $GNOME_REPO org.gnome.Sdk.Debug 3.20; \
flatpak install --user $GNOME_REPO org.gnome.Sdk 3.22; \
flatpak install --user $GNOME_REPO org.gnome.Sdk.Debug 3.22
```
Start a shell in the Pitivi bundle environment
`flatpak run -d --command=bash org.pitivi.Pitivi`
`flatpak run -d --command=bash org.pitivi.Pitivi`
Start Pitivi inside gdb
......@@ -116,14 +118,14 @@ commands that can be particularly useful in Pitivi's context.
When you want to “attach” to an existing Python process (useful for
deadlocks, where the application will be hung instead of crashed):
`gdb python3 THE_PITIVI_PROCESS_NUMBER`
`gdb python3 THE_PITIVI_PROCESS_NUMBER`
When you want to run Pitivi entirely in gdb from the start:
`gdb python3`\
`set pagination 0  # avoids the need to press Enter to ``scroll`
`gdb python3`\
`set pagination 0 # avoids the need to press Enter to “scroll”`
`run /usr/bin/pitivi  # the version installed system-wide.`
`run /usr/bin/pitivi # the version installed system-wide`
When Pitivi crashes, run `bt full` to get the backtrace. When Pitivi
freezes, press Ctrl+Z and run `thread apply all bt` to get the
......@@ -142,17 +144,17 @@ there are five levels: ( <span style="color:red;">ERROR</span>,
<span style="color:cyan;">LOG</span> ) = range(1, 7). As such, if you
want to see errors and warnings only, you launch
`PITIVI_DEBUG=2 bin/pitivi`
`PITIVI_DEBUG=2 bin/pitivi`
...and if you want to see everything you do
`PITIVI_DEBUG=6 bin/pitivi`
`PITIVI_DEBUG=6 bin/pitivi`
If that's “too much” and you want to focus on particular parts of the
code, you can do so. For example, you can get output from the `Timeline`
and `MediaLibraryWidget` classes only:
`PITIVI_DEBUG=`**`timeline`**`:6,`**`medialibrarywidget`**`:6 bin/pitivi`
`PITIVI_DEBUG=`**`timeline`**`:6,`**`medialibrarywidget`**`:6 bin/pitivi`
Here are various examples of commands you can use to generate detailed
debug logs that include not only Pitivi's debug output, but also
......@@ -160,16 +162,16 @@ GStreamer's:
A basic log can be obtained by running:
`PITIVI_DEBUG=*:5 GST_DEBUG=2 bin/pitivi > debug.log 2>&1`
`PITIVI_DEBUG=*:5 GST_DEBUG=2 bin/pitivi > debug.log 2>&1`
To get debugging information from Non-Linear Engine, you could use:
`PITIVI_DEBUG=5 GST_DEBUG=3,nle*:5,python:5 bin/pitivi > debug.log 2>&1`
`PITIVI_DEBUG=5 GST_DEBUG=3,nle*:5,python:5 bin/pitivi > debug.log 2>&1`
The information most likely to be useful would probably be the debug
info from [GES](GES.md) in addition to Pitivi's:
`PITIVI_DEBUG=5 GST_DEBUG=ges:5 bin/pitivi > debug.log 2>&1;`
`PITIVI_DEBUG=5 GST_DEBUG=ges:5 bin/pitivi > debug.log 2>&1;`
Some additional tips:
......@@ -182,13 +184,13 @@ Some additional tips:
In the rare cases where a performance problem is caused by our UI code,
you can profile Pitivi itself, with this command (and yes,
“JUMP\_THROUGH\_HOOPS” is needed for this case, it is an environment
`JUMP_THROUGH_HOOPS` is needed for this case, it is an environment
variable of
[bin/pitivi](https://git.gnome.org/browse/pitivi/tree/bin/pitivi.in):
`JUMP_THROUGH_HOOPS=1 python3 -m cProfile -s time -o pitivi_performance.profile bin/pitivi`
`JUMP_THROUGH_HOOPS=1 python3 -m cProfile -s time -o pitivi_performance.profile bin/pitivi`
The resulting “pitivi\_performance.profile” file can then be processed
The resulting `pitivi_performance.profile` file can then be processed
to create a visual representation of where the most time was spent and
which functions were called the most often in the code. See also [Jeff's
blog posts on profiling](http://jeff.ecchi.ca/blog/tag/profiling/).
# Google Summer of Code
The [Google “Summer of Code”
program](https://developers.google.com/open-source/gsoc/) is available
for students only. If we accept your project proposal, in
June-July-August you work on your project while being payed by Google.
Mid-term and end-term we evaluate your work.
The [Google “Summer of Code” program] is available for students only. If
we accept your project proposal, in June-July-August you work on your
project while being payed by Google. Mid-term and end-term we evaluate
your work.
On the technical side, it might interest you that we use GES/GStreamer
as backend, GTK for the UI, the Meson build system, and Flatpak to make
......@@ -12,8 +11,7 @@ builds for users. Flatpak also allows us to have a sandboxed development
which means it's very easy to setup, you are set up in no time, and you
don't have to run a virtual machine or f\*\*k up your system to be able
to build the latest GStreamer and Pitivi. See the section at the top of
the [contributing page](http://www.pitivi.org/?go=contributing) for
details why Pitivi is important.
the [contributing page] for details why Pitivi is important.
While a GSoC with us is one of the most fun and rewarding experiences
you can get, you need to consider it as *professional work*:
......@@ -34,11 +32,15 @@ Since 2014, our official policy is to ignore “theoretical” applications
— to be eligible, you **must** have gotten involved early-on and made at
least one contribution prior to applying. Read more about our stance in
this blog post: “[Applying for a GSoC project is all about early
involvement and
commitment](http://jeff.ecchi.ca/blog/2014/02/15/applying-for-a-gsoc-project-is-all-about-early-involvement-and-commitment/)”.
If you are interested, the best thing you can do is to come to our [IRC
channel](http://www.pitivi.org/?go=contact) now, to make sure we have
enough time to get to know you.
involvement and commitment]”. If you are interested, the best thing you
can do is to come to our [IRC channel] now, to make sure we have enough
time to get to know you.
[Google “Summer of Code” program]: https://developers.google.com/open-source/gsoc/
[contributing page]: http://www.pitivi.org/?go=contributing
[Applying for a GSoC project is all about early involvement and
commitment]: http://jeff.ecchi.ca/blog/2014/02/15/applying-for-a-gsoc-project-is-all-about-early-involvement-and-commitment/
[IRC channel]: http://www.pitivi.org/?go=contact
# Who we are looking for
......@@ -50,37 +52,41 @@ know. Achieved a milestone or solved a really nasty problem? The *entire
world* needs to know. We require to see you in our IRC channel, that's
where you can meet the team, where you follow what's going on and that's
where we'll communicate. Email is not sufficient. If you're new to IRC,
check out [IRCCloud](https://www.irccloud.com/pricing).
check out [IRCCloud] and [riot.im]
You must have experience with Python or C, depending on your project.
Knowledge of [Git](Git.md), GStreamer and [related
technologies](Architecture.md) is a plus. Familiarity with
[Test-Driven
Development](http://en.wikipedia.org/wiki/Test-driven_development) is a
plus.
Knowledge of [Git], GStreamer and [related technologies] is a plus.
Familiarity with [Test-Driven Development] is a plus.
[riot.im]: https://riot.im/app
[IRCCloud]: https://www.irccloud.com/pricing
[Git]: Git.md
[related technologies]: Architecture.md
[Test-Driven Development]: http://en.wikipedia.org/wiki/Test-driven_development
# What we offer
You have a fantastic learning opportunity to play with
[technologies](Architecture.md) such as GStreamer, GTK+, Python,
etc. We'll direct you to make great use of the tight-knit GStreamer and
GTK communities so you have high-quality feedback throughout your
project.
You have a fantastic learning opportunity to play with [technologies]
such as GStreamer, GTK+, Python, etc. We'll direct you to make great use
of the tight-knit GStreamer and GTK communities so you have high-quality
feedback throughout your project.
You can improve the lives of thousands of users by working on a tangible
and fun project.
You have the opportunity to present your accomplishments to others at
[GUADEC](http://en.wikipedia.org/wiki/GNOME_Users_And_Developers_European_Conference)
where you can also meet with us. In past years the travel expenses for
GSoC students have been covered by GNOME.
[GUADEC] where you can also meet with us. In past years the travel
expenses for GSoC students have been covered by GNOME.
See more [reasons for
contributing](http://www.pitivi.org/?go=contributing).
See more [reasons for contributing].
[technologies]: Architecture.md
[GUADEC]: http://en.wikipedia.org/wiki/GNOME_Users_And_Developers_European_Conference
[reasons for contributing]: http://www.pitivi.org/?go=contributing
# How to apply and get started
![](Challenge-Accepted.png "Challenge-Accepted.png")
![](images/Challenge-Accepted.png "Challenge-Accepted.png")
You don't have to be a veteran hacker but it is important that you prove
to us — and to yourself — that you *know* what you're getting into and
......@@ -90,55 +96,52 @@ application and its source code. This also ensures that you get to know
members of the community and have sufficient time and information to
properly plan your project.
See also [our official
stance](http://jeff.ecchi.ca/blog/2014/02/15/applying-for-a-gsoc-project-is-all-about-early-involvement-and-commitment/)
(as of 2014) on the matter and Lionel Dricot's blog post on “[Being
selected as a Summer of Code
student](http://ploum.net/be-selected-student-for-soc/)”.
See also [our official stance] (as of 2014) on the matter and Lionel
Dricot's blog post on “[Being selected as a Summer of Code student]”.
Therefore, you should proceed like this:
1. Come to our [IRC channel](http://www.pitivi.org/?go=contact) and
stick around.
2. Setup your [development
environment](https://github.com/pitivi/pitivi/blob/master/docs/HACKING.md)
and run the [Test suite](Testing.md). Explore the
development version of Pitivi, what works well and what doesn't,
etc. See how you like it.
1. Come to our [IRC channel] and stick around.
2. Setup your [development environment] and run the [Test suite].
Explore the development version of Pitivi, what works well and what
doesn't, etc. See how you like it.
3. To get a better idea of how comfortable you are with the code and
community, make some small contributions to the code. Pick some
small [bugs](https://phabricator.freedesktop.org/project/view/15/)
to fix or pick a “small” task in the [Pitivi tasks for
newcomers](https://phabricator.freedesktop.org/tag/pitivi_tasks_for_newcomers/)
list and have a go at it. Keep us in the loop. The earlier you start
contributing, the more likely you know what you're getting into.
Don't start contributing in March/April: we highly encourage you to
start getting involved in January/February, or even earlier, to have
time to try another team if we are not a good fit for you.
small [bugs] to fix or pick a “small” task in the [Pitivi tasks for
newcomers] list and have a go at it. Keep us in the loop. The
earlier you start contributing, the more likely you know what you're
getting into. Don't start contributing in March/April: we highly
encourage you to start getting involved in January/February, or even
earlier, to have time to try another team if we are not a good fit
for you.
4. Find a cool feature you need in Pitivi and tell us. Start making a
design doc on how you plan to implement it.
5. Fill out the
[application](https://wiki.gnome.org/Outreach/SummerOfCode/Students#Fill_out_the_Application)
and apply officially to the Google's Summer of Code
[website](https://developers.google.com/open-source/gsoc/) under
both the GNOME or GStreamer mentoring organizations, depending on
your project.
5. Fill out the [application] and apply officially to the Google's
Summer of Code [website] under both the GNOME or GStreamer mentoring
organizations, depending on your project.
[our official stance]: http://jeff.ecchi.ca/blog/2014/02/15/applying-for-a-gsoc-project-is-all-about-early-involvement-and-commitment/
[Being selected as a Summer of Code student]: http://ploum.net/be-selected-student-for-soc/
[IRC channel]: http://www.pitivi.org/?go=contact
[development environment]: https://github.com/pitivi/pitivi/blob/master/docs/HACKING.md
[Test suite]: Testing.md
[bugs]: https://phabricator.freedesktop.org/project/view/15/
[Pitivi tasks for newcomers]: https://phabricator.freedesktop.org/tag/pitivi_tasks_for_newcomers/
[application]: https://wiki.gnome.org/Outreach/SummerOfCode/Students#Fill_out_the_Application
[website]: https://developers.google.com/open-source/gsoc/
# Project ideas
Pitivi is a very modular video editor, whose
[architecture](Architecture.md heavily depends on technologies
like [GES](GES.md) and GStreamer. The scope of your GSoC project
will probably cover only Pitivi, but it could very well span multiple
codebases:
- [Pitivi](http://www.pitivi.org/manual/mainwindow.html), which is the
user interface. Written in Python. *For those who love design and
graphical user interaction.*
- [GES](GES.md), the high-level video editing GStreamer
library that powers Pitivi and other applications. Written in C.
*For those who wish to improve an easy to use, powerful and flexible
library for audio/video editing.*
Pitivi is a very modular video editor, whose [architecture] heavily
depends on technologies like [GES] and GStreamer. The scope of your GSoC
project will probably cover only Pitivi, but it could very well span
multiple codebases:
- [Pitivi], which is the user interface. Written in Python. *For those
who love design and graphical user interaction.*
- [GES], the high-level video editing GStreamer library that powers
Pitivi and other applications. Written in C. *For those who wish to
improve an easy to use, powerful and flexible library for
audio/video editing.*
- GStreamer, for low-level work, such as improving filters/effects,
codecs, hardware decoding/encoding acceleration, analysis, etc.
Written in C. *For those seeking a challenging audio and video
......@@ -147,11 +150,16 @@ codebases:
We'd love to see GSoC proposals originating from an itch you need to
scratch. You are welcome to ask around and **bring your own ideas**. If
you're not sure where you can be most useful, have a look at the “large”
tasks in the [Pitivi tasks for
newcomers](https://phabricator.freedesktop.org/tag/pitivi_tasks_for_newcomers/)
list. They are fun cool features very suitable for a GSoC project. See
the [roadmap](roadmap.md) for our overall vision for the
project. Deadlines for applying are approaching fast, hurry up!
See [Past GSoCs](Past_GSoCs.md) for details on what the previous
GSoC students did.
tasks in the [Pitivi tasks for newcomers] list. They are fun cool
features very suitable for a GSoC project. See the [roadmap] for our
overall vision for the project. Deadlines for applying are approaching
fast, hurry up!
See [Past GSoCs] for details on what the previous GSoC students did.
[architecture]: Architecture.md
[GES]: GES.md
[Pitivi]: http://www.pitivi.org/manual/mainwindow.html
[Pitivi tasks for newcomers]: https://phabricator.freedesktop.org/tag/pitivi_tasks_for_newcomers/
[roadmap]: roadmap.md
[Past GSoCs]: Past_GSoCs.md
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment