I have been trying to write a decoder using libschroedinger for the last couple of days. I used ffmpeg to generate a schroedinger encoded ogg video file with no audio using an uncompressed avi video as input. My decoder parses the ogg file pulling out an ogg_packet then decodes it, which all appears to work fine.
My first question is ffmpeg encoding using libschroedinger seems to force the output to use the YUV420 colour space even when specifically requesting other pixel formats using the ffmpeg –pix_fmt option. Looking at the schro_frame.h file there appears to be indirect support for SCHRO_FRAME_FORMAT_ARGB which would be the ideal format for my purposes; would you be able to explain what indirect support actually implies here? It also appears schroedinger only caters for three components (read: colour channels) so how is Alpha supported in schroedinger / dirac? i.e. will I need to add the alpha support into schroedinger myself or like other non-alpha codecs would I have to encode the alpha in the luma component of a grayscale frame?
Finally when storing my frame data in the SCHRO_DECODER_OK state I find the Schro_Frame occasionally contains NULL data. Meaning my conversion from YUV420 colour space to RGB cannot proceed for this frame. Is a null frame expected in this way?
If anyone can provide a link to a dummy video file with expected schroedinger state transitions that would be fantastic as I could prove my decoder code against known working decoders.
Thanks for any and all help you can provide.