~medibuntu-maintainers/mplayer/medibuntu.precise

« back to all changes in this revision

Viewing changes to ffmpeg/libavformat/iff.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:
32
32
#include "libavutil/intreadwrite.h"
33
33
#include "libavutil/dict.h"
34
34
#include "avformat.h"
 
35
#include "internal.h"
35
36
 
36
37
#define ID_8SVX       MKTAG('8','S','V','X')
37
38
#define ID_VHDR       MKTAG('V','H','D','R')
59
60
#define RIGHT   4
60
61
#define STEREO  6
61
62
 
62
 
#define PACKET_SIZE 1024
63
 
 
64
63
typedef enum {
65
64
    COMP_NONE,
66
65
    COMP_FIB,
76
75
    uint64_t  body_pos;
77
76
    uint32_t  body_size;
78
77
    uint32_t  sent_bytes;
79
 
    uint32_t  audio_frame_count;
80
78
} IffDemuxContext;
81
79
 
82
80
 
83
 
static void interleave_stereo(const uint8_t *src, uint8_t *dest, int size)
84
 
{
85
 
    uint8_t *end = dest + size;
86
 
    size = size>>1;
87
 
 
88
 
    while(dest < end) {
89
 
        *dest++ = *src;
90
 
        *dest++ = *(src+size);
91
 
        src++;
92
 
    }
93
 
}
94
 
 
95
81
/* Metadata string read */
96
82
static int get_metadata(AVFormatContext *s,
97
83
                        const char *const tag,
130
116
    uint32_t chunk_id, data_size;
131
117
    int compression = -1;
132
118
 
133
 
    st = av_new_stream(s, 0);
 
119
    st = avformat_new_stream(s, NULL);
134
120
    if (!st)
135
121
        return AVERROR(ENOMEM);
136
122
 
231
217
 
232
218
    switch(st->codec->codec_type) {
233
219
    case AVMEDIA_TYPE_AUDIO:
234
 
        av_set_pts_info(st, 32, 1, st->codec->sample_rate);
 
220
        avpriv_set_pts_info(st, 32, 1, st->codec->sample_rate);
235
221
 
236
222
        switch(compression) {
237
223
        case COMP_NONE:
238
 
            st->codec->codec_id = CODEC_ID_PCM_S8;
 
224
            st->codec->codec_id = CODEC_ID_PCM_S8_PLANAR;
239
225
            break;
240
226
        case COMP_FIB:
241
227
            st->codec->codec_id = CODEC_ID_8SVX_FIB;
278
264
{
279
265
    IffDemuxContext *iff = s->priv_data;
280
266
    AVIOContext *pb = s->pb;
281
 
    AVStream *st = s->streams[0];
282
267
    int ret;
283
268
 
284
269
    if(iff->sent_bytes >= iff->body_size)
285
 
        return AVERROR(EIO);
286
 
 
287
 
    if(st->codec->channels == 2) {
288
 
        uint8_t sample_buffer[PACKET_SIZE];
289
 
 
290
 
        ret = avio_read(pb, sample_buffer, PACKET_SIZE);
291
 
        if(av_new_packet(pkt, PACKET_SIZE) < 0) {
292
 
            av_log(s, AV_LOG_ERROR, "cannot allocate packet\n");
293
 
            return AVERROR(ENOMEM);
294
 
        }
295
 
        interleave_stereo(sample_buffer, pkt->data, PACKET_SIZE);
296
 
    } else if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
297
 
        ret = av_get_packet(pb, pkt, iff->body_size);
298
 
    } else {
299
 
        ret = av_get_packet(pb, pkt, PACKET_SIZE);
300
 
    }
 
270
        return AVERROR_EOF;
 
271
 
 
272
    ret = av_get_packet(pb, pkt, iff->body_size);
 
273
    if (ret < 0)
 
274
        return ret;
301
275
 
302
276
    if(iff->sent_bytes == 0)
303
277
        pkt->flags |= AV_PKT_FLAG_KEY;
 
278
    iff->sent_bytes = iff->body_size;
304
279
 
305
 
    if(st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
306
 
        iff->sent_bytes += PACKET_SIZE;
307
 
    } else {
308
 
        iff->sent_bytes = iff->body_size;
309
 
    }
310
280
    pkt->stream_index = 0;
311
 
    if(st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
312
 
        pkt->pts = iff->audio_frame_count;
313
 
        iff->audio_frame_count += ret / st->codec->channels;
314
 
    }
315
281
    return ret;
316
282
}
317
283
 
318
284
AVInputFormat ff_iff_demuxer = {
319
 
    "IFF",
320
 
    NULL_IF_CONFIG_SMALL("IFF format"),
321
 
    sizeof(IffDemuxContext),
322
 
    iff_probe,
323
 
    iff_read_header,
324
 
    iff_read_packet,
 
285
    .name           = "IFF",
 
286
    .long_name      = NULL_IF_CONFIG_SMALL("IFF format"),
 
287
    .priv_data_size = sizeof(IffDemuxContext),
 
288
    .read_probe     = iff_probe,
 
289
    .read_header    = iff_read_header,
 
290
    .read_packet    = iff_read_packet,
325
291
};