~medibuntu-maintainers/mplayer/medibuntu.precise

« back to all changes in this revision

Viewing changes to ffmpeg/libavcodec/pcm-mpeg.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:
119
119
    return 0;
120
120
}
121
121
 
122
 
static int pcm_bluray_decode_frame(AVCodecContext *avctx,
123
 
                                   void *data,
124
 
                                   int *data_size,
125
 
                                   AVPacket *avpkt)
 
122
typedef struct PCMBRDecode {
 
123
    AVFrame frame;
 
124
} PCMBRDecode;
 
125
 
 
126
static av_cold int pcm_bluray_decode_init(AVCodecContext * avctx)
 
127
{
 
128
    PCMBRDecode *s = avctx->priv_data;
 
129
 
 
130
    avcodec_get_frame_defaults(&s->frame);
 
131
    avctx->coded_frame = &s->frame;
 
132
 
 
133
    return 0;
 
134
}
 
135
 
 
136
static int pcm_bluray_decode_frame(AVCodecContext *avctx, void *data,
 
137
                                   int *got_frame_ptr, AVPacket *avpkt)
126
138
{
127
139
    const uint8_t *src = avpkt->data;
128
140
    int buf_size = avpkt->size;
 
141
    PCMBRDecode *s = avctx->priv_data;
129
142
    int num_source_channels, channel, retval;
130
 
    int sample_size, samples, output_size;
131
 
    int16_t *dst16 = data;
132
 
    int32_t *dst32 = data;
 
143
    int sample_size, samples;
 
144
    int16_t *dst16;
 
145
    int32_t *dst32;
133
146
 
134
147
    if (buf_size < 4) {
135
148
        av_log(avctx, AV_LOG_ERROR, "PCM packet too small\n");
146
159
    sample_size = (num_source_channels * avctx->bits_per_coded_sample) >> 3;
147
160
    samples = buf_size / sample_size;
148
161
 
149
 
    output_size = samples * avctx->channels *
150
 
                  (avctx->sample_fmt == AV_SAMPLE_FMT_S32 ? 4 : 2);
151
 
    if (output_size > *data_size) {
152
 
        av_log(avctx, AV_LOG_ERROR,
153
 
               "Insufficient output buffer space (%d bytes, needed %d bytes)\n",
154
 
               *data_size, output_size);
155
 
        return -1;
 
162
    /* get output buffer */
 
163
    s->frame.nb_samples = samples;
 
164
    if ((retval = avctx->get_buffer(avctx, &s->frame)) < 0) {
 
165
        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
 
166
        return retval;
156
167
    }
157
 
    *data_size = output_size;
 
168
    dst16 = (int16_t *)s->frame.data[0];
 
169
    dst32 = (int32_t *)s->frame.data[0];
158
170
 
159
171
    if (samples) {
160
172
        switch (avctx->channel_layout) {
165
177
            samples *= num_source_channels;
166
178
            if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) {
167
179
#if HAVE_BIGENDIAN
168
 
                memcpy(dst16, src, output_size);
 
180
                memcpy(dst16, src, buf_size);
169
181
#else
170
182
                do {
171
183
                    *dst16++ = bytestream_get_be16(&src);
289
301
        }
290
302
    }
291
303
 
 
304
    *got_frame_ptr   = 1;
 
305
    *(AVFrame *)data = s->frame;
 
306
 
292
307
    retval = src - avpkt->data;
293
308
    if (avctx->debug & FF_DEBUG_BITSTREAM)
294
309
        av_dlog(avctx, "pcm_bluray_decode_frame: decoded %d -> %d bytes\n",
295
 
                retval, *data_size);
 
310
                retval, buf_size);
296
311
    return retval;
297
312
}
298
313
 
299
314
AVCodec ff_pcm_bluray_decoder = {
300
 
    "pcm_bluray",
301
 
    AVMEDIA_TYPE_AUDIO,
302
 
    CODEC_ID_PCM_BLURAY,
303
 
    0,
304
 
    NULL,
305
 
    NULL,
306
 
    NULL,
307
 
    pcm_bluray_decode_frame,
 
315
    .name           = "pcm_bluray",
 
316
    .type           = AVMEDIA_TYPE_AUDIO,
 
317
    .id             = CODEC_ID_PCM_BLURAY,
 
318
    .priv_data_size = sizeof(PCMBRDecode),
 
319
    .init           = pcm_bluray_decode_init,
 
320
    .decode         = pcm_bluray_decode_frame,
 
321
    .capabilities   = CODEC_CAP_DR1,
308
322
    .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32,
309
323
                                         AV_SAMPLE_FMT_NONE},
310
324
    .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16|20|24-bit big-endian for Blu-ray media"),