ffmpeg / libavcodec / bfin / dsputil_bfin.h @ 5b21bdab
History | View | Annotate | Download (1.9 KB)
1 |
/*
|
---|---|
2 |
* BlackFin DSPUTILS COMMON OPTIMIZATIONS HEADER
|
3 |
*
|
4 |
* Copyright (C) 2007 Marc Hoffman <mmh@pleasantst.com>
|
5 |
*
|
6 |
* This file is part of FFmpeg.
|
7 |
*
|
8 |
* FFmpeg is free software; you can redistribute it and/or
|
9 |
* modify it under the terms of the GNU Lesser General Public
|
10 |
* License as published by the Free Software Foundation; either
|
11 |
* version 2.1 of the License, or (at your option) any later version.
|
12 |
*
|
13 |
* FFmpeg is distributed in the hope that it will be useful,
|
14 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
16 |
* Lesser General Public License for more details.
|
17 |
*
|
18 |
* You should have received a copy of the GNU Lesser General Public
|
19 |
* License along with FFmpeg; if not, write to the Free Software
|
20 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
21 |
*/
|
22 |
|
23 |
|
24 |
#ifndef FFMPEG_DSPUTIL_BFIN_H
|
25 |
#define FFMPEG_DSPUTIL_BFIN_H
|
26 |
|
27 |
#define attribute_l1_text __attribute__ ((l1_text))
|
28 |
|
29 |
#ifdef BFIN_PROFILE
|
30 |
|
31 |
static double Telem[16]; |
32 |
static char *TelemNames[16]; |
33 |
static int TelemCnt; |
34 |
|
35 |
#define PROF(lab,e) { int xx_e = e; char*xx_lab = lab; uint64_t xx_t0 = read_time(); |
36 |
#define EPROF() xx_t0 = read_time()-xx_t0; Telem[xx_e] = Telem[xx_e] + xx_t0; TelemNames[xx_e] = xx_lab; }
|
37 |
|
38 |
static void prof_report (void) |
39 |
{ |
40 |
int i;
|
41 |
double s = 0; |
42 |
for (i=0;i<16;i++) { |
43 |
double v;
|
44 |
if (TelemNames[i]) {
|
45 |
v = Telem[i]/TelemCnt; |
46 |
av_log (NULL,AV_LOG_DEBUG,"%-20s: %12.4f\t%12.4f\n", TelemNames[i],v,v/64); |
47 |
s = s + Telem[i]; |
48 |
} |
49 |
} |
50 |
av_log (NULL,AV_LOG_DEBUG,"%-20s: %12.4f\t%12.4f\n%20.4f\t%d\n", |
51 |
"total",s/TelemCnt,s/TelemCnt/64,s,TelemCnt); |
52 |
} |
53 |
|
54 |
static void bfprof (void) |
55 |
{ |
56 |
static int init; |
57 |
if (!init) atexit (prof_report);
|
58 |
init=1;
|
59 |
TelemCnt++; |
60 |
} |
61 |
|
62 |
#else
|
63 |
#define PROF(a,b)
|
64 |
#define EPROF()
|
65 |
#define bfprof()
|
66 |
#endif
|
67 |
|
68 |
#endif /* FFMPEG_DSPUTIL_BFIN_H */ |