mirror of
https://github.com/game-stop/veejay.git
synced 2026-06-16 04:31:23 +02:00
drop directfb #352
This commit is contained in:
@@ -244,7 +244,6 @@ see also : [How to video wall](./veejay-current/veejay-server/doc/video-wall.md)
|
||||
|
||||
* Support for Frei0r plugins
|
||||
* Support for LiVIDO plugins
|
||||
* Support for FreeFrame plugins (only for 32 bit systems!)
|
||||
* Support for GMIC plugins
|
||||
* Android client!
|
||||
|
||||
|
||||
@@ -149,7 +149,6 @@ Plugins and more...
|
||||
----------
|
||||
# Support for Frei0r plugins
|
||||
# Support for LiVIDO plugins
|
||||
# Support for FreeFrame plugins (only for 32 bit systems!)
|
||||
# Android server!
|
||||
|
||||
|
||||
|
||||
@@ -69,10 +69,7 @@ AC_ARG_WITH([pixbuf],
|
||||
AC_ARG_WITH([playthread],
|
||||
AS_HELP_STRING([--without-playthread],[Do not use playback thread]),
|
||||
[], [with_playthread=yes])
|
||||
|
||||
AC_ARG_WITH([directfb],
|
||||
AS_HELP_STRING([--without-directfb],[Do not use DirectFB.]),
|
||||
[], [with_directfb=yes])
|
||||
|
||||
AC_ARG_WITH([sdl],
|
||||
AS_HELP_STRING([--without-sdl],[Do not use SDL.]),
|
||||
[], [with_sdl=yes])
|
||||
@@ -1002,21 +999,6 @@ else
|
||||
AC_DEFINE(HAVE_LIBLO,1,[define if liblo])
|
||||
fi
|
||||
|
||||
dnl *********************************************************************
|
||||
dnl Check for the DirectFB library (for Matrox G550 Tvout)
|
||||
dnl
|
||||
have_directfb=false
|
||||
if test x$with_directfb != xno ; then
|
||||
PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.17, have_directfb=true,
|
||||
have_directfb=false)
|
||||
|
||||
if test x$have_directfb = xtrue ; then
|
||||
AC_SUBST(DIRECTFB_LIBS)
|
||||
AC_SUBST(DIRECTFB_CFLAGS)
|
||||
AC_DEFINE(HAVE_DIRECTFB,1,[Compiling with DirectFB])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl *********************************************************************
|
||||
dnl Check for the Jack Audio connection kit
|
||||
dnl AC_DEFINE(HAVE_JACK,,[Compiling with support for Jack])
|
||||
@@ -1141,7 +1123,6 @@ AM_CONDITIONAL(HAVE_SSE2, test x$have_asm_sse2 = xtrue)
|
||||
AM_CONDITIONAL(HAVE_SDL, test x$have_sdl = xtrue)
|
||||
AM_CONDITIONAL(HAVE_XML2, test x$have_xml2 = xtrue)
|
||||
AM_CONDITIONAL(HAVE_JACK, test x$have_jack = xtrue)
|
||||
AM_CONDITIONAL(HAVE_DIRECTFB, test x$have_directfb = xtrue)
|
||||
AM_CONDITIONAL(HAVE_FREETYPE, test x$have_freetype = xtrue)
|
||||
AM_CONDITIONAL(HAVE_V4L2, test x$have_v4l2 = xtrue)
|
||||
AM_CONDITIONAL(SUPPORT_READ_DV2, test x$have_libdv = xtrue)
|
||||
@@ -1287,7 +1268,6 @@ 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}])
|
||||
AC_MSG_NOTICE([ Optional dependencies])
|
||||
AC_MSG_NOTICE([ - DirectFB support : ${have_directfb}])
|
||||
AC_MSG_NOTICE([ - libDV (digital video) support : ${have_libdv} ])
|
||||
AC_MSG_NOTICE([ - QuickTime support : ${have_libquicktime} ])
|
||||
AC_MSG_NOTICE([ - Jack Audio Connection Kit : ${have_jack}])
|
||||
|
||||
@@ -322,7 +322,6 @@ usable without them.
|
||||
- (optional) libdv >= 1.02
|
||||
- (optional) The SDL library >= 2.0.0
|
||||
- (optional) JACK low latency audio server >= 0.98.1
|
||||
- (optional) DirectFB >= 0.9.17
|
||||
- (optional) FreeType >= 2.1.9
|
||||
- (optional) GTK >= 3.22.0
|
||||
- (optional) libqrencode >= 3.4.2
|
||||
@@ -1000,7 +999,6 @@ as packages you can use in combination with veejay.
|
||||
- [Quasar DV Codec - libdv.sourceforge.net/](http://libdv.sourceforge.net/)
|
||||
- [Simple DirectMedia Layer - libsdl.org](https://libsdl.org/)
|
||||
- [The XML C library for Gnome - xmlsoft.org](http://www.xmlsoft.org/)
|
||||
- [DirectFB - directfb.org](http://www.directfb.org) (outdated)
|
||||
- [JACK - jackaudio.org](http://jackaudio.org/)
|
||||
- [FreeType - freetype.org](https://www.freetype.org/)
|
||||
- [Ffmpeg - ffmpeg.org](https://ffmpeg.org)
|
||||
|
||||
@@ -27,7 +27,6 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir) \
|
||||
$(DV_FLAGS) \
|
||||
$(X_CFLAGS) \
|
||||
$(LIBLO_CFLAGS) \
|
||||
$(DIRECTFB_CFLAGS) \
|
||||
$(SDL2_CFLAGS) \
|
||||
$(JPEG_CFLAGS) \
|
||||
$(JACK_CFLAGS) \
|
||||
@@ -81,7 +80,6 @@ libveejay_la_LIBADD = \
|
||||
$(top_builddir)/libqrwrap/libqrwrap.la \
|
||||
$(top_builddir)/libvjxml/libvjxml.la \
|
||||
$(SDL2_LIBS) \
|
||||
$(DIRECTFB_LIBS) \
|
||||
$(X_LIBS) \
|
||||
$(PTHREAD_LIBS) \
|
||||
$(FT_LDFLAGS) \
|
||||
|
||||
@@ -109,9 +109,7 @@
|
||||
#ifdef HAVE_SDL
|
||||
#include <SDL2/SDL.h>
|
||||
#endif
|
||||
#ifdef HAVE_DIRECTFB
|
||||
#include <libveejay/vj-dfb.h>
|
||||
#endif
|
||||
|
||||
#ifdef STRICT_CHECKING
|
||||
#include <assert.h>
|
||||
#endif
|
||||
@@ -1861,40 +1859,10 @@ int veejay_setup_video_out(veejay_t *info) {
|
||||
break;
|
||||
|
||||
case 1:
|
||||
veejay_msg(VEEJAY_MSG_INFO, "Using output driver DirectFB");
|
||||
#ifdef HAVE_DIRECTFB
|
||||
info->dfb =(vj_dfb *) vj_dfb_allocate(info->video_output_width,info->video_output_height,el->video_norm);
|
||||
if( !info->dfb )
|
||||
return -1;
|
||||
if (vj_dfb_init(info->dfb) != 0)
|
||||
return -1;
|
||||
#endif
|
||||
break;
|
||||
|
||||
|
||||
case 2:
|
||||
veejay_msg(VEEJAY_MSG_INFO,
|
||||
"Using output driver SDL & DirectFB");
|
||||
#ifdef HAVE_SDL
|
||||
info->sdl = vj_sdl_allocate(info->effect_frame1, info->use_keyb,info->use_mouse,info->show_cursor, info->borderless);
|
||||
if(!info->sdl)
|
||||
return -1;
|
||||
|
||||
title = veejay_title(info);
|
||||
if (!vj_sdl_init(info->sdl,x,y,info->video_output_width, info->video_output_height, info->bes_width, info->bes_height,title,1,info->settings->full_screen,info->pixel_format, el->video_fps, &settings->vsync_interval_s)) {
|
||||
free(title);
|
||||
return -1;
|
||||
}
|
||||
free(title);
|
||||
#endif
|
||||
#ifdef HAVE_DIRECTFB
|
||||
info->dfb = (vj_dfb *) vj_dfb_allocate( info->video_output_width, info->video_output_height, el->video_norm);
|
||||
if(!info->dfb)
|
||||
return -1;
|
||||
|
||||
if (vj_dfb_init(info->dfb) != 0)
|
||||
return -1;
|
||||
#endif
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
@@ -3288,12 +3256,6 @@ static void veejay_playback_close(veejay_t *info)
|
||||
}
|
||||
vj_sdl_quit();
|
||||
#endif
|
||||
#ifdef HAVE_DIRECTFB
|
||||
if( info->dfb ) {
|
||||
vj_dfb_free(info->dfb);
|
||||
free(info->dfb);
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_FREETYPE
|
||||
//vj_font_destroy( info->font );
|
||||
vj_font_destroy( info->osd );
|
||||
@@ -3512,16 +3474,6 @@ veejay_t *veejay_malloc()
|
||||
veejay_memset( info->dummy, 0, sizeof(dummy_t));
|
||||
veejay_memset(&(info->settings->sws_templ), 0, sizeof(sws_template));
|
||||
|
||||
#ifdef HAVE_SDL
|
||||
info->video_out = 0;
|
||||
#else
|
||||
#ifdef HAVE_DIRECTFB
|
||||
info->video_out = 1;
|
||||
#else
|
||||
info->video_out = 3;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
info->pixel_format = FMT_422F; //@default
|
||||
info->settings->ncpu = smp_check();
|
||||
|
||||
|
||||
@@ -1,341 +0,0 @@
|
||||
/*
|
||||
* Linux VeeJay
|
||||
*
|
||||
* Copyright(C)2002-2004 Niels Elburg <nwelburg@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License , or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
*/
|
||||
/* DirectFB support, this file is part of veejay
|
||||
code inspired by mplayer and dfbtv
|
||||
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <veejaycore/vjmem.h>
|
||||
#include <stdlib.h>
|
||||
#include <config.h>
|
||||
#ifdef HAVE_DIRECTFB
|
||||
#include "vj-dfb.h"
|
||||
void *vj_dfb_allocate(int width, int height, int norm)
|
||||
{
|
||||
vj_dfb *dfb = (vj_dfb *) malloc(sizeof(vj_dfb));
|
||||
if (!dfb)
|
||||
return NULL;
|
||||
dfb->buffer = NULL;
|
||||
dfb->screen_width = 0;
|
||||
dfb->screen_height = 0;
|
||||
dfb->screen_framebuffer = 0;
|
||||
dfb->screen_pitch = 0;
|
||||
sprintf(dfb->dev_name, "%s", "/dev/fb0");
|
||||
fprintf(stderr, "DirectFB: using [%s]\n", dfb->dev_name);
|
||||
dfb->width = width;
|
||||
dfb->height = height;
|
||||
dfb->norm = norm;
|
||||
dfb->stretch = 0;
|
||||
return (void*)dfb;
|
||||
}
|
||||
|
||||
int vj_dfb_init(void *ptr)
|
||||
{
|
||||
vj_dfb *framebuffer = (vj_dfb*) ptr;
|
||||
DFBDisplayLayerConfig dlc;
|
||||
DFBDisplayLayerConfigFlags failed;
|
||||
DFBSurfaceDescription dsc;
|
||||
int n;
|
||||
|
||||
DirectFBInit(0, 0);
|
||||
DirectFBSetOption("fbdev", framebuffer->dev_name);
|
||||
DirectFBSetOption("no-cursor", "");
|
||||
DirectFBSetOption("bg-color", "00000000");
|
||||
DirectFBSetOption("matrox-crtc2", "");
|
||||
DirectFBSetOption("matrox-tv-standard",
|
||||
framebuffer->norm ? "pal" : "ntsc");
|
||||
|
||||
fprintf(stderr, "DirectFB: PAL = %s\n",
|
||||
framebuffer->norm ? "pal" : "ntsc");
|
||||
|
||||
framebuffer->bufs[0] = framebuffer->bufs[1] = framebuffer->bufs[2] =
|
||||
NULL;
|
||||
|
||||
DirectFBCreate(&framebuffer->d);
|
||||
|
||||
framebuffer->d->GetDisplayLayer(framebuffer->d, 2,
|
||||
&(framebuffer->crtc2));
|
||||
|
||||
if (!framebuffer->crtc2) {
|
||||
fprintf(stderr, "Unable to initialize display layern");
|
||||
return -1;
|
||||
}
|
||||
|
||||
framebuffer->crtc2->SetCooperativeLevel(framebuffer->crtc2,
|
||||
DLSCL_EXCLUSIVE);
|
||||
|
||||
framebuffer->d->GetInputDevice(framebuffer->d, DIDID_KEYBOARD,
|
||||
&(framebuffer->keyboard));
|
||||
|
||||
framebuffer->keyboard->CreateEventBuffer(framebuffer->keyboard,
|
||||
&(framebuffer->buffer));
|
||||
|
||||
framebuffer->buffer->Reset(framebuffer->buffer);
|
||||
|
||||
dlc.flags = DLCONF_PIXELFORMAT | DLCONF_BUFFERMODE;
|
||||
dlc.buffermode = DLBM_BACKVIDEO;
|
||||
dlc.pixelformat = DSPF_I420;
|
||||
|
||||
|
||||
dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
|
||||
dsc.width = framebuffer->width;
|
||||
dsc.height = framebuffer->height;
|
||||
dsc.pixelformat = dlc.pixelformat;
|
||||
|
||||
if (framebuffer->d->CreateSurface(framebuffer->d, &dsc,
|
||||
&framebuffer->frame) != DFB_OK)
|
||||
return -1;
|
||||
|
||||
if (framebuffer->crtc2->TestConfiguration(framebuffer->crtc2,
|
||||
&dlc, &failed) != DFB_OK) {
|
||||
fprintf(stderr, "TestConfiguration failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
framebuffer->crtc2->SetConfiguration(framebuffer->crtc2, &dlc);
|
||||
|
||||
framebuffer->crtc2->GetSurface(framebuffer->crtc2,
|
||||
&(framebuffer->c2frame)
|
||||
);
|
||||
|
||||
framebuffer->c2frame->GetSize(framebuffer->c2frame,
|
||||
&(framebuffer->screen_width),
|
||||
&(framebuffer->screen_height)
|
||||
);
|
||||
|
||||
fprintf(stderr, "DirectFB: Screen is %d x %d , Video is %d x %d\n",
|
||||
framebuffer->screen_width, framebuffer->screen_height,
|
||||
framebuffer->width, framebuffer->height);
|
||||
|
||||
if (framebuffer->width != framebuffer->screen_width ||
|
||||
framebuffer->height != framebuffer->screen_height) {
|
||||
framebuffer->stretch = 1;
|
||||
}
|
||||
|
||||
framebuffer->drect.x =
|
||||
(framebuffer->screen_width - framebuffer->width) / 2;
|
||||
framebuffer->drect.y =
|
||||
(framebuffer->screen_height - framebuffer->height) / 2;
|
||||
framebuffer->drect.w = framebuffer->width;
|
||||
framebuffer->drect.h = framebuffer->height;
|
||||
|
||||
framebuffer->c2frame->Clear(framebuffer->c2frame, 0, 0, 0, 0xff);
|
||||
framebuffer->c2frame->Flip(framebuffer->c2frame, NULL, 0);
|
||||
framebuffer->c2frame->Clear(framebuffer->c2frame, 0, 0, 0, 0xff);
|
||||
|
||||
|
||||
framebuffer->c2frame->GetPixelFormat(framebuffer->c2frame,
|
||||
&(framebuffer->frame_format)
|
||||
);
|
||||
|
||||
framebuffer->frame->GetPixelFormat(framebuffer->frame,
|
||||
&(framebuffer->frame_format)
|
||||
);
|
||||
|
||||
fprintf(stderr, "DirectFB: Frame format = ");
|
||||
switch (framebuffer->frame_format) {
|
||||
case DSPF_I420:
|
||||
fprintf(stderr, "I420\n");
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Wrong pixel format!\n");
|
||||
break;
|
||||
}
|
||||
|
||||
framebuffer->crtc2->SetOpacity(framebuffer->crtc2, 0xff);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vj_dfb_lock(void *ptr)
|
||||
{
|
||||
vj_dfb *framebuffer = (vj_dfb*) ptr;
|
||||
if (!framebuffer)
|
||||
return -1;
|
||||
framebuffer->c2frame->Lock(framebuffer->c2frame,
|
||||
DSLF_WRITE,
|
||||
&(framebuffer->screen_framebuffer),
|
||||
&(framebuffer->screen_pitch)
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vj_dfb_unlock(void *ptr)
|
||||
{
|
||||
vj_dfb *framebuffer = (vj_dfb*) ptr;
|
||||
if (!framebuffer)
|
||||
return -1;
|
||||
|
||||
framebuffer->c2frame->Unlock(framebuffer->c2frame);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int vj_dfb_free(void *ptr)
|
||||
{
|
||||
vj_dfb *framebuffer = (vj_dfb*)ptr;
|
||||
if (!framebuffer)
|
||||
return -1;
|
||||
|
||||
if (framebuffer->buffer) {
|
||||
framebuffer->buffer->Release(framebuffer->buffer);
|
||||
}
|
||||
if (framebuffer->keyboard) {
|
||||
framebuffer->keyboard->Release(framebuffer->keyboard);
|
||||
}
|
||||
if (framebuffer->c2frame) {
|
||||
framebuffer->c2frame->Release(framebuffer->c2frame);
|
||||
}
|
||||
if (framebuffer->crtc2) {
|
||||
framebuffer->crtc2->Release(framebuffer->crtc2);
|
||||
}
|
||||
if (framebuffer->d) {
|
||||
framebuffer->d->Release(framebuffer->d);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void vj_dfb_wait_for_sync( void *ptr)
|
||||
{
|
||||
vj_dfb *framebuffer = (vj_dfb*) ptr;
|
||||
framebuffer->d->WaitForSync(framebuffer->d);
|
||||
}
|
||||
|
||||
int vj_dfb_get_pitch( void *ptr)
|
||||
{
|
||||
vj_dfb *framebuffer = (vj_dfb*) ptr;
|
||||
return (int) framebuffer->screen_pitch;
|
||||
}
|
||||
|
||||
uint8_t *vj_dfb_get_address(void *ptr)
|
||||
{
|
||||
vj_dfb *framebuffer = (vj_dfb*) ptr;
|
||||
return (uint8_t *) framebuffer->screen_framebuffer;
|
||||
}
|
||||
|
||||
int vj_dfb_get_output_field( void *ptr)
|
||||
{
|
||||
vj_dfb *framebuffer = (vj_dfb*) ptr;
|
||||
int fieldid;
|
||||
framebuffer->crtc2->GetCurrentOutputField(framebuffer->crtc2,
|
||||
&fieldid);
|
||||
return fieldid;
|
||||
}
|
||||
|
||||
/*
|
||||
int vj_dfb_update_yuv_overlay(void *ptr , uint8_t **frame) {
|
||||
uint8_t *output;
|
||||
vj_dfb *framebuffer = (vj_dfb*) ptr;
|
||||
int pitch,i,p;
|
||||
while(vj_dfb_get_output_field(framebuffer) != 0) {
|
||||
fprintf(stderr, "resyncing...\n");
|
||||
vj_dfb_wait_for_sync(framebuffer);
|
||||
}
|
||||
|
||||
if(vj_dfb_lock(framebuffer)!=0) return -1;
|
||||
|
||||
output = vj_dfb_get_address(framebuffer);
|
||||
|
||||
pitch = vj_dfb_get_pitch(framebuffer);
|
||||
|
||||
p = pitch;
|
||||
if(p > framebuffer->width) p = framebuffer->width;
|
||||
|
||||
for(i=0; i < framebuffer->height; i++) {
|
||||
veejay_memcpy(output+i*pitch, frame[0]+i*framebuffer->width, p);
|
||||
}
|
||||
|
||||
output += pitch * framebuffer->height;
|
||||
p = p / 2;
|
||||
for(i=0; i < framebuffer->height/2; i++) {
|
||||
veejay_memcpy(output+i*pitch/2, frame[1] + i * framebuffer->width/2, p);
|
||||
}
|
||||
|
||||
output += pitch * framebuffer->height/4;
|
||||
for(i=0; i < framebuffer->height/2; i++) {
|
||||
veejay_memcpy(output+i * pitch/2, frame[2] + i * framebuffer->width/2, p);
|
||||
}
|
||||
|
||||
if(vj_dfb_unlock(framebuffer)!=0) return -1;
|
||||
|
||||
vj_dfb_wait_for_sync(framebuffer);
|
||||
return 0;
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
int vj_dfb_update_yuv_overlay(void *ptr, uint8_t ** frame)
|
||||
{
|
||||
vj_dfb *framebuffer = (vj_dfb*) ptr;
|
||||
void *dst;
|
||||
int i, p, pitch;
|
||||
if (framebuffer->frame->Lock(framebuffer->frame,
|
||||
DSLF_WRITE, &dst, &pitch) != DFB_OK)
|
||||
return -1;
|
||||
|
||||
p = pitch;
|
||||
|
||||
if (p > framebuffer->width)
|
||||
p = framebuffer->width;
|
||||
|
||||
for (i = 0; i < framebuffer->height; i++) {
|
||||
veejay_memcpy(dst + i * pitch, frame[0] + i * framebuffer->width, p);
|
||||
}
|
||||
|
||||
dst += pitch * framebuffer->height;
|
||||
p = p / 2;
|
||||
for (i = 0; i < framebuffer->height / 2; i++) {
|
||||
veejay_memcpy(dst + i * pitch / 2, frame[1] + i * framebuffer->width / 2,
|
||||
p);
|
||||
}
|
||||
|
||||
dst += pitch * framebuffer->height / 4;
|
||||
for (i = 0; i < framebuffer->height / 2; i++) {
|
||||
veejay_memcpy(dst + i * pitch / 2, frame[2] + i * framebuffer->width / 2,
|
||||
p);
|
||||
}
|
||||
|
||||
framebuffer->frame->Unlock(framebuffer->frame);
|
||||
|
||||
framebuffer->c2frame->SetBlittingFlags(framebuffer->c2frame,
|
||||
DSBLIT_NOFX);
|
||||
|
||||
if (framebuffer->stretch) {
|
||||
framebuffer->c2frame->StretchBlit(framebuffer->c2frame,
|
||||
framebuffer->frame, NULL,
|
||||
//&(framebuffer->drect)
|
||||
NULL);
|
||||
} else {
|
||||
framebuffer->c2frame->Blit(framebuffer->c2frame,
|
||||
framebuffer->frame,
|
||||
NULL,
|
||||
framebuffer->drect.x,
|
||||
framebuffer->drect.y);
|
||||
|
||||
}
|
||||
|
||||
framebuffer->c2frame->Flip(framebuffer->c2frame, NULL,
|
||||
DSFLIP_WAITFORSYNC);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -1,71 +0,0 @@
|
||||
/*
|
||||
* Linux VeeJay
|
||||
*
|
||||
* Copyright(C)2002-2004 Niels Elburg <nwelburg@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License , or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
*/
|
||||
#ifndef VJ_DFB_H
|
||||
#define VJ_DFB_H
|
||||
#include <config.h>
|
||||
|
||||
#ifdef HAVE_DIRECTFB
|
||||
#include <directfb.h>
|
||||
#include <linux/fb.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct vj_dfb_t {
|
||||
IDirectFB *d;
|
||||
IDirectFBDisplayLayer *crtc2;
|
||||
IDirectFBSurface *bufs[3];
|
||||
IDirectFBSurface *c2frame;
|
||||
IDirectFBSurface *frame;
|
||||
DFBRectangle drect;
|
||||
DFBSurfacePixelFormat frame_format;
|
||||
IDirectFBInputDevice *keyboard;
|
||||
IDirectFBEventBuffer *buffer;
|
||||
unsigned int screen_width;
|
||||
unsigned int screen_height;
|
||||
void *screen_framebuffer;
|
||||
int screen_pitch;
|
||||
int stretch;
|
||||
int width;
|
||||
int height;
|
||||
char dev_name[100];
|
||||
int norm;
|
||||
} vj_dfb;
|
||||
|
||||
void *vj_dfb_allocate(int width, int height, int norm);
|
||||
|
||||
int vj_dfb_init(void *dfb);
|
||||
|
||||
int vj_dfb_lock(void *dfb);
|
||||
|
||||
int vj_dfb_unlock(void * dfb);
|
||||
|
||||
int vj_dfb_update_yuv_overlay(void * dfb, uint8_t ** yuv420);
|
||||
|
||||
int vj_dfb_free(void * dfb);
|
||||
|
||||
void vj_dfb_wait_for_sync();
|
||||
|
||||
int vj_dfb_get_pitch( void *dfb);
|
||||
|
||||
int vj_dfb_update_yuv_overlay(void *dfb, uint8_t ** frame);
|
||||
|
||||
uint8_t *vj_dfb_get_address(void *dfb );
|
||||
|
||||
int vj_dfb_get_output_field( void *dfb );
|
||||
#endif
|
||||
#endif
|
||||
@@ -440,9 +440,6 @@ typedef struct {
|
||||
VJFrameInfo *effect_frame_info2;
|
||||
vjp_kf *effect_info2; /* effect dependent variables */
|
||||
vjp_kf *effect_info; /* effect dependent variables */
|
||||
#ifdef HAVE_DIRECTFB
|
||||
void *dfb;
|
||||
#endif
|
||||
int video_out;
|
||||
#ifdef HAVE_GL
|
||||
void *gl;
|
||||
|
||||
@@ -83,8 +83,8 @@ Specify video output height
|
||||
.B \-O/--output [0..8]
|
||||
Specify video output:
|
||||
0 = SDL (default)
|
||||
1 = DirectFB
|
||||
2 = SDL and DirectFB
|
||||
1 = (unused)
|
||||
2 = (unused)
|
||||
3 = OpenGL (requires ARB fragment shader)
|
||||
4 = Y4M Stream 4:2:0
|
||||
5 = VLOOPBACK (native)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# norootforbuild
|
||||
# neededforbuild update-desktop-files gtk2-devel-packages glib2 gtk2 libglade3 libdv libxml2 jack DirectFB SDL libjpeg freetype2 gtk2-devel glib2-devel libglade-devel libxml2-devel jack-devel pkgconfig SDL-devel libjpeg-devel freetype2-devel valgrind alsa-devel alsa slang-devel slang libstdc++-devel libstdc++ zlib-devel zlib
|
||||
# neededforbuild update-desktop-files gtk2-devel-packages glib2 gtk2 libglade3 libdv libxml2 jack SDL libjpeg freetype2 gtk2-devel glib2-devel libglade-devel libxml2-devel jack-devel pkgconfig SDL-devel libjpeg-devel freetype2-devel valgrind alsa-devel alsa slang-devel slang libstdc++-devel libstdc++ zlib-devel zlib
|
||||
|
||||
%define name veejay
|
||||
%define version 1.5
|
||||
@@ -115,15 +115,3 @@ rm -f %{buildroot}%{_libdir}/lib*.la
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%changelog -n veejay
|
||||
* Jan 2015 - update build (niels)
|
||||
* Wed Mar 21 2007 - cleanup
|
||||
* Sat Nov 20 2005 - bla
|
||||
* Sat Apr 23 2005 - oc2pus@arcor.de 0.8-0.oc2pus.1
|
||||
- update to 0.8
|
||||
- patched configure for using glib2-2.4.*, gtk2-2.4.*, libglade2-2.2.*
|
||||
- patched gveejay sources for using gtk2-2.4
|
||||
* Fri Apr 15 2005 - oc2pus@arcor.de 0.7.3-0.oc2pus.2
|
||||
- directfb re-enabled
|
||||
* Mon Mar 21 2005 - oc2pus@arcor.de 0.7.3-0.oc2pus.1
|
||||
- initial rpm
|
||||
- directfb disabled, doesn't compile
|
||||
|
||||
@@ -215,9 +215,6 @@ static void CompiledWith(void)
|
||||
#ifdef HAVE_LIBUNWIND
|
||||
fprintf(stdout, "\tSupport for stack unwinding\n");
|
||||
#endif
|
||||
#ifdef HAVE_DIRECTFB
|
||||
fprintf(stdout,"\tSupport for Direct Framebuffer\n");
|
||||
#endif
|
||||
#ifdef HAVE_LIBLO
|
||||
fprintf(stdout,"\tSupport for liblo\n");
|
||||
#endif
|
||||
@@ -292,14 +289,6 @@ static void Usage(char *progname)
|
||||
#ifdef HAVE_SDL
|
||||
fprintf(stderr,
|
||||
"\t\t\t\t0 = SDL (default)\t\n");
|
||||
#endif
|
||||
#ifdef HAVE_DIRECTFB
|
||||
fprintf(stderr,
|
||||
"\t\t\t\t1 = DirectDB\t\n");
|
||||
#ifdef HAVE_SDL
|
||||
fprintf(stderr,
|
||||
"\t\t\t\t2 = SDL and DirectDB secondary head (TV-Out) clone mode\n");
|
||||
#endif
|
||||
#endif
|
||||
fprintf(stderr,
|
||||
"\t\t\t\t3 = Head less (no video output)\n");
|
||||
|
||||
Reference in New Issue
Block a user