Commits

Anonymous committed 1675b49

Build opal

Signed-off-by: benreilly <benreilly@vector.Linux.net>

Comments (0)

Files changed (2)

var/vabs/opal/src/opal.SlackBuild

 
 #CFLAGS SETUP
 #--------------------------------------------
+
+# The -D__STDC_CONSTANT_MACROS thing is required to build
+# against ffmpeg 0.6
+# Retrieved from
+#  http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-libs/opal/opal-3.6.7.ebuild?r1=1.3&r2=1.4
+# Thanks to the Gentoo folks for coming up with this fix!
 if [[ "$ARCH" = i?86 ]]; then
   ARCH=i586
-  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+  SLKCFLAGS="-O2 -march=i586 -mtune=i686 -D__STDC_CONSTANT_MACROS"
   CONFIGURE_TRIPLET="i486-slackware-linux"
   LIBDIRSUFFIX=""
 elif [ "$ARCH" = "x86_64" ]; then
-  SLKCFLAGS="-O2 -fpic"
+  SLKCFLAGS="-O2 -fpic -D__STDC_CONSTANT_MACROS"
   CONFIGURE_TRIPLET="x86_64-slackware-linux"
   LIBDIRSUFFIX="64"
 elif [ "$ARCH" = "powerpc" ]; then
-  SLKCFLAGS="-O2"
+  SLKCFLAGS="-O2 -D__STDC_CONSTANT_MACROS"
   CONFIGURE_TRIPLET="powerpc-vlocity-linux"
   LIBDIRSUFFIX=""
 fi
 
-# -D__STDC_CONSTANT_MACROS flag fix the UINT64_C undefine error
-# The -D__STDC_CONSTANT_MACROS thing is required to build
-# against ffmpeg 0.6
-# Retrieved from
-#  http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-libs/opal/opal-3.6.7.ebuild?r1=1.3&r2=1.4
-# Thanks to the Gentoo folks for coming up with this fix!
-export CFLAGS="$SLKCFLAGS $CFLAG_OPTIONS -D__STDC_CONSTANT_MACROS"
+export CFLAGS="$SLKCFLAGS $CFLAG_OPTIONS"
 export CXXFLAGS=$CFLAGS
 export LDFLAGS="$LDFLAGS $LDFLAG_OPTIONS"
 #--------------------------------------------
 
 cd $TMP/$NAME-$VERSION
 
+(
+  cd plugins
+  aclocal
+  autoconf
+)
+
 # Put any Patches into a patches folder in the src dir
 #-----------------------------------------------------
