### SCC Tools Version History

Components of SCC Tools (bold means changed by latest update):

- CCADJ
- CCASDI
- RAW2SCC
- SCC_RIP (was DVB2SCC, no longer maintained)
- SCC2RAW
- SUBRIP2SCC
- VOBSUB2SCC
- CC_MUX (new tool)
- DVR2SCC (new tool)
- PAS2SCC (new tool)
- CCExtract
- Documentation (besides keeping it up to date with the tool changes)
- SCC and CCD Formats

CCADJ
Version | Date | Changes
--- | --- | ---
2.8 | January 7, 2005 | Added `-m` argument to multiply against all timecodes.
2.7.2 | January 2, 2004 | Updated e-mail and web addresses
2.7.1 | August 13, 2003 | Fixed rounding bug in timecode conversions introduced by 2.7.
2.7 | August 11, 2003 | Fixed bug in timecode conversions introduced by 2.6.
2.6 | July 27, 2003 | Fixed logic for drop-type timecodes (hopefully once and for all).
2.1 | February 13, 2003 | Thanks to Dan Wilson, I have corrected a basic misunderstanding concerning the definition of "non-dropframe" vs. "dropframe" timebases. This led to corrections to the internal calculations of all six tools, the addition of a `-td` argument to set the timebase to dropframe, and the ability to read and output dropframe timecodes (which change the last colon into a semicolon: `HH:MM:SS;FF`).
2.0 | February 9, 2003 | (No change)
1.3 | January 19, 2003 | Fixed another bug in `-o` that wouldn't allow negative offsets.
1.2 | October 13, 2002 | Able to handle double-spaced SCC files now. Fixed bug in `-o` that wouldn't allow negative offsets. Clarified usage note for negative timecodes.
1.1 | August 24, 2002 | Fixed bug of invalid timecodes (such as 00:08:11:30). Added check for timecodes that are out of order.
1.0 | April 13, 2002 | Initial release
CCASDI
Version | Date | Changes
3.5 | May 5, 2005 | Fixed numerous XDS bugs, including using the wrong filler byte (0x80 instead of 0x40). Fixed XDS page to match. Also replaced xds.bin file in sample directory. Thanks to Ji-Liang Song for spotting this problem.
3.4 | February 25, 2005 | Fixed character set comparison (was always using ITV set).
3.3.1 | January 27, 2005 | Bug fix to catch lines dropped by 3.3.
3.3 | January 25, 2005 | Fixed subtitle output to only include one channel.
3.2 | October 23, 2004 | Fixed spacing problem for CCD->SCC conversion
3.1 | September 4, 2004 | Fixed subtitle export to handle roll-up and paint-on captions properly. Swapped definitions of single right and single left quotation marks (`{rsq}`and `{lsq}`).``
3.0 | March 17, 2004 | Numerous fixes to XDS format, causing CCD format to go to 1.2: Fixed definition of XDS class bytes and added continuation class bytes (all but `C`urrent were wrong). Added support for interrupted and resumed XDS packets. Changed beginning of XDS checksum from `C` to `\C`. XDS `ST`, `MD`, `TD`, `IC` and `CH` fields re-arranged to allow interruption. XDS `ST`, `MD`, `TD`, `TM` and `IC` Tape Delay character changed from `D` to `T`. XDS `ST`, `MD`, `TD` and `IC` No Leap Day character changed from `N` to `A`. XDS `PR` system change: `CE`=`0x18`, `CF`=`0x38` for byte 3, no byte 4 change. XDS `AR` changed `16:9`/`4:3` to `A`/`_`. XDS `MD` and `NC` split Call Letters with space to get Channel Number. Added definitions for Channel 3 and 4 codes, where they differ from Channel 1/2. Added remaining channels to `-c` option
2.10 | February 15, 2004 | Added subtitle export format of Adobe Encore, which is set by using a file extension of `.txt`.
2.9 | January 2, 2004 | Updated e-mail and web addresses Added support for the following codes: `{CSS}`, `{CSD}`, `{CS1}`, `{CS2}`, `{CSC}`, `{CSK}`, and `{CGU}`. Added support for the following XDS types: `PD` and `MD` (for `C`urrent and `F`uture classes); `TS` (for the c`H`annel class); `CP`, `CH` and `CM` (for the `M`iscellaneous class); and `WB` and `WM` (for the `P`ublic Service class).
2.8 | October 7, 2003 | Fixed the following formatting bugs with `-s` output: A line with italics or underline in the middle would lose the part before the formatting. Color codes did not reset italics and underline formatting like they should. End of italics or underline formatting was not being output. Entire lines that were italicized or underlined were not having each line separately formatted. Formatting codes (colors, italics, and underline, on or off) are supposed to insert a space.
2.7.2 | September 17, 2003 | Fixed bug that dropped odd captions during the `-s` conversion when there was no gap between captions.
2.7.1 | August 13, 2003 | Fixed rounding bug in timecode conversions introduced by 2.7.
2.7 | August 11, 2003 | Fixed bug in timecode conversions introduced by 2.6. Changed `-s` function to output subtitles. Default is SubRip format (changing extension from .SCC to .SRT). By providing the name of an output file with the appropriate extension, the subtitles can also be in MicroDVD format (.SUB), SAMI format (.SMI), PowerDivX format (.PSB), Sub-Station Alpha format (.SSA) or Advanced Sub-Station format (.ASS). My thanks to Gabest for posting the source code of his VobSub tool online for me to study, since this routine is basically his code translated from C++ to Perl.
2.6 | July 27, 2003 | Fixed logic for drop-type timecodes (hopefully once and for all). Undocumented XDS formats will now be input/output as hex-dumps without crashing the program, as it appears that at least one DVB format uses them.
2.1 | February 13, 2003 | Thanks to Dan Wilson, I have corrected a basic misunderstanding concerning the definition of "non-dropframe" vs. "dropframe" timebases. This led to corrections to the internal calculations of all six tools, the addition of a `-td` argument to set the timebase to dropframe, and the ability to read and output dropframe timecodes (which change the last colon into a semicolon: `HH:MM:SS;FF`).
2.0 | February 9, 2003 | With the exception of CCADJ, all tools are now able to handle leaving off the output file argument, by making a reasonable guess based on the input name (for example, running CCASDI with an argument of "captions.scc" will produce an output file of "captions.ccd"). If you want an output name different than the default, you can still provide it as the last argument. First version to create CCD version 1.1 (which can handle ITV and XDS codes). Yet another try at the negative timecodes problem. Hopefully, this will fix the problem. The "timecodes out of order" error message now reports the line number of the input file where the problem was found. The program now assumes that the channel is 1, which allows it to handle XDS codes.
1.3 | January 19, 2003 | Fixed another bug in `-o` that wouldn't allow negative offsets.
1.2.1 | November 19, 2002 | Corrected mis-naming of the `-a` flag (incorrectly named `-p` in 1.2).
1.2 | October 13, 2002 | Made SCC output file double-spaced to conform with SCC specification (CCD files remain single-spaced). Fixed translation of box corner extended characters. Fixed bug with SCC->CCD when first timecode is 00:00:00:00. Added `-a` flag to adjust display times to start times (CCD to SCC) and start times to display times (SCC to CCD). Fixed bug in `-o` that wouldn't allow negative offsets.
1.1 | August 24, 2002 | Fixed bug of invalid timecodes (such as 00:08:11:30). Added check for timecodes that are out of order.
1.0 | April 13, 2002 | Initial release
RAW2SCC
Version | Date | Changes
2.10 | February 25, 2005 | Channel changes in the raw file now force a new line.
2.9 | September 22, 2004 | Trimmed `8080` (null) codes off the end of SCC lines. A line break will now be added whenever two or more null codes are found in a row in the middle of a line. This limit can be changed with the new `-l` parameter (`-l8` to increase it to 8 null codes in a row, for example).
2.8 | March 17, 2004 | Added in new Channel 3 & 4 codes for line-splitting.
2.7.2 | January 2, 2004 | Updated e-mail and web addresses
2.7.1 | August 13, 2003 | Fixed rounding bug in timecode conversions introduced by 2.7.
2.7 | August 11, 2003 | Fixed bug in timecode conversions introduced by 2.6.
2.6 | July 27, 2003 | Fixed logic for drop-type timecodes (hopefully once and for all). Added ability to extract Field 2 from DVD-style input files. Put each XDS sequence on its own line in the SCC output.
2.1 | February 13, 2003 | Thanks to Dan Wilson, I have corrected a basic misunderstanding concerning the definition of "non-dropframe" vs. "dropframe" timebases. This led to corrections to the internal calculations of all six tools, the addition of a `-td` argument to set the timebase to dropframe, and the ability to read and output dropframe timecodes (which change the last colon into a semicolon: `HH:MM:SS;FF`).
2.0 | February 9, 2003 | With the exception of CCADJ, all tools are now able to handle leaving off the output file argument, by making a reasonable guess based on the input name (for example, running CCASDI with an argument of "captions.scc" will produce an output file of "captions.ccd"). If you want an output name different than the default, you can still provide it as the last argument. When parsing data, a new line will be started if the mode is switched, for example from pop-on captions to text captions.
1.3 | January 19, 2003 | Fixed another bug in `-o` that wouldn't allow negative offsets.
1.2 | October 13, 2002 | Made SCC output file double-spaced to conform with SCC specification. Removed 40-code (80-character) line limit, so each SCC line will now always be the start of a caption or a caption clear.
1.1 | August 24, 2002 | Fixed bug of invalid timecodes (such as 00:08:11:30).
1.0 | April 13, 2002 | Initial release
SCC_RIP (no longer being maintained)
Version | Date | Changes
3.0 | March 17, 2004 | Improved DVD `0xff`, `0xff` algorithm in case pattern is not `0x80` (thanks to Keith Hui). Added in Channel 3 & 4 codes for SCC line-splitting.
2.8.1 | February 17, 2004 | Fixed open file handle for DVD-format output. Swapped documentation for ReplayTV 4000 & 5000 models (this change was invisible to the user).
2.8 | February 11, 2004 | Added ability to handle DVD-style captions with `0xff`, `0xff` pattern (produced by Hauppauge WinTV-250 and Panasonic DMR E-50, among others). fixed major bug with DVD format that would lead to empty output
2.7.2 | January 2, 2004 | Updated e-mail and web addresses Tool made obsolete by CCExtract, which does the same job a lot faster.
2.7.1 | August 13, 2003 | Fixed rounding bug in timecode conversions introduced by 2.7.
2.7 | August 11, 2003 | Fixed bug in timecode conversions introduced by 2.6. Added ability to rip captions from MPEG's produced by the 5000 series of ReplayTV receivers (previous code only supported 4000 series).
2.6 | July 27, 2003 | Fixed logic for drop-type timecodes (hopefully once and for all). Added ability to extract Field 2 from those formats that support it (DVD and ReplayTV). Put each XDS sequence on its own line in the SCC output.
2.5 | May 17, 2003 | New name for DVB2SCC. Added logic to rip captions from DVD MPEG files. Fixed DVD file creation logic so output works with CCParser. Added `-td` flag to output dropframe timecodes. Set to exit without creating the SCC file if no captions are found.
DVB2SCC
Version | Date | Changes
2.4 | May 10, 2003 | Added more `binmode` statements where needed, which should fix the problem of the program terminating early.
2.3 | May 8, 2003 | DishTV: Figured out that captions were being transmitted in GOP, not chronological order. Captions are now output in the correct order. DishTV: Fixed incorrect repeating of caption codes (the repeat code should only apply to commands, not character pairs).
2.2 | April 13, 2003 | Added tool to package (support for ReplayTV captions, with DishTV not working).
SCC2RAW
Version | Date | Changes
2.7.2 | January 2, 2004 | Updated e-mail and web addresses Changed default output file extension from `.dat` to `.bin`.
2.7.1 | August 13, 2003 | Fixed rounding bug in timecode conversions introduced by 2.7.
2.7 | August 11, 2003 | Fixed bug in timecode conversions introduced by 2.6.
2.6 | July 27, 2003 | Fixed logic for drop-type timecodes (hopefully once and for all). Added ability to insert Field 2 data into DVD-style output. Changed `-s` parameter to `-o`, to match the other tools.
2.1 | February 13, 2003 | Thanks to Dan Wilson, I have corrected a basic misunderstanding concerning the definition of "non-dropframe" vs. "dropframe" timebases. This led to corrections to the internal calculations of all six tools, the addition of a `-td` argument to set the timebase to dropframe, and the ability to read and output dropframe timecodes (which change the last colon into a semicolon: `HH:MM:SS;FF`).
2.0 | February 9, 2003 | With the exception of CCADJ, all tools are now able to handle leaving off the output file argument, by making a reasonable guess based on the input name (for example, running CCASDI with an argument of "captions.scc" will produce an output file of "captions.ccd"). If you want an output name different than the default, you can still provide it as the last argument. Changed argument list to resemble that of the other tools. The "timecodes out of order" error message now reports the line number of the input file where the problem was found.
1.2 | October 13, 2002 | Able to handle double-spaced SCC files now. Fixed rounding error in timecodes.
1.1 | August 24, 2002 | Initial release
SUBRIP2SCC
Version | Date | Changes
2.9 | February 14, 2004 | Added logic to convert "`*`" to note character and `-k` option to not do it. Moved display line timecodes up by 2 frames to fix timing problem. Fixed logic for positioning of clear code in middle of display line.
2.8.1 | January 2, 2004 | Updated e-mail and web addresses
2.8 | October 7, 2003 | Fixed handling of subtitles with no gap between them so that the resulting output would work with SCC2RAW.
2.7.1 | August 13, 2003 | Fixed rounding bug in timecode conversions introduced by 2.7.
2.7 | August 11, 2003 | Fixed bug in timecode conversions introduced by 2.6.
2.6 | July 27, 2003 | Fixed logic for drop-type timecodes (hopefully once and for all).
2.2 | May 6, 2003 | Fixed a problem with line numbering that was putting bottom rows too high on the screen. Fixed a problem where processing would stop if a space were found at position 32 in a line. Clarified the error message that displays if a 3-line subtitle is found.
2.1 | February 13, 2003 | Thanks to Dan Wilson, I have corrected a basic misunderstanding concerning the definition of "non-dropframe" vs. "dropframe" timebases. This led to corrections to the internal calculations of all six tools, the addition of a `-td` argument to set the timebase to dropframe, and the ability to read and output dropframe timecodes (which change the last colon into a semicolon: `HH:MM:SS;FF`).
| 2.0 | February 9, 2003 | Added tool to package. With the exception of CCADJ, all tools are now able to handle leaving off the output file argument, by making a reasonable guess based on the input name (for example, running CCASDI with an argument of "captions.scc" will produce an output file of "captions.ccd"). If you want an output name different than the default, you can still provide it as the last argument.
VOBSUB2SCC
Version | Date | Changes
3.1 | September 26, 2004 | The tool now remembers which of two packets with the same timestamp had captions, and repeats that choice for all-null packets until the next caption packet is found. This fixes a timing issue that occurs when you select the same all-null packet each time.
3.0 | September 22, 2004 | Completely re-wrote parsing algorithm to handle duplicate captions (method used in 2.8 and 2.9 was wrong). Dropped `-1` and `-2` parameters, as duplicate captions can now be detected and removed without user intervention. Fixed file naming for .sub.cc.raw files (i.e. `VTS01.sub.cc.raw` will now generate `VTS01.bin` and `VTS01.scc` instead of `VTS01.sub.bin` and `VTS01.sub.scc`).
2.9 | September 21, 2004 | Added in Channel 3 & 4 codes for SCC line-splitting (from RAW2SCC 2.8). Trimmed `8080` (null) codes off of end of SCC lines (from RAW2SCC 2.9). Broke SCC line anytime more than 2 null codes in a row are found (this limit can be changed with the new parameter `-l` (see RAW2SCC version 2.9). Changed `-d1` and `-d2` parameters to `-1` and `-2` parameters (to be consistent with other tools in the package).
2.8 | September 21, 2004 | Added ability to remove duplicate captions, controlled by the new parameters `-d1` and `-d2`.
2.7.2 | January 2, 2004 | Updated e-mail and web addresses
2.7.1 | August 13, 2003 | Fixed rounding bug in timecode conversions introduced by 2.7.
2.7 | August 11, 2003 | Fixed bug in timecode conversions introduced by 2.6.
2.6 | July 27, 2003 | Fixed logic for drop-type timecodes (hopefully once and for all). Put each XDS sequence on its own line in the SCC output.
2.1 | February 13, 2003 | Thanks to Dan Wilson, I have corrected a basic misunderstanding concerning the definition of "non-dropframe" vs. "dropframe" timebases. This led to corrections to the internal calculations of all six tools, the addition of a `-td` argument to set the timebase to dropframe, and the ability to read and output dropframe timecodes (which change the last colon into a semicolon: `HH:MM:SS;FF`). The output of this tool was not including tab characters between the timecodes and the content.
| 2.0 | February 9, 2003 | Added tool to package. With the exception of CCADJ, all tools are now able to handle leaving off the output file argument, by making a reasonable guess based on the input name (for example, running CCASDI with an argument of "captions.scc" will produce an output file of "captions.ccd"). If you want an output name different than the default, you can still provide it as the last argument.
CC_MUX
Version | Date | Changes
1.0 | March 2, 2004 | Added tool to package.
DVR2SCC
Version | Date | Changes
1.0 | February 17, 2004 | Added tool to package.
PAS2SCC
Version | Date | Changes
1.0 | February 14, 2004 | Added tool to package.
CCExtract
Version | Date | Changes
2.0 | August 27, 2004 | Re-wrote entire procedure using General Parser sample code so that caption code is aware of picture type (required by ATSC format). Added DSS-SD captions (as documented in video.bdl). Added PES.bdl to the CCExtract.gp project. This improves the ability of CCExtract to handle program streams. Unfortunately, it also hurts the ability to parse certain problematic files, so I created a new project file called CCExtract_VES.gp that does not include PES.bdl.
1.4 | August 21, 2004 | Added ATSC format generated by Pinnacle MediaStream.
1.3 | March 17, 2004 | Improved `ff ff` DVD format handling to use pattern flag (thanks to Keith Hui)
1.2 | February 29, 2004 | Swapped field output for both ReplayTV 4000 and 5000 formats. Swapped identification of ReplayTV 4000 and 5000 formats (this change was invisible to the user).
1.1 | February 11, 2004 | Handle special case of DVD format with `ff xx xx ff yy yy` pattern (produced by Hauppauge WinTV-250 and Panasonic DMR-E50H, among others).
1.0 | January 2, 2004 | Added tool to package (module for General Parser to rip captions from MPEG files). Should have same capabilities as SCC_RIP tool (which is now obsolete).
Documentation (versions match CCASDI)
Version | Date | Changes
3.0 | March 17, 2004 | Completely re-wrote XDS document to be easier to read (as well and being factually accurate for the first time). Revised codes and characters documents to include Channels 3 and 4. Added "Connect to Remote Graph" tip for GraphEdit. Abandoned ideal of keeping all tool versions in sync and re-organized this version page accordingly. Revised DVD caption format section of the Caption Format page to include observed variations.
2.9 | January 2, 2004 | Added descriptions of missing codes (`{CSS}`, `{CSD}`, `{CS1}`, `{CS2}`, `{CSC}`, `{CSK}`, `{CGU}`) and XDS types (`PD` and `MD` [for `C`urrent and `F`uture classes]; `TS` [for the c`H`annel class]; `CP`, `CH` and `CM` [for the `M`iscellaneous class]; and `WB` and `WM` [for the `P`ublic Service class]). The codes all belong to a group called Closed Group Codes, while the XDS types are filed under their respective classes. Documented DVD caption format in detail on the Caption Format page. Added documentation for how to use the General Parser tool to rip captions from MPEG files a lot faster than SCC_RIP did. Rewrote VCD sections of main document to cover what I've learned in the last few months about VCD closed captions.
2.6 | July 27, 2003 | Fixed mistakes in the Characters page (switched `{rsq}` and `{lsq}`) and Codes page (extra character in some CCD codes). Added documentation of undocumented packets in the XDS page.
2.0 | February 9, 2003 | Corrected most references of "field" to "channel". Added a page explaining what Line 21 Closed Captions are and how they are transmitted, including explanations of eXtended Data Service (XDS) and Interactive TeleVision (ITV). Moved Version History to its own page, with only the latest change retained on the main page. Added new pages for XDS and ITV.
1.2 | October 13, 2002 | Brought HTML up to strict 4.01. Added Version History section.
1.1 | August 24, 2002 | Added note that Dump filter must be used in GraphEdit instead of FileWriter filter. Filled in missing Word shortcuts in CCD Character document.
1.0 | April 13, 2002 | Initial release
SCC & CCD Formats
Version | Date | Changes
1.2 | March 17, 2004 | Debut of version 1.2 of the Closed Caption Disassembly format (with a header of `SCC_disassembly V1.2`). All tools from this point will be backward-compatible with earlier formats except for XDS, which was so completely wrong in version 1.1 that CCASDI can not be trusted to handle it correctly. If you have the original .SCC file with the XDS codes, run CCASDI on it to get a workable .CCD file. XDS single-character class codes are now two-character, to differentiate between start and continue codes (ex. `F` for Future class has been split into `Fs` and `Fc` for Future start and Future continue classes. In accordance with XDS requirements, all XDS packets can now be split at any byte-pair boundary. Currently, the code only allows a maximum of one split per packet. Many XDS packets had their data re-arranged in CCD format in order to allow the data to be split (see CCASDI changes for 3.0). A few values were changed to prevent confusion. For example, in the `TD` type packet, "`D`" meant both "Daylight Savings Time" and "Tape Delay", so the code for the latter was changed to "`T`". The complete list of changes can be found under CCASDI's 3.0 entry. Changed beginning of XDS checksum from `C` to `\C`. The `CHANNEL` keyword can now be used to change the channel to `3` or `4`. It must be `3` for XDS.
1.1 | February 9, 2003 | Debut of version 1.1 of the Closed Caption Disassembly format (with a header of `SCC_disassembly V1.1`). All of the tools from this point on are designed to be able to read either 1.0 or 1.1, but will only write in 1.1. The `FIELD` at the top of the file has been changed to `CHANNEL`. I had gotten my terms mixed up. The documentation now goes into great detail about the difference between them. The revised `CHANNEL` command can also be used in the body of the CCD file to switch the channel at will. The command must be on a line by itself, and can only be followed by `1` or `2` to set the channel. Added support of codes to change the background color. These commands are only used in text mode, and they are documented in the Codes page. I've added support for eXtended Data Service (XDS) and Interactive TeleVision (ITV) commands, both of which are transmitted via Line 21/284. I've documented both of these in great detail here and here, and also added appropriate sample files to the distribution. I'm fairly sure that both of these services are only used by broadcast channels and not for DVD's. Changed the invalid character from "`*`" to "`£`". This was because ITV uses the "`*`" character.
The SCC files produced by all of the tools from this date have a tab character between the timecode and the rest of the line. This makes the SCC files produced by SCC Tools 100% compliant with the file format as described in the Scenarist documentation. To be backwardly-compatable, the tools will still be capable of reading SCC files with spaces between the timecodes and the caption data.
1.0 | April 13, 2002 | Debut of version 1.0 of CCD format

Return to SCC Tools Documentation.