[PD-cvs] SF.net SVN: pure-data: [9987] trunk/externals/pdvjtools/videogrid/videogrid .cc

sergi_ll at users.sourceforge.net sergi_ll at users.sourceforge.net
Thu Jun 12 18:33:28 CEST 2008


Revision: 9987
          http://pure-data.svn.sourceforge.net/pure-data/?rev=9987&view=rev
Author:   sergi_ll
Date:     2008-06-12 09:33:28 -0700 (Thu, 12 Jun 2008)

Log Message:
-----------
libswscale-dev use

Modified Paths:
--------------
    trunk/externals/pdvjtools/videogrid/videogrid.cc

Modified: trunk/externals/pdvjtools/videogrid/videogrid.cc
===================================================================
--- trunk/externals/pdvjtools/videogrid/videogrid.cc	2008-06-12 13:12:39 UTC (rev 9986)
+++ trunk/externals/pdvjtools/videogrid/videogrid.cc	2008-06-12 16:33:28 UTC (rev 9987)
@@ -35,10 +35,14 @@
 /* incloure estructures de dades i capceleres de funcions per traballar amb threads */
 #include "pthread.h"
 
+/*some linux distros need this to compile ffmpeg correctly as cpp*/
+#define __STDC_CONSTANT_MACROS 1 
+
 /*ffmpeg includes*/
 #include <ffmpeg/avcodec.h>
 #include <ffmpeg/avformat.h>
 #include <ffmpeg/avutil.h>
+#include <ffmpeg/swscale.h>
 
 /*libquicktime includes*/
 //#include <quicktime/lqt.h>
@@ -139,6 +143,8 @@
     int             frameFinished;
     int             numBytes;
     uint8_t         *buffer;
+    static int sws_flags = SWS_BICUBIC;
+    struct SwsContext *img_convert_ctx;
 
     int nN = posi;
 
@@ -215,10 +221,20 @@
             if(frameFinished)
             {
                 // Convert the image from its native format to RGB
-                img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGB24, 
-                    (AVPicture*)pFrame, pCodecCtx->pix_fmt, pCodecCtx->width, 
-                    pCodecCtx->height);
+                //img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGB24, 
+                //    (AVPicture*)pFrame, pCodecCtx->pix_fmt, pCodecCtx->width, 
+                //    pCodecCtx->height);
+       		img_convert_ctx = sws_getContext(    pCodecCtx->width, pCodecCtx->height,
+                          		pCodecCtx->pix_fmt,
+                                        pCodecCtx->width, pCodecCtx->height,
+                                        PIX_FMT_RGB24,
+                                        sws_flags, NULL, NULL, NULL);
 
+       		sws_scale (img_convert_ctx, pFrame->data, pFrame->linesize,
+           			0, pCodecCtx->height,
+           			pFrameRGB->data, pFrameRGB->linesize);
+       		sws_freeContext(img_convert_ctx);
+
                 // Save the frame to disk
                     SaveFrame(pFrameRGB, pCodecCtx->width, pCodecCtx->height, W, H, posi);
             }
@@ -239,10 +255,20 @@
             if(frameFinished)
             {
                 // Convert the image from its native format to RGB
-                img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGB24, 
-                    (AVPicture*)pFrame, pCodecCtx->pix_fmt, pCodecCtx->width, 
-                    pCodecCtx->height);
+                //img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGB24, 
+                //    (AVPicture*)pFrame, pCodecCtx->pix_fmt, pCodecCtx->width, 
+                //    pCodecCtx->height);
+       		img_convert_ctx = sws_getContext(    pCodecCtx->width, pCodecCtx->height,
+                          		pCodecCtx->pix_fmt,
+                                        pCodecCtx->width, pCodecCtx->height,
+                                        PIX_FMT_RGB24,
+                                        sws_flags, NULL, NULL, NULL);
 
+       		sws_scale (img_convert_ctx, pFrame->data, pFrame->linesize,
+           			0, pCodecCtx->height,
+           			pFrameRGB->data, pFrameRGB->linesize);
+       		sws_freeContext(img_convert_ctx);
+
                 // Save the frame to disk
                     SaveFrame(pFrameRGB, pCodecCtx->width, pCodecCtx->height, W, H, posi);
             }


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Pd-cvs mailing list