# AVSLib :: sample script # Copyright (c) 2007 George Zarkadas (gzarkadas@users.sourceforge.net) # This program is free software; you can redistribute it and/or modify it under the terms of # the GNU General Public License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; # without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. See the GNU General Public License for more details. # You should have received a copy of the GNU General Public License along with this program; # if not, write to the "Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA" # load required modules LoadModule("avslib", "base", "constants") LoadModule("avslib", "base", "conversion") LoadPackage("avslib", "array") LoadModule("avslib", "filters", "stack") # load a text file containing dir /b output # surrounded by triple quotes at the start and end of file dir = Import("files.txt") # after that dir is an array of filenames! # but be careful if you hand-type arrays... ArrayDelimiterSet(CRLF) # cleanup dir from invalid files (CInt is used to convert true/false to 1/0) okflag = dir.ArrayOpFunc("Exist").ArrayOpFunc("CInt") dir = dir.ArrayReduce(okflag) # read in clips clp = dir.ArrayOpFunc("DirectShowSource") # stack them - preserving aspect ratio by cropping - into a 960x640 frame return StackToFit(clp, 960, 640, RTF_CROP)