Hi,

It's about time for a new status report.

First and foremost, some small maintainership notes:
I'm alive and kicking, I'm just overwhelmed by real-life work, and this
happens quite often recently. As personal policy, when the time for
transcode runs below the guard limit, I focus on the coding side only.
I FULLY ACKNOWLEDGE that code isn't the only nor the most important
piece of an opensource project, but that's the best I can do given the
circumstances.

In other words, the best indicator of the project progress is the commit
log. :)

+++

About the 1.2.0 status.
The development is undergoing on a private repo on my box. The reason
for going private is I broke^Wchanged a lot of things, but I honestly
believe that all changes are improvements[1].

The significant changes are the following:

1. Real, explicit extradata handling:
   configure (in/out), open (in/out) (see below for open).

2. split multiplex() operation into write_{audio,video}.

3. split demultiplex() operation into read_{audio,video}.

4. new explicit flush() operation.

5. new explicit open() operation, formerly implicitely done
   in configure() when needed.

6. new explicit close() operation, formerly implicitely done
   in stop() when needed.

7. there is now codec compatibility list for audio and video.

A short rationale follows for each of the above.

#1 that's the easy one: previously we just don't have a real extradata
API/policy/whatever, just an outrageous hack. So, this is the real
starting point.

#2, #3 this was driven by the need to avoid to replicate the frame
ordering decision in every muxer. This means: given a pair of frames,
which one should to be written first into the on-disk stream? When I
discovered myself writting (roughly) the same decision code for ogg and
lavf muxer, I thought this decision should be taken on the upper layer.
However, I'm very open to discussion on this topic.

#4, #5, #6 those are easy too: just fixed some aknowledged former API
deficiencies.

#7 fixes an error of the previous API. There is no valid reason to mix
audio and video codecID on the same list.

The port of the codebase to the new API is almost ready, and currently
the test is in progress. The existing unit tests (testsuite/*) passes,
more unit tests are coming.

The push into the mainline will happen as soon as the very basic use
case work; I want to merge as soon as is possible.

Some other changes to the codebase are been pulled in by the 1.2.0/NMS
export layer work, so expect more messages describing them in the next
few days.

Discussion welcome.

+++

[1] this can sound kind of heretic, but after some work experiences I
started to appreciate the value of ABI and API stability.
This of course doesn't change the fact that bad APIs SHOULD be changed
soon or later, and I still firmly believe that refuse the change is a
mistake too. The key point is that every change should carefully
evaluated, and that isn't always true into the opensource world, and
most important that wasn't true in my early transcode days :)

Bests,

-- 
Francesco Romani // Ikitt
http://fromani.exit1.org  ::: transcode homepage
http://tcforge.berlios.de ::: transcode experimental forge

Reply via email to