~medibuntu-maintainers/mplayer/medibuntu.precise

« back to all changes in this revision

Viewing changes to ffmpeg/libavfilter/vf_yadif.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:
38
38
    int mode;
39
39
 
40
40
    /**
41
 
     *  0: bottom field first
42
 
     *  1: top field first
 
41
     *  0: top field first
 
42
     *  1: bottom field first
43
43
     * -1: auto-detection
44
44
     */
45
45
    int parity;
46
46
 
47
47
    int frame_pending;
48
48
 
 
49
    /**
 
50
     *  0: deinterlace all frames
 
51
     *  1: only deinterlace frames marked as interlaced
 
52
     */
 
53
    int auto_enable;
 
54
 
49
55
    AVFilterBufferRef *cur;
50
56
    AVFilterBufferRef *next;
51
57
    AVFilterBufferRef *prev;
139
145
        int w = dstpic->video->w;
140
146
        int h = dstpic->video->h;
141
147
        int refs = yadif->cur->linesize[i];
142
 
        int df = (yadif->csp->comp[i].depth_minus1+1) / 8;
 
148
        int df = (yadif->csp->comp[i].depth_minus1 + 8) / 8;
143
149
 
144
 
        if (i) {
 
150
        if (i == 1 || i == 2) {
145
151
        /* Why is this not part of the per-plane description thing? */
146
152
            w >>= yadif->csp->log2_chroma_w;
147
153
            h >>= yadif->csp->log2_chroma_h;
197
203
        tff = yadif->parity^1;
198
204
    }
199
205
 
200
 
    if (is_second)
 
206
    if (is_second) {
201
207
        yadif->out = avfilter_get_video_buffer(link, AV_PERM_WRITE | AV_PERM_PRESERVE |
202
208
                                               AV_PERM_REUSE, link->w, link->h);
 
209
        avfilter_copy_buffer_ref_props(yadif->out, yadif->cur);
 
210
        yadif->out->video->interlaced = 0;
 
211
    }
203
212
 
204
213
    if (!yadif->csp)
205
214
        yadif->csp = &av_pix_fmt_descriptors[link->format];
206
 
    if (yadif->csp->comp[0].depth_minus1 == 15)
 
215
    if (yadif->csp->comp[0].depth_minus1 / 8 == 1)
207
216
        yadif->filter_line = filter_line_c_16bit;
208
217
 
209
218
    filter(ctx, yadif->out, tff ^ !is_second, tff);
242
251
    if (!yadif->cur)
243
252
        return;
244
253
 
 
254
    if (yadif->auto_enable && !yadif->cur->video->interlaced) {
 
255
        yadif->out  = avfilter_ref_buffer(yadif->cur, AV_PERM_READ);
 
256
        avfilter_unref_buffer(yadif->prev);
 
257
        yadif->prev = NULL;
 
258
        avfilter_start_frame(ctx->outputs[0], yadif->out);
 
259
        return;
 
260
    }
 
261
 
245
262
    if (!yadif->prev)
246
263
        yadif->prev = avfilter_ref_buffer(yadif->cur, AV_PERM_READ);
247
264
 
261
278
    if (!yadif->out)
262
279
        return;
263
280
 
 
281
    if (yadif->auto_enable && !yadif->cur->video->interlaced) {
 
282
        avfilter_draw_slice(ctx->outputs[0], 0, link->h, 1);
 
283
        avfilter_end_frame(ctx->outputs[0]);
 
284
        return;
 
285
    }
 
286
 
264
287
    return_frame(ctx, 0);
265
288
}
266
289
 
301
324
    }
302
325
    assert(yadif->next || !val);
303
326
 
 
327
    if (yadif->auto_enable && yadif->next && !yadif->next->video->interlaced)
 
328
        return val;
 
329
 
304
330
    return val * ((yadif->mode&1)+1);
305
331
}
306
332
 
328
354
        AV_NE( PIX_FMT_GRAY16BE, PIX_FMT_GRAY16LE ),
329
355
        PIX_FMT_YUV440P,
330
356
        PIX_FMT_YUVJ440P,
 
357
        AV_NE( PIX_FMT_YUV420P10BE, PIX_FMT_YUV420P10LE ),
 
358
        AV_NE( PIX_FMT_YUV422P10BE, PIX_FMT_YUV422P10LE ),
 
359
        AV_NE( PIX_FMT_YUV444P10BE, PIX_FMT_YUV444P10LE ),
331
360
        AV_NE( PIX_FMT_YUV420P16BE, PIX_FMT_YUV420P16LE ),
332
361
        AV_NE( PIX_FMT_YUV422P16BE, PIX_FMT_YUV422P16LE ),
333
362
        AV_NE( PIX_FMT_YUV444P16BE, PIX_FMT_YUV444P16LE ),
 
363
        PIX_FMT_YUVA420P,
334
364
        PIX_FMT_NONE
335
365
    };
336
366
 
346
376
 
347
377
    yadif->mode = 0;
348
378
    yadif->parity = -1;
 
379
    yadif->auto_enable = 0;
349
380
    yadif->csp = NULL;
350
381
 
351
 
    if (args) sscanf(args, "%d:%d", &yadif->mode, &yadif->parity);
 
382
    if (args) sscanf(args, "%d:%d:%d", &yadif->mode, &yadif->parity, &yadif->auto_enable);
352
383
 
353
384
    yadif->filter_line = filter_line_c;
354
385
    if (HAVE_SSSE3 && cpu_flags & AV_CPU_FLAG_SSSE3)
358
389
    else if (HAVE_MMX && cpu_flags & AV_CPU_FLAG_MMX)
359
390
        yadif->filter_line = ff_yadif_filter_line_mmx;
360
391
 
361
 
    av_log(ctx, AV_LOG_INFO, "mode:%d parity:%d\n", yadif->mode, yadif->parity);
 
392
    av_log(ctx, AV_LOG_INFO, "mode:%d parity:%d auto_enable:%d\n", yadif->mode, yadif->parity, yadif->auto_enable);
362
393
 
363
394
    return 0;
364
395
}