pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/multimedia/libtheora Update to 1.0rc1:



details:   https://anonhg.NetBSD.org/pkgsrc/rev/4cf34f1a211a
branches:  trunk
changeset: 548162:4cf34f1a211a
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Thu Oct 09 19:46:55 2008 +0000

description:
Update to 1.0rc1:

libtheora 1.0rc1

 - Merge x86 assembly for forward DCT from Thusnelda branch.
 - Update 32 bit MMX with loop filter fix.
 - Check for an uninitialized state before dereferencing in propagating
   decode calls.
 - Remove all TH_DEBUG statements.
 - Rename the bitpacker source files imported from libogg to avoid
   confusing simple build systems using both libraries.
 - Add VS2008 project files.
 - Add explicit casts as a work-around for Solaris's cc ignoring the
   signedness of bitfield types.
 - Set quantization parameters to default values when an empty buffer is
   passed with TH_ENCCTL_SET_QUANT_PARAMS.
 - Split encoder and decoder tests depending on configure settings.
 - Return lstylex.sty to the distribution.
 - Disable inline assembly on gcc versions prior to 3.1.
 - Remove extern references for OC_*_QUANT_MIN.
 - Make various data tables static const so they can be read-only.
 - cpuid assembly fix for MSVC.
 - Remove ENCCTL codes from the old encoder API.
 - Implement TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE ctl.

diffstat:

 multimedia/libtheora/Makefile               |   10 +-
 multimedia/libtheora/PLIST                  |   85 +++++-
 multimedia/libtheora/distinfo               |    8 +-
 multimedia/libtheora/files/dct_decode_mmx.c |  409 ++++++++++++++++++++++++++++
 4 files changed, 499 insertions(+), 13 deletions(-)

diffs (truncated from 549 to 300 lines):

diff -r 93f078f93fe9 -r 4cf34f1a211a multimedia/libtheora/Makefile
--- a/multimedia/libtheora/Makefile     Thu Oct 09 19:20:36 2008 +0000
+++ b/multimedia/libtheora/Makefile     Thu Oct 09 19:46:55 2008 +0000
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.17 2008/04/23 12:26:47 tron Exp $
+# $NetBSD: Makefile,v 1.18 2008/10/09 19:46:55 wiz Exp $
 #
 
-DISTNAME=      libtheora-1.0beta3
+DISTNAME=      libtheora-1.0RC1
+PKGNAME=       libtheora-1.0rc1
 CATEGORIES=    multimedia
 MASTER_SITES=  http://downloads.xiph.org/releases/theora/
 EXTRACT_SUFX=  .tar.bz2
@@ -24,6 +25,11 @@
 CONFIGURE_ENV+=                ac_cv_prog_HAVE_DOXYGEN=no
 CONFIGURE_ENV+=                ac_cv_prog_HAVE_PDFLATEX=no
 
+PLIST_SUBST+=          SUBDIR=${DISTNAME}
+
+post-extract:
+       ${CP} ${FILESDIR}/dct_decode_mmx.c ${WRKSRC}/lib/enc/x86_64
+
 .include "../../mk/bsd.prefs.mk"
 
 .if !empty(MACHINE_PLATFORM:MDarwin-[9].*-i386)
diff -r 93f078f93fe9 -r 4cf34f1a211a multimedia/libtheora/PLIST
--- a/multimedia/libtheora/PLIST        Thu Oct 09 19:20:36 2008 +0000
+++ b/multimedia/libtheora/PLIST        Thu Oct 09 19:46:55 2008 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.8 2008/04/22 20:27:04 wiz Exp $
+@comment $NetBSD: PLIST,v 1.9 2008/10/09 19:46:55 wiz Exp $
 include/theora/codec.h
 include/theora/theora.h
 include/theora/theoradec.h
@@ -9,10 +9,81 @@
 lib/pkgconfig/theora.pc
 lib/pkgconfig/theoradec.pc
 lib/pkgconfig/theoraenc.pc
