From e649dfb5a84ad763cc367e63aafaa94372b398b5 Mon Sep 17 00:00:00 2001 From: niels Date: Sat, 1 Feb 2014 17:45:23 +0100 Subject: [PATCH] arch build fixes (ffmpeg-compat) some bugfixes removed changelog from PKGBUILD bumped version --- veejay-current/veejay-server/PKGBUILD | 3 +- veejay-current/veejay-server/README | 7 ++ veejay-current/veejay-server/configure.ac | 75 +++++++++------ .../veejay-server/libel/vj-avcodec.c | 21 ++++- veejay-current/veejay-server/libel/vj-el.c | 93 +++++++++++++++---- veejay-current/veejay-server/libel/vj-mmap.c | 4 +- .../libplugger/freeframe-loader.c | 5 +- .../veejay-server/libstream/v4l2utils.c | 16 +++- .../veejay-server/libvje/effects/ripple.c | 2 +- .../veejay-server/libvje/effects/scratcher.c | 2 +- .../veejay-server/libvje/effects/softblur.c | 2 +- .../veejay-server/libvjmem/memcpy.c | 2 +- .../veejay-server/libvjmsg/vj-common.c | 2 +- .../veejay-server/libyuv/subsample.c | 4 +- veejay-current/veejay-server/libyuv/yuvconv.c | 8 +- .../veejay-server/veejay/Makefile.am | 4 +- .../veejay-server/veejay/vj-perform.c | 4 + veejay-current/veejay-server/veejay/vj-task.c | 9 +- 18 files changed, 188 insertions(+), 75 deletions(-) diff --git a/veejay-current/veejay-server/PKGBUILD b/veejay-current/veejay-server/PKGBUILD index 6f756b20..29b546e7 100644 --- a/veejay-current/veejay-server/PKGBUILD +++ b/veejay-current/veejay-server/PKGBUILD @@ -10,10 +10,9 @@ license=('GPL') groups=() conflicts=('veejay') depends=('libxml2' 'ffmpeg' 'ffmpeg-compat' 'sdl' 'gtk2' 'gdk-pixbuf2' 'libsm' ) -optdepends=('unicap' 'liblo' 'libdv' 'libquicktime' 'jack') +optdepends=('liblo' 'libdv' 'libquicktime' 'jack') source=() md5sums=() -changelog=() backup=() replaces=() diff --git a/veejay-current/veejay-server/README b/veejay-current/veejay-server/README index 12b17912..39c9e8a2 100644 --- a/veejay-current/veejay-server/README +++ b/veejay-current/veejay-server/README @@ -32,6 +32,13 @@ While playing, you can record the resulting video directly to disk (video sampli ====== quick install: + check that PKG_CONFIG_PATH is set: + echo $PKG_CONFIG_PATH + + on some distributions, like Arch, you need to install ffmpeg-compat + and set PKG_CONFIG_PATH to first include /usr/lib/ffmpeg-compat/pkg-config + follow by the other directories that contain .pc files. + order of packages: veejay-server, veejay-client, veejay-utils diff --git a/veejay-current/veejay-server/configure.ac b/veejay-current/veejay-server/configure.ac index 7184a5a2..babeda0d 100644 --- a/veejay-current/veejay-server/configure.ac +++ b/veejay-current/veejay-server/configure.ac @@ -1,12 +1,12 @@ dnl Process this file with autoconf to produce a configure script. dnl AC_INIT -AC_INIT([veejay],[1.5.30],[http://www.veejayhq.net]) +AC_INIT([veejay],[1.5.31],[http://www.veejayhq.net]) AC_PREREQ(2.57) AC_CONFIG_SRCDIR([veejay/veejay.c]) VEEJAY_MAJOR_VERSION=1 VEEJAY_MINOR_VERSION=5 -VEEJAY_MICRO_VERSION=30 +VEEJAY_MICRO_VERSION=31 VEEJAY_VERSION=$VEEJAY_MAJOR_VERSION.$VEEJAY_MINOR_VERSION.$VEEJAY_MICRO_VERSION VEEJAY_CODENAME="Veejay Classic - build $VEEJAY_MINOR_VERSION $VEEJAY_MICRO_VERSION" AC_CONFIG_HEADERS([config.h]) @@ -553,9 +553,9 @@ AC_MSG_RESULT($CFLAGS) AC_DEFINE_UNQUOTED(HAVE_FFMPEG_UNINSTALLED,, [Defined if building against uninstalled FFmpeg source]) -PKG_CHECK_MODULES(LIBAVUTIL, [libavutil >= 49.7.0],have_avutil=true,have_avutil=false) -PKG_CHECK_MODULES(LIBAVCODEC,[libavcodec >= 51.57.2],have_avcodec=true,have_avcodec=false) -PKG_CHECK_MODULES(LIBAVFORMAT,[libavformat >= 52.14.0],have_avformat=true,have_avformat=false) +PKG_CHECK_MODULES(LIBAVUTIL, [libavutil >= 49.7.0 libavutil < 52.48],have_avutil=true,have_avutil=false) +PKG_CHECK_MODULES(LIBAVCODEC,[libavcodec >= 51.35.2 libavcodec < 55.39],have_avcodec=true,have_avcodec=false) +PKG_CHECK_MODULES(LIBAVFORMAT,[libavformat >= 52.14.0 libavformat < 55.19],have_avformat=true,have_avformat=false) PKG_CHECK_MODULES(LIBSWSCALE,[libswscale >= 0.7.1],have_swscale=true,have_swscale=false) if test x$have_swscale = xfalse; then @@ -571,7 +571,7 @@ then fi if test x$have_avcodec = xfalse; then - AC_MSG_ERROR([libavcodec not found.]) + AC_MSG_ERROR([libavcodec >= 51.57 not found.]) fi FFMPEG_CFLAGS="${LIBAVFORMAT_CFLAGS} ${LIBAVCODEC_CFLAGS} ${LIBAVUTIL_CFLAGS} ${LIBSWSCALE_CFLAGS}" @@ -903,28 +903,42 @@ fi have_freetype=false -AC_CHECK_PROG(FREETYPE_CONFIG, freetype-config,yes,no) -if test $FREETYPE_CONFIG = yes; then - FT_CFLAGS="`freetype-config --cflags`" - FT_WORD="`freetype-config --libs`" - FT_LDFLAGS="" - FT_LIBS="" - for word in $FT_WORD ; do - beginning=`echo $word | cut -c -2` - if test ".$beginning" = ".-L"; then - FT_LDFLAGS="$FT_LDFLAGS $word" +have_freetype2=false +PKG_CHECK_MODULES( FREETYPE2, [freetype2], [ + AC_SUBST(FREETYPE2_CFLAGS) + AC_SUBST(FREETYPE2_LIBS) + AC_DEFINE(HAVE_FREETYPE,,[compiling with freetype]) + have_freetype2=true], + [have_freetype2=false] ) + +if test x$have_freetype2 != xtrue; then + AC_CHECK_PROG(FREETYPE_CONFIG, freetype-config,yes,no) + if test $FREETYPE_CONFIG = yes; then + FREETYPE_CFLAGS="`freetype-config --cflags`" + FREETYPE_WORD="`freetype-config --libs`" + FREETYPE_LIBS="" + for word in $FREETYPE_WORD; do + beginning=`echo $word |cut -c -2` + if test ".$beginning" = ".-L"; then + FREETYPE_LDFLAGS="$FREETYPE_LDFLAGS $word" + else + FREETYPE_LIBS="$FREETYPE_LIBS $word" + fi + done + AC_DEFINE(HAVE_FREETYPE,,[compiling with freetype]) + AC_SUBST(FREETYPE_LIBS) + AC_SUBST(FREETYPE_LDFLAGS) + AC_SUBST(FREETYPE_CFLAGS) + have_freetype=true + AC_MSG_NOTICE([Compiling with FreeType]) else - FT_LIBS="$FT_LIBS $word" + AC_MSG_ERROR([Cannot find the freetype-config program]) fi - done - AC_DEFINE(HAVE_FREETYPE,,[Compiling with FreeType]) - AC_SUBST(FT_LIBS) - AC_SUBST(FT_LDFLAGS) - AC_SUBST(FT_CFLAGS) - have_freetype=true else - AC_MSG_ERROR([Cannot find the freetype-config program]) -fi + AC_MSG_NOTICE([Compiling with FreeType2]) +fi + + dnl ********************************************************************** dnl All the conditional stuff for the Makefiles @@ -953,6 +967,7 @@ AM_CONDITIONAL(SUPPORT_READ_DV2, test x$have_libdv = xtrue) AM_CONDITIONAL(HAVE_DL_DLOPEN, test x$have_dl_dlopen = xtrue) AM_CONDITIONAL(HAVE_JPEG,test x$have_jpeg = xtrue) AM_CONDITIONAL(HAVE_LIBLO,test x$have_liblo = xtrue) +AM_CONDITIONAL(HAVE_FREETYPE2, test x$have_freetype2 = xtrue) dnl ********************************************************************* dnl Check for what warnings we want gcc to use and adjust the CFLAGS dnl as needed. This only works for GCC. @@ -1100,7 +1115,15 @@ AC_MSG_NOTICE([ - FFmpeg AVCodec : ${have_avcodec} ]) AC_MSG_NOTICE([ - FFmpeg Swscaler : ${have_swscale} ]) AC_MSG_NOTICE([ - FFmpeg avutil : ${have_avutil} ]) AC_MSG_NOTICE([ - SDL support : ${have_sdl}]) -AC_MSG_NOTICE([ - Freetype support : ${have_freetype}]) + +if test "$have_freetype" = "true"; then + AC_MSG_NOTICE([ - Freetype support : ${have_freetype}]) +fi + +if test "$have_freetype2" = "true"; then + AC_MSG_NOTICE([ - FreeType 2 support : ${have_freetype2}]) +fi + AC_MSG_NOTICE([ - XML c library for Gnome : ${have_xml2}]) AC_MSG_NOTICE([ - JPEG support : ${have_jpeg} ]) AC_MSG_NOTICE([ - GDK Pixbuf support : ${have_pixbuf}]) diff --git a/veejay-current/veejay-server/libel/vj-avcodec.c b/veejay-current/veejay-server/libel/vj-avcodec.c index 901d81a3..565c508b 100644 --- a/veejay-current/veejay-server/libel/vj-avcodec.c +++ b/veejay-current/veejay-server/libel/vj-avcodec.c @@ -189,7 +189,12 @@ static vj_encoder *vj_avcodec_new_encoder( int id, editlist *el, char *filename) if(id != CODEC_ID_DVVIDEO ) { #endif - e->context = avcodec_alloc_context(); + +#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(53, 8, 0) + e->context = avcodec_alloc_context(); +#else + e->context = avcodec_alloc_context3(e->codec); +#endif e->context->bit_rate = 2750 * 1024; e->context->width = el->video_width; e->context->height = el->video_height; @@ -217,7 +222,11 @@ static vj_encoder *vj_avcodec_new_encoder( int id, editlist *el, char *filename) char *descr = vj_avcodec_get_codec_name( id ); - if ( avcodec_open( e->context, e->codec ) < 0 ) +#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(53, 8, 0) + if ( avcodec_open( e->context, e->codec ) < 0 ) +#else + if ( avcodec_open2( e->context, e->codec, NULL ) < 0 ) +#endif { veejay_msg(VEEJAY_MSG_ERROR, "Cannot open codec '%s'" , descr ); if(e->context) free(e->context); @@ -465,8 +474,12 @@ int vj_avcodec_init( int pixel_format, int verbose) #else av_log_set_level( AV_LOG_VERBOSE ); #endif - av_register_all(); +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) + avcodec_register_all(); +#else + av_register_all(); +#endif return 1; } @@ -658,6 +671,6 @@ int vj_avcodec_encode_audio( void *encoder, int format, uint8_t *src, uint8_t * if(format == ENCODER_YUV420 || ENCODER_YUV422 == format) return 0; vj_encoder *av = encoder; - int ret = avcodec_encode_audio( av->context, src, len, nsamples ); + int ret = avcodec_encode_audio( av->context, dst, len, (const short*) src ); return ret; } diff --git a/veejay-current/veejay-server/libel/vj-el.c b/veejay-current/veejay-server/libel/vj-el.c index c0a0d2aa..02f24c8e 100644 --- a/veejay-current/veejay-server/libel/vj-el.c +++ b/veejay-current/veejay-server/libel/vj-el.c @@ -240,8 +240,12 @@ static const char *el_pixfmt_str(int i) void free_av_packet( AVPacket *pkt ) { if( pkt ) { - if( pkt->destruct ) - pkt->destruct(pkt); +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) + // av_destruct_packet(pkt); +#else + // if( pkt->destruct ) + // pkt->destruct(pkt); +#endif pkt->data = NULL; pkt->size = 0; } @@ -484,7 +488,7 @@ vj_decoder *_el_new_decoder( int id , int width, int height, float fps, int pixe } else if( id != CODEC_ID_YUV422 && id != CODEC_ID_YUV420 && id != CODEC_ID_YUV420F && id != CODEC_ID_YUV422F) { d->codec = avcodec_find_decoder( id ); -#if (LIBAVFORMAT_VERSION_MAJOR >= 53) +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) d->context = avcodec_alloc_context3(NULL); /* stripe was here! */ #else d->context = avcodec_alloc_context(); @@ -501,8 +505,12 @@ vj_decoder *_el_new_decoder( int id , int width, int height, float fps, int pixe tc ); d->context->thread_type = FF_THREAD_FRAME; d->context->thread_count = tc; - - if ( avcodec_open( d->context, d->codec ) < 0 ) + +#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(53, 8, 0) + if ( avcodec_open( d->context, d->codec ) < 0 ) +#else + if ( avcodec_open2( d->context, d->codec, NULL ) < 0 ) +#endif { veejay_msg(VEEJAY_MSG_ERROR, "Error initializing decoder %d",id); _el_free_decoder( d ); @@ -1092,7 +1100,7 @@ int vj_el_set_bogus_length( editlist *el, long nframe, int len ) return 1; } -#if (LIBAVFORMAT_VERSION_MAJOR >= 53) +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) static int avcodec_decode_video( AVCodecContext *avctx, AVFrame *picture, int *got_picture, uint8_t *data, int pktsize ) { AVPacket pkt; veejay_memset( &pkt, 0, sizeof(AVPacket)); @@ -1307,6 +1315,7 @@ int vj_el_get_video_frame(editlist *el, long nframe, uint8_t *dst[3]) pict2.linesize[1] = el->video_width >> 1; pict2.linesize[2] = el->video_width >> 1; pict2.linesize[0] = el->video_width; + avpicture_deinterlace( &pict2, (const AVPicture*) d->frame, @@ -1382,7 +1391,7 @@ int detect_pixel_format_with_ffmpeg( const char *filename ) AVInputFormat *av_input_format = NULL; AVFrame *av_frame = NULL; AVPacket pkt; -#if (LIBAVFORMAT_VERSION_MAJOR >= 53) +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) int err = avformat_open_input( &avformat_ctx, filename, NULL, NULL ); #else int err = av_open_input_file( &avformat_ctx,filename,NULL,0,NULL ); @@ -1392,30 +1401,55 @@ int detect_pixel_format_with_ffmpeg( const char *filename ) veejay_msg(VEEJAY_MSG_DEBUG, "FFmpeg: Unable to open %s: %d",filename,err ); return -1; } -#if (LIBAVFORMAT_VERSION_MAJOR >= 53 ) + +#if (LIBAVFORMAT_VERSION_MAJOR <= 53 ) err = avformat_find_stream_info( avformat_ctx, NULL ); #else err = av_find_stream_info( avformat_ctx ); #endif + + +#ifdef STRICT_CHECKING +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) + av_dump_format( avformat_ctx,0,filename,0 ); +#endif +#endif + + if( err > 0 ) { + char buf[1024]; + av_strerror( err, buf, sizeof(buf)-1); + veejay_msg(VEEJAY_MSG_DEBUG, "%s" , buf ); + } + if(err < 0 ) { veejay_msg(VEEJAY_MSG_DEBUG, "FFmpeg: Stream information found in %s",filename); +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) + avformat_close_input(&avformat_ctx); +#else av_close_input_file( avformat_ctx ); +#endif return -1; } - av_read_play(avformat_ctx); - - int i,j; - int n = avformat_ctx->nb_streams; + + unsigned int i,j; + unsigned int n = avformat_ctx->nb_streams; int vi = -1; int pix_fmt = -1; veejay_msg(VEEJAY_MSG_DEBUG, "FFmpeg: File has %d %s", n, ( n == 1 ? "stream" : "streams") ); + if( n > 65535 ) { + veejay_msg(VEEJAY_MSG_WARNING, "FFmpeg: Probably doesn't work, got garbage from open_input." ); + veejay_msg(VEEJAY_MSG_WARNING, "Build veejay with an older ffmpeg (for example, FFmpeg 0.8.15 \"Love\")"); + return -1; + } + + for( i=0; i < n; i ++ ) { if( avformat_ctx->streams[i]->codec ) { -#if (LIBAVFORMAT_VERSION_MAJOR >= 53) +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) #if (LIBAVFORMAT_VERSION_MINOR <= 5 ) if( avformat_ctx->streams[i]->codec->codec_type < CODEC_ID_MP2 ) #else @@ -1436,15 +1470,24 @@ further: if( !sup_codec ) { veejay_msg(VEEJAY_MSG_DEBUG, "FFmpeg: Unrecognized file %s", avformat_ctx->streams[i]->codec->codec_name ); - av_close_input_file( avformat_ctx ); - return -1; +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) + avformat_close_input(&avformat_ctx); +#else + av_close_input_file( avformat_ctx ); +#endif + + return -1; } codec = avcodec_find_decoder( avformat_ctx->streams[i]->codec->codec_id ); if( codec == NULL ) { veejay_msg(VEEJAY_MSG_DEBUG, "FFmpeg: Unable to find decoder for codec %s", avformat_ctx->streams[i]->codec->codec_name); - av_close_input_file( avformat_ctx ); +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) + avformat_close_input(&avformat_ctx); +#else + av_close_input_file( avformat_ctx ); +#endif return -1; } vi = i; @@ -1455,13 +1498,21 @@ further: if( vi == -1 ) { veejay_msg(VEEJAY_MSG_DEBUG, "FFmpeg: No video streams found"); +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) + avformat_close_input(&avformat_ctx); +#else av_close_input_file( avformat_ctx ); +#endif return -1; } codec_ctx = avformat_ctx->streams[vi]->codec; avformat_stream=avformat_ctx->streams[vi]; - if ( avcodec_open( codec_ctx, codec ) < 0 ) { +#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(53, 8, 0) + if ( avcodec_open( codec_ctx, codec ) < 0 ) { +#else + if ( avcodec_open2( codec_ctx, codec, NULL ) < 0 ) { +#endif veejay_msg(VEEJAY_MSG_DEBUG, "FFmpeg: Unable to open %s decoder (codec %x)", codec_ctx->codec_name, codec_ctx->codec_id); return -1; @@ -1485,7 +1536,11 @@ further: av_free(f); free_av_packet(&pkt); avcodec_close( codec_ctx ); +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) + avformat_close_input(&avformat_ctx); +#else av_close_input_file( avformat_ctx ); +#endif return -1; } @@ -1497,7 +1552,11 @@ further: free_av_packet(&pkt); avcodec_close( codec_ctx ); +#if (LIBAVFORMAT_VERSION_MAJOR <= 53) + avformat_close_input(&avformat_ctx); +#else av_close_input_file( avformat_ctx ); +#endif av_free(f); return pix_fmt; diff --git a/veejay-current/veejay-server/libel/vj-mmap.c b/veejay-current/veejay-server/libel/vj-mmap.c index c63a2bd6..faa848f9 100644 --- a/veejay-current/veejay-server/libel/vj-mmap.c +++ b/veejay-current/veejay-server/libel/vj-mmap.c @@ -39,8 +39,8 @@ void mmap_free(mmap_region_t *map) mmap_region_t * mmap_file(int fd, int offset, int length, int fs) { - mmap_region_t *map = (mmap_region_t*) malloc(sizeof( mmap_region_t )); - memset( map, 0, sizeof( mmap_region_t )); + mmap_region_t *map = (mmap_region_t*) vj_malloc(sizeof( mmap_region_t )); + veejay_memset( map, 0, sizeof( mmap_region_t )); map->fd = fd; map->page_size = getpagesize(); diff --git a/veejay-current/veejay-server/libplugger/freeframe-loader.c b/veejay-current/veejay-server/libplugger/freeframe-loader.c index 9a63d069..a838725a 100644 --- a/veejay-current/veejay-server/libplugger/freeframe-loader.c +++ b/veejay-current/veejay-server/libplugger/freeframe-loader.c @@ -73,6 +73,9 @@ static void *yuv_conv_ = NULL; #define FF_CAP_V_BITS_VIDEO FF_CAP_16BITVIDEO #endif*/ +static void freeframe_copy_parameters( void *srcPort, void *dst, int n_params ); + + void freeframe_destroy( ) { int i; yuv_free_swscaler( rgb_conv_ ); @@ -632,7 +635,7 @@ void freeframe_plug_param_f( void *plugin, int seq_no, void *dargs ) -void freeframe_copy_parameters( void *srcPort, void *dst, int n_params ) +static void freeframe_copy_parameters( void *srcPort, void *dst, int n_params ) { int p; for( p = 0; p < n_params; p ++ ) { diff --git a/veejay-current/veejay-server/libstream/v4l2utils.c b/veejay-current/veejay-server/libstream/v4l2utils.c index 3bf58db9..e58575c8 100644 --- a/veejay-current/veejay-server/libstream/v4l2utils.c +++ b/veejay-current/veejay-server/libstream/v4l2utils.c @@ -563,8 +563,11 @@ static int v4l2_setup_avcodec_capture( v4l2info *v, int wid, int hei, int codec_ veejay_msg(0, "v4l2: (untested) Codec not found."); return 0; } - - v->c = avcodec_alloc_context(); +#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(53, 8, 0) + v->c = avcodec_alloc_context(); +#else + v->c = avcodec_alloc_context3(v->codec); +#endif v->c->width= wid; v->c->height= hei; v->picture = avcodec_alloc_frame(); @@ -577,8 +580,11 @@ static int v4l2_setup_avcodec_capture( v4l2info *v, int wid, int hei, int codec_ if( v->codec->capabilities & CODEC_CAP_TRUNCATED) v->c->flags |= CODEC_FLAG_TRUNCATED; - - if( avcodec_open( v->c, v->codec ) < 0 ) +#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(53, 8, 0) + if( avcodec_open( v->c, v->codec ) < 0 ) +#else + if( avcodec_open2( v->c, v->codec, NULL ) < 0 ) +#endif { veejay_msg(0, "v4l2: (untested) Error opening codec"); free(v->picture->data[0]); @@ -1387,7 +1393,7 @@ void v4l2_close( void *d ) } if(v->codec) { - avcodec_close(v->codec); + avcodec_close(v->c); v->codec = NULL; } diff --git a/veejay-current/veejay-server/libvje/effects/ripple.c b/veejay-current/veejay-server/libvje/effects/ripple.c index e6864b49..10d78e14 100644 --- a/veejay-current/veejay-server/libvje/effects/ripple.c +++ b/veejay-current/veejay-server/libvje/effects/ripple.c @@ -173,7 +173,7 @@ void ripple_apply(VJFrame *frame, int width, int height, int _w, int _a , int _a sx = (int) (x+z * ripple_cos[a]); sy = (int) (y+z * ripple_sin[a]); - if(sy > (height-1)) sy = height-1; + if(sy >= (height-1)) sy = height-1; if(sx > width) sx = width; if(sx < 0) sx =0; if(sy < 0) sy =0; diff --git a/veejay-current/veejay-server/libvje/effects/scratcher.c b/veejay-current/veejay-server/libvje/effects/scratcher.c index b9402b76..523cdd96 100644 --- a/veejay-current/veejay-server/libvje/effects/scratcher.c +++ b/veejay-current/veejay-server/libvje/effects/scratcher.c @@ -100,7 +100,7 @@ void store_frame(VJFrame *src, int w, int h, int n, int no_reverse) if (!nreverse) { vj_frame_copy( src->data, dest, strides ); } else { - vj_frame_copy( dest, src, strides ); + vj_frame_copy( dest, src->data, strides ); } if (nreverse) diff --git a/veejay-current/veejay-server/libvje/effects/softblur.c b/veejay-current/veejay-server/libvje/effects/softblur.c index 03ebb5d4..86b2cf62 100644 --- a/veejay-current/veejay-server/libvje/effects/softblur.c +++ b/veejay-current/veejay-server/libvje/effects/softblur.c @@ -160,7 +160,7 @@ static void mmx_blur(uint8_t *buffer, int width, int height) // : "mm0", "mm1", "mm2", "mm3", "mm6"); } - len = (width*height)-1; + len = (width*height)-4; for (i = len; i > scrsh; i -= 4) { __asm __volatile diff --git a/veejay-current/veejay-server/libvjmem/memcpy.c b/veejay-current/veejay-server/libvjmem/memcpy.c index 277ad5b7..a8ef78fa 100644 --- a/veejay-current/veejay-server/libvjmem/memcpy.c +++ b/veejay-current/veejay-server/libvjmem/memcpy.c @@ -1195,7 +1195,7 @@ static void vj_frame_copy_job( void *arg ) { assert( info->input[i] != NULL ); } #endif - if( info->strides[i] == 0 || info->output[i] == NULL || info->output[i] == NULL ) + if( info->strides[i] <= 0 || info->output[i] == NULL || info->output[i] == NULL ) continue; veejay_memcpy( info->output[i], info->input[i], info->strides[i] ); } diff --git a/veejay-current/veejay-server/libvjmsg/vj-common.c b/veejay-current/veejay-server/libvjmsg/vj-common.c index d3c7f1a1..14b9ea50 100644 --- a/veejay-current/veejay-server/libvjmsg/vj-common.c +++ b/veejay-current/veejay-server/libvjmsg/vj-common.c @@ -41,7 +41,7 @@ #include #include #include - +#include #include #include diff --git a/veejay-current/veejay-server/libyuv/subsample.c b/veejay-current/veejay-server/libyuv/subsample.c index 110704ee..af09fa9d 100644 --- a/veejay-current/veejay-server/libyuv/subsample.c +++ b/veejay-current/veejay-server/libyuv/subsample.c @@ -929,11 +929,11 @@ void chroma_subsample(subsample_mode_t mode, VJFrame *frame, uint8_t *ycbcr[] ) void chroma_supersample(subsample_mode_t mode,VJFrame *frame, uint8_t *ycbcr[] ) { if( vj_task_available() ) { - void *data = vj_task_alloc_internal_buf( frame->uv_len * 2 ); //@ 4:2:2 + void *data = vj_task_alloc_internal_buf( frame->uv_len * 4 ); //@ 4:2:2 uint8_t *plane = (uint8_t*) data; uint8_t *vplane = plane + frame->uv_len; - uint8_t *planes[3] = { NULL, plane,vplane }; + uint8_t *planes[4] = { NULL, plane,vplane,NULL }; int strides[4] = { 0, frame->uv_len, frame->uv_len, 0 }; vj_frame_copy( ycbcr, planes,strides); vj_task_set_sampling ( 1 ); diff --git a/veejay-current/veejay-server/libyuv/yuvconv.c b/veejay-current/veejay-server/libyuv/yuvconv.c index 7ef1932e..c6f30e57 100644 --- a/veejay-current/veejay-server/libyuv/yuvconv.c +++ b/veejay-current/veejay-server/libyuv/yuvconv.c @@ -617,7 +617,7 @@ void yuv_convert_any3( void *scaler, VJFrame *src, int src_stride[3], VJFrame *d { veejay_msg(0,"sws_getContext failed."); if(s)free(s); - return NULL; + return; } /* struct SwsContext *ctx = sws_getContext( @@ -1272,10 +1272,8 @@ void yuv_convert_and_scale_rgb(void *sws , VJFrame *src, VJFrame *dst) void yuv_convert_and_scale(void *sws , VJFrame *src, VJFrame *dst) { vj_sws *s = (vj_sws*) sws; - - int src_stride[3]; - int dst_stride[3]; - + int src_stride[3] = { src->width,0,0 }; + int dst_stride[3] = { dst->width,0,0 }; /* int n = 0; if( src->format == PIX_FMT_RGBA || src->format == PIX_FMT_BGRA || src->format == PIX_FMT_ARGB || diff --git a/veejay-current/veejay-server/veejay/Makefile.am b/veejay-current/veejay-server/veejay/Makefile.am index 6c43bcfb..9183ad04 100644 --- a/veejay-current/veejay-server/veejay/Makefile.am +++ b/veejay-current/veejay-server/veejay/Makefile.am @@ -19,7 +19,7 @@ INCLUDES = -I$(top_srcdir) -I$(includedir) \ -I$(top_srcdir)/libvevo \ -I$(top_srcdir)/liblzo \ -I$(top_srcdir)/bio2jack \ - $(FFMPEG_CFLAGS) $(LIBQUICKTIME_CFLAGS) $(FT_CFLAGS) \ + $(FFMPEG_CFLAGS) $(LIBQUICKTIME_CFLAGS) $(FREETYPE_CFLAGS) $(FREETYPE2_CFLAGS) \ $(AVIPLAY_CFLAGS) $(XML2_CFLAGS) $(GTK_CFLAGS) $(DV_FLAGS) $(X_CFLAGS) $(LIBLO_CFLAGS) \ $(DIRECTFB_CFLAGS) $(SDL_CFLAGS) $(JPEG_CFLAGS) $(JACK_CFLAGS) $(PTHREAD_CFLAGS) @@ -56,7 +56,7 @@ libveejay_la_LIBADD = -L$(top_builddir)/mjpegtools/ -lmjpegutils \ -L$(top_builddir)/libsamplerec -lsamplerec \ -L$(top_builddir)/libvevo -lvevo -libveejay_la_LDFLAGS += $(SDL_LIBS) $(DIRECTFB_LIBS) $(X_LIBS) $(PTHREAD_LIBS) $(FT_LDFLAGS) $(FT_LIBS) \ +libveejay_la_LDFLAGS += $(SDL_LIBS) $(DIRECTFB_LIBS) $(X_LIBS) $(PTHREAD_LIBS) $(FT_LDFLAGS) $(FREETYPE_LIBS) $(FREETYPE2_LIBS) \ $(XML2_LIBS) $(JPEG_LIBS) $(LIBLO_LIBS) \ $(FFMPEG_LIBS) $(XINERAMA_LIBS) \ $(LIBDV_LIBS) $(LIBM_LIBS) $(PIXBUF_LIBS) $(JACK_LIBS) $(LIBQUICKTIME_LIBS) $(RT_LIBS) \ diff --git a/veejay-current/veejay-server/veejay/vj-perform.c b/veejay-current/veejay-server/veejay/vj-perform.c index c0f173ce..9fa15302 100644 --- a/veejay-current/veejay-server/veejay/vj-perform.c +++ b/veejay-current/veejay-server/veejay/vj-perform.c @@ -61,6 +61,10 @@ #define PERFORM_AUDIO_SIZE 16384 +#ifndef SAMPLE_FMT_S16 +#define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16 +#endif + typedef struct { uint8_t *Y; uint8_t *Cb; diff --git a/veejay-current/veejay-server/veejay/vj-task.c b/veejay-current/veejay-server/veejay/vj-task.c index 09d5d256..6192b7bb 100644 --- a/veejay-current/veejay-server/veejay/vj-task.c +++ b/veejay-current/veejay-server/veejay/vj-task.c @@ -236,7 +236,8 @@ int task_start(int max_workers) max_p = min_p; - struct sched_param param; +// struct sched_param param; +// veejay_memset( ¶m, 0, sizeof(struct sched_param)); cpu_set_t cpuset; pthread_cond_init( &tasks_completed, NULL ); pthread_cond_init( ¤t_task, NULL ); @@ -245,9 +246,9 @@ int task_start(int max_workers) for( i = 0 ; i < max_workers; i ++ ) { thr_id[i] = i; pthread_attr_init( &p_attr[i] ); - pthread_attr_setstacksize( &p_attr[i], 128 * 1024 ); - pthread_attr_setschedpolicy( &p_attr[i], SCHED_FIFO ); - pthread_attr_setschedparam( &p_attr[i], ¶m ); + pthread_attr_setstacksize( &p_attr[i], 256 * 1024 ); +// pthread_attr_setschedpolicy( &p_attr[i], SCHED_FIFO ); +// pthread_attr_setschedparam( &p_attr[i], ¶m ); if( n_cpu > 1 ) { CPU_ZERO(&cpuset);