Performance problems

From PiTiViWiki
Jump to: navigation, search


The 0.13.4 release brought videomixing/compositing, which is a required component for being able to do transitions, effects, transparency, etc.

However, some significant performance problems have appeared. These problems may not affect you if you have a machine with a very fast processor (ex: Core Duo, Core 2 Quad, ...). This will affect netbook users more significantly than users with powerful machines, although even with a fast processor, there can be a noticeable performance difference with older pitivi releases.

We are aware of these issues. This page is an attempt at listing those problems, the potential solutions, and our progress in fixing them. It is also a request for help from external contributors. If you would like to get involved in pitivi's core or are interested in optimization, this is where you can make a difference and rock the world.

Contents

The two main problems

Poor playback performance when project resolution doesn't match the clip resolution

As part of implementing transitions, we needed to implement scaling. Due to various issues, it is currently done in software, instead of hardware-accelerated scaling. See bug 613416.

Playback performance is slower than before

In addition to the previously mentioned "scaling" problem, playback is generally slower than in pitivi 0.13.2 or 0.13.1. This is because of videomixing (ie: being able to make videos transparent, for example). Currently, it is done in software and negatively impacts performance. (todo: need a better explanation)

Others?

There might be bugs we don't know about, or other generic performance bugs not specific to the 0.13.4 release. See the current list of performance bugs.

The proposed solutions/paths of investigation

(todo: please make a bulleted list of all the stuff you want to optimize, with the status, and ideally an estimate of how long it would take, and if it's assigned to someone)

than one input it could *then* specify a common set of caps to be used by the gnlobjects connected to it.

Note : alpha and video positioning/scaling of each video streams will be a *lot* more efficient when we have buffer metadata implemented in GStreamer, since we'll be able to delay the actual processing as downstream as possible (like in videomixer or even the sinks): http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/draft-buffer2.txt

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox