I fixed a flaw, which bothered me for some time: Codecs only support a
single colormodel for encoding. If a compression format supports more than
one colormodel, we have identical codecs, one for each colormodel.
Duplicated codecs are png and raw.
After some thinking, I found a method for fixing this in a backwards
- The struct lqt_codec_info_t gets 2 new members:
int * encoding colormodels;
This is present *only* for codecs, which encode more than one colormodel.
The encoding colormodels were already present in earlier lqt versions,
but I removed them because they never really worked. Now they do.
- If an application calls lqt_set_cmodel() with a natively supported
colormodel, it will used be for encoding. Naturally, this must happen
*before* the first frame is encoded.
- lqtgavl was updated to handle the new mechanism (under an ifdef for
libquicktime >= 1.1.2). Users of lqtgavl don't have to change their
- Redundant codecs are now marked with LQT_CODEC_OBSOLETE in the
compatibility flags. Applications, which support the new API can use this
flag to ignore the codecs.
I updated the colormodel support for the follwing codecs:
- png supports BC_RGB888 and BC_RGBA8888. pngalpha became obsolete.
- raw supports BC_RGB888 and BC_RGBA8888. rawalpha became obsolete.
- Photo JPEG supports BC_YUVJ420P, BC_YUVJ422P and BC_YUVJ444P
- Dirac supports BC_YUV420P, BC_YUV422P, BC_YUV444P, BC_YUVJ420P,
BC_YUVJ422P and BC_YUVJ444P.
Maybe it's time to think about a release....