~ubuntu-branches/ubuntu/hardy/avidemux/hardy

« back to all changes in this revision

Viewing changes to avidemux/ADM_libMad/fixed.c

  • Committer: Bazaar Package Importer
  • Author(s): Matvey Kozhev
  • Date: 2007-12-18 13:53:04 UTC
  • mfrom: (1.1.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20071218135304-cdqec2lg2bglyz15
Tags: 1:2.4~preview3-0.0ubuntu1
* Upload to Ubuntu. (LP: #163287, LP: #126572)
* debian/changelog: re-added Ubuntu releases.
* debian/control:
  - Require debhelper >= 5.0.51 (for dh_icons) and imagemagick.
  - Build-depend on libsdl1.2-dev instead of libsdl-dev.
  - Build against newer libx264-dev. (LP: #138854)
  - Removed libamrnb-dev, not in Ubuntu yet.
* debian/rules:
  - Install all icon sizes, using convert (upstream installs none).
  - Added missing calls to dh_installmenu, dh_installman, dh_icons and
    dh_desktop.
* debian/menu, debian/avidemux-qt.menu:
  - Corrected package and executable names.
* debian/avidemux-common.install: Install icons.
* debian/avidemux.common.manpages: Install man/avidemux.1.
* debian/links, debian/avidemux-cli.links, debian/avidemux-gtk.links:
  - Link manpages to avidemux.1.gz.
* debian/install, debian/avidemux-qt.install, debian/avidemux-gtk.desktop,
  debian/avidemux-qt.desktop: Install desktop files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * libmad - MPEG audio decoder library
3
 
 * Copyright (C) 2000-2004 Underbit Technologies, Inc.
4
 
 *
5
 
 * This program is free software; you can redistribute it and/or modify
6
 
 * it under the terms of the GNU General Public License as published by
7
 
 * the Free Software Foundation; either version 2 of the License, or
8
 
 * (at your option) any later version.
9
 
 *
10
 
 * This program is distributed in the hope that it will be useful,
11
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
 * GNU General Public License for more details.
14
 
 *
15
 
 * You should have received a copy of the GNU General Public License
16
 
 * along with this program; if not, write to the Free Software
17
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
 
 *
19
 
 * $Id: fixed.c,v 1.13 2004/01/23 09:41:32 rob Exp $
20
 
 */
21
 
 
22
 
# ifdef HAVE_CONFIG_H
23
 
#  include "config.h"
24
 
# endif
25
 
 
26
 
# include "global.h"
27
 
 
28
 
# include "fixed.h"
29
 
 
30
 
/*
31
 
 * NAME:        fixed->abs()
32
 
 * DESCRIPTION: return absolute value of a fixed-point number
33
 
 */
34
 
mad_fixed_t mad_f_abs(mad_fixed_t x)
35
 
{
36
 
  return x < 0 ? -x : x;
37
 
}
38
 
 
39
 
/*
40
 
 * NAME:        fixed->div()
41
 
 * DESCRIPTION: perform division using fixed-point math
42
 
 */
43
 
mad_fixed_t mad_f_div(mad_fixed_t x, mad_fixed_t y)
44
 
{
45
 
  mad_fixed_t q, r;
46
 
  unsigned int bits;
47
 
 
48
 
  q = mad_f_abs(x / y);
49
 
 
50
 
  if (x < 0) {
51
 
    x = -x;
52
 
    y = -y;
53
 
  }
54
 
 
55
 
  r = x % y;
56
 
 
57
 
  if (y < 0) {
58
 
    x = -x;
59
 
    y = -y;
60
 
  }
61
 
 
62
 
  if (q > mad_f_intpart(MAD_F_MAX) &&
63
 
      !(q == -mad_f_intpart(MAD_F_MIN) && r == 0 && (x < 0) != (y < 0)))
64
 
    return 0;
65
 
 
66
 
  for (bits = MAD_F_FRACBITS; bits && r; --bits) {
67
 
    q <<= 1, r <<= 1;
68
 
    if (r >= y)
69
 
      r -= y, ++q;
70
 
  }
71
 
 
72
 
  /* round */
73
 
  if (2 * r >= y)
74
 
    ++q;
75
 
 
76
 
  /* fix sign */
77
 
  if ((x < 0) != (y < 0))
78
 
    q = -q;
79
 
 
80
 
  return q << bits;
81
 
}