~medibuntu-maintainers/mplayer/medibuntu.precise

« back to all changes in this revision

Viewing changes to ffmpeg/libavcodec/mpc7.c

  • Committer: Gauvain Pocentek
  • Date: 2012-03-06 11:59:12 UTC
  • mfrom: (66.1.15 precise)
  • Revision ID: gauvain@pocentek.net-20120306115912-h9d6kt9j0l532oo5
* Merge from Ubuntu:
  - put back faac support
  - recommends apport-hooks-medibuntu
  - change Maintainer, Uploaders & Vcs-* fields.
* New upstream snapshot
* upload to unstable
* Build against external libmpeg2
* drop 51_FTBFS_arm.patch again
* no longer build depend on libcdparanoia-dev on the Hurd
* Fix FTBFS on the hurd.
  Thanks to Samuel Thibault <sthibault@debian.org> (Closes: #654974)
* Fix FTBFS on arm
* New upstream snapshot, Closes: #650339, #643621, #481807
* Imported Upstream version 1.0~rc4+svn34492
* Bump standards version
* Bump dependency on libav >= 4:0.8~, Closes: #653887
* Fix build-indep
* Build mplayer-gui again, Closes: #568514
* Drop debian/all-lang-config-mak.sh, no longer needed
* include .dfsg1 in version number
* remove get-orig-source target
* no longer prune compiler flags from the environment
* No longer advertise nor build 3fdx, mga and dxr3 backends,
  Closes: #496106, #442181, #533546
* beautify mplayer version identification string
* Brown paperbag upload.
* Next try to fix build failure on sparce after recent binutils change.
* Brown paperbag upload.
* Really fix build failure on sparc after recent binutils change.
* Properly set Replaces/Conflicts on mplayer2{,-dbg} to avoid
  file overwrite errors.
* Adjust versioning of mplayer listed in the mplayer-dbg's Depends field.
* Fix build failure on sparc after recent binutils change.
* Urgency medium bumped because of RC-level bugfix
  and speeding up x264 transition.
* Update to my @debian.org email.
* Upload to unstable
* Enable joystick support on Linux only, Closes: #638408
* Rebuild fixes toolchain issue on arm, Closes: #637077
* New upstream snapshot
* following the discussion started by Diego Biurrun <diego@biurrun.de>
  in debian-devel, I have prepared a new packaging of 'mplayer'
  (with code that comes from CVS)
* the upstream tar.bz cannot be distributed by Debian, since it contains
   CSS code; so I am repackaging it 
* I have tried my best to address all known issues:
  - the package contains the detailed Copyright made by Diego Biurrun 
  - the package does not contain CSS code, or  AFAIK other code on which 
     there is active patent enforcement
  - there is a script  debian/cvs-changelog.sh  that shows all changes
     done to files included in this source.
    This should comply with GPLv2 sec 2.a  (in spirit if not in letter)
    For this reason, the source code contains CVS directories.
* needs   make (>= 3.80) for 'html-chunked-$(1)' in DOCS/xml/Makefile

* some corrections, as suggested Diego Biurrun
  - binary codecs should go into /usr/lib/codecs (upstream default)
  - better template 'mplayer/install_codecs'
  - an empty 'font=' in mplayer.conf breaks mplayer: postinst corrected
* correction in 'mplayer/cfgnote'
* better mplayer.postinst and mplayer.config

* New upstream release
* better debian/copyright file
* do not ship a skin
* New upstream release
* changed DEB_BUILD_OPTIONS to DEB_BUILD_CONFIGURE ,
  DEB_BUILD_OPTIONS is used as in debian policy
* use gcc-3.4
* changed xlibs-dev to a long list of dependencies, for Debian/etch
* try to adhere to  http://www.mplayerhq.hu/DOCS/tech/binary-packaging.txt
  (see README.Debian for details)
* removed dependency on xlibmesa-dev, disabled opengl
* New upstream release
* Simon McVittie <hacks@pseudorandom.co.uk> wonderful work:
- Work around Debian bug #267442 (glibc's sys/uio.h and gcc's altivec.h have
  conflicting uses for __vector) by re-ordering #includes
- Fix potential symlink attack in ./configure
- Disable support for binary codecs on platforms for which those codecs
  aren't available; also disable the corresponding Debconf note when it's
  inappropriate
- Changed Build-Depends: so it works in pbuilder
- Explicitly build-depend on libjpeg62-dev, libfontconfig1-dev,
  libungif4-dev 
- Tweak debian/rules to avoid certain errors being ignored
- Use --language=all
* provide a target  'debian/rules get-orig-source' 
  that recreates the orig.tar.gz ; then use the above orig.tar.gz
* rewrote some parts of debian/rules
* don't clean and recompile docs if upstream ships them
* mplayer-doc was shipping too much stuff
* translated man pages where not installed properly
* compile with libdv4-dev
* correct README.Debian
* Forgot build-dep on libtheora
* Must not depend on libxvidcore
* New upstream release
* new release.
* rc1 to become 0.90
* new pre-release
* new pre-release
* gtk bug fixed.
* new release.
* version bumped
* 0.60 pre2 release
* 0.60 pre-release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
61
61
    static VLC_TYPE hdr_table[1 << MPC7_HDR_BITS][2];
