There are enough differences between CODEC procedures and I/O procedures that several additional functions and messages are needed for CODEC processing. Both applications and I/O procedures can call these CODEC functions and messages.
The MMIO subsystem supports the CODEC functions listed in the following table.
┌─────────────────────────┬─────────────────────────────────────────────┐ │Function │Description │ ├─────────────────────────┼─────────────────────────────────────────────┤ │mmioIniFileCODEC │Adds, replaces, removes, or finds a CODEC │ │ │entry in the MMPMMMIO.INI file. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │mmioQueryCODECName │Queries the ID string of a CODEC procedure. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │mmioQueryCODECNameLength │Queries the length of a CODEC procedure ID │ │ │string. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │mmioLoadCODECProc │Loads the CODEC procedure and returns the │ │ │entry point. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │mmioSet │Sets or queries extended file information. │ └─────────────────────────┴─────────────────────────────────────────────┘The messages listed in the following table are supported by I/O procedures.
┌──────────────────────────┬────────────────────────────────────────────┐ │Message │Description │ ├──────────────────────────┼────────────────────────────────────────────┤ │MMIOM_COMPRESS │Sent to an IOProc to compress data. │ ├──────────────────────────┼────────────────────────────────────────────┤ │MMIOM_DECOMPRESS │Sent to an IOProc to decompress data. │ ├──────────────────────────┼────────────────────────────────────────────┤ │MMIOM_MULTITRACKREAD │Sent to an IOProc to read multi-track data │ │ │from a file. │ ├──────────────────────────┼────────────────────────────────────────────┤ │MMIOM_MULTITRACKWRITE │Sent to an IOProc to writes multi-track data│ │ │to a file. │ ├──────────────────────────┼────────────────────────────────────────────┤ │MMIOM_SET │Sets and queries CODEC attributes of the │ │ │CODEC procedure. │ └──────────────────────────┴────────────────────────────────────────────┘The messages listed in the following table are supported by CODEC procedures.
┌───────────────────────────────────┬───────────────────────────────────┐ │Message │Description │ ├───────────────────────────────────┼───────────────────────────────────┤ │MMIOM_CODEC_OPEN │Opens a CODEC instance. │ ├───────────────────────────────────┼───────────────────────────────────┤ │MMIOM_CODEC_CLOSE │Closes a CODEC instance. │ ├───────────────────────────────────┼───────────────────────────────────┤ │MMIOM_CODEC_QUERYNAME │Queries the CODEC procedure ID │ │ │string. │ ├───────────────────────────────────┼───────────────────────────────────┤ │MMIOM_CODEC_QUERYNAMELENGTH │Queries the length of the CODEC │ │ │procedure ID string. │ ├───────────────────────────────────┼───────────────────────────────────┤ │MMIOM_CODEC_COMPRESS │Compresses data. │ ├───────────────────────────────────┼───────────────────────────────────┤ │MMIOM_CODEC_DECOMPRESS │Decompresses data. │ └───────────────────────────────────┴───────────────────────────────────┘The data structures listed in the following table are supported by I/O procedures and CODEC procedures. The CODEC.H and MMIOOS2.H header files define these data structures. Include the CODEC.H and MMIOOS2.H header files and define INCL_MMIO_CODEC in any source that uses CODEC functions.
┌─────────────────────────┬─────────────────────────────────────────────┐ │Data Structure │Description │ ├─────────────────────────┼─────────────────────────────────────────────┤ │MMEXTENDINFO │Used by mmioSet and MMIOM_SET. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │MMMULTITRACKREAD │Used by MMIOM_MULTITRACKREAD. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │MMMULTITRACKWRITE │Used by MMIOM_MULTITRACKWRITE. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │MMMOVIEHEADER │Standard presentation movie header. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │MMVIDEOHEADER │Standard presentation video header. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │MMVIDEOOPEN │Used by MMIOM_OPEN. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │MMCOMPRESS │Used by MMIOM_CODEC_COMPRESS and │ │ │MMIOM_COMPRESS. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │MMDECOMPRESS │Used by MMIOM_CODEC_DECOMPRESS and │ │ │MMIOM_DECOMPRESS. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │CODECVIDEOHEADER │Used by MMIOM_CODEC_OPEN. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │CODECOPEN │Used by MMIOM_CODEC_OPEN. │ ├─────────────────────────┼─────────────────────────────────────────────┤ │CODECINIFILEINFO │Used by mmioIniFileCODEC. │ └─────────────────────────┴─────────────────────────────────────────────┘