MMIO Architecture

Because files services have unique characteristics, the architecture of MMIO is stand-alone and separate from the notion of the media control interface, although some media drivers and file system stream handlers still require file services from MMIO.

When an application calls multimedia I/O functions, the MMIO Manager calls the appropriate I/O procedure (IOProc) if necessary, or processes the function within the MMIO Manager itself. The MMIO Manager uses IOProcs to direct the input and output associated with reading from and writing to different types of storage systems or file formats. IOProcs provide an abstract of the file format, allowing operations such as read, write, and seek to be independent of the specific format in use. The handler is responsible for translating a generic application request into the necessary format-specific operations.

The MMIO architecture provides for CODEC procedures to operate on data objects as required. A given file format I/O procedure might support none, one, or many CODEC procedures operating on a single format.

The following figure illustrates the architecture of the MMIO subsystem.


            ┌────────────┐  ┌────────────┐  ┌────────────┐
            │            │  │   MEDIA    │  │   STREAM   │
            │APPLICATIONS│  │  DRIVERS   │  │   HANDLER  │
            └─────┬──────┘  └─────┬──────┘  └─────┬──────┘
                  │               │               │
                  └───────────────┼───────────────┘
                                  
                    ┌───────────────────────────┐
                    │        MMIO MANAGER       │
                    └─────────────┬─────────────┘
       ┌────────────────────┐     │    ┌────────────────────┐
       │File Format IOProcs │     │    │File Format IOProcs │
       │ ┌───────────────┐  │     │    │ ┌───────────────┐  │
       │ │      WAVE     │  │     │    │ │  AVC image    │  │
       │ ├───────────────┤  │     │    │ ├───────────────┤  │
       │ │    CLI VOC    │  │     │    │ │M-Motion image │  │
       │ ├───────────────┤  ├─────┼────┤ ├───────────────┤  │
       │ │   AVC audio   │  │     │    │ │1.3 & 2.0 BMP  │  │
       │ ├───────────────┤  │     │    │ ├───────────────┤  │
       │ │  RMID & MID   │  │     │    │ │ RDIB & DIB    │  │
       │ ├───────────────┤  │     │    │ └───────────────┘  │
       │ │     AVI       │  │     │    │         .          │
       │ └───────────────┘  │     │    │         .          │
       │                    │     │    │         .          │
       └────────────────────┘     │    └────────────────────┘
                                  │
       ┌───────────────────┐      │     ┌───────────────────┐
       │  Codec Procedures ├──────┼─────┤  Codec Procedures │
       │ ┌───────────────┐ │      │     │ ┌───────────────┐ │
       │ │  Ultimotion   │ │      │     │ │     Others    │ │
       │ └───────────────┘ │      │     │ └───────────────┘ │
       └───────────────────┘      │     └───────────────────┘
- - - - - - - - - - - - - - - - - │ - - - - - - - - - - - - - - -
               ┌────────────┬─────┴────┬───────────┐
                                                
          ┌──────────┐┌──────────┐┌──────────┐┌──────────┐
System    │   DOS    ││  MEMORY  ││ COMPOUND ││  OTHERS  │
Storage   │   FILE   ││  FILE    ││ FILE     ││          │
IOProcs   └────┬─────┘└──────────┘└────┬─────┘└─────┬────┘
               │                       │            │      Ring 3
- - - - - - - -│- - - - - - - - - - - -│- - - - - - │- - - - - - -
                                                        Ring 0
   ┌───────────────────────────────────────────────────────────┐
   │                        File System                        │
   └───────────────────────────────────────────────────────────┘


[Back: Multimedia I/O File Services]
[Next: Installable I/O Procedures]