gusucode.com > audiovideo工具箱matlab源码程序 > audiovideo/+audiovideo/+internal/+writer/+plugin/MotionJpegAviFilePlugin.m

    classdef (Hidden) MotionJpegAviFilePlugin < audiovideo.internal.writer.plugin.AviFilePlugin
    %AviFilePlugin Extension of the IPlugin class to write uncompressed AVI files.
    
    % Copyright 2009-2013 The MathWorks, Inc.
    
    properties
        Quality = 65; % JPEG Quality. Valid values are 1 to 100
    end
        
    methods
        function obj = MotionJpegAviFilePlugin(fileName)
            %AviFilePlugin Construct a AviFilePlugin object.
            %
            %   OBJ = AviFilePlugin(FILENAME) constructs a AviFilePlugin
            %   object pointing to the file specified by FILENAME.  The file
            %   is not created until AviFilePlugin.open() is called.
            %
            %   See also AviFilePlugin/open, AviFilePlugin/close.
            
            obj = obj@audiovideo.internal.writer.plugin.AviFilePlugin(fileName);      
        end
        
         
        function open(obj, options)
            %OPEN Opens the channel for writing.
            %   AviFilePlugin objects must be open prior to calling
            %   writeVideoFrame.
            
           open@audiovideo.internal.writer.plugin.AviFilePlugin(obj, options);
        end    
        
        function writeVideoFrame(obj, data)
            %writeVideoFrame Write a single video frame to the channel.
            %   obj.writeVideoFrame(data) will write a single video frame
            %   to the channel.  

            % defer to our super class
            writeVideoFrame@audiovideo.internal.writer.plugin.AviFilePlugin(obj, data);
        end
        
        function [pluginName, mlConverterName, slConverterName, options] = ...
                                                getChannelInitOptions(obj)
            %GETCHANNELINITOPTIONS 
            %   Override base class to provide custom options.
            pluginName = 'videoaviwriterplugin';
            [mlConverterName, slConverterName] = obj.getConverterName;
            options.OutputFileName = obj.FileName;
            options.FileFormat = 'MotionJpeg';
        end
        
        function [filterName, options] = getFilterInitOptions(obj)
            filterName = 'videotransformfilter';
            options.InputFrameType = 'RGB24PlanarColumn';
            if ~isempty(obj.Channel)
                options.OutputFrameType = obj.Channel.ExpectedFrameType;
            else
                options.OutputFrameType = '';
            end
        end
    end
end