From 96d0f3f079f982be294f694590c49b8e9fed2420 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Sat, 18 Apr 2009 15:15:34 +0000 Subject: More ticket #774: compilation error for VS8 and make build system due to last modifications in libg7221codec and pjmedia_test git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2617 74dad513-b988-da41-8d7b-12977e46ad98 --- third_party/g7221/common/stl-files/count.h | 267 ++--------------------------- 1 file changed, 16 insertions(+), 251 deletions(-) (limited to 'third_party/g7221') diff --git a/third_party/g7221/common/stl-files/count.h b/third_party/g7221/common/stl-files/count.h index 34c04610..5081595c 100644 --- a/third_party/g7221/common/stl-files/count.h +++ b/third_party/g7221/common/stl-files/count.h @@ -1,258 +1,23 @@ -/* - =========================================================================== - COUNT.H - ~~~~~~~ - - Prototypes and definitions for counting operations - - These functions, and the ones in basop32.h, makes it possible to - measure the wMOPS of a codec. - - All functions in this file, and in basop32.h, updates a structure - so that it will be possible the see how many calls to add, mul mulAdd - ... that the code made, and estimate the wMOPS (and MIPS) for a - sertain part of code - - It is also possible to measure the wMOPS separatly for different - parts of the codec. - - This is done by creating a counter group (getCounterId) for each part - of the code that one wants a separte measure for. Before a part of - the code is executed a call to the "setCounter" function is needed to - identify which counter group to use. - - Currently there is a limit of 255 different counter groups. - - In the end of this file there is a pice of code illustration how the - functions can be used. - - History - ~~~~~~~ - 09.Aug.1999 V1.0.0 Input to UGST from ETSI AMR (count.h); - 26.Jan.2000 V1.1.0 Added counter entries for G.723.1's - L_mls(), div_l(), i_mult() [from basop32.c] - 05.Jul.2000 V1.2.0 Added counter entries for 32bit shiftless - operators L_mult0(), L_mac0(), L_msu0() - =========================================================================== -*/ -#if 0 -#ifndef COUNT_H -#define COUNT_H "$Id $" - -#define MAXCOUNTERS 256 - -int getCounterId(char *objectName); -/* - * Create a counter group, the "objectname" will be used when printing - * statistics for this counter group. +/* $Id: config.h 2427 2009-01-22 20:30:32Z bennylp $ */ +/* + * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) * - * Returns 0 if no more counter groups are available. - */ - -void setCounter(int counterId); -/* - * Defines which counter group to use, default is zero. - */ - -void Init_WMOPS_counter (void); -/* - * Initiates the current counter group. - */ - -void Reset_WMOPS_counter (void); -/* - * Resets the current counter group. - */ - -void WMOPS_output (Word16 notPrintWorstWorstCase); -/* - * Prints the statistics to the screen, if the argument if non zero - * the statistics for worst worst case will not be printed. This is typically - * done for dtx frames. + * 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. * - */ - -PJ_INLINE(Word32) fwc (void) -{ -#if WMOPS - Word32 tot; - - tot = DeltaWeightedOperation (); - if (tot > wc[currCounter][funcid[currCounter]]) - wc[currCounter][funcid[currCounter]] = tot; - - funcid[currCounter]++; - - return (tot); -#else - return 0; /* Dummy */ -#endif -} - -/* - * worst worst case counter. + * 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. * - * This function calculates the worst possible case that can be reached. - * - * This is done by calling this function for each subpart of the calculations - * for a frame. This function then stores the maximum wMOPS for each part. - * - * The WMOPS_output function add together all parts and presents the sum. - */ -PJ_INLINE(void) move16 (void) -{ -#if WMOPS - multiCounter[currCounter].DataMove16++; -#endif -} - -PJ_INLINE(void) move32 (void) -{ -#if WMOPS - multiCounter[currCounter].DataMove32++; -#endif -} - -PJ_INLINE(void )logic16 (void) -{ -#if WMOPS - multiCounter[currCounter].Logic16++; -#endif -} - -PJ_INLINE(void) logic32 (void) -{ -#if WMOPS - multiCounter[currCounter].Logic32++; -#endif -} - -PJ_INLINE(void) test (void) -{ -#if WMOPS - multiCounter[currCounter].Test++; -#endif -} - - -/* - * The functions above increases the corresponding operation counter for - * the current counter group. + * 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 */ - -typedef struct -{ - Word32 add; /* Complexity Weight of 1 */ - Word32 sub; - Word32 abs_s; - Word32 shl; - Word32 shr; - Word32 extract_h; - Word32 extract_l; - Word32 mult; - Word32 L_mult; - Word32 negate; - Word32 round; - Word32 L_mac; - Word32 L_msu; - Word32 L_macNs; - Word32 L_msuNs; - Word32 L_add; /* Complexity Weight of 2 */ - Word32 L_sub; - Word32 L_add_c; - Word32 L_sub_c; - Word32 L_negate; - Word32 L_shl; - Word32 L_shr; - Word32 mult_r; - Word32 shr_r; - Word32 shift_r; - Word32 mac_r; - Word32 msu_r; - Word32 L_deposit_h; - Word32 L_deposit_l; - Word32 L_shr_r; /* Complexity Weight of 3 */ - Word32 L_shift_r; - Word32 L_abs; - Word32 L_sat; /* Complexity Weight of 4 */ - Word32 norm_s; /* Complexity Weight of 15 */ - Word32 div_s; /* Complexity Weight of 18 */ - Word32 norm_l; /* Complexity Weight of 30 */ - Word32 DataMove16; /* Complexity Weight of 1 */ - Word32 DataMove32; /* Complexity Weight of 2 */ - Word32 Logic16; /* Complexity Weight of 1 */ - Word32 Logic32; /* Complexity Weight of 2 */ - Word32 Test; /* Complexity Weight of 2 */ - /* Counters for G.723.1 basic operators*/ - Word32 L_mls; /* Complexity Weight of 1 */ - Word32 div_l; /* Complexity Weight of 1 */ - Word32 i_mult; /* Complexity Weight of 1 */ - Word32 L_mult0; /* Complexity Weight of 1 */ - Word32 L_mac0; /* Complexity Weight of 1 */ - Word32 L_msu0; /* Complexity Weight of 1 */ - /* Counters for G.722.1 basic operators*/ - Word32 LU_shl; /* Complexity Weight of 1 */ - Word32 LU_shr; /* Complexity Weight of 1 */ -} -BASIC_OP; - -#ifdef THISISANEXAMPLE_0123456789 -/* - ----------------------------------------------------------------------- - Example of how count.h could be used. - - In the example below it is assumed that the init_OBJECT functions - does not use any calls to counter.h or basic_op.h. If this is the - case a call to the function Reset_WMOPS_counter() must be done after - each call to init_OBJECT if these operations is not to be included - in the statistics. - ----------------------------------------------------------------------- -*/ - -int main() -{ - int spe1Id,spe2Id,cheId; - - /* initiate counters and objects */ - spe1Id=getCounterId("Spe 5k8"); - setCounter(spe1Id); - Init_WMOPS_counter (); - init_spe1(...); - - spe2Id=getCounterId("Spe 12k2"); - setCounter(spe2Id); - Init_WMOPS_counter (); - init_spe2(...); - - cheId=getCounterId("Channel encoder"); - setCounter(cheId); - Init_WMOPS_counter (); - init_che(...); - ... - - while(data) - { - test(); /* Note this call to test(); */ - if(useSpe1) - setCounter(spe1Id); - else - setCounter(spe2Id); - Reset_WMOPS_counter(); - speEncode(...); - WMOPS_output(0); /* Normal routine for displaying WMOPS info */ - - setCounter(cheId); - Reset_WMOPS_counter(); - preChannelInter(...); fwc(); /* Note the call to fwc() for each part */ - convolve(...); fwc(); /* of the channel encoder. */ - interleave(...); fwc(); - WMOPS_output(0); /* Normal routine for displaying WMOPS info */ - } -} -#endif /* Example */ - -#endif /* COUNT_H */ -#else +#ifndef COUNT_H +#define COUNT_H #define move16() #define move32() -- cgit v1.2.3