type of color subsampling and to allow non-4:2:0 modes. It also
adds a frame header tag so that streams can describe mixed-framing
modes, such as 3:2 pulldown. As before, the stream format is
documented in the yuv4mpeg(5) manpage.
Older code will (for the most part) compile just as before, and these
new extended features will be disabled/disallowed by default. This
default assumes uniform framing (progressive, top-first, or bottom-
-first interlacing throughout) and 4:2:0-JPEG subsampled data. If
the library reads a stream/frame header which goes beyond this default,
it will return a new error to the caller, Y4M_ERR_FEATURE.
The extended API adds another argument to the y4m_read_frame_header()
and the y4m_write_frame_header() functions --- so code using those
functions will need to be tweaked.
Code which directly accessed members of the y4m_stream_info_t and the
y4m_frame_info_t structures will also break, but that is the coder's
fault! The API explicitly said "Use the accessor functions and
don't touch these structures directly."