-share/doc/${PKGNAME}/color.html
-share/doc/${PKGNAME}/doxygen-build.stamp
-share/doc/${PKGNAME}/draft-ietf-avt-rtp-theora-00.txt
-share/doc/${PKGNAME}/draft-ietf-avt-rtp-theora-00.xml
-share/doc/${PKGNAME}/vp3-format.txt
-@dirrm share/doc/${PKGNAME}
+share/doc/${SUBDIR}/color.html
+share/doc/${SUBDIR}/doxygen-build.stamp
+share/doc/${SUBDIR}/draft-ietf-avt-rtp-theora-00.txt
+share/doc/${SUBDIR}/draft-ietf-avt-rtp-theora-00.xml
+share/doc/${SUBDIR}/html/annotated.html
+share/doc/${SUBDIR}/html/codec_8h-source.html
+share/doc/${SUBDIR}/html/codec_8h.html
+share/doc/${SUBDIR}/html/doxygen.css
+share/doc/${SUBDIR}/html/doxygen.png
+share/doc/${SUBDIR}/html/files.html
+share/doc/${SUBDIR}/html/functions.html
+share/doc/${SUBDIR}/html/functions_vars.html
+share/doc/${SUBDIR}/html/globals.html
+share/doc/${SUBDIR}/html/globals_defs.html
+share/doc/${SUBDIR}/html/globals_enum.html
+share/doc/${SUBDIR}/html/globals_eval.html
+share/doc/${SUBDIR}/html/globals_func.html
+share/doc/${SUBDIR}/html/globals_type.html
+share/doc/${SUBDIR}/html/globals_vars.html
+share/doc/${SUBDIR}/html/group__basefuncs.html
+share/doc/${SUBDIR}/html/group__decfuncs.html
+share/doc/${SUBDIR}/html/group__encfuncs.html
+share/doc/${SUBDIR}/html/group__oldfuncs.html
+share/doc/${SUBDIR}/html/index.html
+share/doc/${SUBDIR}/html/modules.html
+share/doc/${SUBDIR}/html/structth__comment.html
+share/doc/${SUBDIR}/html/structth__huff__code.html
+share/doc/${SUBDIR}/html/structth__img__plane.html
+share/doc/${SUBDIR}/html/structth__info.html
+share/doc/${SUBDIR}/html/structth__quant__info.html
+share/doc/${SUBDIR}/html/structth__quant__ranges.html
+share/doc/${SUBDIR}/html/structth__stripe__callback.html
+share/doc/${SUBDIR}/html/structtheora__comment.html
+share/doc/${SUBDIR}/html/structtheora__info.html
+share/doc/${SUBDIR}/html/structtheora__state.html
+share/doc/${SUBDIR}/html/structyuv__buffer.html
+share/doc/${SUBDIR}/html/tab_b.gif
+share/doc/${SUBDIR}/html/tab_l.gif
+share/doc/${SUBDIR}/html/tab_r.gif
+share/doc/${SUBDIR}/html/tabs.css
+share/doc/${SUBDIR}/html/theora_8h-source.html
+share/doc/${SUBDIR}/html/theora_8h.html
+share/doc/${SUBDIR}/html/theoradec_8h-source.html
+share/doc/${SUBDIR}/html/theoradec_8h.html
+share/doc/${SUBDIR}/html/theoraenc_8h-source.html
+share/doc/${SUBDIR}/html/theoraenc_8h.html
+share/doc/${SUBDIR}/latex/FreeSans.ttf
+share/doc/${SUBDIR}/latex/Makefile
+share/doc/${SUBDIR}/latex/annotated.tex
+share/doc/${SUBDIR}/latex/codec_8h.tex
+share/doc/${SUBDIR}/latex/doxygen.sty
+share/doc/${SUBDIR}/latex/files.tex
+share/doc/${SUBDIR}/latex/group__basefuncs.tex
+share/doc/${SUBDIR}/latex/group__decfuncs.tex
+share/doc/${SUBDIR}/latex/group__encfuncs.tex
+share/doc/${SUBDIR}/latex/group__oldfuncs.tex
+share/doc/${SUBDIR}/latex/index.tex
+share/doc/${SUBDIR}/latex/modules.tex
+share/doc/${SUBDIR}/latex/refman.tex
+share/doc/${SUBDIR}/latex/structth__comment.tex
+share/doc/${SUBDIR}/latex/structth__huff__code.tex
+share/doc/${SUBDIR}/latex/structth__img__plane.tex
+share/doc/${SUBDIR}/latex/structth__info.tex
+share/doc/${SUBDIR}/latex/structth__quant__info.tex
+share/doc/${SUBDIR}/latex/structth__quant__ranges.tex
+share/doc/${SUBDIR}/latex/structth__stripe__callback.tex
+share/doc/${SUBDIR}/latex/structtheora__comment.tex
+share/doc/${SUBDIR}/latex/structtheora__info.tex
+share/doc/${SUBDIR}/latex/structtheora__state.tex
+share/doc/${SUBDIR}/latex/structyuv__buffer.tex
+share/doc/${SUBDIR}/latex/theora_8h.tex
+share/doc/${SUBDIR}/latex/theoradec_8h.tex
+share/doc/${SUBDIR}/latex/theoraenc_8h.tex
+share/doc/${SUBDIR}/vp3-format.txt
+@dirrm share/doc/${SUBDIR}/latex
+@dirrm share/doc/${SUBDIR}/html
+@dirrm share/doc/${SUBDIR}
 @dirrm include/theora
