Browse Prior Art Database

Software Method for Reading and Streaming Multimedia Data Types

IP.com Disclosure Number: IPCOM000116930D
Original Publication Date: 1995-Nov-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 4 page(s) / 125K

Publishing Venue

IBM

Related People

Czako, BM: AUTHOR [+5]

Abstract

Disclosed is a method using an operating system having multi-threaded, preemptive multitasking to provide smooth playback of software motion video. Without such a method, in some hardware configurations, access to a storage device, such as a hardfile or CD player, locks the processor, preventing access to the processor by other threads, so that no new frames of video can be displayed. This causes the playback of software motion video to appear choppy and jerky.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Software Method for Reading and Streaming Multimedia Data Types

      Disclosed is a method using an operating system having
multi-threaded, preemptive multitasking to provide smooth playback of
software motion video.  Without such a method, in some hardware
configurations, access to a storage device, such as a hardfile or CD
player, locks the processor, preventing access to the processor by
other threads, so that no new frames of video can be displayed.  This
causes the playback of software motion video to appear choppy and
jerky.

      The Multimedia Presentation Manager/2* (MMPM/2) subsystem
includes many components interacting to provide the smooth playback
of software motion video.  One component, the Multi-Track Stream
Handler (MTSH) controls reading and writing multiple streams of data
from multimedia file types.  Another component, the AVI Input/Output
Procedure (AVIO) controls opening, reading, and writing from
(Audio-Visual) (AVI) files, which contain software motion video data.
The MTSH and AVIO communicate using messages as the reading and
writing of AVI files is performed.

      Fig. 1 is a diagram showing the MMMULTITRACKREAD data
structure.  The MMIOM_MULTITRACKREAD message type allows the MTSH to
read multiple tracks of data from an AVI file using AVIO.  MTSH
passes the MMMULTITRACKREAD data structure to AVIO, which performs a
read from the file and fills in the relevant data structures.  MTSH
tells AVIO the size of the buffer to fill (ulLength), a pointer to
the buffer to fill (pBuffer), the number of tracks to read
(ulNumTracks), and information about each track.  The AVIO returns
the data structures filled in to the MTSH, including the number of
records for each track read and pointers to the data for each track.
In an AVI file, the various pieces of data in the file are known as
chunks, which cannot be split across buffers.  So, for each read from
the MTSH, the AVIO fills the buffer as much as possible, usually
leaving some dead space at the bottom of the buffer.

      Fig. 2 is a diagram showing operation of the subsystem in a
normal mode.  The MTSH passes a length of a buffer and a pointer to
that buffer, which the AVIO fills as much as possible.  For example,
in a normal mode read, the MTSH passes a 128 KB buffer to the AVIO,
which proceeds to read in 128 KB worth of data and mark as much of
the data as possible.

      Fig. 3 is a diagram showing operation of the subsystem in an
extended mode.  In extended mode, the MTSH adds another value to the
structure being passed in, the size of the entire buffer to be
filled.  In this mode, the MTSH can ask AVIO to read smaller amounts
of data at a time, while the AVIO still knows...