www.pudn.com > henclib263.rar > exceptions.cxx


/* 
* exceptions.cxx 
* 
* deal with exceptions 
* 
* Copyright (c) 2002-2004 Li Chun-lin(li_chunlin@263.net) 
* 
* 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. 
*/ 
#include  
#include  
#include  
#include "../include/HEnc.h" 
#include "../include/Exceptions.h" 
 
#ifdef  __cplusplus 
extern "C" { 
#endif 
 
 
void deal_exceptions (int errnr, H263VencStatus *encoder, MCParam *mc) 
{ 
	int i = 0; 
	MotionVector **tmp_mv_ptr = &mc->mv_frame[0][0][0]; 
 
	switch (errnr) 
	{ 
	case 1: 
		goto DEAL_EXCEPTIONS1; 
		break; 
 
	default: 
		break; 
	} 
 
	while (i < errnr - 7) 
	{ 
 
		free (tmp_mv_ptr[i++]); 
	} 
	free (encoder->prev_ipol); 
 
DEAL_EXCEPTIONS1: 
	printf (E_OPENENC_NO_MEMORY); 
	printf ("Process terminated!\n"); 
	exit(1); 
} 
 
#ifdef  __cplusplus 
} 
#endif