Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=0f80ca3941b33cfc76aece4db41601489bf0f626

commit 0f80ca3941b33cfc76aece4db41601489bf0f626
Author: Melko <me...@frugalware.org>
Date:   Wed Aug 3 16:56:20 2011 +0200

opencv-2.2.0-2-i686

* rebuild with ffmpeg-0.8

diff --git a/source/xmultimedia-extra/opencv/FrugalBuild 
b/source/xmultimedia-extra/opencv/FrugalBuild
index ee66ec7..e29ea39 100644
--- a/source/xmultimedia-extra/opencv/FrugalBuild
+++ b/source/xmultimedia-extra/opencv/FrugalBuild
@@ -3,7 +3,7 @@

pkgname=opencv
pkgver=2.2.0
-pkgrel=1
+pkgrel=2
pkgdesc="Intel(R) Open Source Computer Vision Library"
url="http://opencv.willowgarage.com";
depends=('jasper' 'gst-plugins-base' 'openexr' \
@@ -25,9 +25,10 @@ Finclude sourceforge cmake
groups=('xmultimedia-extra')
archs=('i686' 'x86_64')
_F_cd_path="$_F_sourceforge_name-$pkgver"
-source=($source ptrcvcapture.patch OpenCV-2.2-nov4l1.patch)
+source=($source ptrcvcapture.patch OpenCV-2.2-nov4l1.patch 
ffmpeg08_build.patch)
sha1sums=('984ed71672d50391d0617fce2ef58e7590ec0fd7' \
'7f49f7b25d93b734435dc572b65f0e2f45f42645' \
-          '40987ad833f6b44cfca6cd19eb0dcc758afce64c')
+          '40987ad833f6b44cfca6cd19eb0dcc758afce64c' \
+          '80339928d442af65c6b6a8028fec84831cfd70a3')

