<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="jit.movie" module="jit" category="Jitter Generators, Jitter QuickTime">
	<digest>
		Play a QuickTime movie
	</digest>
	<description>
		Use the <o>jit.movie</o> for working with QuickTime movies.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				bang, messages in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				bang, messages in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="matrix">
			<digest>
				out
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="matrix">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--MOP-->
	<mop matrixinputcount="1" matrixoutputcount="1">
		<matrixoutput name="out" planelink="1" typelink="1" dimlink="1" minplanecount="4" maxplanecount="4" mindimcount="1" maxdimcount="32">
			<types>
				char
			</types>
		</matrixoutput>
	</mop>
	<!--MESSAGES-->
	<methodlist>
		<method name="(drag)">
			<digest>
				Load a QuickTime-compatible media file
			</digest>
			<description>
			</description>
		</method>
		<method name="asyncread">
			<arglist>
				<arg name="src-name" optional="1" type="symbol" />
			</arglist>
			<digest>
				Read a movie from a disk file asynchronously
			</digest>
			<description>
				Asynchronously reads a movie from a disk file, if possible. If no argument is present a file selection dialog will be presented to choose a file. Any argument is assumed to be a local file name. At this time, asynchronous reading is not supported for URL-based movies
			</description>
		</method>
		<method name="dispose">
			<arglist />
			<digest>
				Close the currently loaded movie
			</digest>
			<description />
		</method>
		<method name="cancelframedump">
			<arglist />
			<digest>
				Stop the frame dump process
			</digest>
			<description>
				Stops the frame dump process. See <m>framedump</m>.
			</description>
		</method>
		<method name="frame">
			<arglist>
				<arg name="frame-number" type="int" />
			</arglist>
			<digest>
				Jump to a frame number (fast method)
			</digest>
			<description>
				Jump to a frame number (fast method). See the above Discussion for information on using <m>seeknotify</m> with this message.
			</description>
		</method>
		<method name="frame_true">
			<arglist>
				<arg name="frame-number" type="int" />
			</arglist>
			<digest>
				Jump to a frame number (slower, more accurate method)
			</digest>
			<description>
				Jump to a frame number (slower, more accurate method). See the above Discussion for information on using <m>seeknotify</m> with this message.
			</description>
		</method>
		<method name="framedump">
			<arglist>
				<arg name="start-frame" type="int" />
				<arg name="end-frame" type="int" />
				<arg name="frame-skip" type="int" />
			</arglist>
			<digest>
				Do a framedump
			</digest>
			<description>
				Commences a framedump, in which the movie will start from a frame specified by <i>start-frame</i> (the default is 1) and automatically output frames in sequence (no <m>bang</m> or <m>outputmatrix</m> message is necessary) up to the frame specified by <i>end-frame</i>, skipping <i>frame-skip</i> frames between each frame. The default values are 1 for the start frame, and the total framecount of the movie for the end frame. The default <i>frame-skip</i> value is 1.
				<br />
				During operation, the message <m>framedump <i>current_frame</i> </m> is sent out the right outlet after each frame has been output. When finished, the message <m>framedump done</m> is output.
			</description>
		</method>
		<method name="jump">
			<arglist>
				<arg name="frame-offset" type="int" />
			</arglist>
			<digest>
				Jump to a relative movie frame (fast method)
			</digest>
			<description>
				Jump to a relative movie frame (fast method). See the above Discussion for information on using <m>seeknotify</m> with this message.
			</description>
		</method>
		<method name="jump_true">
			<arglist>
				<arg name="frame-offset" type="int" />
			</arglist>
			<digest>
				Jump to a relative movie frame (slower, more accurate method)
			</digest>
			<description>
				Jump to a relative movie frame (slower, more accurate method). See the above Discussion for information on using <m>seeknotify</m> with this message.
			</description>
		</method>
		<method name="start">
			<arglist />
			<digest>
				Start movie playback
			</digest>
			<description>
				Starts movie playback at the current <at>rate</at> from the current QuickTime time value specified by <at>time</at>.
			</description>
		</method>
		<method name="stop">
			<arglist />
			<digest>
				Stop movie playback
			</digest>
			<description>
				Stops movie playback. <at>rate</at> is unaffected).
			</description>
		</method>
		<method name="read">
			<arglist>
				<arg name="src-name" optional="1" type="symbol" />
			</arglist>
			<digest>
				Read a movie from a disk file/URL/clipboard
			</digest>
			<description>
				Reads a movie from a disk file, URL or the clipboard. If no argument is present a file selection dialog will be presented to choose a file. If the argument is parseable as a URL, the object will attempt to load a movie from that location. Otherwise, an argument is assumed to be a local file name.
				<br />
				If <at>autostart</at> is enabled, the movie will begin playing at once.
			</description>
		</method>
	</methodlist>
	<jittermethodlist>
		<jittermethod name="clear" />
		<jittermethod name="exportattrs" />
		<jittermethod name="importattrs" />
		<jittermethod name="outputmatrix" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="adapt" get="1" set="1" type="int" size="1">
			<digest>
				Adapt output matrix dimensions to movie size flag
			</digest>
			<description>
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Adapt" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="automatic" get="1" set="1" type="int" size="1">
			<digest>
				Enable automatic matrix output.
			</digest>
			<description>
				Enable automatic matrix output when bound to <o>jit.world</o>.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Automatic" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="autostart" get="1" set="1" type="int" size="1">
			<digest>
				Autoplay on movie open flag
			</digest>
			<description>
				Autoplay on movie open flag (default = 1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Auto start" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="colormode" get="1" set="1" type="symbol" size="1">
			<digest>
				Output matrix's color encoding
			</digest>
			<description>
				The output matrix's color encoding.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="argb">
							<digest>
								ARGB (alpha, red, green, blue) colormode
							</digest>
							<description />
						</enum>
						<enum name="uyvy">
							<digest>
								UYVY (YUV 4:2:2 packed) colormode
							</digest>
							<description />
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Colormode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="drawto" get="1" set="1" type="symbol" size="1">
			<digest>
				Render context name
			</digest>
			<description>
				A render context name, used when <at>output_texture</at> is enabled.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Drawto" />
			</attributelist>
		</attribute>
		<attribute name="dstrect" get="1" set="1" type="int" size="4">
			<digest>
				The portion of the output matrix written to by the input frame
			</digest>
			<description>
				The portion of the output matrix used for decompressing media to the internal matrix (default = 0 0 (matrix width) (matrix height))
				<br />
				The bounds of the rectangle are expressed in the form <i>left top right bottom</i>. All values are relative to the top-left corner of the viewing area of the output matrix.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Dest Rect" />
			</attributelist>
		</attribute>
		<attribute name="duration" get="1" set="0" type="int" size="1">
			<digest>
				Movie duration
			</digest>
			<description>
				The duration of the movie.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Duration" />
			</attributelist>
		</attribute>
		<attribute name="engine" get="1" set="1" type="symbol" size="1">
			<digest>
				Video engine backend.
			</digest>
			<description>
				Video engine backend. This argument can only be set in the max box. If not specified, it is determined by the Video Engine Max preference. As of this writing, possible values include <ar>avf</ar> (Mac only), <ar>qt</ar> and <ar>viddll</ar>.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Engine" />
			</attributelist>
		</attribute>
		<attribute name="fps" get="1" set="0" type="float" size="1">
			<digest>
				Internal FPS for the movie
			</digest>
			<description />
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Frames Per Second" />
			</attributelist>
		</attribute>
		<attribute name="framecount" get="1" set="0" type="int" size="1">
			<digest>
				Number of frames in the movie
			</digest>
			<description />
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Frame Count" />
			</attributelist>
		</attribute>
		<attribute name="framereport" get="1" set="1" type="int" size="1">
			<digest>
				Frame reporting flag
			</digest>
			<description>
				Frame reporting flag (default = 0). When enabled, the message <m>framecalc</m> will be sent from the rightmost outlet of the <o>jit.movie</o> object as each frame is processed, followed by the number of milliseconds spent doing so.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Frame Report" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="interp" get="1" set="1" type="int" size="1">
			<digest>
				Output interpolation flag
			</digest>
			<description>
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Interp" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="loop" get="1" set="1" type="int" size="1">
			<digest>
				Looping mode
			</digest>
			<description>
				Looping mode (default = 1 (start to end))
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="4">
					<enumlist>
						<enum name="off">
							<digest>
								0 = no looping
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="normal">
							<digest>
								1 = normal looping (start to end)
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="palindrome">
							<digest>
								2 = palindrome looping (start to end to start to ....)
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="playback-limits">
							<digest>
								3 = no looping, but use looppoints to define playback limits
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Loop" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="loopend" get="1" set="1" type="int" size="1">
			<digest>
				Loop point end for movie
			</digest>
			<description>
				The movie loop point end. Time is specified as QuickTime <at>time</at> values.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Loop End" />
			</attributelist>
		</attribute>
		<attribute name="looppoints" get="1" set="1" type="int" size="2">
			<digest>
				Movie loop points
			</digest>
			<description>
				The movie loop points. Time is specified as QuickTime <at>time</at> values.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Loop Points" />
			</attributelist>
		</attribute>
		<attribute name="loopreport" get="1" set="1" type="int" size="1">
			<digest>
				Loop notification flag
			</digest>
			<description>
				Loop notification flag (default = 0). When enabled, the <o>jit.movie</o> object will send the message <m>loopnotify</m> when the playing movie passes the loop point. In palindrome looping mode, the message will be sent at both the beginning and the end of the movie.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Loop Report" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="loopstart" get="1" set="1" type="int" size="1">
			<digest>
				Movie loop point start
			</digest>
			<description>
				The movie loop point start. Time is specified as QuickTime <at>time</at> values.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Loop Start" />
			</attributelist>
		</attribute>
		<attribute name="movie_dim" get="1" set="0" type="int" size="1">
			<digest>
				Native movie dimensions
			</digest>
			<description />
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Movie Dim" />
			</attributelist>
		</attribute>
		<attribute name="moviedim" get="1" set="0" type="int" size="2">
			<digest>
				Native movie dimensions
			</digest>
			<description />
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Movie Dim" />
			</attributelist>
		</attribute>
		<attribute name="moviefile" get="1" set="1" type="symbol" size="1">
			<digest>
				Load a movie file from disk
			</digest>
			<description>
				Load a movie file from disk
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Movie File" />
			</attributelist>
		</attribute>
		<attribute name="moviename" get="1" set="0" type="symbol" size="1">
			<digest>
				Movie file name
			</digest>
			<description>
				Identifies the file name of a movie (Note: setting this attribute does not load a movie file).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Movie Name" />
			</attributelist>
		</attribute>
		<attribute name="moviepath" get="1" set="0" type="symbol" size="1">
			<digest>
				Fully specified path on disk for the movie
			</digest>
			<description>
				The movie's fully-specified path on disk, if the movie has a disk-file (Note: setting this attribute does not load a movie file).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Movie Path" />
			</attributelist>
		</attribute>
		<attribute name="output_texture" get="1" set="1" type="int" size="1">
			<digest>
				Enable OpenGL texture output
			</digest>
			<description>
				Enable OpenGL texture output (default = 0). When enabled an OpenGL texture is output instead of a Jitter matrix. The object's <at>drawto</at> attribute must be set to a valid gl context. An RGBA texture is output using the movie's native dimensions. When enabled, the following attributes have no effect:
				<br />
				<at>adapt</at>
				<br />
				<at>colormode</at>
				<br />
				<at>dim</at>
				<br />
				<at>dstrect</at>
				<br />
				<at>srcrect</at>
				<br />
				<at>usedstrect</at>
				<br />
				<at>usesrcrect</at> 
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Output Texture" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="position" get="1" set="1" type="float" size="1">
			<digest>
				Current normalized position
			</digest>
			<description>
				Current playback position, normalized between 0. and 1. See the above Discussion for information on using <m>seeknotify</m> when setting this attribute.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Position" />
			</attributelist>
		</attribute>
		<attribute name="rate" get="1" set="1" type="float" size="1">
			<digest>
				Movie rate
			</digest>
			<description />
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Rate" />
			</attributelist>
		</attribute>
		<attribute name="seconds" get="1" set="0" type="float" size="1">
			<digest>
				Movie duration in seconds
			</digest>
			<description>
				The movie duration in seconds.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Seconds" />
			</attributelist>
		</attribute>
		<attribute name="srcrect" get="1" set="1" type="int" size="4">
			<digest>
				The portion of the input matrix used when copying an input matrix to the internal matrix
			</digest>
			<description>
				The portion of the QuickTime movie to decompress into a matrix (default = 0 0 (movie width) (movie height)). The bounds of the rectangle are expressed in the form <i>left top right bottom</i>. All values are relative to the top-left corner of the viewing area of the movie.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Source Rect" />
			</attributelist>
		</attribute>
		<attribute name="texture_name" get="1" set="1" type="symbol" size="1">
			<digest>
				Output texture name
			</digest>
			<description>
				Output texture name, when <at>output_texture</at> is enabled.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Texture Name" />
			</attributelist>
		</attribute>
		<attribute name="time" get="1" set="1" type="int" size="1">
			<digest>
				Current time in the movie
			</digest>
			<description>
				The current time in the movie. Time is specified as QuickTime <at>time</at> values. See the above Discussion for information on using <m>seeknotify</m> when setting this attribute.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Time" />
			</attributelist>
		</attribute>
		<attribute name="time_secs" get="1" set="1" type="float" size="1">
			<digest>
				Current playback time in seconds
			</digest>
			<description>
				Current playback time in seconds. See the above Discussion for information on using <m>seeknotify</m> when setting this attribute.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Time Seconds" />
			</attributelist>
		</attribute>
		<attribute name="timescale" get="1" set="0" type="int" size="1">
			<digest>
				Movie timescale
			</digest>
			<description>
				The timescale for the movie (default = 600, but movie-dependent)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Timescale" />
			</attributelist>
		</attribute>
		<attribute name="unique" get="1" set="1" type="int" size="1">
			<digest>
				Unique frame filter flag
			</digest>
			<description>
				Unique frame filter flag (default = 0 (disabled)). When the flag is set, only new frames from the movie are output when the object receives a bang. If no new frame has been decompressed, the <o>jit.movie</o> object will not respond to the bang.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Unique" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="usedstrect" get="1" set="1" type="int" size="1">
			<digest>
				Destination rect flag
			</digest>
			<description>
				Destination rect flag (default = 0). When the flag is set, the <at>dstrect</at> attributes are used when copying an input matrix to the internal matrix.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Use Dest Rect" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="usesrcrect" get="1" set="1" type="int" size="1">
			<digest>
				Source rect flag
			</digest>
			<description>
				Source rect flag (default = 0). When the flag is set, the <at>srcrect</at> attributes are used when copying an input matrix to the internal matrix.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Use Source Rect" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="vol" get="1" set="1" type="float" size="1">
			<digest>
				Movie sound volume
			</digest>
			<description />
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Volume" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="outputmode" />
		<jitterattribute name="out_name" />
		<jitterattribute name="dim" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.movie.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.playlist" />
		<seealso display="jit.grab" name="jit.grab" />
		<seealso display="jit.record" name="jit.record" />
		<seealso name="jit.pwindow" />
		<seealso name="jit.window" />
		<seealso name="jit.world" />
		<seealso name="jit.gl.texture" />
		<seealso display="Video and Graphics 01: Display a Video" module="Video and Graphics" name="01-Display a Video" type="tutorial">
			Video and Graphics 01: Display a Video
		</seealso>
		<seealso display="Video and Graphics 09: Building Live Video Effects" module="Video and Graphics" name="09-Building Live Video Effects" type="tutorial">
			Video and Graphics 09: Building Live Video Effects
		</seealso>
		<seealso display="Video Engines" module="Video and Graphics" name="01-Video Engines" type="vignette">
			Video Engines
		</seealso>
		<seealso display="Direct Texture Output" module="Video and Graphics" name="02-GL Texture Output" type="vignette">
			GL Texture Output
		</seealso>
		<seealso module="jit" name="jitterchapter01" type="tutorial" />
		<seealso module="jit" name="jitterchapter04" type="tutorial" />
		<seealso module="jit" name="jitterchapter19" type="tutorial" />
		<seealso module="jit" name="jitterchapter99_appendixa" type="tutorial">
			Appendix A: QuickTime Confidential
		</seealso>
	</seealsolist>
	<discussion>
		This document refers to the avf engine version of <o>jit.movie</o>.		<br />
		The avf backed <o>jit.movie</o> is asynchronous when seeking (e.g. setting the <at>time</at> attribute or using the <m>frame</m> or <m>jump</m> messages). This means that the frame output immediately following a seek request is not guaranteed to be correct. Users requiring exact frame timing must use the <m>seeknotify</m> message output from the object's dump outlet to trigger frame output.
	</discussion>
</c74object>
