Statistics
| Branch: | Revision:

ffmpeg / libavcodec / bfin / dsputil_bfin.h @ 50ee61dd

History | View | Annotate | Download (1.84 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 DSPUTIL_BFIN_H
25
#define 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 __e = e; char*__lab = lab; uint64_t _t0 = read_time();
36
#define EPROF()       _t0 = read_time()-_t0; Telem[__e] = Telem[__e] + _t0; TelemNames[__e] = __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