# optimization OK
diff --git a/source/xmultimedia-extra/opencv/ffmpeg08_build.patch 
b/source/xmultimedia-extra/opencv/ffmpeg08_build.patch
new file mode 100644
index 0000000..c298016
--- /dev/null
+++ b/source/xmultimedia-extra/opencv/ffmpeg08_build.patch
@@ -0,0 +1,155 @@
+--- OpenCV-2.2.0/modules/highgui/src/cap_ffmpeg.cpp.old        2011-08-03 
16:41:31.890987657 +0200
++++ OpenCV-2.2.0/modules/highgui/src/cap_ffmpeg.cpp    2011-08-03 
16:41:57.232987643 +0200
+@@ -466,7 +466,7 @@
+         AVCodecContext *enc = &ic->streams[i]->codec;
+ #endif
+
+-        if( CODEC_TYPE_VIDEO == enc->codec_type && video_stream < 0) {
++        if( AVMEDIA_TYPE_VIDEO == enc->codec_type && video_stream < 0) {
+             AVCodec *codec = avcodec_find_decoder(enc->codec_id);
+             if (!codec ||
+             avcodec_open(enc, codec) < 0)
+@@ -550,15 +550,27 @@
+                       continue;
+               }
+
+-#if LIBAVFORMAT_BUILD > 4628
+-        avcodec_decode_video(video_st->codec,
+-                             picture, &got_picture,
+-                             packet.data, packet.size);
+-#else
+-        avcodec_decode_video(&video_st->codec,
+-                             picture, &got_picture,
+-                             packet.data, packet.size);
+-#endif
++
++              AVPacket avpkt;
++              av_init_packet(&avpkt);
++              avpkt.data = packet.data;
++              avpkt.size = packet.size;
++              //
++              // HACK for CorePNG to decode as normal PNG by default
++              // same method used by ffmpeg
++              avpkt.flags = AV_PKT_FLAG_KEY;
++              avcodec_decode_video2(video_st->codec,
++                              picture, &got_picture, &avpkt);
++//Functions Removed from ffmpeg on 4/19/11
++//#if LIBAVFORMAT_BUILD > 4628
++//        avcodec_decode_video(video_st->codec,
++//                             picture, &got_picture,
++//                             packet.data, packet.size);
++//#else
++//        avcodec_decode_video(&video_st->codec,
++//                             picture, &got_picture,
++//                             packet.data, packet.size);
++//#endif
+
+         if (got_picture) {
+             // we have a new picture, so memorize it
+@@ -803,24 +815,25 @@
+ #endif
+ };
+
+-static const char * icvFFMPEGErrStr(int err)
+-{
+-    switch(err) {
+-    case AVERROR_NUMEXPECTED:
+-              return "Incorrect filename syntax";
+-    case AVERROR_INVALIDDATA:
+-              return "Invalid data in header";
+-    case AVERROR_NOFMT:
+-              return "Unknown format";
+-    case AVERROR_IO:
+-              return "I/O error occurred";
+-    case AVERROR_NOMEM:
+-              return "Memory allocation error";
+-    default:
+-              break;
+-    }
+-      return "Unspecified error";
+-}
++//Deprecated Errors, should be using AVERROR(EINVAL) to return error strings
++//static const char * icvFFMPEGErrStr(int err)
++//{
++//    switch(err) {
++//    case AVERROR_NUMEXPECTED:
++//            return "Incorrect filename syntax";
++//    case AVERROR_INVALIDDATA:
++//            return "Invalid data in header";
++//    case AVERROR_NOFMT:
++//            return "Unknown format";
++//    case AVERROR_IO:
++//            return "I/O error occurred";
++//    case AVERROR_NOMEM:
++//            return "Memory allocation error";
++//    default:
++//            break;
++//    }
++//    return "Unspecified error";
++//}
+
+ /* function internal to FFMPEG (libavformat/riff.c) to lookup codec id by 
fourcc tag*/
+ extern "C" {
+@@ -899,7 +912,7 @@
+ #endif
+
+ #if LIBAVFORMAT_BUILD > 4621
+-      c->codec_id = av_guess_codec(oc->oformat, NULL, oc->filename, NULL, 
CODEC_TYPE_VIDEO);
++      c->codec_id = av_guess_codec(oc->oformat, NULL, oc->filename, NULL, 
AVMEDIA_TYPE_VIDEO);
+ #else
+       c->codec_id = oc->oformat->video_codec;
+ #endif
+@@ -911,7 +924,7 @@
+     //if(codec_tag) c->codec_tag=codec_tag;
+       codec = avcodec_find_encoder(c->codec_id);
+
+-      c->codec_type = CODEC_TYPE_VIDEO;
++      c->codec_type = AVMEDIA_TYPE_VIDEO;
+
+       /* put sample parameters */
+       c->bit_rate = bitrate;
+@@ -998,7 +1011,7 @@
+         AVPacket pkt;
+         av_init_packet(&pkt);
+
+-        pkt.flags |= PKT_FLAG_KEY;
++        pkt.flags |= AV_PKT_FLAG_KEY;
+         pkt.stream_index= video_st->index;
+         pkt.data= (uint8_t *)picture;
+         pkt.size= sizeof(AVPicture);
+@@ -1018,7 +1031,7 @@
+                       pkt.pts = c->coded_frame->pts;
+ #endif
+             if(c->coded_frame->key_frame)
+-                pkt.flags |= PKT_FLAG_KEY;
++                pkt.flags |= AV_PKT_FLAG_KEY;
+             pkt.stream_index= video_st->index;
+             pkt.data= outbuf;
+             pkt.size= out_size;
+@@ -1215,7 +1228,7 @@
+       av_register_all ();
+
+       /* auto detect the output format from the name and fourcc code. */
+-      fmt = guess_format(NULL, filename, NULL);
++      fmt = av_guess_format(NULL, filename, NULL);
+       if (!fmt)
+         return false;
+
+@@ -1238,7 +1251,7 @@
+ #endif
+
+     // alloc memory for context
+-      oc = av_alloc_format_context();
++      oc = avformat_alloc_context();
+       assert (oc);
+
+       /* set file name */
+@@ -1310,7 +1323,7 @@
+     /* open the codec */
+     if ( (err=avcodec_open(c, codec)) < 0) {
+               char errtext[256];
+-              sprintf(errtext, "Could not open codec '%s': %s", codec->name, 
icvFFMPEGErrStr(err));
++              sprintf(errtext, "Could not open codec '%s': %s", codec->name, 
AVERROR(EINVAL));
+               CV_Error(CV_StsBadArg, errtext);
+     }
+
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to