Hi everyone!

Since, as we hoped, interest for 1.1.0 is slowly increasing, I like to post a
quick summary of what's going here on developer crew. As subject said, this
kind of report is guaranteed fully aperiodic, unpredictable and irregular ;)

Summary:
========

1. Recent changes on CVS
2. Future plans
3. Bugs, patches and issues recap
4. 1.1.x release status
5. 1.0.x release status

***

1. Recent changes on CVS
------------------------

On those days I'm working to improve the internal framebuffer handling
(again). I focus on how frambuffer are passed between decoder, encoder
and filter stages. There is quite a lot of room for improvements.

#ifdef GORY_DETAILS
The main problem, IMO, is that syncronization conditions between different
threads (see for example decoding threads VS encoding threads) are often
quite obscure and suboptimal. There are often some sleep()s used for
syncronization, and this is a no-no following almost all threading literature
(and also following my own taste :P).
Moreover, synchronization variables are made public and shared through src/,
and that makes difficult to modularize further the codebase, and is also
misleading sometimes. We need some order, to make things cleaner, nicer and
maybe even faster.
#endif /* GORY_DETAILS */

Why we need so?
Most important first: we need some sanitization and cleanup in order to have
the needed infrastructure to implement a long-waited solution for directory
mode issues (see next point). 
In the broad sense, we will face this task later (and in an harder way), so
it make sense to start to approach it gently.

My effort is quite ready to be merged in CVS (actual patch is ~670 line with
context), there is just a known regression that I must address before.
(^C causes lock).

2. Future plans
---------------

The last big thing missing before to go alpha with 1.1.0 is to solve the
otrageous directory mode bug. The solution I've chosed is to implement
*input* rotation as well as *output rotation*. In a nutshell, this means
that future transcode will do something like

open_encoder()
for input in input_sources:
    open_decoder(input)
    encode(decode(input))
    close_decoder(input)
close_encoder()

instead the current, ugly

new_input = blindly_concatenate(input_sources)
open_encoder()
open_decoder()
encode(decode(new_input))
close_decoder()
close_encoder()

Advantages? Things will just work as expected. Finally.
No more things like:
transcode -i input1 -o output2
...
transcode -i inputN -o outputN
magic_merge -i output1,...,outputN -o real_output

transcode will finally do the right thing by himself.

3. Bugs, patches and issues recap
---------------------------------

Allan Snider has kindly sent some really interesting patches on -devel on
last days. My plan is to merge *all* of them during 1.1.0 alpha cycle.

4. 1.1.x release status
-----------------------

In approx. priority order, the schedule is:
* finish core syncronization cleanup
* implement input rotation
* roll out alpha (make new branch on CVS)
* improve and tweak import_x11
* merge patches
* fix bugs
* roll out beta
* fix bugs

5. 1.0.x release status
-----------------------

In approx. priority order, the schedule is:
* merge export_wav fix (that will be probably done at time you'll read this)
* roll out hopefully last rc for 1.0.3
* announce avalability of last rc
* release 1.0.3 after ~2-3 weeks of last rc, if noone complains.

Questions? Thoughts?


Best regards,

-- 
Francesco Romani - Ikitt ['people always complain, no matther what you do']
IM contact    : (email first, Antispam default deny!) icq://27-83-87-867
tiny homepage : http://fromani.exit1.org (see IDEAS if you want send code!)
known bugs    : http://tcfoundry.hostme.it/mantis (EXPERIMENTAL)

Reply via email to