-#for i in $CWD/patches/*;do
-#	patch -p1 <$i
-#done
+for i in $CWD/patches/*;do
+#  patch -p1 <$i
+  mkdir -p $PKG/usr/doc/$NAME-$VERSION/patches/
+  cp $i $PKG/usr/doc/$NAME-$VERSION/patches/
+done
 #-----------------------------------------------------
 
+# Thanks to ArchLinux for this patch, rewritten for this version
+#patch -p1 < $CWD/patches/opal-ffmpeg-gcc.patch
 
 #SET PERMISSIONS
 #-----------------------------------------
   --with-included-gettext \
   --disable-debug \
   --enable-shared \
-  --enable-zrtp \
-  --enable-java \
-  --enable-video \
-  --enable-sip \
-  --enable-h323 \
-  --enable-iax \
-  --enable-h224 \
-  --enable-h281 \
-  --enable-t38 \
-  --enable-msrp \
-  --enable-sipim \
-  --enable-rfc4103 \
-  --enable-fax \
-  --enable-h450 \
-  --enable-h460 \
-  --enable-h501 \
-  --enable-lid \
-  --enable-ivr \
-  --enable-rfc4175 \
-  --enable-aec \
-  --enable-g711plc \
-  --enable-statistics \
-  --enable-plugins \
   --program-prefix="" \
   --program-suffix="" \
   --build=$CONFIGURE_TRIPLET \
 #Miscellenious tweaks and things outside a normal ./configure go here #
 #######################################################################
 
+# Remove static library
+rm $PKG/usr/lib${LIBDIRSUFFIX}/libopal_s.a
 
 mkdir -p $PKG/usr/doc/$NAME-$VERSION
-cp -a ChangeLog* $PKG/usr/doc/$NAME-$VERSION
+cp -a ChangeLog* mpl* $PKG/usr/doc/$NAME-$VERSION
 cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild
 
 #----------------------------------------------------------------------

var/vabs/opal/src/patches/opal-ffmpeg-gcc.patch

+diff -Naur opal-3.10.7.orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.7/plugins/video/H.263-1998/h263-1998.cxx
+--- opal-3.10.7.orig/plugins/video/H.263-1998/h263-1998.cxx	2012-08-23 04:18:42.000000000 +0200
++++ opal-3.10.7/plugins/video/H.263-1998/h263-1998.cxx	2012-09-11 21:22:27.429998081 +0200
+@@ -48,6 +48,7 @@
+ #endif
+ 
+ #include "h263-1998.h"
++#include <libavutil/opt.h>
+ #include <limits>
+ #include <iomanip>
+ #include <stdio.h>
+@@ -317,9 +318,9 @@
+     // Level 2+ 
+     // works with eyeBeam, signaled via  non-standard "D"
+     if (atoi(value) == 1)
+-      m_context->flags |= CODEC_FLAG_H263P_UMV; 
++      av_opt_set_int(m_context->priv_data, "umv", 1, 0); 
+     else
+-      m_context->flags &= ~CODEC_FLAG_H263P_UMV; 
++      av_opt_set_int(m_context->priv_data, "umv", 0, 0); 
+     return;
+   }
+ 
+@@ -328,9 +329,9 @@
+     // Annex F: Advanced Prediction Mode
+     // does not work with eyeBeam
+     if (atoi(value) == 1)
+-      m_context->flags |= CODEC_FLAG_OBMC; 
++      av_opt_set_int(m_context->priv_data, "obmc", 1, 0); 
+     else
+-      m_context->flags &= ~CODEC_FLAG_OBMC; 
++      av_opt_set_int(m_context->priv_data, "obmc", 0, 0); 
+     return;
+   }
+ #endif
+@@ -360,9 +361,9 @@
+     // Annex K: Slice Structure
+     // does not work with eyeBeam
+     if (atoi(value) != 0)
+-      m_context->flags |= CODEC_FLAG_H263P_SLICE_STRUCT; 
++      av_opt_set_int(m_context->priv_data, "structured_slices", 1, 0); 
+     else
+-      m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT; 
++      av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0); 
+     return;
+   }
+ 
+@@ -370,9 +371,9 @@
+     // Annex S: Alternative INTER VLC mode
+     // does not work with eyeBeam
+     if (atoi(value) == 1)
+-      m_context->flags |= CODEC_FLAG_H263P_AIV; 
++      av_opt_set_int(m_context->priv_data, "aiv", 1, 0); 
+     else
+-      m_context->flags &= ~CODEC_FLAG_H263P_AIV; 
++      av_opt_set_int(m_context->priv_data, "aiv", 0, 0); 
+     return;
+   }
+ 
+@@ -450,15 +451,6 @@
+   PTRACE(5, m_prefix, "qmax set to " << m_context->qmax);
+   PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size);
+ 
+-  #define CODEC_TRACER_FLAG(tracer, flag) \
+-    PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enabled" : "disabled"));
+-  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV);
+-  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC);
+-  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_AC_PRED);
+-  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT)
+-  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_LOOP_FILTER);
+-  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV);
+-
+   return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0;
+ }
+ 
+@@ -521,7 +513,7 @@
+ 
+     // Need to copy to local buffer to guarantee 16 byte alignment
+     memcpy(m_inputFrame->data[0], OPAL_VIDEO_FRAME_DATA_PTR(header), header->width*header->height*3/2);
+-    m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? FF_I_TYPE : AV_PICTURE_TYPE_NONE;
++    m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_NONE;
+ 
+     /*
+     m_inputFrame->pts = (int64_t)srcRTP.GetTimestamp()*m_context->time_base.den/m_context->time_base.num/VIDEO_CLOCKRATE;
+@@ -603,13 +595,13 @@
+   m_context->rtp_callback = &H263_RFC2190_EncoderContext::RTPCallBack;
+   m_context->opaque = this; // used to separate out packets from different encode threads
+ 
+-  m_context->flags &= ~CODEC_FLAG_H263P_UMV;
++  av_opt_set_int(m_context->priv_data, "umv", 0, 0);
+   m_context->flags &= ~CODEC_FLAG_4MV;
+ #if LIBAVCODEC_RTP_MODE
+   m_context->flags &= ~CODEC_FLAG_H263P_AIC;
+ #endif
+-  m_context->flags &= ~CODEC_FLAG_H263P_AIV;
+-  m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
++  av_opt_set_int(m_context->priv_data, "aiv", 0, 0);
++  av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0);
+ 
+   return true;
+ }
+diff -Naur opal-3.10.7.orig/plugins/video/H.264/h264-x264.cxx opal-3.10.7/plugins/video/H.264/h264-x264.cxx
+--- opal-3.10.7.orig/plugins/video/H.264/h264-x264.cxx	2012-08-23 04:18:41.000000000 +0200
++++ opal-3.10.7/plugins/video/H.264/h264-x264.cxx	2012-09-11 21:25:33.654998816 +0200
+@@ -1071,13 +1071,10 @@
+         return false;
+ 
+       m_context->workaround_bugs = FF_BUG_AUTODETECT;
+-      m_context->error_recognition = FF_ER_AGGRESSIVE;
+       m_context->idct_algo = FF_IDCT_H264;
+       m_context->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
+       m_context->flags = CODEC_FLAG_INPUT_PRESERVED | CODEC_FLAG_EMU_EDGE;
+-      m_context->flags2 = CODEC_FLAG2_BRDO |
+-                          CODEC_FLAG2_MEMC_ONLY |
+-                          CODEC_FLAG2_DROP_FRAME_TIMECODE |
++      m_context->flags2 = CODEC_FLAG2_DROP_FRAME_TIMECODE |
+                           CODEC_FLAG2_SKIP_RD |
+                           CODEC_FLAG2_CHUNKS;
+ 
+diff -Naur opal-3.10.7.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.7/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
+--- opal-3.10.7.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx	2012-08-23 04:18:44.000000000 +0200
++++ opal-3.10.7/plugins/video/MPEG4-ffmpeg/mpeg4.cxx	2012-09-11 21:33:10.256012246 +0200
+@@ -589,17 +589,17 @@
+     m_avpicture->quality = m_videoQMin;
+ 
+ #ifdef USE_ORIG
+-    m_avcontext->flags |= CODEC_FLAG_PART;   // data partitioning
++    av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0);
+     m_avcontext->flags |= CODEC_FLAG_4MV;    // 4 motion vectors
+ #else
+     m_avcontext->max_b_frames=0; /*don't use b frames*/
+     m_avcontext->flags|=CODEC_FLAG_AC_PRED;
+-    m_avcontext->flags|=CODEC_FLAG_H263P_UMV;
++    av_opt_set_int(m_avcontext->priv_data, "umv", 1, 0);
+     /*c->flags|=CODEC_FLAG_QPEL;*/ /*don't enable this one: this forces profile_level to advanced simple profile */
+     m_avcontext->flags|=CODEC_FLAG_4MV;
+     m_avcontext->flags|=CODEC_FLAG_GMC;
+     m_avcontext->flags|=CODEC_FLAG_LOOP_FILTER;
+-    m_avcontext->flags|=CODEC_FLAG_H263P_SLICE_STRUCT;
++    av_opt_set_int(m_avcontext->priv_data, "structured_slices", 1, 0);
+ #endif
+     m_avcontext->opaque = this;              // for use in RTP callback
+ }
+@@ -804,7 +804,7 @@
+         // Should the next frame be an I-Frame?
+         if ((flags & PluginCodec_CoderForceIFrame) || (m_frameNum == 0))
+         {
+-            m_avpicture->pict_type = FF_I_TYPE;
++            m_avpicture->pict_type = AV_PICTURE_TYPE_I;
+         }
+         else // No IFrame requested, let avcodec decide what to do
+         {
+@@ -1325,7 +1325,7 @@
+ 
+ void MPEG4DecoderContext::SetStaticDecodingParams() {
+     m_avcontext->flags |= CODEC_FLAG_4MV; 
+-    m_avcontext->flags |= CODEC_FLAG_PART;
++    av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0); 
+     m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations
+ }
+ 
+diff -Naur opal-3.10.7.orig/plugins/video/common/ffmpeg.h opal-3.10.7/plugins/video/common/ffmpeg.h
+--- opal-3.10.7.orig/plugins/video/common/ffmpeg.h	2012-08-23 04:18:43.000000000 +0200
++++ opal-3.10.7/plugins/video/common/ffmpeg.h	2012-09-11 21:29:08.505015076 +0200
+@@ -46,6 +46,7 @@
+ #include "platform.h"
+ 
+ #include "libavcodec/avcodec.h"
++#include <libavutil/opt.h>
+ // AVPacket was declared in avformat.h before April 2009
+ #if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(52, 25, 0)
+ #include "libavformat/avformat.h"