Blob Blame History Raw
--- dvgrab-3.5/filehandler.cc.orig	2013-11-06 15:45:54.000000000 -0500
+++ dvgrab-3.5/filehandler.cc	2013-11-06 15:45:57.000000000 -0500
@@ -639,6 +639,12 @@ AVIHandler::~AVIHandler()
 	Close();
 }
 
+static DWORD pack_to_dword(Pack *p) {
+	DWORD ret;
+
+	ret = p->data[1] | ((DWORD)p->data[2]<<8) | ((DWORD)p->data[3]<<16) | ((DWORD)p->data[4]<<24);
+	return ret;
+}
 
 void AVIHandler::SetSampleFrame( DVFrame *sample )
 {
@@ -648,19 +654,19 @@ void AVIHandler::SetSampleFrame( DVFrame
 	sample->GetVideoInfo( videoInfo );
 
 	sample->GetAAUXPack( 0x50, pack );
-	dvinfo.dwDVAAuxSrc = *( DWORD* ) ( pack.data + 1 );
+	dvinfo.dwDVAAuxSrc = pack_to_dword(&pack);
 	sample->GetAAUXPack( 0x51, pack );
-	dvinfo.dwDVAAuxCtl = *( DWORD* ) ( pack.data + 1 );
+	dvinfo.dwDVAAuxCtl = pack_to_dword(&pack);
 
 	sample->GetAAUXPack( 0x52, pack );
-	dvinfo.dwDVAAuxSrc1 = *( DWORD* ) ( pack.data + 1 );
+	dvinfo.dwDVAAuxSrc1 = pack_to_dword(&pack);
 	sample->GetAAUXPack( 0x53, pack );
-	dvinfo.dwDVAAuxCtl1 = *( DWORD* ) ( pack.data + 1 );
+	dvinfo.dwDVAAuxCtl1 = pack_to_dword(&pack);
 
 	sample->GetVAUXPack( 0x60, pack );
-	dvinfo.dwDVVAuxSrc = *( DWORD* ) ( pack.data + 1 );
+	dvinfo.dwDVVAuxSrc = pack_to_dword(&pack);
 	sample->GetVAUXPack( 0x61, pack );
-	dvinfo.dwDVVAuxCtl = *( DWORD* ) ( pack.data + 1 );
+	dvinfo.dwDVVAuxCtl = pack_to_dword(&pack);
 
 #ifdef WITH_LIBDV