diff -r 93f078f93fe9 -r 4cf34f1a211a multimedia/libtheora/distinfo
--- a/multimedia/libtheora/distinfo     Thu Oct 09 19:20:36 2008 +0000
+++ b/multimedia/libtheora/distinfo     Thu Oct 09 19:46:55 2008 +0000
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.11 2008/04/22 20:27:04 wiz Exp $
+$NetBSD: distinfo,v 1.12 2008/10/09 19:46:55 wiz Exp $
 
-SHA1 (libtheora-1.0beta3.tar.bz2) = 01f0a5adcdde5bdc5b7e700b5975067af60b456c
-RMD160 (libtheora-1.0beta3.tar.bz2) = 5308039be56064c7a54d464b0dc32f31542a34d8
-Size (libtheora-1.0beta3.tar.bz2) = 1531449 bytes
+SHA1 (libtheora-1.0RC1.tar.bz2) = b6157bff9d1953497f29bca49e5654958ab75c80
+RMD160 (libtheora-1.0RC1.tar.bz2) = 43e5c55b886fa1842dc077459377d7bbcc1ad338
+Size (libtheora-1.0RC1.tar.bz2) = 1697726 bytes
diff -r 93f078f93fe9 -r 4cf34f1a211a multimedia/libtheora/files/dct_decode_mmx.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/multimedia/libtheora/files/dct_decode_mmx.c       Thu Oct 09 19:46:55 2008 +0000
@@ -0,0 +1,409 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE.   *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2008                *
+ * by the Xiph.Org Foundation http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************
+
+  function:
+  last mod: $Id: dct_decode_mmx.c,v 1.1 2008/10/09 19:46:55 wiz Exp $
+
+ ********************************************************************/
+
+#include <stdlib.h>
+
+#include "codec_internal.h"
+
+#if defined(USE_ASM)
+
+static const __attribute__((aligned(8),used)) ogg_int64_t OC_V3=
+ 0x0003000300030003LL;
+static const __attribute__((aligned(8),used)) ogg_int64_t OC_V4=
+ 0x0004000400040004LL;
+
+static void loop_filter_v(unsigned char *_pix,int _ystride,
+                          const ogg_int16_t *_ll){
+  long esi;
+  _pix-=_ystride*2;
+  __asm__ __volatile__(
+    /*mm0=0*/
+    "pxor %%mm0,%%mm0\n\t"
+    /*esi=_ystride*3*/
+    "lea (%[ystride],%[ystride],2),%[s]\n\t"
+    /*mm7=_pix[0...8]*/
+    "movq (%[pix]),%%mm7\n\t"
+    /*mm4=_pix[0...8+_ystride*3]*/
+    "movq (%[pix],%[s]),%%mm4\n\t"
+    /*mm6=_pix[0...8]*/
+    "movq %%mm7,%%mm6\n\t"
+    /*Expand unsigned _pix[0...3] to 16 bits.*/
+    "punpcklbw %%mm0,%%mm6\n\t"
+    "movq %%mm4,%%mm5\n\t"
+    /*Expand unsigned _pix[4...8] to 16 bits.*/
+    "punpckhbw %%mm0,%%mm7\n\t"
+    /*Expand other arrays too.*/
+    "punpcklbw %%mm0,%%mm4\n\t"
+    "punpckhbw %%mm0,%%mm5\n\t"
+    /*mm7:mm6=_p[0...8]-_p[0...8+_ystride*3]:*/
+    "psubw %%mm4,%%mm6\n\t"
+    "psubw %%mm5,%%mm7\n\t"
+    /*mm5=mm4=_pix[0...8+_ystride]*/
+    "movq (%[pix],%[ystride]),%%mm4\n\t"
+    /*mm1=mm3=mm2=_pix[0..8]+_ystride*2]*/
+    "movq (%[pix],%[ystride],2),%%mm2\n\t"
+    "movq %%mm4,%%mm5\n\t"
+    "movq %%mm2,%%mm3\n\t"
+    "movq %%mm2,%%mm1\n\t"
+    /*Expand these arrays.*/
+    "punpckhbw %%mm0,%%mm5\n\t"
+    "punpcklbw %%mm0,%%mm4\n\t"
+    "punpckhbw %%mm0,%%mm3\n\t"
+    "punpcklbw %%mm0,%%mm2\n\t"
+    /*Preload...*/
+    "movq %[OC_V3],%%mm0\n\t"
+    /*mm3:mm2=_pix[0...8+_ystride*2]-_pix[0...8+_ystride]*/
+    "psubw %%mm5,%%mm3\n\t"
+    "psubw %%mm4,%%mm2\n\t"
+    /*Scale by 3.*/
+    "pmullw %%mm0,%%mm3\n\t"
+    "pmullw %%mm0,%%mm2\n\t"
+    /*Preload...*/
+    "movq %[OC_V4],%%mm0\n\t"
+    /*f=mm3:mm2==_pix[0...8]-_pix[0...8+_ystride*3]+
+       3*(_pix[0...8+_ystride*2]-_pix[0...8+_ystride])*/
+    "paddw %%mm7,%%mm3\n\t"
+    "paddw %%mm6,%%mm2\n\t"
+    /*Add 4.*/
+    "paddw %%mm0,%%mm3\n\t"
+    "paddw %%mm0,%%mm2\n\t"
+    /*"Divide" by 8.*/
+    "psraw $3,%%mm3\n\t"
+    "psraw $3,%%mm2\n\t"
+    /*Now compute lflim of mm3:mm2 cf. Section 7.10 of the sepc.*/
+    /*Free up mm5.*/
+    "packuswb %%mm5,%%mm4\n\t"
+    /*mm0=L L L L*/
+    "movq (%[ll]),%%mm0\n\t"
+    /*if(R_i<-2L||R_i>2L)R_i=0:*/
+    "movq %%mm2,%%mm5\n\t"
+    "pxor %%mm6,%%mm6\n\t"
+    "movq %%mm0,%%mm7\n\t"
+    "psubw %%mm0,%%mm6\n\t"
+    "psllw $1,%%mm7\n\t"
+    "psllw $1,%%mm6\n\t"
+    /*mm2==R_3 R_2 R_1 R_0*/
+    /*mm5==R_3 R_2 R_1 R_0*/
+    /*mm6==-2L -2L -2L -2L*/
+    /*mm7==2L 2L 2L 2L*/
+    "pcmpgtw %%mm2,%%mm7\n\t"
+    "pcmpgtw %%mm6,%%mm5\n\t"
+    "pand %%mm7,%%mm2\n\t"
+    "movq %%mm0,%%mm7\n\t"
+    "pand %%mm5,%%mm2\n\t"
+    "psllw $1,%%mm7\n\t"
+    "movq %%mm3,%%mm5\n\t"
+    /*mm3==R_7 R_6 R_5 R_4*/
+    /*mm5==R_7 R_6 R_5 R_4*/
+    /*mm6==-2L -2L -2L -2L*/
+    /*mm7==2L 2L 2L 2L*/
+    "pcmpgtw %%mm3,%%mm7\n\t"
+    "pcmpgtw %%mm6,%%mm5\n\t"
+    "pand %%mm7,%%mm3\n\t"
+    "movq %%mm0,%%mm7\n\t"
+    "pand %%mm5,%%mm3\n\t"
+    /*if(R_i<-L)R_i'=R_i+2L;
+      if(R_i>L)R_i'=R_i-2L;
+      if(R_i<-L||R_i>L)R_i=-R_i':*/
+    "psraw $1,%%mm6\n\t"
+    "movq %%mm2,%%mm5\n\t"
+    "psllw $1,%%mm7\n\t"
+    /*mm2==R_3 R_2 R_1 R_0*/
+    /*mm5==R_3 R_2 R_1 R_0*/
+    /*mm6==-L -L -L -L*/
+    /*mm0==L L L L*/
+    /*mm5=R_i>L?FF:00*/
+    "pcmpgtw %%mm0,%%mm5\n\t"
+    /*mm6=-L>R_i?FF:00*/
+    "pcmpgtw %%mm2,%%mm6\n\t"
+    /*mm7=R_i>L?2L:0*/
+    "pand %%mm5,%%mm7\n\t"
+    /*mm2=R_i>L?R_i-2L:R_i*/
+    "psubw %%mm7,%%mm2\n\t"
+    "movq %%mm0,%%mm7\n\t"
+    /*mm5=-L>R_i||R_i>L*/
+    "por %%mm6,%%mm5\n\t"
+    "psllw $1,%%mm7\n\t"
+    /*mm7=-L>R_i?2L:0*/
+    "pand %%mm6,%%mm7\n\t"
+    "pxor %%mm6,%%mm6\n\t"
+    /*mm2=-L>R_i?R_i+2L:R_i*/
+    "paddw %%mm7,%%mm2\n\t"
+    "psubw %%mm0,%%mm6\n\t"
+    /*mm5=-L>R_i||R_i>L?-R_i':0*/
+    "pand %%mm2,%%mm5\n\t"
+    "movq %%mm0,%%mm7\n\t"
+    /*mm2=-L>R_i||R_i>L?0:R_i*/
+    "psubw %%mm5,%%mm2\n\t"
+    "psllw $1,%%mm7\n\t"
+    /*mm2=-L>R_i||R_i>L?-R_i':R_i*/
+    "psubw %%mm5,%%mm2\n\t"
+    "movq %%mm3,%%mm5\n\t"
+    /*mm3==R_7 R_6 R_5 R_4*/
+    /*mm5==R_7 R_6 R_5 R_4*/
+    /*mm6==-L -L -L -L*/
+    /*mm0==L L L L*/
+    /*mm6=-L>R_i?FF:00*/



Home | Main Index | Thread Index | Old Index