home *** CD-ROM | disk | FTP | other *** search
- /*
- ** FieldBuster.fred
- **
- ** $VER: FieldBuster.fred 1.2.0 (24.10.93)
- **
- ** This program can be run from an InvokeADPro list to split the selected
- ** frames (n) into separate odd and even fields (2n).
- **
- ** Clips Imported:
- ** FREDEvenFieldExt - Filename extension for even fields
- ** FREDOddFieldExt - Filename extension for odd fields
- **
- ** NOTE: Clip names are case sensitive.
- **
- ** This script requires FRED v1.4.0 (or higher) to run. Also required is
- ** ADPro v2.5.0 (or higher).
- **
- ** Copyright © 1992-1993 ASDG, Incorporated
- ** All Rights Reserved
- */
-
-
- ADDRESS "ADPro"
- OPTIONS RESULTS
-
- PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
-
- NL = '0A'X
- SQ = '27'X
- DQ = '22'X
- TRUE = 1
- FALSE = 0
- TempBustedFields = "T:TempBustedFields"
-
-
- /*
- ** Get the required clips. Error if any are missing.
- */
-
- EvenFieldExt = GETCLIP( "FREDEvenFieldExt" )
- IF (EvenFieldExt = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDEvenFieldExt," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- OddFieldExt = GETCLIP( "FREDOddFieldExt" )
- IF (OddFieldExt = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip FREDOddFieldExt" || NL ||,
- "not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- /*
- ** See what type of data is loaded in ADPro/MorphPlus.
- */
-
- CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
- IF (RESULT ~= 0) THEN
- EXIT 10
-
-
- /*
- ** Bust each frame into its fields using the defined filename and
- ** field name extension.
- */
-
- XSIZE
- Width = ADPRO_RESULT
-
- YSIZE
- Height = ADPRO_RESULT
-
- EvenFieldHeight = TRUNC( (Height + 1) / 2 )
-
- OPERATOR "DEINTERLACE"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "The operator DEINTERLACE" || NL ||,
- "failed to execute."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- SAVER "IFF" TempBustedFields "RAW"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "The IFF saver failed to" || NL ||,
- "save the image." || NL ||,
- "Argument Information:" || NL ||,
- "Filename = " || TempBustedFields || NL ||,
- "Type = " || "RAW"
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- OPERATOR "CROP_VISUAL" Width EvenFieldHeight 0 0
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "The operator CROP_VISUAL" || NL ||,
- "failed to execute on the even field." || NL ||,
- "Argument Information:" || NL ||,
- "Width = " || Width || NL ||,
- "Height = " || Height || NL ||,
- "EvenFieldHeight = " || EvenFieldHeight
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- FieldName = OVERLAY( EvenFieldExt, FrameFName, LENGTH( FrameFName ), LENGTH( EvenFieldExt ) ) || '"'
-
- SAVER "IFF" FieldName "RAW"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "The IFF saver failed to" || NL ||,
- "save the image." || NL ||,
- "Argument Information:" || NL ||,
- "Filename = " || FieldName || NL ||,
- "Type = " || "RAW"
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- LOADER "IFF" TempBustedFields
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "The IFF loader failed to" || NL ||,
- "load the image." || NL ||,
- "Argument Information:" || NL ||,
- "Filename = " || TempBustedFields
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- OPERATOR "CROP_VISUAL" Width (Height - EvenFieldHeight) 0 EvenFieldHeight
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "The operator CROP_VISUAL" || NL ||,
- "failed to crop the odd field." || NL ||,
- "Argument Information:" || NL ||,
- "Width = " || Width || NL ||,
- "Height = " || ( Height - EvenFieldHeight ) || NL ||,
- "XOffset = 0" || NL ||,
- "YOffset = " || EvenFieldHeight
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- FieldName = OVERLAY( OddFieldExt, FrameFName, LENGTH( FrameFName ), LENGTH( OddFieldExt ) ) || '"'
-
- SAVER "IFF" FieldName "RAW"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "The IFF saver failed to" || NL ||,
- "save the image."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- EXIT 0
-