62
62
    static VLC_TYPE quant_tables[7224][2];
63
63
 
 
64
    /* Musepack SV7 is always stereo */
 
65
    if (avctx->channels != 2) {
 
66
        av_log_ask_for_sample(avctx, "Unsupported number of channels: %d\n",
 
67
                              avctx->channels);
 
68
        return AVERROR_PATCHWELCOME;
 
69
    }
 
70
 
64
71
    if(avctx->extradata_size < 16){
65
72
        av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", avctx->extradata_size);
66
73
        return -1;
88
95
    c->frames_to_skip = 0;
89
96
 
90
97
    avctx->sample_fmt = AV_SAMPLE_FMT_S16;
91
 
    avctx->channel_layout = (avctx->channels==2) ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO;
 
98
    avctx->channel_layout = AV_CH_LAYOUT_STEREO;
92
99
 
93
100
    if(vlc_initialized) return 0;
94
101
    av_log(avctx, AV_LOG_DEBUG, "Initing VLC\n");
129
136
        }
130
137
    }
131
138
    vlc_initialized = 1;
 
139
 
 
140
    avcodec_get_frame_defaults(&c->frame);
 
141
    avctx->coded_frame = &c->frame;
 
142
 
132
143
    return 0;
133
144
}
134
145
 
185
196
    return ref + t;
186
197
}
187
198
 
188
 
static int mpc7_decode_frame(AVCodecContext * avctx,
189
 
                            void *data, int *data_size,
190
 
                            AVPacket *avpkt)
 
199
static int mpc7_decode_frame(AVCodecContext * avctx, void *data,
 
200
                             int *got_frame_ptr, AVPacket *avpkt)
191
201
{
192
202
    const uint8_t *buf = avpkt->data;
193
203
    int buf_size = avpkt->size;
197
207
    int i, ch;
198
208
    int mb = -1;
199
209
    Band *bands = c->bands;
200
 
    int off;
 
210
    int off, ret;
201
211
    int bits_used, bits_avail;
202
212
 
203
 
    memset(bands, 0, sizeof(bands));
 
213
    memset(bands, 0, sizeof(*bands) * (c->maxbands + 1));
204
214
    if(buf_size <= 4){
205
215
        av_log(avctx, AV_LOG_ERROR, "Too small buffer passed (%i bytes)\n", buf_size);
 
216
        return AVERROR(EINVAL);
 
217
    }
 
218
 
 
219
    /* get output buffer */
 
220
    c->frame.nb_samples = buf[1] ? c->lastframelen : MPC_FRAME_SIZE;
 
221
    if ((ret = avctx->get_buffer(avctx, &c->frame)) < 0) {
 
222
        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
 
223
        return ret;
206
224
    }
207
225
 
208
226
    bits = av_malloc(((buf_size - 1) & ~3) + FF_INPUT_BUFFER_PADDING_SIZE);
262
280
        for(ch = 0; ch < 2; ch++)
263
281
            idx_to_quant(c, &gb, bands[i].res[ch], c->Q[ch] + off);
264
282
 
265
 
    ff_mpc_dequantize_and_synth(c, mb, data, 2);
 
283
    ff_mpc_dequantize_and_synth(c, mb, c->frame.data[0], 2);
266
284
 
267
285
    av_free(bits);
268
286
 
274
292
    }
275
293
    if(c->frames_to_skip){
276
294
        c->frames_to_skip--;
277
 
        *data_size = 0;
 
295
        *got_frame_ptr = 0;
278
296
        return buf_size;
279
297
    }
280
 
    *data_size = (buf[1] ? c->lastframelen : MPC_FRAME_SIZE) * 4;
 
298
 
 
299
    *got_frame_ptr   = 1;
 
300
    *(AVFrame *)data = c->frame;
281
301
 
282
302
    return buf_size;
283
303
}
291
311
}
292
312
 
293
313
AVCodec ff_mpc7_decoder = {
294
 
    "mpc7",
295
 
    AVMEDIA_TYPE_AUDIO,
296
 
    CODEC_ID_MUSEPACK7,
297
 
    sizeof(MPCContext),
298
 
    mpc7_decode_init,
299
 
    NULL,
300
 
    NULL,
301
 
    mpc7_decode_frame,
 
314
    .name           = "mpc7",
 
315
    .type           = AVMEDIA_TYPE_AUDIO,
 
316
    .id             = CODEC_ID_MUSEPACK7,
 
317
    .priv_data_size = sizeof(MPCContext),
 
318
    .init           = mpc7_decode_init,
 
319
    .decode         = mpc7_decode_frame,
302
320
    .flush = mpc7_decode_flush,
 
321
    .capabilities   = CODEC_CAP_DR1,
303
322
    .long_name = NULL_IF_CONFIG_SMALL("Musepack SV7"),
304
323
};