#+TITLE:     Frei0r - free video plugins
#+AUTHOR:    Pikselites
#+EMAIL:     frei0r-dev@dyne.org
#+LANGUAGE:  en
#+OPTIONS:   H:3 num:nil toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t
#+OPTIONS:   TeX:t LaTeX:t skip:t d:nil tags:not-in-toc

#+INFOJS_OPT: path:org-info.js
#+INFOJS_OPT: toc:nil localtoc:nil view:content sdepth:2 mouse:underline buttons:nil
#+INFOJS_OPT: home:http://frei0r.dyne.org

#+LATEX_HEADER: \documentclass[final,a4paper,10pt,onecolumn,twoside]{memoir}
#+LATEX_HEADER: \usepackage[english]{babel}
#+LATEX_HEADER: \usepackage{amsfonts, amsmath, amssymb}
#+LATEX_HEADER: \usepackage{ucs}
#+LATEX_HEADER: \usepackage[utf8x]{inputenc}
#+LATEX_HEADER: \usepackage[T1]{fontenc}
#+LATEX_HEADER: \usepackage{hyperref}
#+LATEX_HEADER: \usepackage[pdftex]{graphicx}
#+LATEX_HEADER: \usepackage{fullpage}
#+LATEX_HEADER: \usepackage{lmodern}

* Welcome hackers!

The Frei0r mailinglist is the first step to get in touch with us: the
one we use is [[https://piksel.no/mailman/listinfo/frei0r-devel][frei0r-devel]] and it has [[http://piksel.no/pipermail/frei0r-devel/][public archives]] that are also
[[http://blog.gmane.org/gmane.comp.video.frei0r.devel][searchable and indexed]] online.

The bugtracker we are currently using  is [[http://www.piksel.no/projects/frei0r/report][the Piksel trac]], have a look
there and, if  you know how to  report a bug, please open  a new issue
and give it as many details as you can.

Here below are outlined some open issues in the development flow, they
range   from  /bugfixing/   tasks  to   /specification   updates/  and
/documentation/.

* Port existing code

Porting  new Effects  from existing  collections should  be  easy, for
instance there  is a lot of code  to be ported from  [[http://effectv.sf.net/][EffecTV]], the [[http://demo-effects.sourceforge.net/][Demo
Effects Collection]],  [[ftp://ftp.dyne.org/freej/plugins/petespluginslinux_070114.tar.gz][Pete's plugins]] and  the XScreensavers… let  us if
you engage  the task, it can  be fun and  not so difficult if  you are
just learning how to program in C or C++.

* Bugfixes

We should remove from installation any plugins which casuse a crash or
data loss - and if we want them back we'd better fix them, in any case
we can't allow distribution of  plugins that can potentially crash the
host.

This is an  old issue with dynamically loaded  objects: if they crash,
they'll crash the  host application loading them!  one  reason why JWZ
made XScreensavers share an X11 /back-display/...

** TODO Test suite

Develop  a test  suite  for frei0r  plugins (/scaffolding/  technique)
which  can  be run  to  generate reports  on  reliability.

** TODO Null parameters

Fix  plugins which do  not set  parameters to  a default  value inside
*f0r_init()*  - this crashes  some applications  as often  reported in
bugreports.

* Spec Update

We sometimes need  to review the Frei0r specification  and confront it
with new issues coming up. It might be also useful to confront it with
the  specification  drafted  in   [[http://livido.dyne.org/codedoc/][LiViDO]],  which  provides  a  broader
case-study, and other standards adopted in [[http://gstreamer.freedesktop.org/documentation/][GStreamer]].

* Documentation

** Screenshots

A Gallery of filters is  already being generated, but not yet complete
with screenshots. Right now [[http://freej.dyne.org][FreeJ]]  is being used with scripts to parse
plugin contents and render them into a webpage, still what are missing
are screenshots or maybe short video renderings of plugins in action.

** TODO Trac spam

We should fix the trac on piksel.org, install a new bugtracker like
[[http://flyspray.org][flyspray]] or use the mantis already up at [[http://bugs.dyne.org][bugs.dyne.org]].

