cfourcc-0.1.2/0000755000175000000620000000000010212023561012117 5ustar jarnostaffcfourcc-0.1.2/BUGS0000644000175000000620000000035610211600271012604 0ustar jarnostaffKnown Bugs ---------- Can't read *.avi file > 4GiB Will be fix. Most Linux system with ext2 filesystem wont allow avi file more than 2GiB anyway. Other Bugs? Pprobably many, please report it at the project's page if it too annoying you. cfourcc-0.1.2/TIPS0000644000175000000620000000000010211550604012611 0ustar jarnostaffcfourcc-0.1.2/TODO0000644000175000000620000000003210211550447012611 0ustar jarnostaff- fix the 4GiB limitation cfourcc-0.1.2/Makefile0000644000175000000620000000047610211566530013575 0ustar jarnostaff# plain simple and stupid Makefile for cfourcc # # author : mypapit # date : 25 February 2005 # CC=gcc CFLAGS=-O2 -pedantic -ansi -Wall INSTALL=install PREFIX=/usr/local all : $(CC) $(CFLAGS) cfourcc.c -o cfourcc install : all strip cfourcc $(INSTALL) -m755 cfourcc $(PREFIX)/bin clean : rm -f cfourcc cfourcc-0.1.2/README0000644000175000000620000000451710212023554013010 0ustar jarnostaffThis is the readme file for cfourcc 0.1.2 ========================================= cfourcc is a tool for changing FourCC in Microsoft RIFF AVI files. [Author] mypapit [Project's page] http://sarovar.org/projects/gfourcc [Legal] This software comes with ABSOLUTELY NO WARRANTY! You may distribute this program with it sources under the terms of GNU General Public License. For more information about this matter please refer to the file COPYING. [Intro] I created this simple program after reading divx/mpeg4 related forums. It comes to me that there arent any software developed in GNU/Linux (nor other UN*X-variant) that have similiar functionality as "Nic's Mini AviC" in Microsoft Windows platform. * Note : Transcode package includes 'avifix' that can change fourcc, but it isnt compact enough and arent available by itself. [Background] FourCC (Four Character Code) is a (rather crude) method to identify codec used to encode Microsoft RIFF AVI files. Application software/hardware use the FourCC to correctly select a codec suitable for playing the AVI file in question. The problem arises when a video player (usually the hardware one) fail to recognize a FourCC, and unable to select a newer/compatible codec to play the AVI file. This simple program solves this problem by providing a simple way to change the FourCC of the AVI file to a value accepted by the video player. For an unofficial list of FourCC/codec out there in the wild, please refer to 'codelist.txt'. [Installation] 1) Just type 'make all'. 2) be a root user and type 'make install' 3) use the software as normal user. - refer usage section [Alternatives] Alternatively, you can use gfourcc (http://sarovar.org/projects/gfourcc) a gui-based FourCC-changer avifix AVI file tools, part of the Transcode project. [RPM package] RPM package MAY BE made available at the project's page. Please email me if you absolutely in need of such package. [Usage] To obtain fourcc code for an avi file, type : cfourcc file.avi or, cfourcc -i file.avi To change fourcc code for an avi file, type : cfourcc -u DIVX -d DIVX (-d for description, -u for used) * Note : you only need to change the FOURCC use codec field most of the time, leave out the description code for reference. To obtain online help information, type : cfourcc -h [BUGS] Please refer to the file 'BUGS'. cfourcc-0.1.2/cfourcc.c0000644000175000000620000001056510211566002013717 0ustar jarnostaff /* cfourcc.c - this is the main (and only) module. cfourcc - change the FOURCC code in the Microsoft RIFF AVI file. Copyright (C) 2004-2005 mypapit This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Project's web : http://sarovar.org/projects/gfourcc */ #include #include #include #include #define AVILEN 224 #define FLAG_INFO 0x0001 #define FLAG_DESC 0x0010 #define FLAG_USED 0x0100 #define FLAG_HELP 0x1000 #define FLAG_FORCE 0x10000 typedef char AVIHDR[AVILEN]; extern char *strdup (const char *); int getDesc (AVIHDR header, char *str) { memcpy (str, &header[0x70], 4); return 0; } int getUsed (AVIHDR header, char *str) { memcpy (str, &header[0xbc], 4); return 0; } int setDesc (AVIHDR header, const char *str) { memcpy (&header[0x70], str, 4); return 0; } int setUsed (AVIHDR header, const char *str) { memcpy (&header[0xbc], str, 4); return 0; } int usage (void) { puts ("usage :\n\tcfoucc [-i] file.avi\n\tcfourcc -u DIVX file.avi\n\tcfourcc -h\n"); return 0; } int main (int argc, char *argv[]) { AVIHDR avihdr; FILE *fin; int optchar; int flags = 0x00; static char strused[5], strdesc[5]; char *ptrused = NULL, *ptrdesc = NULL; char MAGIC[] = { 'R', 'I', 'F', 'F' }; memset (&avihdr, 0, AVILEN); /*init avihdr just in case! */ opterr = 0; puts ("cfourcc 0.1.2 - (stupid) console fourcc changer\nAuthor : mypapit \nLicensed under the terms of the GNU General Public License\n"); while ((optchar = getopt (argc, argv, "d:u:ihf::")) != -1) { switch (optchar) { case 'i': /* printf("print info\n");*/ flags |= FLAG_INFO; break; case 'f': flags |= FLAG_FORCE; break; case 'd': flags |= FLAG_DESC; ptrdesc = (char *) strdup (optarg); break; case 'u': flags |= FLAG_USED; ptrused = (char *) strdup (optarg); break; case '?': /* flags|=FLAG_HELP;*/ /*usage(); */ break; case 'h': flags |= FLAG_HELP; usage (); puts ("\t-h\t\t Prints this help ;)"); puts ("\t-i\t\t Prints FOURCC information (default)"); puts ("\t-f\t\t Force changing FOURCC on unsupported file"); puts ("\t-u CODE\t\t Sets FOURCC \'used\' codec"); puts ("\t-d CODE\t\t Sets FOURCC \'description\' codec\n\n"); break; default: return 0x0; } } if (!((optind > 0) && (optchar = -1) && (argv[optind] != NULL))) { if ((flags & FLAG_HELP) != FLAG_HELP) usage (); return 0x0f; } fin = fopen (argv[optind], "rb"); if (fin == NULL) { fprintf (stderr, "Error : Cannot access %s\n", argv[optind]); return 0x01; } if (fread (avihdr, sizeof (char), AVILEN, fin) < AVILEN) { fprintf (stderr, "Error : Read end unexpectedly, incomplete file?\n"); return 0x02; } fclose (fin); /*lazy verifier! */ if (memcmp (avihdr, MAGIC, 4) && !(flags & FLAG_FORCE) ) { fprintf (stderr, "Error : Probably not a supported avi file\n"); return 0x03; } if (flags == 0x0 || ( (flags & FLAG_INFO) == FLAG_INFO)) { /*default behaviour */ getDesc (avihdr, strdesc); getUsed (avihdr, strused); printf ("FOURCC of \'%s\' :\nDescription : %s\nUse : %s\n\n", argv[optind], strdesc, strused); return 0x00; } if (((flags & FLAG_USED) == FLAG_USED) || ((flags & FLAG_DESC) == FLAG_DESC)) { fin = fopen (argv[optind], "r+b"); if (fin == NULL) { fprintf (stderr, "Error : Cannot access %s for writing\n", argv[optind]); return 0x01; } if (flags & FLAG_USED) setUsed (avihdr, ptrused); if (flags & FLAG_DESC) setDesc (avihdr, ptrdesc); fseek (fin, 0, SEEK_SET); fwrite (avihdr, sizeof (char), AVILEN, fin); fflush (fin); fclose (fin); puts ("Attempting to change FOURCC value...\n"); } puts ("Done.\n"); return 0; } cfourcc-0.1.2/codeclist.txt0000644000175000000620000003465610211564556014664 0ustar jarnostaff3IV1 3ivx 3IVX 3IV2 3ivx 3IVX 3IVX MPEG4-based codec 3ivx http://www.3ivx.com ____ |No Codec NA _BIT, BI_BITFIELDS (Raw RGB) * No codec needed _JPG, BI_JPEG JPEG compressed Joint Photo Experts Group _PNG, BI_PNG PNG compressed W3C/ISO/IEC (RFC-2083) _RAW Full Frames (Uncompressed) N.A. _RGB, BI_RGB Raw Bitmap * No codec needed _RL4, BI_RLE4 (RLE 4bpp RGB) * No codec needed _RL8, BI_RLE8 (RLE 8bpp RGB) * No codec needed AASC Autodesk Animator codec Autodesk ABYR Kensington ? Kensington AEMI Array VideoONE MPEG1-I Capture Array Microsystems AFLC Autodesk Animator codec Autodesk AFLI Autodesk Animator codec Autodesk AMPG Array VideoONE MPEG Array Microsystems ANIM RDX Intel AP41 AngelPotion Definitive AngelPotion ASV1 Asus Video Asus ASV2 Asus Video (2) Asus ASVX Asus Video 2.0 Asus AUR2 AuraVision Aura 2: YUV 422 AuraVision Corporation AURA AuraVision Aura 1: YUV 411 AuraVision Corporation AVDJ Independent JPEG Group's codec ? AVRN Independent JPEG Group's codec ? AYUV 4:4:4 YUV format *No Codec Needed AZPR Quicktime Apple Video ? BGR Raw RGB32 * No codec needed BINK Bink Video RAD Game Tools BLZ0 FFmpeg MPEG-4 ? BT20 Prosumer Video Conexant BTCV Composite Video Codec Conexant BTVC Conexant Composite Video Conexant BW10 Broadway MPEG Capture/Compression Data Translation CC12 YUV12 Codec Intel CDVC Canopus DV Codec Canopus CFCC DPS Perception Digital Processing Systems CGDI Camcorder Video Microsoft CHAM MM_WINNOV_CAVIARA_CHAMPAGNE Winnov, Inc. CJPG WebCam JPEG Creative Labs CLJR Cirrus Logic YUV 4:1:1 Cirrus CMYK Common Data Format in Printing Colorgraph (UK) CPLA YUV 4:2:0 Weitek CRAM Microsoft Video 1 Microsoft CVID Cinepak by Supermac Supermac CWLT Microsoft Color WLT DIB Microsoft CYUV Creative Labs YUV Creative Labs, Inc. CYUY ATI Proprietary YUV compression ATI Technologies D261 H.261 CCITT / ITU Standard D263 H.263 CCITT / ITU Standard DIB Device Independent Bitmap * No codec needed DIV1 FFmpeg OpenDivX ? DIV2 Microsoft MPEG-4 v1/v2 ? DIV3 DivX 3 Low-Motion DivX DIV4 DivX 3 Fast-Motion DivX DIV5 DivX 5.0 divx.com DIV6 DivX ;-) (MS MPEG-4 v3) ? DIVX DivX 4 (OpenDivX) Project Mayo DMB1 Rainbow Runner hardware compression Matrox DMB2 ? ? DPS0 DPS Reality Motion JPEG DPS/Leitch DPSC DPS PAR Motion JPEG DPS/Leitch DSVD DV Codec ? DUCK TrueMotion S Duck Corporation DV25 Matrox DVCPRO codec Matrox DV50 Matrox DVCPRO50 codec Matrox DVAN ? ? DVC DVC/DV Video IEC 61834 and SMPTE 314M DVCP DVC/DV Video IEC 61834 and SMPTE 314M DVE2 DVE-2 Videoconferencing Codec InSoft DVHD DV 1125 lines at 30.00 Hz or 1250 lines at 25.00 Hz IEC Standard DVMA Darim Vision DVMPEG (dummy for MPEG compressor) http://www.darvision.com/ DVSD DVC/DV Video IEC 61834 and SMPTE 314M DVSL DV compressed in SD (SDL) IEC Standard DVX1 DVX1000SP Video Decoder Lucent DVX2 DVX2000S Video Decoder Lucent DVX3 DVX3000S Video Decoder Lucent DX50 DivX 5.0 divx.com DXT1 DirectX Texture Compression Format 1 Microsoft Corporation DXT2 DirectX Texture Compression Format 2 Microsoft Corporation DXT3 DirectX Texture Compression Format 3 Microsoft Corporation DXT4 DirectX Texture Compression Format 4 Microsoft Corporation DXT5 DirectX Texture Compression Format 5 Microsoft Corporation DXTC DirectX Texture Compression Microsoft DXTn DirectX Compressed Texture Microsoft EKQ0 related to Elsa Graphics cards http://www.elsa.com/ ELK0 related to Elsa Graphics cards http://www.elsa.com/ EM2V Etymonix MPEG-2 I-frame http://www.etymonix.com/ ESCP Escape Eidos Technologies ETV1 eTreppid Video Codec eTreppid Technologies ETV2 eTreppid Video Codec eTreppid Technologies ETVC eTreppid Video Codec eTreppid Technologies FLIC Autodesk FLI/FLC Animation http://www.autodesk.com FLJP Field Encoded Motion JPEG D-Vision FRWA Forward Motion JPEG with alpha channel SoftLab-Nsk FRWD Forward Motion JPEG SoftLab-Nsk FRWT Darim Vision Forward Motion JPEG http://www.darvision.com/ FRWU Darim Vision Forward Uncompressed http://www.darvision.com/ FVF1 Fractal Video Frame Iterated Systems, Inc. GLZW Motion LZW gabest@freemail.hu GPEG Motion JPEG gabest@freemail.hu GWLT Microsoft Greyscale WLT DIB Microsoft H260 ITU H.26n Intel H261 ITU H.26n Intel H262 ITU H.26n Intel H263 ITU H.26n Intel H264 ITU H.26n Intel H265 ITU H.26n Intel H266 ITU H.26n Intel H267 ITU H.26n Intel H268 ITU H.26n Intel H269 ITU H.26n Intel HFYU Huffman Lossless Codec ? HMCR Rendition Motion Compensation Format Rendition HMRR Rendition Motion Compensation Format Rendition I263 FFmpeg I263 decoder ? i263 ITU H.263 Intel I420 RAW I420 ? IAN Indeo 4 Codec Intel ICLB CellB Videoconferencing Codec InSoft IF09 Indeo YVU9 ("YVU9 with additional delta-frame info after the U plane") *No Codec Needed IGOR Power DVD ? IJPG Independent JPEG Group's codec ? IJPG Intergraph JPEG Intergraph ILVC Layered Video Intel ILVR ITU H.263+ Codec ? IPDV Giga AVI DV Codec "I-O Data Device, Inc." IR21 Indeo 2.1 Intel IRAW Intel YUV Uncompressed Intel IUYV Interlaced version of UYVY http://www.leadtools.com/ IV30 Indeo 3.0 Intel Corporation IV31 Indeo 3.1 Intel Corporation IV32 Indeo 3.2 Ligos IV33 Indeo 3.3 Ligos IV34 Indeo 3.4 Ligos IV35 Indeo 3.5 Ligos IV36 Indeo 3.6 Ligos IV37 Indeo 3.7 Ligos IV38 Indeo 3.8 Ligos IV39 Indeo 3.9 Ligos IV40 Indeo Interactive Ligos IV41 Indeo Interactive Ligos IV42 Indeo Interactive Ligos IV43 Indeo Interactive Ligos IV44 Indeo Interactive Ligos IV45 Indeo Interactive Ligos IV46 Indeo Interactive Ligos IV47 Indeo Interactive Ligos IV48 Indeo Interactive Ligos IV49 Indeo Interactive Ligos IV50 Indeo Interactive Ligos IY41 Interlaced version of Y41P http://www.leadtools.com/ IYU1 12 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec IEEE standard IYU2 24 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec IEEE standard IYUV Planar YUV format (8-bpp Y plane, followed by 8-bpp 2×2 U and V planes) *No Codec Needed JBYR ? Kensington? JPEG Still Image JPEG DIB Microsoft Corporation JPGL Pegasus Lossless Motion JPEG http://www.jpg.com/ KMVC Karl Morton's Video Codec (presumably) Team17 Software LEAD LEAD Video Codec Lead Technologies Ljpg LEAD MJPEG Codec Lead Technologies LSVM Vianet Lighting Strike Vmail (Streaming) http://www.vianet.com M261 H.261 Microsoft M263 H.263 Microsoft M4S2 Fully Compliant MPEG-4 v2 simple profile codec Microsoft MC12 Motion Compensation Format ATI Technologies MCAM Motion Compensation Format ATI Technologies MDVD Alex MicroDVD Video (hacked MS MPEG-4) http://www.tiasoft.de/ MJ2C Morgan Multimedia JPEG2000 Compression http://www.morgan-multimedia.com/ MJPA Morgan Motion JPEG Codec http://www.morgan-multimedia.com MJPB Morgan Motion JPEG Codec http://www.morgan-multimedia.com MJPG Motion JPEG DIB Format Microsoft Corporation mJPG Motion JPEG including Huffman Tables IBM MMES Matrox MPEG-2 I-frame Matrox MP2v S-Mpeg 4 version 1 Microsoft MP42 S-Mpeg 4 version 2 Microsoft MP43 S-Mpeg 4 version 3 Microsoft MP4S S-Mpeg 4 version 3 Microsoft MP4V FFmpeg MPEG-4 ? MPEG MPEG-1 Chromatic Research MPG1 FFmpeg MPEG 1/2 ? MPG2 FFmpeg MPEG 1/2 ? MPG3 FFmpeg DivX ;-) (MS MPEG-4 v3) ? MPG4 MPEG-4 Microsoft MPGI MPEG Sigma Designs MPNG PNG images decoder ? MRCA Mrcodec FAST Multimedia MRLE Run Length Encoding Microsoft Corporation MSS1 Windows Screen Video ? MSVC Video 1 Microsoft Corporation MSZH LCL (Lossless Codec Library) http://www.geocities.co.jp/Playtown-Denei/2837/LRC.htm MTX1 Matrox, possibly a texture format Matrox MTX2 Matrox, possibly a texture format Matrox MTX3 Matrox, possibly a texture format Matrox MTX4 Matrox, possibly a texture format Matrox MTX5 Matrox, possibly a texture format Matrox MTX6 Matrox, possibly a texture format Matrox MTX7 Matrox, possibly a texture format Matrox MTX8 Matrox, possibly a texture format Matrox MTX9 ? Matrox MV12 Motion Pixels Codec (old) Motion Pixels MWV1 Aware Motion Wavelets Aware Inc. nAVI SMR Codec (hack of Microsoft Mpeg-4) IRC #shadowrealm NT00 NewTek LightWave HDTV YUV with Alpha-channel http://www.newtek.com/ NTN1 Video Compression 1 Nogatech NUV1 NuppelVideo ? NVS0 Nvidia, probably a texture format Nvidia NVS1 Nvidia, probably a texture format Nvidia NVS2 Nvidia, probably a texture format Nvidia NVS3 Nvidia, probably a texture format Nvidia NVS4 Nvidia, probably a texture format Nvidia NVS5 Nvidia, probably a texture format Nvidia NVT0 Nvidia, probably a texture format Nvidia NVT1 Nvidia, probably a texture format Nvidia NVT2 Nvidia, probably a texture format Nvidia NVT3 Nvidia, probably a texture format Nvidia NVT4 Nvidia, probably a texture format Nvidia NVT5 Nvidia, probably a texture format Nvidia PDVC DVC codec "I-O Data Device, Inc." PGVV Radius Video Vision Radius PHMO Photomotion IBM Corporation PIM1 MPEG Realtime (Pinnacle Cards) Pinnacle (http://www.pinnaclesys.com) PIM2 ? Pegasus Imaging PIMJ Lossless JPEG Pegasus Imaging PIXL MiroXL, Pinnacle PCTV Pinnacle (http://www.pinnaclesys.com) PVEZ PowerEZ Horizons Technology PVMM PacketVideo Corporation MPEG-4 PacketVideo Corporation PVW2 Pegasus Wavelet Compression Pegasus Imaging Q1.0 Q-Team's QPEG (www.q-team.de) ? Q1.1 Q-Team's QPEG (www.q-team.de) ? QPEG QPEG 1.1 Q-Team RGB Raw BGR32 * No codec needed RGBA Raw RGB w/ Alpha * No codec needed RGBT Raw RGB w/ Transparency * No codec needed RLE Run Length Encoded * No codec needed RLE4, Same as BI_RLE4 (RLE 4bpp RGB) * No codec needed RLE8, Same as BI_RLE8 (RLE 8bpp RGB) * No codec needed RMP4 REALmagic MPEG-4 (unauthorized XVID copy) http://www.sigmadesigns.com/ ROQV Id RoQ File Video Decoder ? RPZA Quicktime Apple Video ? RT21 Indeo 2.1 Intel Corporation RUD0 Rududu video codec http://rududu.ifrance.com/rududu/ RV10 RealVideo 1.0 RealNetworks RV13 RealVideo 1.0 variant RealNetworks RV20 RealVideo 2.0 RealNetworks RV30 RealVideo 3.0 RealNetworks RV40 RealVideo 4.0 RealNetworks RVX RDX Intel s422 VideoCap C210 Tekram International SDCC Digital Camera Codec Sun Communications SFMC Surface Fitting Method CrystalNet SMC Apple Graphics (SMC) codec ? SMSC Proprietary codec Radius SMSD Proprietary codec Radius smsv Wavelet Video WorldConnect SP54 Sunplus Sp54 Codec for Mustek GSmart Mini 2 Logitech SPIG Spigot Radius SPLC Splash Studios ACM Audio Codec http://splashstudios.net/ SQZ2 VXTreme Video Codec V2 Microsoft STVA ST CMOS Imager Data (Bayer) ST Microelectronics STVB ST CMOS Imager Data (Nudged Bayer) ST Microelectronics STVC ST CMOS Imager Data (Bunched) ST Microelectronics STVX ST CMOS Imager Data (Extended CODEC Data Format) ST Microelectronics STVY ST CMOS Imager Data (Extended CODEC Data Format with Correction Data) ST Microelectronics SV10 Video R1 Sorenson Media SVQ1 Sorenson Video Sorenson Media SVQ3 Sorenson Video 3 (Apple Quicktime 5) http://www.sorenson.com/ T420 Toshiba YUV 4:2:0 Toshiba TLMS Motion Intraframe Codec TeraLogic TLST Motion Intraframe Codec TeraLogic TM20 TrueMotion 2.0 Duck Corporation TM2A Duck TrueMotion Archiver 2.0 http://www.duck.com/ TM2X TrueMotion 2X Duck Corporation TMIC Motion Intraframe Codec TeraLogic TMOT TrueMotion S Horizons Technology TR20 TrueMotion RT 2.0 Duck Corporation TSCC TechSmith Screen Capture Codec Techsmith Corp. TV10 Tecomac Low-Bit Rate Codec "Tecomac, Inc." TVJP Targa 2000 board Pinnacle/Truevision TVMJ Targa 2000 board Pinnacle/Truevision TY0N Tecomac Low-Bit Rate Codec http://www.tecomac.com TY2C Trident Decompression Driver Trident Microsystems TY2N ? Trident Microsystems U263 UB Video H.263/H.263+/H.263++ Decoder ? UCOD ClearVideo eMajix.com ULTI Ultimotion IBM Corporation UMP4 UB Video MPEG 4 http://www.ubvideo.com UYNV Same as UYVY Nvidia UYVP YCbCr 4:2:2 extended precision Evans & Sutherland UYVY UYVY (packed 4:2:2) *No Codec Needed V261 Lucent VX2000S Lucent V422 24-bit YUV 4:2:2 Vitec Multimedia V655 16-bit YUV 4:2:2 Vitec Multimedia VCR1 ATI Video Codec 1 ATI Technologies VCR2 ATI Video Codec 2 ATI Technologies VCR3 ATI VCR 3.0 ATI Technologies VCR4 ATI VCR 4.0 ATI Technologies VCR5 ATI VCR 5.0 ATI Technologies VCR6 ATI VCR 6.0 ATI Technologies VCR7 ATI VCR 7.0 ATI Technologies VCR8 ATI VCR 8.0 ATI Technologies VCR9 ATI VCR 9.0 ATI Technologies VDCT Video Maker Pro DIB Vitec Multimedia VDOM VDOWave VDONet VDOW VDOLive VDONet VDTZ VideoTizer YUV Codec Darim Vision Co. VGPX Alaris VideoGramPiX ? VGPX VGPixel Codec Alaris VIDS YUV 4:2:2 CCIR 601 for V422 Vitec Multimedia VIFP VFAPI Reader Codec http://www.yks.ne.jp/~hori/ VIV1 FFmpeg H263+ decoder ? VIV2 Vivo H.263 Vivo Software VIVO Vivo H.263 Vivo Software VIXL Video XL Miro (now part of Pinnacle Systems) VLV1 Videologic codec VideoLogic (now PURE Digital) VP30 VP3 On2 VP31 VP3 On2 VQC2 Vector-quantised codec 2 (research) http://eprints.ecs.soton.ac.uk/archive/00001310/01/VTC97-js.pdf VTLP Alaris VideoGramPiX ? VX1K VX1000S Video Codec Lucent VX2K VX2000S Video Codec Lucent VXSP VX1000SP Video Codec Lucent VYU9 ATI YUV ATI Technologies VYUY ATI YUV ATI Technologies WBVC W9960 Winbond Electronics WHAM Microsoft Video 1 Microsoft WINX Winnov Software Compression Winnov WJPG Winbond JPEG? ? WMV1 FFmpeg MS WMV1/WMV7 ? WMV2 Windows Media Video 8 ? WNV1 Winnov Hardware Compression Winnov x263 Xirlink Xirlink XLV0 XL Video Decoder NetXL Inc. XMPG XING MPEG XING Corporation XVID XviD xvid.org (open source) XXAN ? ? XYZP Extended PAL format XYZ palette http://www.riff.org Y211 YUV packed *No Codec Needed Y411 Same as Y41P *No Codec Needed Y41B YUV 4:1:1 Planar Weitek Y41P YUV 4:1:1 Packed *No Codec Needed Y41T PC1 4:1:1 with transparency Brooktree Corporation Y422 Copy of UYVY used in Pyro WebCam firewire camera ADS Technologies Y42B YUV 4:2:2 Planar Weitek USA Y42T UYVY with pixel transparency support Brooktree Corporation Y8 Grayscale video ? Y800 Simple, single Y plane for monochrome images * No codec needed YC12 YUV 12 codec Intel YU92 YUV Intel Corporation YUNV Same as YUY2 Nvidia YUV8 MM_WINNOV_CAVIAR_YUV8 Winnov, Inc. YUV9 YUV9 Intel Corporation YUVP Extended PAL format YUV palette http://www.riff.org YUY2 "Raw, uncompressed YUV 4:2:2" Microsoft (probably) YUY2 YUV packed 4:2:2 *No Codec Needed YUYV BI_YUYV, Canopus Canopus, Co., Ltd. YV12 Identical to IYUV but the order of the U and V planes is switched *No Codec Needed YVU9 Planar YUV format (8-bpp Y plane, followed by 8-bpp 4×4 U and V planes) *No Codec Needed YVYU YUV packed 4:2:2 *No Codec Needed ZLIB LCL (Lossless Codec Library) zlib compression http://www.geocities.co.jp/Playtown-Denei/2837/LRC.htm ZPEG Video Zipper Metheus cfourcc-0.1.2/AUTHORS0000644000175000000620000000003410175535551013203 0ustar jarnostaffmypapit cfourcc-0.1.2/ChangeLog0000644000175000000620000000015710211566426013707 0ustar jarnostaff0.1.2 - add '-f' (force) option to enable changing FourCC in unsupported files. 0.1.0 - first public release cfourcc-0.1.2/COPYING0000600000175000000620000004311010211562562013151 0ustar jarnostaff GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.