
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://kb.speeddemosarchive.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://kb.speeddemosarchive.com/index.php?action=history&amp;feed=atom&amp;title=Anri-chan%2FSource%2Ffourccc.cpp</id>
		<title>Anri-chan/Source/fourccc.cpp - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://kb.speeddemosarchive.com/index.php?action=history&amp;feed=atom&amp;title=Anri-chan%2FSource%2Ffourccc.cpp"/>
		<link rel="alternate" type="text/html" href="https://kb.speeddemosarchive.com/index.php?title=Anri-chan/Source/fourccc.cpp&amp;action=history"/>
		<updated>2026-04-18T14:47:03Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.9</generator>

	<entry>
		<id>https://kb.speeddemosarchive.com/index.php?title=Anri-chan/Source/fourccc.cpp&amp;diff=2135&amp;oldid=prev</id>
		<title>Ballofsnow: New page: &lt;pre&gt;&lt;nowiki&gt; /*    Reads parameters and compares with fourcc. Returns 0 for false, 1 for true.    author: ballofsnow   date: 17 August 2007   license: none (public domain)   target: win32...</title>
		<link rel="alternate" type="text/html" href="https://kb.speeddemosarchive.com/index.php?title=Anri-chan/Source/fourccc.cpp&amp;diff=2135&amp;oldid=prev"/>
				<updated>2007-08-18T03:47:52Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; /*    Reads parameters and compares with fourcc. Returns 0 for false, 1 for true.    author: ballofsnow   date: 17 August 2007   license: none (public domain)   target: win32...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
  Reads parameters and compares with fourcc. Returns 0 for false, 1 for true.&lt;br /&gt;
&lt;br /&gt;
  author: ballofsnow&lt;br /&gt;
  date: 17 August 2007&lt;br /&gt;
  license: none (public domain)&lt;br /&gt;
  target: win32 (MINGW), recommend using the free IDE from bloodshed.net&lt;br /&gt;
  version: beta 0.1&lt;br /&gt;
&lt;br /&gt;
  vids offset 0x6C, 108 decimal, 4 bytes long.&lt;br /&gt;
  fourcc offset 0x70, 112 decimal, 4 bytes long.&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;bitset&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void usage(char *argv0);&lt;br /&gt;
unsigned char checkvids[4]= { 0x76, 0x69, 0x64, 0x73 }; /* vids - fourcc follows */&lt;br /&gt;
unsigned char buffer[1024*1024];&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char **argv) {&lt;br /&gt;
  FILE *vid;&lt;br /&gt;
  char *vidname=NULL;&lt;br /&gt;
  char *fourcc=NULL;&lt;br /&gt;
  int rval;&lt;br /&gt;
  printf (&amp;quot;fourcc compare v0.1, ballofsnow\n&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if (argc!=3) {&lt;br /&gt;
    usage(argv[0]);&lt;br /&gt;
    return -1;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* VERIFY FOURCC EXISTS  */&lt;br /&gt;
  vidname=argv[1];&lt;br /&gt;
  if ((vid=fopen(vidname,&amp;quot;rb&amp;quot;))==NULL) {&lt;br /&gt;
    printf (&amp;quot;[-] Failed to open file \&amp;quot;%s\&amp;quot;.\n&amp;quot;, vidname);&lt;br /&gt;
    return -1;&lt;br /&gt;
  } &lt;br /&gt;
  fread(buffer,1,200,vid);&lt;br /&gt;
  if (memcmp(checkvids,buffer+108,4) != 0) {&lt;br /&gt;
     printf (&amp;quot;This isn't a valid file.\n&amp;quot;);&lt;br /&gt;
     free(buffer);&lt;br /&gt;
     fclose(vid);&lt;br /&gt;
     usage(argv[0]);&lt;br /&gt;
     return -1;&lt;br /&gt;
  }&lt;br /&gt;
  /* FINISHED VALIDATING */&lt;br /&gt;
  &lt;br /&gt;
  /* COMPARE FOURCC WITH PARAMETER */&lt;br /&gt;
  fourcc=argv[2];&lt;br /&gt;
  if (memcmp(fourcc,buffer+112,4) == 0) {&lt;br /&gt;
    printf(&amp;quot;%s %s\n&amp;quot;, fourcc, &amp;quot;fourcc found&amp;quot;);&lt;br /&gt;
    rval=1;&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    rval=0;&lt;br /&gt;
  }&lt;br /&gt;
  /* FINISHED COMPARE */&lt;br /&gt;
&lt;br /&gt;
  free(buffer); // vid buffer&lt;br /&gt;
  fclose(vid);&lt;br /&gt;
  return rval;  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void usage(char *argv0) {&lt;br /&gt;
  printf (&amp;quot;Usage: %s &amp;lt;AVI file&amp;gt; &amp;lt;FOURCC&amp;gt;\n\n&amp;quot;, argv0);&lt;br /&gt;
  printf (&amp;quot;Returns 0 (false) or 1 (true) to %%ERRORLEVEL%%.\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ballofsnow</name></author>	</entry>

	</feed>