~ubuntu-branches/ubuntu/trusty/lame/trusty-proposed

« back to all changes in this revision

Viewing changes to frontend/get_audio.c

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2010-07-30 09:34:43 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20100730093443-behxbw12v5vljwu2
Tags: 3.98.4-0ubuntu1
* New upstream Release
* Switch to source Format 3.0 (quilt)
* Remove debian/patches/03-buffer-too-small.patch, merged upstream
* Refreshed patches
* Tighten build depends on debhelper und quilt
* Bump standards version
* Remove outdated config.guess and config.sub during build

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 * Boston, MA 02111-1307, USA.
20
20
 */
21
21
 
22
 
/* $Id: get_audio.c,v 1.125 2008/04/28 20:32:57 robert Exp $ */
 
22
/* $Id: get_audio.c,v 1.125.2.2 2009/01/18 15:44:28 robert Exp $ */
23
23
 
24
24
 
25
25
#ifdef HAVE_CONFIG_H
82
82
    int     pcm_is_unsigned_8bit;
83
83
    unsigned int num_samples_read;
84
84
    FILE   *musicin;
 
85
    hip_t   hip;
85
86
} get_audio_global_data;
86
87
 
87
 
static get_audio_global_data global = { 0, 0, 0, 0, 0, 0 };
 
88
static get_audio_global_data global = { 0, 0, 0, 0, 0, 0, 0 };
88
89
 
89
90
 
90
91
 
1039
1040
static int const IFF_ID_SSND = 0x53534e44; /* "SSND" */
1040
1041
static int const IFF_ID_MPEG = 0x4d504547; /* "MPEG" */
1041
1042
 
1042
 
static int const IFF_ID_NONE = 0x4e4f4e45; /* "NONE" *//* AIFF-C data format */
1043
 
static int const IFF_ID_2CBE = 0x74776f73; /* "twos" *//* AIFF-C data format */
1044
 
static int const IFF_ID_2CLE = 0x736f7774; /* "sowt" *//* AIFF-C data format */
 
1043
static int const IFF_ID_NONE = 0x4e4f4e45; /* "NONE" */ /* AIFF-C data format */
 
1044
static int const IFF_ID_2CBE = 0x74776f73; /* "twos" */ /* AIFF-C data format */
 
1045
static int const IFF_ID_2CLE = 0x736f7774; /* "sowt" */ /* AIFF-C data format */
1045
1046
 
1046
1047
static int const WAV_ID_RIFF = 0x52494646; /* "RIFF" */
1047
1048
static int const WAV_ID_WAVE = 0x57415645; /* "WAVE" */
1624
1625
    int     freeformat = 0;
1625
1626
 
1626
1627
    memset(mp3data, 0, sizeof(mp3data_struct));
1627
 
    lame_decode_init();
 
1628
    if (global.hip) {
 
1629
        hip_decode_exit(global.hip);
 
1630
    }
 
1631
    global.hip = hip_decode_init();
1628
1632
 
1629
1633
    len = 4;
1630
1634
    if (fread(buf, 1, len, fd) != len)
1684
1688
    /* so mp3data->bitrate will be 0 until we have decoded the first */
1685
1689
    /* frame.  Cannot decode first frame here because we are not */
1686
1690
    /* yet prepared to handle the output. */
1687
 
    ret = lame_decode1_headersB(buf, len, pcm_l, pcm_r, mp3data, enc_delay, enc_padding);
 
1691
    ret = hip_decode1_headersB(global.hip, buf, len, pcm_l, pcm_r, mp3data, enc_delay, enc_padding);
1688
1692
    if (-1 == ret)
1689
1693
        return -1;
1690
1694
 
1693
1697
        len = fread(buf, 1, sizeof(buf), fd);
1694
1698
        if (len != sizeof(buf))
1695
1699
            return -1;
1696
 
        ret = lame_decode1_headersB(buf, len, pcm_l, pcm_r, mp3data, enc_delay, enc_padding);
 
1700
        ret = hip_decode1_headersB(global.hip, buf, len, pcm_l, pcm_r, mp3data, enc_delay, enc_padding);
1697
1701
        if (-1 == ret)
1698
1702
            return -1;
1699
1703
    }
1748
1752
    unsigned char buf[1024];
1749
1753
 
1750
1754
    /* first see if we still have data buffered in the decoder: */
1751
 
    ret = lame_decode1_headers(buf, len, pcm_l, pcm_r, mp3data);
 
1755
    ret = hip_decode1_headers(global.hip, buf, len, pcm_l, pcm_r, mp3data);
1752
1756
    if (ret != 0)
1753
1757
        return ret;
1754
1758
 
1758
1762
        len = fread(buf, 1, 1024, fd);
1759
1763
        if (len == 0) {
1760
1764
            /* we are done reading the file, but check for buffered data */
1761
 
            ret = lame_decode1_headers(buf, len, pcm_l, pcm_r, mp3data);
 
1765
            ret = hip_decode1_headers(global.hip, buf, len, pcm_l, pcm_r, mp3data);
1762
1766
            if (ret <= 0) {
1763
 
                lame_decode_exit(); /* release mp3decoder memory */
 
1767
                hip_decode_exit(global.hip); /* release mp3decoder memory */
 
1768
                global.hip = 0;
1764
1769
                return -1; /* done with file */
1765
1770
            }
1766
1771
            break;
1767
1772
        }
1768
1773
 
1769
 
        ret = lame_decode1_headers(buf, len, pcm_l, pcm_r, mp3data);
 
1774
        ret = hip_decode1_headers(global.hip, buf, len, pcm_l, pcm_r, mp3data);
1770
1775
        if (ret == -1) {
1771
 
            lame_decode_exit(); /* release mp3decoder memory */
 
1776
            hip_decode_exit(global.hip); /* release mp3decoder memory */
 
1777
            global.hip = 0;
1772
1778
            return -1;
1773
1779
        }
1774
1780
        if (ret > 0)