UNPKG

@bottobot/td-mcp

Version:

TouchDesigner Documentation MCP Server v2.3 - Pure MCP server for VS Code/Codium with comprehensive operator documentation for 629 operators + 7 tutorials across all categories (TOP, CHOP, SOP, DAT, MAT, COMP, POP). Features experimental POP operators wit

4,142 lines 228 kB
{
  "id": "movie_file_in",
  "name": "Movie File In",
  "displayName": "Movie File In",
  "category": "TOP",
  "subcategory": "Filters",
  "version": "",
  "lastUpdated": "2025-08-08T00:37:47.655Z",
  "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Movie_File_In_TOP.htm",
  "url": "",
  "description": "The Movie File In TOP loads movies, still images, or a sequence of still images into TOPs. It will read images in .jpg, .gif, .tif, or .bmp format. It will read movies in QuickTime's .mov format, .mp4, .mpg, .mpeg, .avi, .wmv, .dpx, Cineform and Hap Q formats (including Hap Q with Alpha).",
  "summary": "The Movie File In TOP loads movies, still images, or a sequence of still images into TOPs. It will read images in .jpg, .gif, .tif, or .bmp format. It will read movies in QuickTime's .mov format, .mp4",
  "details": "",
  "usage": "",
  "tips": [],
  "warnings": [],
  "parameters": [
    {
      "id": null,
      "name": "File",
      "label": "File",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe Movie File In  loads movies, still images, or a sequence of still images into TOPs. It will read images in .jpg, .gif, .tif, or .bmp format. It will read movies in QuickTime's .mov format, .mp4, .mpg, .mpeg, .avi, .wmv, .dpx, Cineform and Hap Q formats (including Hap Q with Alpha).  \nIt also supports the NotchLC codec, EXR files (.exr) and some .swf and .flv Flash files as well as DXT1/3/5 and RG compressed .dds files. Images and movies can also be fetched from the web by using http:// to specify a URL.\nAccess the hardware decoder on Nvidia GPUs with the Hardware Decode parameter on the 'Tune' page. This supports 10 and 12-bit H264/H265s and YUV 444 files on supporting hardware, converted into 16-bit pixel channels. Other codecs that this also decodes include VP8, VP9, JPEG, AV1, VC1.\nMore information here.\nWhen reading file formats that support higher bit depths such as 10-bit/16-bit/32-bit, an appropriate pixel format will be automatically used as long as the 'Pixel Format' menu on the Common page is left as 'Use Input'. i.e. a 16-bit file will cause each pixel to have 16-bits per color channel automatically.\nFor a complete list, see File Types.\t\t\t\nExamine the state of a Movie File In  by attaching an Info CHOP to it (see below on Info ). This will show info like movie length, resolution, the number of images per second (the sample_rate channel), and whether there is audio in the file.  It also shows dynamic information like movie open status, current frame, readahead frames and queue size, dropped frame count, CPU decode time and  upload time.\t\t\nNote that a movie's \"images per second\" (sample_rate) may be different than the timeline's frames per second. When referring to the movie's \"index\", it's in reference to the sequence of images in the movie file, not related to the global project frame rate.\nSee also the page on Movie File In  optimizations Movie Playback, plus Hap, Movie File Out TOP and Cineform.\nmoviefileinTOP_Class\n\nContents\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n  file - The path and name of the image or movie file to load. Image and movie formats are those found in File Types.  You can specify files on the internet using http:// ... \t\nTo treat a folder of images as if they are one movie, specify the folder containing the images instead of a filename. All the files must be the same resolution. It will treat all stills/movies in that folder as if each is a frame in one movie. The order of the images is the alphanumeric. By default the first image has an index of 0, second is 1, etc, regardless of their file names. Overriding the sample rate on the Trim parameter page will let you playback the image sequence at any frame rate.  \t\t\t\nUsing an info.xml file in the directory containing a sequence of images allows you to specify the frames per second and an audio file to be used with the sequence of images. Example xml file:\t\t\t\n\n\n  \n        \n        \n  \n\nURLs can be used to fetch images and movies. The image or movie is downloaded to the user's Derivative temp directory and is read into the Movie File In .\n\n\n\n  reload - Change from 0 to 1 to force the image to reload, useful when the file changes or did not exist at first.\n\n\n\n  reloadpulse - Instantly reloads the file.\n\n\n\n  playmode -  - Specifies the method used to play the movie, there are 3 options.\n\n locked - This mode locks the movie position to the timeline. Scrubbing or jumping in the timeline will change the movie position accordingly. The parameters Play, Reset, Speed, and Index are disabled in this mode since the timeline is directly tied to movie position. specify - This mode allows the user to specify a particular position in the movie using the Index parameter below. Use this mode for random access to any location in the movie. sequential - This mode continually plays regardless of the timeline position (the Index parameter is disabled). Reset and Speed parameters below are enabled to allow some control. timecodeop - This mode allows the user to set the movie index by reference to a timecode in the form of either a , , or Timecode Class object.\n\n  play - Movie plays when 1, movie stops when 0.\n\n\n\n  speed - This is a speed multiplier which only works when Play Mode is Sequential. A value of 1 is the default playback speed. A value of 2 is double speed, 0.5 is half speed and so on. Negative values will play the movie backwards.\n\n\n\n  cue - Jumps to Cue  when set to 1. Only available when Play Mode is Sequential.\n\n\n\n  cuepulse - Instantly jumps to the Cue  position in the movie.\n\n\n\n  cuepoint - Set any index in the movie as a point to jump to.\n\n\n\n  cuepointunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  cuebehavior -  - Customize the Cue parameter's behavior.\n\n repeat - When releasing the Cue parameter, immediately play the next frame. play - When releasing the Cue parameter, first play the cued frame before continuing to play the next frame.\n\n  index - This parameter explicitly sets the movie position when Play Mode is set to Specify Index. The units menu on the right lets you specify the index in the following units: Index, Frames, Seconds, and Fraction (percentage). For example, assume you have a movie that internally is 25 fps, and the timeline that is 60 fps. If you set Units to Index and the parameter value to 25, you get the image that is 1 second into the movie. If you set the Units to Frames and set the value to 60 you get the same image at 1 second into the movie.\n\n\n\n  indexunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  loopcrossfade - Crossfades the beginning and end of the movie together to create a smooth transition when looping. If the movie uses Trim options, it will crossfade Trim Start with Trim End positions.\n\n\n\n  loopcrossfadeunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  stepsize - Sets how many frames to skip before displaying next frame. For example, a StepSize of 30 will display every 30th frame. This timing of movie playback does not change, so with a Step Size of 30 and a sample rate of 30, a new frame will be displayed every second.\n\n\n\n  audioloop -  - This menu helps you determine how to treat the audio as the end of a movie approaches. This is needed because of all the cases of playing a movie, like when driving with an index, the  will not know if you intend to loop it or not.\n\n silence - Audio will go silent when movie ends. fade - Audio will fade out when movie ends. match -\n\n  imageindexing -  - Determines how an image sequence is ordered.\n\n zero - Index the sequence of images starting at 0, after sorting them alphanumerically. filename - Index the sequence of images using the numbers on the end of the filenames. I.e a file named flower400.tiff will be frame index 400, regardless of if there are other files in the directory before it.\n\n  timecodeop - Set the movie index with a reference to a timecode. Should be a reference to either a  with channels 'hour', 'second', 'minute', 'frame', a  with a timecode string in its first cell, or a Timecode Class object.\n\n\n\n\n\n  interp - Interpolates between frames based based on exact time. For example, if the index (in frames) is 1.5, then frames 1 and 2 will be blended 50-50. If the index is 1.7 then 30% of frame 1 is blended with 70% of frame 2 and so on.\n\n\n\n  deinterlace -  - For movies that are stored as fields, where each image is made of two images interleaved together. A 30-frame per second movie would contain 60 fields per second. For each image, the even scanlines of the first field are interleaved with the odd scanlines of the second field. The Movie File In  has several ways of dealing with this:\n\n off - Output the movie images unchanged. even - Take only the even scanlines of the file's images and create the odd scanlines by interpolating between the even scanlines. (For historic reasons, scanline 0 is at the top of the images for the purpose of the deinterlacing.) odd - bob -\n\n  precedence -  - Where fields are extracted one field at a time, this will extract the Even field first by default, otehrwise it will extract the odd field first. The video industry has not standardized on one or the other.\n\n even - When the disk files are fragmented. The Movie File In  will read frames of the movie into memory before they are used, this can eliminate pops or stutters in playback that occur from fragmented files, other resources accessing the hard drive, or movie looping. odd -\n\n  bottomhalfalpha - If enabled, the image/movie will have it's height halved, and the R channel from the pixels on the bottom half will be treated as if they were the alpha channel for the top half. Useful for cases where the image format does not support alpha natively.\n\n\n\n  multalpha -  - Premultiplies the image.\n\n off - on - automatic -\n\n  inputsrgb - If the input image is 8-bit and sRGB color space, enable this to have treated as such.\n\n\n\n  loadingerrorimage -  - When the file can not be loaded for some reason, select what to display instead.\n\n coloredbottomright - Show a colored square in the bottom right. Red means failed to load, grey means still loading. zero - Show a blank frame.\n\n\n\n  trim - Enables the parameters below to set trim in and out points.\n\n\n\n  tstart - Trim the starting point of the movie.\n\n\n\n  tstartunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  tend - Trim the ending point of the movie.\n\n\n\n  tendunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  textendleft -  - Determines how the Movie File In  handles movie positions that lie before the Trim Start position. For example, if Trim Start is set to 1, and the movie's current index is -10, the Extend Left menu determines how the movie position is calculated.\n\n hold - Displays the first frame in the movie range (the frame specified by Trim Start) for any position before Trim Start. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing backwards from Trim Start the movie will index will climb towards Trim End, at which point is will decend down towards Trim Start again and continue to zig-zag (or mirror) the further the movie plays backwards. black - Displays black frame for any movie position before Trim Start. zero -\n\n  textendright -  - Determines how the Movie File In  handles movie positions that lie after the Trim End position. For example, if Trim End is set to 20, and the movie's current index is 25, the Extend Right menu determines how the movie position is calculated.\n\n hold - Displays the last frame in the movie range (the frame specified by Trim End) for any position after Trim End. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing forwards from Trim End the movie will index will start decending towards Trim Start, at which point is will start climbing towards Trim End and continue to zig-zag (or mirror) the further the movie plays. black - Displays black frame for any movie position after Trim End. zero -\n\n  overridesample - Turn On to change the sample rate of the movie. When loading an image sequence, use these parameters to set the playback speed for the sequence.\n\n\n\n  samplerate - Set the sample rate for playback when 'Override ' above is On.\n\n\n\n\n\n  prereadframes - Sets how many video frames TouchDesigner reads ahead and stores in memory. The Movie File In  will read and decode frames of the movie into CPU memory before they are used, this can eliminate pops or stutters in playback that occur from some frames taking too long to decode, other resources accessing the hard drive, or movie looping. When reading a sequence of image, having more Pre Read Frames will allow multiple images to be decode at the same time. This allows playback of heavy file formats such as .exr in real-time, assuming the machine has enough CPU cores.\n\n\n\n  frametimeout - The time (in milliseconds) TouchDesigner will wait for a frame from the hard drive before giving up. If the Disk Read Timeout time is reached, that frame is simply skipped. This also works for network files that are downloaded via http://.\n\n\n\n  frametimeoutstrat -  - When on, if the Disk Read Timeout is reached TouchDesigner will use the latest available frame in place of the skipped frame.\n\n keep - Keep showing the same frame that is currently being output. playback - Try to pick the best frame for playback. This may be a newer frame that what is shown, but not quite the frame that is requested. seeking - Try to show any frame, either before or after the target frame. Good for when seeking the movie via a shuttle widget in a UI.\n\n  alwaysloadinitial - If this parameter is turned on, then for the first loaded frame the Frame Read Timeout will be ignored, and it will always wait for the first frame to ensure the node always starts up with a valid image.\n\n\n\n  opentimeout - The time (in milliseconds) TouchDesigner will wait for a movie to open. If the Disk Open Timout is reached, the Movie File In  will stop waiting and make its image all black, with a grey square in the bottom right corner. If the file still isn't opened the next time the  cooks, it'll wait again, and do the same. It'll keep doing this until the file is opened, or the open fails.\n\n\n\n  uselatestontimeout - When on, if the Disk Read Timeout is reached TouchDesigner will use the latest available frame in place of the skipped frame.\n\n\n\n  asyncupload - When enabled, this will use OpenGL features to upload movie images to the  asynchronously. This will reduce the cook time of the Movie File In  considerably (in the performance monitor the lines that say \"Uploading Image to \" will go down to almost nothing). There is a  memory cost to using this feature however. It uses up another (Width * Height * 4 * Read Ahead Size) bytes of  memory. If you are having poor results with this feature, make sure your graphics drivers are up to date.\n\n\n\n  updateimage - Image will not update when set to 0. Movie index will continue to move forward but the output image will not update. This is useful when you are using a Movie Audio  to get audio from the movie, but you don't care about the video.\n\n\n\n  maxdecodecpus - Limit the maximum number of CPUs that will be used to decode certain video codecs that are capable of multi-CPU decoding, such as H264/H265 and Cineform.\tNote that this does not affect multi-threaded decoding for image sequence playback, which is instead controlled by increasing the Pre-Read Frame parameter.\n\n\n\n  highperfread - This option should be used when playing back files that require very high SSD read speeds such as high resolution (4K+) HAP Q files. It greatly improves read performance in those cases. It should not be used for low resolution or low data rate files such as 1080p H264 files.\n\n\n\n  highperfreadfactor - When doing high performance reads, this parameter controls the size of the read operations that are done on disk. Whatever the largest operation the codec asks to be done, this is multiplied by the read factor and all subsequent reads will read that much data instead. This can result in higher throughput depending on the drives. For example if a request is made to read 1MB and the factor is set to 3, then instead the operations will read 3MB from the disk and the extra 2MB read will be ready for the next frame and will likely already have the next 2 frames available in CPU RAM.\n\n\n\n  hwdecode - Controls if this node should use hardware decoding via the Nvidia hardware decoder chip. You can check if hardware decoding is being used using the Info , 'hardware_decode' channel. This parameter does nothing for Hap and NotchLC codecs, which are always hardware decoded.\n\n\n\n\n  outputresolution -  - quickly change the resolution of the 's data.\n\n useinput - Uses the input's resolution. eighth - Multiply the input's resolution by that amount. quarter - Multiply the input's resolution by that amount. half - Multiply the input's resolution by that amount. 2x - Multiply the input's resolution by that amount. 4x - Multiply the input's resolution by that amount. 8x - Multiply the input's resolution by that amount. fit - Grow or shrink the input resolution to fit this resolution, while keeping the aspect ratio the same. limit - Limit the input resolution to be not larger than this resolution, while keeping the aspect ratio the same. custom - Directly control the width and height.\n\n  resolution -  - Enabled only when the  parameter is set to Custom . Some Generators like Constant and Ramp do not use inputs and only use this field to determine their size. The drop down menu on the right provides some commonly used resolutions.\n\n resolutionw - resolutionh -\n\n  resmenu - A drop-down menu with some commonly used resolutions.\n\n\n\n  resmult - Uses the Global  Multiplier found in Edit>Preferences>TOPs. This multiplies all the TOPs resolutions by the set amount. This is handy when working on computers with different hardware specifications. If a project is designed on a desktop workstation with lots of graphics memory, a user on a laptop with only 64MB VRAM can set the Global  Multiplier to a value of half or quarter so it runs at an acceptable speed. By checking this checkbox on, this  is affected by the global multiplier.\n\n\n\n  outputaspect -  - Sets the image aspect ratio allowing any textures to be viewed in any size. Watch for unexpected results when compositing TOPs with different aspect ratios. (You can define images with non-square pixels using xres, yres, aspectx, aspecty where xres/yres != aspectx/aspecty.)\n\n useinput - Uses the input's aspect ratio. resolution - Uses the aspect of the image's defined resolution (ie 512x256 would be 2:1), whereby each pixel is square. custom - Lets you explicitly define a custom aspect ratio in the Aspect parameter below.\n\n  aspect -  - Use when Output Aspect parameter is set to Custom Aspect.\n\n aspect1 - aspect2 -\n\n  armenu - A drop-down menu with some commonly used aspect ratios.\n\n\n\n  inputfiltertype -  - This controls pixel filtering on the input image of the .\n\n nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. This is how you get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail.\n\n  fillmode -  - Determine how the  image is displayed in the viewer.\nNOTE:To get an understanding of how TOPs work with images, you will want to set this to Native  as you lay down TOPs when starting out. This will let you see what is actually happening without any automatic viewer resizing.\n\n\n useinput - Uses the same Fill Viewer settings as it's input. fill - Stretches the image to fit the edges of the viewer. width - Stretches image to fit viewer horizontally. height - Stretches image to fit viewer vertically. best - Stretches or squashes image so no part of image is cropped. outside - Stretches or squashes image so image fills viewer while constraining it's proportions. This often leads to part of image getting cropped by viewer. nativeres - Displays the native resolution of the image in the viewer.\n\n  filtertype -  - This controls pixel filtering in the viewers.\n\n nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. Use this to get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail. When the input is 32-bit float format, only nearest filtering will be used (regardless of what is selected).\n\n  npasses - Duplicates the operation of the  the specified number of times. For every pass after the first it takes the result of the previous pass and replaces the node's first input with the result of the previous pass. One exception to this is the GLSL TOP when using compute shaders, where the input will continue to be the connected 's image.\n\n\n\n  chanmask - Allows you to choose which channels (R, G, B, or A) the  will operate on. All channels are selected by default.\n\n\n\n  format -  - Format used to store data for each channel in the image (ie. R, G, B, and A). Refer to Pixel Formats for more information.\n\n useinput - Uses the input's pixel format. rgba8fixed - Uses 8-bit integer values for each channel. srgba8fixed - Uses 8-bit integer values for each channel and stores color in sRGB colorspace. Note that this does not apply an sRGB curve to the pixel values, it only stores them using an sRGB curve. This means more data is used for the darker values and less for the brighter values. When the values are read downstream they will be converted back to linear. For more information refer to sRGB. rgba16float - Uses 16-bits per color channel, 64-bits per pixel. rgba32float - Uses 32-bits per color channel, 128-bits per pixels. rgb10a2fixed - Uses 10-bits per color channel and 2-bits for alpha, 32-bits total per pixel. rgba16fixed - Uses 16-bits per color channel, 64-bits total per pixel. rgba11float - A RGB floating point format that has 11 bits for the Red and Green channels, and 10-bits for the Blue , 32-bits total per pixel (therefore the same memory usage as 8-bit RGBA). The Alpha channel in this format will always be 1. Values can go above one, but can't be negative. ie. the range is [0, infinite). rgb16float - rgb32float - mono8fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 8-bits per pixel. mono16fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono16float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono32float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 32-bits per pixel. rg8fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 8-bits per channel, 16-bits total per pixel. rg16fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg16float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg32float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 32-bits per channel, 64-bits total per pixel. a8fixed - An Alpha only format that has 8-bits per channel, 8-bits per pixel. a16fixed - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a16float - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a32float - An Alpha only format that has 32-bits per channel, 32-bits per pixel. monoalpha8fixed - A 2 channel format, one value for RGB and one value for Alpha. 8-bits per channel, 16-bits per pixel. monoalpha16fixed - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha16float - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha32float - A 2 channel format, one value for RGB and one value for Alpha. 32-bits per channel, 64-bits per pixel.\n\n\n\nExtra Information for the Movie File In  can be accessed via an Info CHOP.\n\n\n - The current frame index being shown. This is in the  of the movie file, not in timeline frames. - When the movie has a Trim applied to it, this will show the actually frame index within the movie being shown. - Normalized index value going from 0-1 from start to the end of the movie. - The width of the movie in pixels. - The height of the movie in pixels. - Unused currently. - The length of the movie, in movie frames. - The  of the movie. - The last movie frame uploaded to the . - 1 if the movie has an audio track, 0 if not. - 1 if the movie is currently preloading via the preload() Python method. - When deinterlacing using Bob (split), 1 means the odd field is being shown, 0 means the even field is being shown. - 1 if the last frame of the movie is currently being shown, 0 if not. Note that if a frame is dropped the last frame may never get shown, if the movie is looping. - 1 if the movie has just looped. - Counts how many times the node wanted to show a frame, but that frame wasn't already ready in the Pre-Read Cache. - The amount of time the node last waited for a pre_read_misses frame to be read, in milliseconds. - The number of times the node gave up reading a frame due to it not reading fast enough. The amount of time it will wait is controlled by the 'Frame Read Timeout' parameter. - The number of frames that have been pre-read, decoded, and are ready to be shown. - The frame index of the first index in the Pre-Read cache. - The amount of time spent reading the last frame from the hard-drive, in milliseconds. - The amount of time spent decoding/decompression the last frame on the CPU, in milliseconds. This does not account for time spent decoding on the  for codecs such as NotchLC, or Hardware Decoded codecs. - 1 if the movie's file is open. - 1 if the movie's file is in the process of opening, but not open yet. - 1 if opening the movie failed. - 1 if the Pre-Read Cache of the movie is filled with already decoded frames. - The true length of the movie, ignoring any trimming. - 1 if the YUV format the movie was encoded in is being converted to RGB on the . - 1 if the movie file has a track that is not video or audio, such as a subtitle track. - The number of times pre-reading a frame failed. - The amount of data being read per second off of the hard drive, in mega-bits. - 1 if the file is suffering from decode errors. - For Hap codecs, how many chunks the file was encoded as. - If the Hardware Decode parameter is on, this will be 1 if the  is able to hardware decode the movie's codec.\n - Horizontal resolution of the  in pixels. - Vertical resolution of the  in pixels. - Horizontal aspect of the . - Vertical aspect of the . - Depth of 2D or 3D array if this  contains a 2D or 3D texture array. - Total amount of texture memory used by this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditorwikieditor2023.112802022.241402021.100002018.28070before 2018.28070\nTOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\nTo \"pulse\" a parameter is to send it a signal from (1) an exported CHOP channel or (2) a python command or (3) a mouse click that causes a new action to occur immediately. A pulse via python is via the .pulse() function on a pulse-type parameter, such as Reset parameter in a Speed CHOP. A pulse from a CHOP is typically a 0 to 1 to 0 signal in an exported channel.\n\n\n\nThe panel at the bottom of TouchDesigner, it controls the current global looping Time your TouchDesigner project, or of just one component.\n\n\n\nThe sub-Family of Component types that are used to define and render 3D scenes. A Geometry Component is an Object that contains the 3D shapes to render. A Camera COMP and Light COMP are other Object types. Separately, \"Objects\" also refers to Python objects.\n\n\n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nEach SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.\n\n\n\nThe term \"Frame\" is a measurement of time used (1) in the Timeline, (2) as a time-unit in CHOPs, and (3) as a time unit in movie files that are read into TOPs and written out from TOPs. The frame rate is the frames per second (FPS).\n\n\n\nsamples-per-second of a CHOP. Each CHOP in your network has a sample rate. In contrast, the overall timeline has a Frame Rate, which is the number of frames to cook and display per second, generally your monitor display frequency, default 60.\n\n\n\nThe width and height of an image in pixels. Most TOPs, like the Movie File In TOP can set the image resolution. See Aspect Ratio for the width/height ratio of an image, taking into account non-square pixels.\n\n\n\nThe viewer of a node can be (1) the interior of a node (the Node Viewer), (2) a floating window (RMB->View... on node), or (3) a Pane that graphically shows the results of an operator.\n\n\n\nA CHOP outputs one or more channels, where a channel is simply a sequence of numbers (Samples), representing motion, audio, etc. Channels are passed between CHOPs in TouchDesigner networks. Channels can be Exported to Parameters.\n\n\n\nThe Frames-per-Second that TouchDesigner's Timeline runs at. Set with project.cookRate.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Movie_File_In_TOP&oldid=30314\"\n\t\tCategories: OP Help Common PagesTOPs",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.640Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "File",
      "label": "File",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe Movie File In  loads movies, still images, or a sequence of still images into TOPs. It will read images in .jpg, .gif, .tif, or .bmp format. It will read movies in QuickTime's .mov format, .mp4, .mpg, .mpeg, .avi, .wmv, .dpx, Cineform and Hap Q formats (including Hap Q with Alpha).  \nIt also supports the NotchLC codec, EXR files (.exr) and some .swf and .flv Flash files as well as DXT1/3/5 and RG compressed .dds files. Images and movies can also be fetched from the web by using http:// to specify a URL.\nAccess the hardware decoder on Nvidia GPUs with the Hardware Decode parameter on the 'Tune' page. This supports 10 and 12-bit H264/H265s and YUV 444 files on supporting hardware, converted into 16-bit pixel channels. Other codecs that this also decodes include VP8, VP9, JPEG, AV1, VC1.\nMore information here.\nWhen reading file formats that support higher bit depths such as 10-bit/16-bit/32-bit, an appropriate pixel format will be automatically used as long as the 'Pixel Format' menu on the Common page is left as 'Use Input'. i.e. a 16-bit file will cause each pixel to have 16-bits per color channel automatically.\nFor a complete list, see File Types.\t\t\t\nExamine the state of a Movie File In  by attaching an Info CHOP to it (see below on Info ). This will show info like movie length, resolution, the number of images per second (the sample_rate channel), and whether there is audio in the file.  It also shows dynamic information like movie open status, current frame, readahead frames and queue size, dropped frame count, CPU decode time and  upload time.\t\t\nNote that a movie's \"images per second\" (sample_rate) may be different than the timeline's frames per second. When referring to the movie's \"index\", it's in reference to the sequence of images in the movie file, not related to the global project frame rate.\nSee also the page on Movie File In  optimizations Movie Playback, plus Hap, Movie File Out TOP and Cineform.\nmoviefileinTOP_Class\n\nContents\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n  file - The path and name of the image or movie file to load. Image and movie formats are those found in File Types.  You can specify files on the internet using http:// ... \t\nTo treat a folder of images as if they are one movie, specify the folder containing the images instead of a filename. All the files must be the same resolution. It will treat all stills/movies in that folder as if each is a frame in one movie. The order of the images is the alphanumeric. By default the first image has an index of 0, second is 1, etc, regardless of their file names. Overriding the sample rate on the Trim parameter page will let you playback the image sequence at any frame rate.  \t\t\t\nUsing an info.xml file in the directory containing a sequence of images allows you to specify the frames per second and an audio file to be used with the sequence of images. Example xml file:\t\t\t\n\n\n  \n        \n        \n  \n\nURLs can be used to fetch images and movies. The image or movie is downloaded to the user's Derivative temp directory and is read into the Movie File In .\n\n\n\n  reload - Change from 0 to 1 to force the image to reload, useful when the file changes or did not exist at first.\n\n\n\n  reloadpulse - Instantly reloads the file.\n\n\n\n  playmode -  - Specifies the method used to play the movie, there are 3 options.\n\n locked - This mode locks the movie position to the timeline. Scrubbing or jumping in the timeline will change the movie position accordingly. The parameters Play, Reset, Speed, and Index are disabled in this mode since the timeline is directly tied to movie position. specify - This mode allows the user to specify a particular position in the movie using the Index parameter below. Use this mode for random access to any location in the movie. sequential - This mode continually plays regardless of the timeline position (the Index parameter is disabled). Reset and Speed parameters below are enabled to allow some control. timecodeop - This mode allows the user to set the movie index by reference to a timecode in the form of either a , , or Timecode Class object.\n\n  play - Movie plays when 1, movie stops when 0.\n\n\n\n  speed - This is a speed multiplier which only works when Play Mode is Sequential. A value of 1 is the default playback speed. A value of 2 is double speed, 0.5 is half speed and so on. Negative values will play the movie backwards.\n\n\n\n  cue - Jumps to Cue  when set to 1. Only available when Play Mode is Sequential.\n\n\n\n  cuepulse - Instantly jumps to the Cue  position in the movie.\n\n\n\n  cuepoint - Set any index in the movie as a point to jump to.\n\n\n\n  cuepointunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  cuebehavior -  - Customize the Cue parameter's behavior.\n\n repeat - When releasing the Cue parameter, immediately play the next frame. play - When releasing the Cue parameter, first play the cued frame before continuing to play the next frame.\n\n  index - This parameter explicitly sets the movie position when Play Mode is set to Specify Index. The units menu on the right lets you specify the index in the following units: Index, Frames, Seconds, and Fraction (percentage). For example, assume you have a movie that internally is 25 fps, and the timeline that is 60 fps. If you set Units to Index and the parameter value to 25, you get the image that is 1 second into the movie. If you set the Units to Frames and set the value to 60 you get the same image at 1 second into the movie.\n\n\n\n  indexunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  loopcrossfade - Crossfades the beginning and end of the movie together to create a smooth transition when looping. If the movie uses Trim options, it will crossfade Trim Start with Trim End positions.\n\n\n\n  loopcrossfadeunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  stepsize - Sets how many frames to skip before displaying next frame. For example, a StepSize of 30 will display every 30th frame. This timing of movie playback does not change, so with a Step Size of 30 and a sample rate of 30, a new frame will be displayed every second.\n\n\n\n  audioloop -  - This menu helps you determine how to treat the audio as the end of a movie approaches. This is needed because of all the cases of playing a movie, like when driving with an index, the  will not know if you intend to loop it or not.\n\n silence - Audio will go silent when movie ends. fade - Audio will fade out when movie ends. match -\n\n  imageindexing -  - Determines how an image sequence is ordered.\n\n zero - Index the sequence of images starting at 0, after sorting them alphanumerically. filename - Index the sequence of images using the numbers on the end of the filenames. I.e a file named flower400.tiff will be frame index 400, regardless of if there are other files in the directory before it.\n\n  timecodeop - Set the movie index with a reference to a timecode. Should be a reference to either a  with channels 'hour', 'second', 'minute', 'frame', a  with a timecode string in its first cell, or a Timecode Class object.\n\n\n\n\n\n  interp - Interpolates between frames based based on exact time. For example, if the index (in frames) is 1.5, then frames 1 and 2 will be blended 50-50. If the index is 1.7 then 30% of frame 1 is blended with 70% of frame 2 and so on.\n\n\n\n  deinterlace -  - For movies that are stored as fields, where each image is made of two images interleaved together. A 30-frame per second movie would contain 60 fields per second. For each image, the even scanlines of the first field are interleaved with the odd scanlines of the second field. The Movie File In  has several ways of dealing with this:\n\n off - Output the movie images unchanged. even - Take only the even scanlines of the file's images and create the odd scanlines by interpolating between the even scanlines. (For historic reasons, scanline 0 is at the top of the images for the purpose of the deinterlacing.) odd - bob -\n\n  precedence -  - Where fields are extracted one field at a time, this will extract the Even field first by default, otehrwise it will extract the odd field first. The video industry has not standardized on one or the other.\n\n even - When the disk files are fragmented. The Movie File In  will read frames of the movie into memory before they are used, this can eliminate pops or stutters in playback that occur from fragmented files, other resources accessing the hard drive, or movie looping. odd -\n\n  bottomhalfalpha - If enabled, the image/movie will have it's height halved, and the R channel from the pixels on the bottom half will be treated as if they were the alpha channel for the top half. Useful for cases where the image format does not support alpha natively.\n\n\n\n  multalpha -  - Premultiplies the image.\n\n off - on - automatic -\n\n  inputsrgb - If the input image is 8-bit and sRGB color space, enable this to have treated as such.\n\n\n\n  loadingerrorimage -  - When the file can not be loaded for some reason, select what to display instead.\n\n coloredbottomright - Show a colored square in the bottom right. Red means failed to load, grey means still loading. zero - Show a blank frame.\n\n\n\n  trim - Enables the parameters below to set trim in and out points.\n\n\n\n  tstart - Trim the starting point of the movie.\n\n\n\n  tstartunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  tend - Trim the ending point of the movie.\n\n\n\n  tendunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  textendleft -  - Determines how the Movie File In  handles movie positions that lie before the Trim Start position. For example, if Trim Start is set to 1, and the movie's current index is -10, the Extend Left menu determines how the movie position is calculated.\n\n hold - Displays the first frame in the movie range (the frame specified by Trim Start) for any position before Trim Start. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing backwards from Trim Start the movie will index will climb towards Trim End, at which point is will decend down towards Trim Start again and continue to zig-zag (or mirror) the further the movie plays backwards. black - Displays black frame for any movie position before Trim Start. zero -\n\n  textendright -  - Determines how the Movie File In  handles movie positions that lie after the Trim End position. For example, if Trim End is set to 20, and the movie's current index is 25, the Extend Right menu determines how the movie position is calculated.\n\n hold - Displays the last frame in the movie range (the frame specified by Trim End) for any position after Trim End. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing forwards from Trim End the movie will index will start decending towards Trim Start, at which point is will start climbing towards Trim End and continue to zig-zag (or mirror) the further the movie plays. black - Displays black frame for any movie position after Trim End. zero -\n\n  overridesample - Turn On to change the sample rate of the movie. When loading an image sequence, use these parameters to set the playback speed for the sequence.\n\n\n\n  samplerate - Set the sample rate for playback when 'Override ' above is On.\n\n\n\n\n\n  prereadframes - Sets how many video frames TouchDesigner reads ahead and stores in memory. The Movie File In  will read and decode frames of the movie into CPU memory before they are used, this can eliminate pops or stutters in playback that occur from some frames taking too long to decode, other resources accessing the hard drive, or movie looping. When reading a sequence of image, having more Pre Read Frames will allow multiple images to be decode at the same time. This allows playback of heavy file formats such as .exr in real-time, assuming the machine has enough CPU cores.\n\n\n\n  frametimeout - The time (in milliseconds) TouchDesigner will wait for a frame from the hard drive before giving up. If the Disk Read Timeout time is reached, that frame is simply skipped. This also works for network files that are downloaded via http://.\n\n\n\n  frametimeoutstrat -  - When on, if the Disk Read Timeout is reached TouchDesigner will use the latest available frame in place of the skipped frame.\n\n keep - Keep showing the same frame that is currently being output. playback - Try to pick the best frame for playback. This may be a newer frame that what is shown, but not quite the frame that is requested. seeking - Try to show any frame, either before or after the target frame. Good for when seeking the movie via a shuttle widget in a UI.\n\n  alwaysloadinitial - If this parameter is turned on, then for the first loaded frame the Frame Read Timeout will be ignored, and it will always wait for the first frame to ensure the node always starts up with a valid image.\n\n\n\n  opentimeout - The time (in milliseconds) TouchDesigner will wait for a movie to open. If the Disk Open Timout is reached, the Movie File In  will stop waiting and make its image all black, with a grey square in the bottom right corner. If the file still isn't opened the next time the  cooks, it'll wait again, and do the same. It'll keep doing this until the file is opened, or the open fails.\n\n\n\n  uselatestontimeout - When on, if the Disk Read Timeout is reached TouchDesigner will use the latest available frame in place of the skipped frame.\n\n\n\n  asyncupload - When enabled, this will use OpenGL features to upload movie images to the  asynchronously. This will reduce the cook time of the Movie File In  considerably (in the performance monitor the lines that say \"Uploading Image to \" will go down to almost nothing). There is a  memory cost to using this feature however. It uses up another (Width * Height * 4 * Read Ahead Size) bytes of  memory. If you are having poor results with this feature, make sure your graphics drivers are up to date.\n\n\n\n  updateimage - Image will not update when set to 0. Movie index will continue to move forward but the output image will not update. This is useful when you are using a Movie Audio  to get audio from the movie, but you don't care about the video.\n\n\n\n  maxdecodecpus - Limit the maximum number of CPUs that will be used to decode certain video codecs that are capable of multi-CPU decoding, such as H264/H265 and Cineform.\tNote that this does not affect multi-threaded decoding for image sequence playback, which is instead controlled by increasing the Pre-Read Frame parameter.\n\n\n\n  highperfread - This option should be used when playing back files that require very high SSD read speeds such as high resolution (4K+) HAP Q files. It greatly improves read performance in those cases. It should not be used for low resolution or low data rate files such as 1080p H264 files.\n\n\n\n  highperfreadfactor - When doing high performance reads, this parameter controls the size of the read operations that are done on disk. Whatever the largest operation the codec asks to be done, this is multiplied by the read factor and all subsequent reads will read that much data instead. This can result in higher throughput depending on the drives. For example if a request is made to read 1MB and the factor is set to 3, then instead the operations will read 3MB from the disk and the extra 2MB read will be ready for the next frame and will likely already have the next 2 frames available in CPU RAM.\n\n\n\n  hwdecode - Controls if this node should use hardware decoding via the Nvidia hardware decoder chip. You can check if hardware decoding is being used using the Info , 'hardware_decode' channel. This parameter does nothing for Hap and NotchLC codecs, which are always hardware decoded.\n\n\n\n\n  outputresolution -  - quickly change the resolution of the 's data.\n\n useinput - Uses the input's resolution. eighth - Multiply the input's resolution by that amount. quarter - Multiply the input's resolution by that amount. half - Multiply the input's resolution by that amount. 2x - Multiply the input's resolution by that amount. 4x - Multiply the input's resolution by that amount. 8x - Multiply the input's resolution by that amount. fit - Grow or shrink the input resolution to fit this resolution, while keeping the aspect ratio the same. limit - Limit the input resolution to be not larger than this resolution, while keeping the aspect ratio the same. custom - Directly control the width and height.\n\n  resolution -  - Enabled only when the  parameter is set to Custom . Some Generators like Constant and Ramp do not use inputs and only use this field to determine their size. The drop down menu on the right provides some commonly used resolutions.\n\n resolutionw - resolutionh -\n\n  resmenu - A drop-down menu with some commonly used resolutions.\n\n\n\n  resmult - Uses the Global  Multiplier found in Edit>Preferences>TOPs. This multiplies all the TOPs resolutions by the set amount. This is handy when working on computers with different hardware specifications. If a project is designed on a desktop workstation with lots of graphics memory, a user on a laptop with only 64MB VRAM can set the Global  Multiplier to a value of half or quarter so it runs at an acceptable speed. By checking this checkbox on, this  is affected by the global multiplier.\n\n\n\n  outputaspect -  - Sets the image aspect ratio allowing any textures to be viewed in any size. Watch for unexpected results when compositing TOPs with different aspect ratios. (You can define images with non-square pixels using xres, yres, aspectx, aspecty where xres/yres != aspectx/aspecty.)\n\n useinput - Uses the input's aspect ratio. resolution - Uses the aspect of the image's defined resolution (ie 512x256 would be 2:1), whereby each pixel is square. custom - Lets you explicitly define a custom aspect ratio in the Aspect parameter below.\n\n  aspect -  - Use when Output Aspect parameter is set to Custom Aspect.\n\n aspect1 - aspect2 -\n\n  armenu - A drop-down menu with some commonly used aspect ratios.\n\n\n\n  inputfiltertype -  - This controls pixel filtering on the input image of the .\n\n nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. This is how you get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail.\n\n  fillmode -  - Determine how the  image is displayed in the viewer.\nNOTE:To get an understanding of how TOPs work with images, you will want to set this to Native  as you lay down TOPs when starting out. This will let you see what is actually happening without any automatic viewer resizing.\n\n\n useinput - Uses the same Fill Viewer settings as it's input. fill - Stretches the image to fit the edges of the viewer. width - Stretches image to fit viewer horizontally. height - Stretches image to fit viewer vertically. best - Stretches or squashes image so no part of image is cropped. outside - Stretches or squashes image so image fills viewer while constraining it's proportions. This often leads to part of image getting cropped by viewer. nativeres - Displays the native resolution of the image in the viewer.\n\n  filtertype -  - This controls pixel filtering in the viewers.\n\n nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. Use this to get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail. When the input is 32-bit float format, only nearest filtering will be used (regardless of what is selected).\n\n  npasses - Duplicates the operation of the  the specified number of times. For every pass after the first it takes the result of the previous pass and replaces the node's first input with the result of the previous pass. One exception to this is the GLSL TOP when using compute shaders, where the input will continue to be the connected 's image.\n\n\n\n  chanmask - Allows you to choose which channels (R, G, B, or A) the  will operate on. All channels are selected by default.\n\n\n\n  format -  - Format used to store data for each channel in the image (ie. R, G, B, and A). Refer to Pixel Formats for more information.\n\n useinput - Uses the input's pixel format. rgba8fixed - Uses 8-bit integer values for each channel. srgba8fixed - Uses 8-bit integer values for each channel and stores color in sRGB colorspace. Note that this does not apply an sRGB curve to the pixel values, it only stores them using an sRGB curve. This means more data is used for the darker values and less for the brighter values. When the values are read downstream they will be converted back to linear. For more information refer to sRGB. rgba16float - Uses 16-bits per color channel, 64-bits per pixel. rgba32float - Uses 32-bits per color channel, 128-bits per pixels. rgb10a2fixed - Uses 10-bits per color channel and 2-bits for alpha, 32-bits total per pixel. rgba16fixed - Uses 16-bits per color channel, 64-bits total per pixel. rgba11float - A RGB floating point format that has 11 bits for the Red and Green channels, and 10-bits for the Blue , 32-bits total per pixel (therefore the same memory usage as 8-bit RGBA). The Alpha channel in this format will always be 1. Values can go above one, but can't be negative. ie. the range is [0, infinite). rgb16float - rgb32float - mono8fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 8-bits per pixel. mono16fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono16float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono32float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 32-bits per pixel. rg8fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 8-bits per channel, 16-bits total per pixel. rg16fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg16float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg32float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 32-bits per channel, 64-bits total per pixel. a8fixed - An Alpha only format that has 8-bits per channel, 8-bits per pixel. a16fixed - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a16float - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a32float - An Alpha only format that has 32-bits per channel, 32-bits per pixel. monoalpha8fixed - A 2 channel format, one value for RGB and one value for Alpha. 8-bits per channel, 16-bits per pixel. monoalpha16fixed - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha16float - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha32float - A 2 channel format, one value for RGB and one value for Alpha. 32-bits per channel, 64-bits per pixel.\n\n\n\nExtra Information for the Movie File In  can be accessed via an Info CHOP.\n\n\n - The current frame index being shown. This is in the  of the movie file, not in timeline frames. - When the movie has a Trim applied to it, this will show the actually frame index within the movie being shown. - Normalized index value going from 0-1 from start to the end of the movie. - The width of the movie in pixels. - The height of the movie in pixels. - Unused currently. - The length of the movie, in movie frames. - The  of the movie. - The last movie frame uploaded to the . - 1 if the movie has an audio track, 0 if not. - 1 if the movie is currently preloading via the preload() Python method. - When deinterlacing using Bob (split), 1 means the odd field is being shown, 0 means the even field is being shown. - 1 if the last frame of the movie is currently being shown, 0 if not. Note that if a frame is dropped the last frame may never get shown, if the movie is looping. - 1 if the movie has just looped. - Counts how many times the node wanted to show a frame, but that frame wasn't already ready in the Pre-Read Cache. - The amount of time the node last waited for a pre_read_misses frame to be read, in milliseconds. - The number of times the node gave up reading a frame due to it not reading fast enough. The amount of time it will wait is controlled by the 'Frame Read Timeout' parameter. - The number of frames that have been pre-read, decoded, and are ready to be shown. - The frame index of the first index in the Pre-Read cache. - The amount of time spent reading the last frame from the hard-drive, in milliseconds. - The amount of time spent decoding/decompression the last frame on the CPU, in milliseconds. This does not account for time spent decoding on the  for codecs such as NotchLC, or Hardware Decoded codecs. - 1 if the movie's file is open. - 1 if the movie's file is in the process of opening, but not open yet. - 1 if opening the movie failed. - 1 if the Pre-Read Cache of the movie is filled with already decoded frames. - The true length of the movie, ignoring any trimming. - 1 if the YUV format the movie was encoded in is being converted to RGB on the . - 1 if the movie file has a track that is not video or audio, such as a subtitle track. - The number of times pre-reading a frame failed. - The amount of data being read per second off of the hard drive, in mega-bits. - 1 if the file is suffering from decode errors. - For Hap codecs, how many chunks the file was encoded as. - If the Hardware Decode parameter is on, this will be 1 if the  is able to hardware decode the movie's codec.\n - Horizontal resolution of the  in pixels. - Vertical resolution of the  in pixels. - Horizontal aspect of the . - Vertical aspect of the . - Depth of 2D or 3D array if this  contains a 2D or 3D texture array. - Total amount of texture memory used by this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditorwikieditor2023.112802022.241402021.100002018.28070before 2018.28070\nTOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\nTo \"pulse\" a parameter is to send it a signal from (1) an exported CHOP channel or (2) a python command or (3) a mouse click that causes a new action to occur immediately. A pulse via python is via the .pulse() function on a pulse-type parameter, such as Reset parameter in a Speed CHOP. A pulse from a CHOP is typically a 0 to 1 to 0 signal in an exported channel.\n\n\n\nThe panel at the bottom of TouchDesigner, it controls the current global looping Time your TouchDesigner project, or of just one component.\n\n\n\nThe sub-Family of Component types that are used to define and render 3D scenes. A Geometry Component is an Object that contains the 3D shapes to render. A Camera COMP and Light COMP are other Object types. Separately, \"Objects\" also refers to Python objects.\n\n\n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nEach SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.\n\n\n\nThe term \"Frame\" is a measurement of time used (1) in the Timeline, (2) as a time-unit in CHOPs, and (3) as a time unit in movie files that are read into TOPs and written out from TOPs. The frame rate is the frames per second (FPS).\n\n\n\nsamples-per-second of a CHOP. Each CHOP in your network has a sample rate. In contrast, the overall timeline has a Frame Rate, which is the number of frames to cook and display per second, generally your monitor display frequency, default 60.\n\n\n\nThe width and height of an image in pixels. Most TOPs, like the Movie File In TOP can set the image resolution. See Aspect Ratio for the width/height ratio of an image, taking into account non-square pixels.\n\n\n\nThe viewer of a node can be (1) the interior of a node (the Node Viewer), (2) a floating window (RMB->View... on node), or (3) a Pane that graphically shows the results of an operator.\n\n\n\nA CHOP outputs one or more channels, where a channel is simply a sequence of numbers (Samples), representing motion, audio, etc. Channels are passed between CHOPs in TouchDesigner networks. Channels can be Exported to Parameters.\n\n\n\nThe Frames-per-Second that TouchDesigner's Timeline runs at. Set with project.cookRate.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Movie_File_In_TOP&oldid=30314\"\n\t\tCategories: OP Help Common PagesTOPs",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.645Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "File",
      "label": "File",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "The Movie File In  loads movies, still images, or a sequence of still images into TOPs. It will read images in .jpg, .gif, .tif, or .bmp format. It will read movies in QuickTime's .mov format, .mp4, .mpg, .mpeg, .avi, .wmv, .dpx, Cineform and Hap Q formats (including Hap Q with Alpha).  \nIt also supports the NotchLC codec, EXR files (.exr) and some .swf and .flv Flash files as well as DXT1/3/5 and RG compressed .dds files. Images and movies can also be fetched from the web by using http:// to specify a URL.\nAccess the hardware decoder on Nvidia GPUs with the Hardware Decode parameter on the 'Tune' page. This supports 10 and 12-bit H264/H265s and YUV 444 files on supporting hardware, converted into 16-bit pixel channels. Other codecs that this also decodes include VP8, VP9, JPEG, AV1, VC1.\nMore information here.\nWhen reading file formats that support higher bit depths such as 10-bit/16-bit/32-bit, an appropriate pixel format will be automatically used as long as the 'Pixel Format' menu on the Common page is left as 'Use Input'. i.e. a 16-bit file will cause each pixel to have 16-bits per color channel automatically.\nFor a complete list, see File Types.\t\t\t\nExamine the state of a Movie File In  by attaching an Info CHOP to it (see below on Info ). This will show info like movie length, resolution, the number of images per second (the sample_rate channel), and whether there is audio in the file.  It also shows dynamic information like movie open status, current frame, readahead frames and queue size, dropped frame count, CPU decode time and  upload time.\t\t\nNote that a movie's \"images per second\" (sample_rate) may be different than the timeline's frames per second. When referring to the movie's \"index\", it's in reference to the sequence of images in the movie file, not related to the global project frame rate.\nSee also the page on Movie File In  optimizations Movie Playback, plus Hap, Movie File Out TOP and Cineform.\nmoviefileinTOP_Class\n\nContents\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n  file - The path and name of the image or movie file to load. Image and movie formats are those found in File Types.  You can specify files on the internet using http:// ... \t\nTo treat a folder of images as if they are one movie, specify the folder containing the images instead of a filename. All the files must be the same resolution. It will treat all stills/movies in that folder as if each is a frame in one movie. The order of the images is the alphanumeric. By default the first image has an index of 0, second is 1, etc, regardless of their file names. Overriding the sample rate on the Trim parameter page will let you playback the image sequence at any frame rate.  \t\t\t\nUsing an info.xml file in the directory containing a sequence of images allows you to specify the frames per second and an audio file to be used with the sequence of images. Example xml file:\t\t\t\n\n\n  \n        \n        \n  \n\nURLs can be used to fetch images and movies. The image or movie is downloaded to the user's Derivative temp directory and is read into the Movie File In .\n\n\n\n  reload - Change from 0 to 1 to force the image to reload, useful when the file changes or did not exist at first.\n\n\n\n  reloadpulse - Instantly reloads the file.\n\n\n\n  playmode -  - Specifies the method used to play the movie, there are 3 options.\n\n locked - This mode locks the movie position to the timeline. Scrubbing or jumping in the timeline will change the movie position accordingly. The parameters Play, Reset, Speed, and Index are disabled in this mode since the timeline is directly tied to movie position. specify - This mode allows the user to specify a particular position in the movie using the Index parameter below. Use this mode for random access to any location in the movie. sequential - This mode continually plays regardless of the timeline position (the Index parameter is disabled). Reset and Speed parameters below are enabled to allow some control. timecodeop - This mode allows the user to set the movie index by reference to a timecode in the form of either a , , or Timecode Class object.\n\n  play - Movie plays when 1, movie stops when 0.\n\n\n\n  speed - This is a speed multiplier which only works when Play Mode is Sequential. A value of 1 is the default playback speed. A value of 2 is double speed, 0.5 is half speed and so on. Negative values will play the movie backwards.\n\n\n\n  cue - Jumps to Cue  when set to 1. Only available when Play Mode is Sequential.\n\n\n\n  cuepulse - Instantly jumps to the Cue  position in the movie.\n\n\n\n  cuepoint - Set any index in the movie as a point to jump to.\n\n\n\n  cuepointunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  cuebehavior -  - Customize the Cue parameter's behavior.\n\n repeat - When releasing the Cue parameter, immediately play the next frame. play - When releasing the Cue parameter, first play the cued frame before continuing to play the next frame.\n\n  index - This parameter explicitly sets the movie position when Play Mode is set to Specify Index. The units menu on the right lets you specify the index in the following units: Index, Frames, Seconds, and Fraction (percentage). For example, assume you have a movie that internally is 25 fps, and the timeline that is 60 fps. If you set Units to Index and the parameter value to 25, you get the image that is 1 second into the movie. If you set the Units to Frames and set the value to 60 you get the same image at 1 second into the movie.\n\n\n\n  indexunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  loopcrossfade - Crossfades the beginning and end of the movie together to create a smooth transition when looping. If the movie uses Trim options, it will crossfade Trim Start with Trim End positions.\n\n\n\n  loopcrossfadeunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  stepsize - Sets how many frames to skip before displaying next frame. For example, a StepSize of 30 will display every 30th frame. This timing of movie playback does not change, so with a Step Size of 30 and a sample rate of 30, a new frame will be displayed every second.\n\n\n\n  audioloop -  - This menu helps you determine how to treat the audio as the end of a movie approaches. This is needed because of all the cases of playing a movie, like when driving with an index, the  will not know if you intend to loop it or not.\n\n silence - Audio will go silent when movie ends. fade - Audio will fade out when movie ends. match -\n\n  imageindexing -  - Determines how an image sequence is ordered.\n\n zero - Index the sequence of images starting at 0, after sorting them alphanumerically. filename - Index the sequence of images using the numbers on the end of the filenames. I.e a file named flower400.tiff will be frame index 400, regardless of if there are other files in the directory before it.\n\n  timecodeop - Set the movie index with a reference to a timecode. Should be a reference to either a  with channels 'hour', 'second', 'minute', 'frame', a  with a timecode string in its first cell, or a Timecode Class object.\n\n\n\n\n\n  interp - Interpolates between frames based based on exact time. For example, if the index (in frames) is 1.5, then frames 1 and 2 will be blended 50-50. If the index is 1.7 then 30% of frame 1 is blended with 70% of frame 2 and so on.\n\n\n\n  deinterlace -  - For movies that are stored as fields, where each image is made of two images interleaved together. A 30-frame per second movie would contain 60 fields per second. For each image, the even scanlines of the first field are interleaved with the odd scanlines of the second field. The Movie File In  has several ways of dealing with this:\n\n off - Output the movie images unchanged. even - Take only the even scanlines of the file's images and create the odd scanlines by interpolating between the even scanlines. (For historic reasons, scanline 0 is at the top of the images for the purpose of the deinterlacing.) odd - bob -\n\n  precedence -  - Where fields are extracted one field at a time, this will extract the Even field first by default, otehrwise it will extract the odd field first. The video industry has not standardized on one or the other.\n\n even - When the disk files are fragmented. The Movie File In  will read frames of the movie into memory before they are used, this can eliminate pops or stutters in playback that occur from fragmented files, other resources accessing the hard drive, or movie looping. odd -\n\n  bottomhalfalpha - If enabled, the image/movie will have it's height halved, and the R channel from the pixels on the bottom half will be treated as if they were the alpha channel for the top half. Useful for cases where the image format does not support alpha natively.\n\n\n\n  multalpha -  - Premultiplies the image.\n\n off - on - automatic -\n\n  inputsrgb - If the input image is 8-bit and sRGB color space, enable this to have treated as such.\n\n\n\n  loadingerrorimage -  - When the file can not be loaded for some reason, select what to display instead.\n\n coloredbottomright - Show a colored square in the bottom right. Red means failed to load, grey means still loading. zero - Show a blank frame.\n\n\n\n  trim - Enables the parameters below to set trim in and out points.\n\n\n\n  tstart - Trim the starting point of the movie.\n\n\n\n  tstartunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  tend - Trim the ending point of the movie.\n\n\n\n  tendunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -\n\n  textendleft -  - Determines how the Movie File In  handles movie positions that lie before the Trim Start position. For example, if Trim Start is set to 1, and the movie's current index is -10, the Extend Left menu determines how the movie position is calculated.\n\n hold - Displays the first frame in the movie range (the frame specified by Trim Start) for any position before Trim Start. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing backwards from Trim Start the movie will index will climb towards Trim End, at which point is will decend down towards Trim Start again and continue to zig-zag (or mirror) the further the movie plays backwards. black - Displays black frame for any movie position before Trim Start. zero -\n\n  textendright -  - Determines how the Movie File In  handles movie positions that lie after the Trim End position. For example, if Trim End is set to 20, and the movie's current index is 25, the Extend Right menu determines how the movie position is calculated.\n\n hold - Displays the last frame in the movie range (the frame specified by Trim End) for any position after Trim End. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing forwards from Trim End the movie will index will start decending towards Trim Start, at which point is will start climbing towards Trim End and continue to zig-zag (or mirror) the further the movie plays. black - Displays black frame for any movie position after Trim End. zero -\n\n  overridesample - Turn On to change the sample rate of the movie. When loading an image sequence, use these parameters to set the playback speed for the sequence.\n\n\n\n  samplerate - Set the sample rate for playback when 'Override ' above is On.\n\n\n\n\n\n  prereadframes - Sets how many video frames TouchDesigner reads ahead and stores in memory. The Movie File In  will read and decode frames of the movie into CPU memory before they are used, this can eliminate pops or stutters in playback that occur from some frames taking too long to decode, other resources accessing the hard drive, or movie looping. When reading a sequence of image, having more Pre Read Frames will allow multiple images to be decode at the same time. This allows playback of heavy file formats such as .exr in real-time, assuming the machine has enough CPU cores.\n\n\n\n  frametimeout - The time (in milliseconds) TouchDesigner will wait for a frame from the hard drive before giving up. If the Disk Read Timeout time is reached, that frame is simply skipped. This also works for network files that are downloaded via http://.\n\n\n\n  frametimeoutstrat -  - When on, if the Disk Read Timeout is reached TouchDesigner will use the latest available frame in place of the skipped frame.\n\n keep - Keep showing the same frame that is currently being output. playback - Try to pick the best frame for playback. This may be a newer frame that what is shown, but not quite the frame that is requested. seeking - Try to show any frame, either before or after the target frame. Good for when seeking the movie via a shuttle widget in a UI.\n\n  alwaysloadinitial - If this parameter is turned on, then for the first loaded frame the Frame Read Timeout will be ignored, and it will always wait for the first frame to ensure the node always starts up with a valid image.\n\n\n\n  opentimeout - The time (in milliseconds) TouchDesigner will wait for a movie to open. If the Disk Open Timout is reached, the Movie File In  will stop waiting and make its image all black, with a grey square in the bottom right corner. If the file still isn't opened the next time the  cooks, it'll wait again, and do the same. It'll keep doing this until the file is opened, or the open fails.\n\n\n\n  uselatestontimeout - When on, if the Disk Read Timeout is reached TouchDesigner will use the latest available frame in place of the skipped frame.\n\n\n\n  asyncupload - When enabled, this will use OpenGL features to upload movie images to the  asynchronously. This will reduce the cook time of the Movie File In  considerably (in the performance monitor the lines that say \"Uploading Image to \" will go down to almost nothing). There is a  memory cost to using this feature however. It uses up another (Width * Height * 4 * Read Ahead Size) bytes of  memory. If you are having poor results with this feature, make sure your graphics drivers are up to date.\n\n\n\n  updateimage - Image will not update when set to 0. Movie index will continue to move forward but the output image will not update. This is useful when you are using a Movie Audio  to get audio from the movie, but you don't care about the video.\n\n\n\n  maxdecodecpus - Limit the maximum number of CPUs that will be used to decode certain video codecs that are capable of multi-CPU decoding, such as H264/H265 and Cineform.\tNote that this does not affect multi-threaded decoding for image sequence playback, which is instead controlled by increasing the Pre-Read Frame parameter.\n\n\n\n  highperfread - This option should be used when playing back files that require very high SSD read speeds such as high resolution (4K+) HAP Q files. It greatly improves read performance in those cases. It should not be used for low resolution or low data rate files such as 1080p H264 files.\n\n\n\n  highperfreadfactor - When doing high performance reads, this parameter controls the size of the read operations that are done on disk. Whatever the largest operation the codec asks to be done, this is multiplied by the read factor and all subsequent reads will read that much data instead. This can result in higher throughput depending on the drives. For example if a request is made to read 1MB and the factor is set to 3, then instead the operations will read 3MB from the disk and the extra 2MB read will be ready for the next frame and will likely already have the next 2 frames available in CPU RAM.\n\n\n\n  hwdecode - Controls if this node should use hardware decoding via the Nvidia hardware decoder chip. You can check if hardware decoding is being used using the Info , 'hardware_decode' channel. This parameter does nothing for Hap and NotchLC codecs, which are always hardware decoded.\n\n\n\n\n  outputresolution -  - quickly change the resolution of the 's data.\n\n useinput - Uses the input's resolution. eighth - Multiply the input's resolution by that amount. quarter - Multiply the input's resolution by that amount. half - Multiply the input's resolution by that amount. 2x - Multiply the input's resolution by that amount. 4x - Multiply the input's resolution by that amount. 8x - Multiply the input's resolution by that amount. fit - Grow or shrink the input resolution to fit this resolution, while keeping the aspect ratio the same. limit - Limit the input resolution to be not larger than this resolution, while keeping the aspect ratio the same. custom - Directly control the width and height.\n\n  resolution -  - Enabled only when the  parameter is set to Custom . Some Generators like Constant and Ramp do not use inputs and only use this field to determine their size. The drop down menu on the right provides some commonly used resolutions.\n\n resolutionw - resolutionh -\n\n  resmenu - A drop-down menu with some commonly used resolutions.\n\n\n\n  resmult - Uses the Global  Multiplier found in Edit>Preferences>TOPs. This multiplies all the TOPs resolutions by the set amount. This is handy when working on computers with different hardware specifications. If a project is designed on a desktop workstation with lots of graphics memory, a user on a laptop with only 64MB VRAM can set the Global  Multiplier to a value of half or quarter so it runs at an acceptable speed. By checking this checkbox on, this  is affected by the global multiplier.\n\n\n\n  outputaspect -  - Sets the image aspect ratio allowing any textures to be viewed in any size. Watch for unexpected results when compositing TOPs with different aspect ratios. (You can define images with non-square pixels using xres, yres, aspectx, aspecty where xres/yres != aspectx/aspecty.)\n\n useinput - Uses the input's aspect ratio. resolution - Uses the aspect of the image's defined resolution (ie 512x256 would be 2:1), whereby each pixel is square. custom - Lets you explicitly define a custom aspect ratio in the Aspect parameter below.\n\n  aspect -  - Use when Output Aspect parameter is set to Custom Aspect.\n\n aspect1 - aspect2 -\n\n  armenu - A drop-down menu with some commonly used aspect ratios.\n\n\n\n  inputfiltertype -  - This controls pixel filtering on the input image of the .\n\n nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. This is how you get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail.\n\n  fillmode -  - Determine how the  image is displayed in the viewer.\nNOTE:To get an understanding of how TOPs work with images, you will want to set this to Native  as you lay down TOPs when starting out. This will let you see what is actually happening without any automatic viewer resizing.\n\n\n useinput - Uses the same Fill Viewer settings as it's input. fill - Stretches the image to fit the edges of the viewer. width - Stretches image to fit viewer horizontally. height - Stretches image to fit viewer vertically. best - Stretches or squashes image so no part of image is cropped. outside - Stretches or squashes image so image fills viewer while constraining it's proportions. This often leads to part of image getting cropped by viewer. nativeres - Displays the native resolution of the image in the viewer.\n\n  filtertype -  - This controls pixel filtering in the viewers.\n\n nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. Use this to get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail. When the input is 32-bit float format, only nearest filtering will be used (regardless of what is selected).\n\n  npasses - Duplicates the operation of the  the specified number of times. For every pass after the first it takes the result of the previous pass and replaces the node's first input with the result of the previous pass. One exception to this is the GLSL TOP when using compute shaders, where the input will continue to be the connected 's image.\n\n\n\n  chanmask - Allows you to choose which channels (R, G, B, or A) the  will operate on. All channels are selected by default.\n\n\n\n  format -  - Format used to store data for each channel in the image (ie. R, G, B, and A). Refer to Pixel Formats for more information.\n\n useinput - Uses the input's pixel format. rgba8fixed - Uses 8-bit integer values for each channel. srgba8fixed - Uses 8-bit integer values for each channel and stores color in sRGB colorspace. Note that this does not apply an sRGB curve to the pixel values, it only stores them using an sRGB curve. This means more data is used for the darker values and less for the brighter values. When the values are read downstream they will be converted back to linear. For more information refer to sRGB. rgba16float - Uses 16-bits per color channel, 64-bits per pixel. rgba32float - Uses 32-bits per color channel, 128-bits per pixels. rgb10a2fixed - Uses 10-bits per color channel and 2-bits for alpha, 32-bits total per pixel. rgba16fixed - Uses 16-bits per color channel, 64-bits total per pixel. rgba11float - A RGB floating point format that has 11 bits for the Red and Green channels, and 10-bits for the Blue , 32-bits total per pixel (therefore the same memory usage as 8-bit RGBA). The Alpha channel in this format will always be 1. Values can go above one, but can't be negative. ie. the range is [0, infinite). rgb16float - rgb32float - mono8fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 8-bits per pixel. mono16fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono16float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono32float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 32-bits per pixel. rg8fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 8-bits per channel, 16-bits total per pixel. rg16fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg16float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg32float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 32-bits per channel, 64-bits total per pixel. a8fixed - An Alpha only format that has 8-bits per channel, 8-bits per pixel. a16fixed - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a16float - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a32float - An Alpha only format that has 32-bits per channel, 32-bits per pixel. monoalpha8fixed - A 2 channel format, one value for RGB and one value for Alpha. 8-bits per channel, 16-bits per pixel. monoalpha16fixed - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha16float - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha32float - A 2 channel format, one value for RGB and one value for Alpha. 32-bits per channel, 64-bits per pixel.\n\n\n\nExtra Information for the Movie File In  can be accessed via an Info CHOP.\n\n\n - The current frame index being shown. This is in the  of the movie file, not in timeline frames. - When the movie has a Trim applied to it, this will show the actually frame index within the movie being shown. - Normalized index value going from 0-1 from start to the end of the movie. - The width of the movie in pixels. - The height of the movie in pixels. - Unused currently. - The length of the movie, in movie frames. - The  of the movie. - The last movie frame uploaded to the . - 1 if the movie has an audio track, 0 if not. - 1 if the movie is currently preloading via the preload() Python method. - When deinterlacing using Bob (split), 1 means the odd field is being shown, 0 means the even field is being shown. - 1 if the last frame of the movie is currently being shown, 0 if not. Note that if a frame is dropped the last frame may never get shown, if the movie is looping. - 1 if the movie has just looped. - Counts how many times the node wanted to show a frame, but that frame wasn't already ready in the Pre-Read Cache. - The amount of time the node last waited for a pre_read_misses frame to be read, in milliseconds. - The number of times the node gave up reading a frame due to it not reading fast enough. The amount of time it will wait is controlled by the 'Frame Read Timeout' parameter. - The number of frames that have been pre-read, decoded, and are ready to be shown. - The frame index of the first index in the Pre-Read cache. - The amount of time spent reading the last frame from the hard-drive, in milliseconds. - The amount of time spent decoding/decompression the last frame on the CPU, in milliseconds. This does not account for time spent decoding on the  for codecs such as NotchLC, or Hardware Decoded codecs. - 1 if the movie's file is open. - 1 if the movie's file is in the process of opening, but not open yet. - 1 if opening the movie failed. - 1 if the Pre-Read Cache of the movie is filled with already decoded frames. - The true length of the movie, ignoring any trimming. - 1 if the YUV format the movie was encoded in is being converted to RGB on the . - 1 if the movie file has a track that is not video or audio, such as a subtitle track. - The number of times pre-reading a frame failed. - The amount of data being read per second off of the hard drive, in mega-bits. - 1 if the file is suffering from decode errors. - For Hap codecs, how many chunks the file was encoded as. - If the Hardware Decode parameter is on, this will be 1 if the  is able to hardware decode the movie's codec.\n - Horizontal resolution of the  in pixels. - Vertical resolution of the  in pixels. - Horizontal aspect of the . - Vertical aspect of the . - Depth of 2D or 3D array if this  contains a 2D or 3D texture array. - Total amount of texture memory used by this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditorwikieditor2023.112802022.241402021.100002018.28070before 2018.28070\nTOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\nTo \"pulse\" a parameter is to send it a signal from (1) an exported CHOP channel or (2) a python command or (3) a mouse click that causes a new action to occur immediately. A pulse via python is via the .pulse() function on a pulse-type parameter, such as Reset parameter in a Speed CHOP. A pulse from a CHOP is typically a 0 to 1 to 0 signal in an exported channel.\n\n\n\nThe panel at the bottom of TouchDesigner, it controls the current global looping Time your TouchDesigner project, or of just one component.\n\n\n\nThe sub-Family of Component types that are used to define and render 3D scenes. A Geometry Component is an Object that contains the 3D shapes to render. A Camera COMP and Light COMP are other Object types. Separately, \"Objects\" also refers to Python objects.\n\n\n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nEach SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.\n\n\n\nThe term \"Frame\" is a measurement of time used (1) in the Timeline, (2) as a time-unit in CHOPs, and (3) as a time unit in movie files that are read into TOPs and written out from TOPs. The frame rate is the frames per second (FPS).\n\n\n\nsamples-per-second of a CHOP. Each CHOP in your network has a sample rate. In contrast, the overall timeline has a Frame Rate, which is the number of frames to cook and display per second, generally your monitor display frequency, default 60.\n\n\n\nThe width and height of an image in pixels. Most TOPs, like the Movie File In TOP can set the image resolution. See Aspect Ratio for the width/height ratio of an image, taking into account non-square pixels.\n\n\n\nThe viewer of a node can be (1) the interior of a node (the Node Viewer), (2) a floating window (RMB->View... on node), or (3) a Pane that graphically shows the results of an operator.\n\n\n\nA CHOP outputs one or more channels, where a channel is simply a sequence of numbers (Samples), representing motion, audio, etc. Channels are passed between CHOPs in TouchDesigner networks. Channels can be Exported to Parameters.\n\n\n\nThe Frames-per-Second that TouchDesigner's Timeline runs at. Set with project.cookRate.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Movie_File_In_TOP&oldid=30314\"",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "File",
      "label": "File",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "file - The path and name of the image or movie file to load. Image and movie formats are those found in File Types.  You can specify files on the internet using http:// ... \t\nTo treat a folder of images as if they are one movie, specify the folder containing the images instead of a filename. All the files must be the same resolution. It will treat all stills/movies in that folder as if each is a frame in one movie. The order of the images is the alphanumeric. By default the first image has an index of 0, second is 1, etc, regardless of their file names. Overriding the sample rate on the Trim parameter page will let you playback the image sequence at any frame rate.  \t\t\t\nUsing an info.xml file in the directory containing a sequence of images allows you to specify the frames per second and an audio file to be used with the sequence of images. Example xml file:\t\t\t\n\n\n  \n        \n        \n  \n\nURLs can be used to fetch images and movies. The image or movie is downloaded to the user's Derivative temp directory and is read into the Movie File In .",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Reload",
      "label": "Reload",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "reload - Change from 0 to 1 to force the image to reload, useful when the file changes or did not exist at first.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Reload Pulse",
      "label": "Reload Pulse",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "reloadpulse - Instantly reloads the file.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Play Mode",
      "label": "Play Mode",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "playmode -  - Specifies the method used to play the movie, there are 3 options.\n\n locked - This mode locks the movie position to the timeline. Scrubbing or jumping in the timeline will change the movie position accordingly. The parameters Play, Reset, Speed, and Index are disabled in this mode since the timeline is directly tied to movie position. specify - This mode allows the user to specify a particular position in the movie using the Index parameter below. Use this mode for random access to any location in the movie. sequential - This mode continually plays regardless of the timeline position (the Index parameter is disabled). Reset and Speed parameters below are enabled to allow some control. timecodeop - This mode allows the user to set the movie index by reference to a timecode in the form of either a , , or Timecode Class object.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Locked to Timeline",
      "label": "Locked to Timeline",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "locked - This mode locks the movie position to the timeline. Scrubbing or jumping in the timeline will change the movie position accordingly. The parameters Play, Reset, Speed, and Index are disabled in this mode since the timeline is directly tied to movie position. specify - This mode allows the user to specify a particular position in the movie using the Index parameter below. Use this mode for random access to any location in the movie. sequential - This mode continually plays regardless of the timeline position (the Index parameter is disabled). Reset and Speed parameters below are enabled to allow some control. timecodeop - This mode allows the user to set the movie index by reference to a timecode in the form of either a , , or Timecode Class object.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Play",
      "label": "Play",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "play - Movie plays when 1, movie stops when 0.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Speed",
      "label": "Speed",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "speed - This is a speed multiplier which only works when Play Mode is Sequential. A value of 1 is the default playback speed. A value of 2 is double speed, 0.5 is half speed and so on. Negative values will play the movie backwards.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Cue",
      "label": "Cue",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "cue - Jumps to Cue  when set to 1. Only available when Play Mode is Sequential.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Cue Pulse",
      "label": "Cue Pulse",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "cuepulse - Instantly jumps to the Cue  position in the movie.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.649Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Cue Point",
      "label": "Cue Point",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "cuepoint - Set any index in the movie as a point to jump to.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Cue Point Unit",
      "label": "Cue Point Unit",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "cuepointunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "I",
      "label": "I",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Cue Behavior",
      "label": "Cue Behavior",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "cuebehavior -  - Customize the Cue parameter's behavior.\n\n repeat - When releasing the Cue parameter, immediately play the next frame. play - When releasing the Cue parameter, first play the cued frame before continuing to play the next frame.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "On Release, Repeat Cued Frame",
      "label": "On Release, Repeat Cued Frame",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "repeat - When releasing the Cue parameter, immediately play the next frame. play - When releasing the Cue parameter, first play the cued frame before continuing to play the next frame.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Index",
      "label": "Index",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "index - This parameter explicitly sets the movie position when Play Mode is set to Specify Index. The units menu on the right lets you specify the index in the following units: Index, Frames, Seconds, and Fraction (percentage). For example, assume you have a movie that internally is 25 fps, and the timeline that is 60 fps. If you set Units to Index and the parameter value to 25, you get the image that is 1 second into the movie. If you set the Units to Frames and set the value to 60 you get the same image at 1 second into the movie.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Index Unit",
      "label": "Index Unit",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "indexunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "I",
      "label": "I",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Loop Crossfade",
      "label": "Loop Crossfade",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "loopcrossfade - Crossfades the beginning and end of the movie together to create a smooth transition when looping. If the movie uses Trim options, it will crossfade Trim Start with Trim End positions.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Loop Crossfade Unit",
      "label": "Loop Crossfade Unit",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "loopcrossfadeunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "I",
      "label": "I",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Step Size",
      "label": "Step Size",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "stepsize - Sets how many frames to skip before displaying next frame. For example, a StepSize of 30 will display every 30th frame. This timing of movie playback does not change, so with a Step Size of 30 and a sample rate of 30, a new frame will be displayed every second.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Audio Loop",
      "label": "Audio Loop",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "audioloop -  - This menu helps you determine how to treat the audio as the end of a movie approaches. This is needed because of all the cases of playing a movie, like when driving with an index, the  will not know if you intend to loop it or not.\n\n silence - Audio will go silent when movie ends. fade - Audio will fade out when movie ends. match -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Silence",
      "label": "Silence",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "silence - Audio will go silent when movie ends. fade - Audio will fade out when movie ends. match -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Image Sequence Indexing",
      "label": "Image Sequence Indexing",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "imageindexing -  - Determines how an image sequence is ordered.\n\n zero - Index the sequence of images starting at 0, after sorting them alphanumerically. filename - Index the sequence of images using the numbers on the end of the filenames. I.e a file named flower400.tiff will be frame index 400, regardless of if there are other files in the directory before it.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Zero Based",
      "label": "Zero Based",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "zero - Index the sequence of images starting at 0, after sorting them alphanumerically. filename - Index the sequence of images using the numbers on the end of the filenames. I.e a file named flower400.tiff will be frame index 400, regardless of if there are other files in the directory before it.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Timecode Object/CHOP/DAT",
      "label": "Timecode Object/CHOP/DAT",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "timecodeop - Set the movie index with a reference to a timecode. Should be a reference to either a  with channels 'hour', 'second', 'minute', 'frame', a  with a timecode string in its first cell, or a Timecode Class object.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Interpolate Frames",
      "label": "Interpolate Frames",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "interp - Interpolates between frames based based on exact time. For example, if the index (in frames) is 1.5, then frames 1 and 2 will be blended 50-50. If the index is 1.7 then 30% of frame 1 is blended with 70% of frame 2 and so on.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Deinterlace",
      "label": "Deinterlace",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "deinterlace -  - For movies that are stored as fields, where each image is made of two images interleaved together. A 30-frame per second movie would contain 60 fields per second. For each image, the even scanlines of the first field are interleaved with the odd scanlines of the second field. The Movie File In  has several ways of dealing with this:\n\n off - Output the movie images unchanged. even - Take only the even scanlines of the file's images and create the odd scanlines by interpolating between the even scanlines. (For historic reasons, scanline 0 is at the top of the images for the purpose of the deinterlacing.) odd - bob -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.650Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Off",
      "label": "Off",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "off - Output the movie images unchanged. even - Take only the even scanlines of the file's images and create the odd scanlines by interpolating between the even scanlines. (For historic reasons, scanline 0 is at the top of the images for the purpose of the deinterlacing.) odd - bob -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Field Precedence",
      "label": "Field Precedence",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "precedence -  - Where fields are extracted one field at a time, this will extract the Even field first by default, otehrwise it will extract the odd field first. The video industry has not standardized on one or the other.\n\n even - When the disk files are fragmented. The Movie File In  will read frames of the movie into memory before they are used, this can eliminate pops or stutters in playback that occur from fragmented files, other resources accessing the hard drive, or movie looping. odd -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Even",
      "label": "Even",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "even - When the disk files are fragmented. The Movie File In  will read frames of the movie into memory before they are used, this can eliminate pops or stutters in playback that occur from fragmented files, other resources accessing the hard drive, or movie looping. odd -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Bottom Half is Alpha (AAA)",
      "label": "Bottom Half is Alpha (AAA)",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "bottomhalfalpha - If enabled, the image/movie will have it's height halved, and the R channel from the pixels on the bottom half will be treated as if they were the alpha channel for the top half. Useful for cases where the image format does not support alpha natively.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Multiply RGB by Alpha",
      "label": "Multiply RGB by Alpha",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "multalpha -  - Premultiplies the image.\n\n off - on - automatic -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Off",
      "label": "Off",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "off - on - automatic -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Input is sRGB",
      "label": "Input is sRGB",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "inputsrgb - If the input image is 8-bit and sRGB color space, enable this to have treated as such.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Loading/Error Image",
      "label": "Loading/Error Image",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "loadingerrorimage -  - When the file can not be loaded for some reason, select what to display instead.\n\n coloredbottomright - Show a colored square in the bottom right. Red means failed to load, grey means still loading. zero - Show a blank frame.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Colored Bottom Right Square",
      "label": "Colored Bottom Right Square",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "coloredbottomright - Show a colored square in the bottom right. Red means failed to load, grey means still loading. zero - Show a blank frame.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Trim",
      "label": "Trim",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "trim - Enables the parameters below to set trim in and out points.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Trim Start",
      "label": "Trim Start",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "tstart - Trim the starting point of the movie.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Trim Start Unit",
      "label": "Trim Start Unit",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "tstartunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "I",
      "label": "I",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Trim End",
      "label": "Trim End",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "tend - Trim the ending point of the movie.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Trim End Unit",
      "label": "Trim End Unit",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "tendunit -  - Select the units for this parameter from Index, Frames, Seconds, and Fraction (percentage).\n\n indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "I",
      "label": "I",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "indices - frames - seconds - fraction -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Extend Left",
      "label": "Extend Left",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "textendleft -  - Determines how the Movie File In  handles movie positions that lie before the Trim Start position. For example, if Trim Start is set to 1, and the movie's current index is -10, the Extend Left menu determines how the movie position is calculated.\n\n hold - Displays the first frame in the movie range (the frame specified by Trim Start) for any position before Trim Start. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing backwards from Trim Start the movie will index will climb towards Trim End, at which point is will decend down towards Trim Start again and continue to zig-zag (or mirror) the further the movie plays backwards. black - Displays black frame for any movie position before Trim Start. zero -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Hold",
      "label": "Hold",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "hold - Displays the first frame in the movie range (the frame specified by Trim Start) for any position before Trim Start. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing backwards from Trim Start the movie will index will climb towards Trim End, at which point is will decend down towards Trim Start again and continue to zig-zag (or mirror) the further the movie plays backwards. black - Displays black frame for any movie position before Trim Start. zero -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Extend Right",
      "label": "Extend Right",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "textendright -  - Determines how the Movie File In  handles movie positions that lie after the Trim End position. For example, if Trim End is set to 20, and the movie's current index is 25, the Extend Right menu determines how the movie position is calculated.\n\n hold - Displays the last frame in the movie range (the frame specified by Trim End) for any position after Trim End. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing forwards from Trim End the movie will index will start decending towards Trim Start, at which point is will start climbing towards Trim End and continue to zig-zag (or mirror) the further the movie plays. black - Displays black frame for any movie position after Trim End. zero -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.651Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Hold",
      "label": "Hold",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "hold - Displays the last frame in the movie range (the frame specified by Trim End) for any position after Trim End. cycle - Loops the movie range continuously. mirror - Loops the movie range in a zig-zag pattern. For example, playing forwards from Trim End the movie will index will start decending towards Trim Start, at which point is will start climbing towards Trim End and continue to zig-zag (or mirror) the further the movie plays. black - Displays black frame for any movie position after Trim End. zero -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Override Sample Rate",
      "label": "Override Sample Rate",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "overridesample - Turn On to change the sample rate of the movie. When loading an image sequence, use these parameters to set the playback speed for the sequence.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Sample Rate",
      "label": "Sample Rate",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "samplerate - Set the sample rate for playback when 'Override ' above is On.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Pre-Read Frames",
      "label": "Pre-Read Frames",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "prereadframes - Sets how many video frames TouchDesigner reads ahead and stores in memory. The Movie File In  will read and decode frames of the movie into CPU memory before they are used, this can eliminate pops or stutters in playback that occur from some frames taking too long to decode, other resources accessing the hard drive, or movie looping. When reading a sequence of image, having more Pre Read Frames will allow multiple images to be decode at the same time. This allows playback of heavy file formats such as .exr in real-time, assuming the machine has enough CPU cores.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Frame Read Timeout",
      "label": "Frame Read Timeout",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "frametimeout - The time (in milliseconds) TouchDesigner will wait for a frame from the hard drive before giving up. If the Disk Read Timeout time is reached, that frame is simply skipped. This also works for network files that are downloaded via http://.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Frame Timeout Strategy",
      "label": "Frame Timeout Strategy",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "frametimeoutstrat -  - When on, if the Disk Read Timeout is reached TouchDesigner will use the latest available frame in place of the skipped frame.\n\n keep - Keep showing the same frame that is currently being output. playback - Try to pick the best frame for playback. This may be a newer frame that what is shown, but not quite the frame that is requested. seeking - Try to show any frame, either before or after the target frame. Good for when seeking the movie via a shuttle widget in a UI.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Keep Frame",
      "label": "Keep Frame",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "keep - Keep showing the same frame that is currently being output. playback - Try to pick the best frame for playback. This may be a newer frame that what is shown, but not quite the frame that is requested. seeking - Try to show any frame, either before or after the target frame. Good for when seeking the movie via a shuttle widget in a UI.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Always Load Initial Frame",
      "label": "Always Load Initial Frame",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "alwaysloadinitial - If this parameter is turned on, then for the first loaded frame the Frame Read Timeout will be ignored, and it will always wait for the first frame to ensure the node always starts up with a valid image.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "File Open Timeout",
      "label": "File Open Timeout",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "opentimeout - The time (in milliseconds) TouchDesigner will wait for a movie to open. If the Disk Open Timout is reached, the Movie File In  will stop waiting and make its image all black, with a grey square in the bottom right corner. If the file still isn't opened the next time the  cooks, it'll wait again, and do the same. It'll keep doing this until the file is opened, or the open fails.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "On Timeout, use Latest Avail",
      "label": "On Timeout, use Latest Avail",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "uselatestontimeout - When on, if the Disk Read Timeout is reached TouchDesigner will use the latest available frame in place of the skipped frame.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Async Upload to GPU",
      "label": "Async Upload to GPU",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "asyncupload - When enabled, this will use OpenGL features to upload movie images to the  asynchronously. This will reduce the cook time of the Movie File In  considerably (in the performance monitor the lines that say \"Uploading Image to \" will go down to almost nothing). There is a  memory cost to using this feature however. It uses up another (Width * Height * 4 * Read Ahead Size) bytes of  memory. If you are having poor results with this feature, make sure your graphics drivers are up to date.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Update Image",
      "label": "Update Image",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "updateimage - Image will not update when set to 0. Movie index will continue to move forward but the output image will not update. This is useful when you are using a Movie Audio  to get audio from the movie, but you don't care about the video.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Max Decode CPUs",
      "label": "Max Decode CPUs",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "maxdecodecpus - Limit the maximum number of CPUs that will be used to decode certain video codecs that are capable of multi-CPU decoding, such as H264/H265 and Cineform.\tNote that this does not affect multi-threaded decoding for image sequence playback, which is instead controlled by increasing the Pre-Read Frame parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "High Performance Read",
      "label": "High Performance Read",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "highperfread - This option should be used when playing back files that require very high SSD read speeds such as high resolution (4K+) HAP Q files. It greatly improves read performance in those cases. It should not be used for low resolution or low data rate files such as 1080p H264 files.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "High Performance Read Factor",
      "label": "High Performance Read Factor",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "highperfreadfactor - When doing high performance reads, this parameter controls the size of the read operations that are done on disk. Whatever the largest operation the codec asks to be done, this is multiplied by the read factor and all subsequent reads will read that much data instead. This can result in higher throughput depending on the drives. For example if a request is made to read 1MB and the factor is set to 3, then instead the operations will read 3MB from the disk and the extra 2MB read will be ready for the next frame and will likely already have the next 2 frames available in CPU RAM.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Hardware Decode",
      "label": "Hardware Decode",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "hwdecode - Controls if this node should use hardware decoding via the Nvidia hardware decoder chip. You can check if hardware decoding is being used using the Info , 'hardware_decode' channel. This parameter does nothing for Hap and NotchLC codecs, which are always hardware decoded.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Output Resolution",
      "label": "Output Resolution",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "outputresolution -  - quickly change the resolution of the 's data.\n\n useinput - Uses the input's resolution. eighth - Multiply the input's resolution by that amount. quarter - Multiply the input's resolution by that amount. half - Multiply the input's resolution by that amount. 2x - Multiply the input's resolution by that amount. 4x - Multiply the input's resolution by that amount. 8x - Multiply the input's resolution by that amount. fit - Grow or shrink the input resolution to fit this resolution, while keeping the aspect ratio the same. limit - Limit the input resolution to be not larger than this resolution, while keeping the aspect ratio the same. custom - Directly control the width and height.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Use Input",
      "label": "Use Input",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "useinput - Uses the input's resolution. eighth - Multiply the input's resolution by that amount. quarter - Multiply the input's resolution by that amount. half - Multiply the input's resolution by that amount. 2x - Multiply the input's resolution by that amount. 4x - Multiply the input's resolution by that amount. 8x - Multiply the input's resolution by that amount. fit - Grow or shrink the input resolution to fit this resolution, while keeping the aspect ratio the same. limit - Limit the input resolution to be not larger than this resolution, while keeping the aspect ratio the same. custom - Directly control the width and height.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Resolution",
      "label": "Resolution",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "resolution -  - Enabled only when the  parameter is set to Custom . Some Generators like Constant and Ramp do not use inputs and only use this field to determine their size. The drop down menu on the right provides some commonly used resolutions.\n\n resolutionw - resolutionh -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.652Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "W",
      "label": "W",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "resolutionw - resolutionh -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Resolution Menu",
      "label": "Resolution Menu",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "resmenu - A drop-down menu with some commonly used resolutions.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Use Global Res Multiplier",
      "label": "Use Global Res Multiplier",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "resmult - Uses the Global  Multiplier found in Edit>Preferences>TOPs. This multiplies all the TOPs resolutions by the set amount. This is handy when working on computers with different hardware specifications. If a project is designed on a desktop workstation with lots of graphics memory, a user on a laptop with only 64MB VRAM can set the Global  Multiplier to a value of half or quarter so it runs at an acceptable speed. By checking this checkbox on, this  is affected by the global multiplier.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Output Aspect",
      "label": "Output Aspect",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "outputaspect -  - Sets the image aspect ratio allowing any textures to be viewed in any size. Watch for unexpected results when compositing TOPs with different aspect ratios. (You can define images with non-square pixels using xres, yres, aspectx, aspecty where xres/yres != aspectx/aspecty.)\n\n useinput - Uses the input's aspect ratio. resolution - Uses the aspect of the image's defined resolution (ie 512x256 would be 2:1), whereby each pixel is square. custom - Lets you explicitly define a custom aspect ratio in the Aspect parameter below.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Use Input",
      "label": "Use Input",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "useinput - Uses the input's aspect ratio. resolution - Uses the aspect of the image's defined resolution (ie 512x256 would be 2:1), whereby each pixel is square. custom - Lets you explicitly define a custom aspect ratio in the Aspect parameter below.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Aspect",
      "label": "Aspect",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "aspect -  - Use when Output Aspect parameter is set to Custom Aspect.\n\n aspect1 - aspect2 -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Aspect1",
      "label": "Aspect1",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "aspect1 - aspect2 -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Aspect Menu",
      "label": "Aspect Menu",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "armenu - A drop-down menu with some commonly used aspect ratios.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Input Smoothness",
      "label": "Input Smoothness",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "inputfiltertype -  - This controls pixel filtering on the input image of the .\n\n nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. This is how you get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Nearest Pixel",
      "label": "Nearest Pixel",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. This is how you get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Fill Viewer",
      "label": "Fill Viewer",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "fillmode -  - Determine how the  image is displayed in the viewer.\nNOTE:To get an understanding of how TOPs work with images, you will want to set this to Native  as you lay down TOPs when starting out. This will let you see what is actually happening without any automatic viewer resizing.\n\n\n useinput - Uses the same Fill Viewer settings as it's input. fill - Stretches the image to fit the edges of the viewer. width - Stretches image to fit viewer horizontally. height - Stretches image to fit viewer vertically. best - Stretches or squashes image so no part of image is cropped. outside - Stretches or squashes image so image fills viewer while constraining it's proportions. This often leads to part of image getting cropped by viewer. nativeres - Displays the native resolution of the image in the viewer.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Use Input",
      "label": "Use Input",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "useinput - Uses the same Fill Viewer settings as it's input. fill - Stretches the image to fit the edges of the viewer. width - Stretches image to fit viewer horizontally. height - Stretches image to fit viewer vertically. best - Stretches or squashes image so no part of image is cropped. outside - Stretches or squashes image so image fills viewer while constraining it's proportions. This often leads to part of image getting cropped by viewer. nativeres - Displays the native resolution of the image in the viewer.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Viewer Smoothness",
      "label": "Viewer Smoothness",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "filtertype -  - This controls pixel filtering in the viewers.\n\n nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. Use this to get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail. When the input is 32-bit float format, only nearest filtering will be used (regardless of what is selected).",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Nearest Pixel",
      "label": "Nearest Pixel",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native . linear - Uses linear filtering between pixels. Use this to get  images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native . mipmap - Uses  mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail. When the input is 32-bit float format, only nearest filtering will be used (regardless of what is selected).",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Passes",
      "label": "Passes",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "npasses - Duplicates the operation of the  the specified number of times. For every pass after the first it takes the result of the previous pass and replaces the node's first input with the result of the previous pass. One exception to this is the GLSL TOP when using compute shaders, where the input will continue to be the connected 's image.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Channel Mask",
      "label": "Channel Mask",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "chanmask - Allows you to choose which channels (R, G, B, or A) the  will operate on. All channels are selected by default.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.653Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Pixel Format",
      "label": "Pixel Format",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "format -  - Format used to store data for each channel in the image (ie. R, G, B, and A). Refer to Pixel Formats for more information.\n\n useinput - Uses the input's pixel format. rgba8fixed - Uses 8-bit integer values for each channel. srgba8fixed - Uses 8-bit integer values for each channel and stores color in sRGB colorspace. Note that this does not apply an sRGB curve to the pixel values, it only stores them using an sRGB curve. This means more data is used for the darker values and less for the brighter values. When the values are read downstream they will be converted back to linear. For more information refer to sRGB. rgba16float - Uses 16-bits per color channel, 64-bits per pixel. rgba32float - Uses 32-bits per color channel, 128-bits per pixels. rgb10a2fixed - Uses 10-bits per color channel and 2-bits for alpha, 32-bits total per pixel. rgba16fixed - Uses 16-bits per color channel, 64-bits total per pixel. rgba11float - A RGB floating point format that has 11 bits for the Red and Green channels, and 10-bits for the Blue , 32-bits total per pixel (therefore the same memory usage as 8-bit RGBA). The Alpha channel in this format will always be 1. Values can go above one, but can't be negative. ie. the range is [0, infinite). rgb16float - rgb32float - mono8fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 8-bits per pixel. mono16fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono16float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono32float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 32-bits per pixel. rg8fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 8-bits per channel, 16-bits total per pixel. rg16fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg16float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg32float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 32-bits per channel, 64-bits total per pixel. a8fixed - An Alpha only format that has 8-bits per channel, 8-bits per pixel. a16fixed - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a16float - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a32float - An Alpha only format that has 32-bits per channel, 32-bits per pixel. monoalpha8fixed - A 2 channel format, one value for RGB and one value for Alpha. 8-bits per channel, 16-bits per pixel. monoalpha16fixed - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha16float - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha32float - A 2 channel format, one value for RGB and one value for Alpha. 32-bits per channel, 64-bits per pixel.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.654Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Use Input",
      "label": "Use Input",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "useinput - Uses the input's pixel format. rgba8fixed - Uses 8-bit integer values for each channel. srgba8fixed - Uses 8-bit integer values for each channel and stores color in sRGB colorspace. Note that this does not apply an sRGB curve to the pixel values, it only stores them using an sRGB curve. This means more data is used for the darker values and less for the brighter values. When the values are read downstream they will be converted back to linear. For more information refer to sRGB. rgba16float - Uses 16-bits per color channel, 64-bits per pixel. rgba32float - Uses 32-bits per color channel, 128-bits per pixels. rgb10a2fixed - Uses 10-bits per color channel and 2-bits for alpha, 32-bits total per pixel. rgba16fixed - Uses 16-bits per color channel, 64-bits total per pixel. rgba11float - A RGB floating point format that has 11 bits for the Red and Green channels, and 10-bits for the Blue , 32-bits total per pixel (therefore the same memory usage as 8-bit RGBA). The Alpha channel in this format will always be 1. Values can go above one, but can't be negative. ie. the range is [0, infinite). rgb16float - rgb32float - mono8fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 8-bits per pixel. mono16fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono16float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel. mono32float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 32-bits per pixel. rg8fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 8-bits per channel, 16-bits total per pixel. rg16fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg16float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel. rg32float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 32-bits per channel, 64-bits total per pixel. a8fixed - An Alpha only format that has 8-bits per channel, 8-bits per pixel. a16fixed - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a16float - An Alpha only format that has 16-bits per channel, 16-bits per pixel. a32float - An Alpha only format that has 32-bits per channel, 32-bits per pixel. monoalpha8fixed - A 2 channel format, one value for RGB and one value for Alpha. 8-bits per channel, 16-bits per pixel. monoalpha16fixed - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha16float - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel. monoalpha32float - A 2 channel format, one value for RGB and one value for Alpha. 32-bits per channel, 64-bits per pixel.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:47.654Z",
      "rawData": {},
      "sourceElement": null
    }
  ],
  "parameterGroups": {},
  "codeExamples": [],
  "pythonExamples": [],
  "expressions": [],
  "commonInputs": [],
  "commonOutputs": [],
  "relatedOperators": [],
  "workflowPatterns": [],
  "images": [],
  "videos": [],
  "assets": [],
  "keywords": [
    "movie",
    "file",
    "in",
    "loads",
    "movies,",
    "still",
    "images,",
    "sequence",
    "images",
    "into"
  ],
  "tags": [
    "TOP",
    "TouchDesigner",
    "Movie File In"
  ],
  "searchWeight": 1,
  "contentHash": "",
  "processingDate": "2025-08-08T00:37:47.655Z",
  "processingVersion": "1.0.0",
  "isValid": true,
  "validationErrors": []
}