Code covered by the BSD License  

Highlights from
mmplay

from mmplay by Micah Richert
replacement for the movie command and play movies read by mmread

mmplay.m
% function mmplay(...options...)
% 
% mmplay is a replacement for the movie command as well as plays movies 
% read by mmread.  It can play both audio and video simultaneously.  This 
% uses the Windows DirectX infrastructure to generate the movie, so other 
% OSs are out of luck.  The video will appear in the current figure (or pop
% one up if it doesn't exist) unless 'fullscreen' is specified.  The video 
% will cover the entire window, including the toolbar and menubar.  If this
% bothers you turn off the menubar with:
% set(gcf,'MenuBar','none');
% 
% INPUT:
%   video structure:  The video structure matches the output of mmread.  At
%     a minimum it must have 4 fields "frames", "times", "height" and
%     "width".  The "frames" field must be a struct array with a field
%     "cdata" that contains the raw frame data encoded as height by width
%     by color(3) as UINT8s.  The "times" field contains the time stamps of
%     the data stored in frames.  "times" and "frames.cdata" must be the
%     same length.
% 
%   audio structure:  The audio structure matches the output of mmread.  At
%     a minimum it must have 3 fields "data", "rate" and "times".  The
%     "data" field is a matrix nrSamples by nrChannels (the same format was
%     wavread/wavplay).  The field "rate" is the sampling rate of the data
%     in Hz, eg. 44100.  The field "frames" is used to specify the time
%     that audio should start, the rest of the time is extrapolated based
%     upon the "rate" and the nrSamples.
% 
%   'fullscreen':   play in fullscreen mode.
% 
% EXAMPLES:
%   [video,audio] = mmread('myfile');
%   mmplay(video,audio);
% 
%   %play fullscreen
%   mmplay(video,'fullscreen');
% 
%   % play just a subsample (the time range 10 to 20s) of a movie using mmread
%   [video, audio] = mmread('your file',[],[10 20]);
% 
%   subtract 10 seconds off the time stamps so that the audio and video
%   will start at the beginning of the movie.
%   video.times = video.times - 10;
%   audio.times = audio.times - 10;
% 
%   mmplay(audio,video); % play the movie...
% 
%   % make a movie ourselves...
%   f=figure;
%   x = -pi:.1:pi;
%   set(gca,'xlim',[-length(x) length(x)],'ylim',[-length(x) length(x)]);
%   for i=1:length(x)
%       patch(sin(x)*i,cos(x)*i,[abs(cos(x(i))) 0 0]);
%       v.frames(i) = getframe(gca);
%       v.times(i) = i/30; % display at 30fps
%   end
%   v.width=size(v.frames(1).cdata,2);
%   v.height=size(v.frames(1).cdata,1);
%   close(f);
%   mmplay(v);
% 
%   %as a replacement for the 'movie' command
%   change: movie(M)
%   to:
%   v.frames = M;
%   v.times = (1:length(M))/12; %movie defaults to 12fps
%   v.width = size(M(1).cdata,2);
%   v.height = size(M(1).cdata,1);
%   mmplay(v);

Contact us at files@mathworks.com