Merge branch 'openelec-next' of github.com:OpenELEC/OpenELEC.tv into openelec-eden

This commit is contained in:
Stephan Raue 2011-07-14 20:21:04 +02:00
commit e483c36f80
22 changed files with 1029 additions and 62 deletions

View File

@ -55,44 +55,48 @@ TARGET_CPPFLAGS=
TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS"
TARGET_CXXFLAGS="$TARGET_CFLAGS"
TARGET_LDFLAGS="$TARGET_LDFLAGS $GCC_OPTIM $LD_OPTIM"
TARGET_LIBDIR="$SYSROOT_PREFIX/lib $SYSROOT_PREFIX/usr/lib"
TARGET_INCDIR="$SYSROOT_PREFIX/include $SYSROOT_PREFIX/usr/include"
HOST_CPPFLAGS=""
HOST_CFLAGS="-O2 -Wall -pipe -I$ROOT/$TOOLCHAIN/include"
HOST_CXXFLAGS="$HOST_CFLAGS"
HOST_LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib -L$ROOT/$TOOLCHAIN/lib"
HOST_LIBDIR="$ROOT/$TOOLCHAIN/lib"
# add distro specific library dirs
# ubuntu/debian specific "multiarch support"
FAMILY_TRIPLET=$(echo $HOST_NAME | sed -e "s,$(uname -m),$(uname -i),")
if [ -d /lib/$FAMILY_TRIPLET ]; then
HOST_LDFLAGS="$HOST_LDFLAGS -L/lib/$FAMILY_TRIPLET"
HOST_LIBDIR="$HOST_LIBDIR /lib/$FAMILY_TRIPLET"
fi
if [ -d /usr/lib/$FAMILY_TRIPLET ]; then
HOST_LDFLAGS="$HOST_LDFLAGS -L/usr/lib/$FAMILY_TRIPLET"
HOST_LIBDIR="$HOST_LIBDIR /usr/lib/$FAMILY_TRIPLET"
fi
# default multiarch support
case "`uname -m`" in
i*86)
if [ -d /lib32 ]; then
HOST_LDFLAGS="$HOST_LDFLAGS -L/lib32"
HOST_LIBDIR="$HOST_LIBDIR /lib32"
fi
if [ -d /usr/lib32 ]; then
HOST_LDFLAGS="$HOST_LDFLAGS -L/usr/lib32"
HOST_LIBDIR="$HOST_LIBDIR /usr/lib32"
fi
;;
x86_64)
if [ -d /lib64 ]; then
HOST_LDFLAGS="$HOST_LDFLAGS -L/lib64"
HOST_LIBDIR="$HOST_LIBDIR /lib64"
fi
if [ -d /usr/lib64 ]; then
HOST_LDFLAGS="$HOST_LDFLAGS -L/usr/lib64"
HOST_LIBDIR="$HOST_LIBDIR /usr/lib64"
fi
;;
esac
# default dirs
HOST_LDFLAGS="$HOST_LDFLAGS -L/lib -L/usr/lib"
HOST_LIBDIR="$HOST_LIBDIR /lib /usr/lib"
HOST_INCDIR="$ROOT/$TOOLCHAIN/include /usr/include"
# use -fPIC when necessary
case "`uname -m`" in

View File

@ -26,9 +26,6 @@ CWD=`pwd`
setup_toolchain host
# fix build with wrong libdir order
LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib -L$ROOT/$TOOLCHAIN/lib"
cd $PKG_BUILD/ncurses-host
./configure --host=$HOST_NAME \
--build=$HOST_NAME \

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="Mesa"
PKG_VERSION="7.11-b0a4f34"
PKG_VERSION="7.11-443ff60"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"

View File

@ -41,11 +41,11 @@ LDFLAGS="$LDFLAGS -lexpat" \
--with-threads \
--enable-unicode=ucs4 \
make PYTHON_MODULES_INCLUDE="$ROOT/$TOOLCHAIN/include /usr/include" \
PYTHON_MODULES_LIB="$ROOT/$TOOLCHAIN/lib /usr/lib /usr/lib64 /lib /lib64"
make PYTHON_MODULES_INCLUDE="$HOST_INCDIR" \
PYTHON_MODULES_LIB="$HOST_LIBDIR"
make PYTHON_MODULES_INCLUDE="$ROOT/$TOOLCHAIN/include /usr/include" \
PYTHON_MODULES_LIB="$ROOT/$TOOLCHAIN/lib /usr/lib /usr/lib64 /lib /lib64" \
make PYTHON_MODULES_INCLUDE="$HOST_INCDIR" \
PYTHON_MODULES_LIB="$HOST_LIBDIR" \
install
# symlink python binary to python2 (needed for Mesa)
@ -99,8 +99,8 @@ make -j1 CC="$TARGET_CC" \
PYTHON_DISABLE_MODULES="$PY_DISABLED_MODULES" \
CROSS_COMPILE="$TARGET_NAME" \
CROSS_COMPILE_TARGET="yes" \
PYTHON_MODULES_INCLUDE=$SYSROOT_PREFIX/usr/include \
PYTHON_MODULES_LIB="$SYSROOT_PREFIX/lib $SYSROOT_PREFIX/usr/lib" \
PYTHON_MODULES_INCLUDE="$TARGET_INCDIR" \
PYTHON_MODULES_LIB="$TARGET_LIBDIR" \
make -j1 CC="$TARGET_CC" \
DESTDIR=$SYSROOT_PREFIX \
@ -110,8 +110,8 @@ make -j1 CC="$TARGET_CC" \
PYTHON_DISABLE_MODULES="$PY_DISABLED_MODULES" \
CROSS_COMPILE="$TARGET_NAME" \
CROSS_COMPILE_TARGET="yes" \
PYTHON_MODULES_INCLUDE=$SYSROOT_PREFIX/usr/include \
PYTHON_MODULES_LIB="$SYSROOT_PREFIX/lib $SYSROOT_PREFIX/usr/lib" \
PYTHON_MODULES_INCLUDE="$TARGET_INCDIR" \
PYTHON_MODULES_LIB="$TARGET_LIBDIR" \
install
cp -R ../Lib ./

View File

@ -35,10 +35,3 @@ PKG_LONGDESC="The main motivation for VAAPI (Video Acceleration API) is to enabl
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
get_graphicdrivers
for drv in $GRAPHIC_DRIVERS; do
if [ "$drv" = fglrx ]; then
PKG_DEPENDS="$PKG_DEPENDS xvba-video"
fi
done

View File

@ -0,0 +1,39 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv)
#
# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--enable-shared \
--disable-static \
--enable-largefile \
--enable-glx \
--enable-libxvba-dlopen \
--disable-valgrind \
--enable-debug \
--disable-tracer \
make
$MAKEINSTALL

View File

@ -22,11 +22,6 @@
. config/options $1
if [ "$TARGET_ARCH" = i386 ]; then
ARCH=x86
elif [ "$TARGET_ARCH" = x86_64 ]; then
ARCH=x86_64
fi
mkdir -p $INSTALL/usr/lib/va
cp -P $PKG_BUILD/$ARCH/*.so $INSTALL/usr/lib/va
cp -P $PKG_BUILD/src/.libs/xvba_drv_video.so $INSTALL/usr/lib/va
ln -sf xvba_drv_video.so $INSTALL/usr/lib/va/fglrx_drv_video.so

View File

@ -19,14 +19,14 @@
################################################################################
PKG_NAME="xvba-video"
PKG_VERSION="0.7.8.bin"
PKG_VERSION="0.8.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="nonfree"
PKG_SITE="http://www.splitted-desktop.com/~gbeauchesne/"
PKG_URL="http://www.splitted-desktop.com/~gbeauchesne/xvba-video/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS="$MESA libX11 libXext"
PKG_BUILD_DEPENDS="toolchain"
PKG_DEPENDS="libX11 libXext Mesa libva"
PKG_BUILD_DEPENDS="toolchain libX11 libXext Mesa libva xf86-video-fglrx"
PKG_PRIORITY="optional"
PKG_SECTION="multimedia"
PKG_SHORTDESC="xvba-video: XvBA backend for VA API"

View File

@ -0,0 +1,24 @@
diff -Naur xvba-video-0.8.0/src/Makefile.am xvba-video-0.8.0.patch/src/Makefile.am
--- xvba-video-0.8.0/src/Makefile.am 2011-06-14 13:07:13.000000000 +0200
+++ xvba-video-0.8.0.patch/src/Makefile.am 2011-07-13 20:00:21.496624808 +0200
@@ -75,7 +75,7 @@
install-data-hook:
cd $(DESTDIR)$(LIBVA_DRIVERS_PATH) ; \
for drv in $(DRIVERS); do \
- ln -s xvba_drv_video.so $${drv}_drv_video.so; \
+ ln -sf xvba_drv_video.so $${drv}_drv_video.so; \
done
# Extra clean files so that maintainer-clean removes *everything*
diff -Naur xvba-video-0.8.0/src/Makefile.in xvba-video-0.8.0.patch/src/Makefile.in
--- xvba-video-0.8.0/src/Makefile.in 2011-06-14 13:07:29.000000000 +0200
+++ xvba-video-0.8.0.patch/src/Makefile.in 2011-07-13 20:00:34.705800165 +0200
@@ -727,7 +727,7 @@
install-data-hook:
cd $(DESTDIR)$(LIBVA_DRIVERS_PATH) ; \
for drv in $(DRIVERS); do \
- ln -s xvba_drv_video.so $${drv}_drv_video.so; \
+ ln -sf xvba_drv_video.so $${drv}_drv_video.so; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -26,7 +26,7 @@ PKG_LICENSE="GPL"
PKG_SITE="http://www.openelec.tv"
PKG_URL=""
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="make sed pkg-config automake autoconf intltool gcc-final bison flex cmake jam yasm nasm"
PKG_BUILD_DEPENDS="make xz sed pkg-config automake autoconf intltool gcc-final bison flex cmake jam yasm nasm"
PKG_PRIORITY="optional"
PKG_SECTION="toolchain/devel"
PKG_SHORTDESC="toolchain: OpenELEC.tv' toolchain"

View File

@ -36,3 +36,9 @@ ln -sf $ROOT/$PKG_BUILD/arch/$ARCH/lib/modules/fglrx/build_mod/libfglrx_ip.a .
cd 2.6.x
make CC=${CC} KDIR=$(kernel_path)
cp $ROOT/$PKG_DIR/source/amdxvba.h $SYSROOT_PREFIX/usr/include
cp $ROOT/$PKG_BUILD/arch/$ARCH/usr/X11R6/*/libXvBAW.so* $SYSROOT_PREFIX/usr/lib
ln -sf libXvBAW.so.1.0 $SYSROOT_PREFIX/usr/lib/libXvBAW.so.1
ln -sf libXvBAW.so.1 $SYSROOT_PREFIX/usr/lib/libXvBAW.so

View File

@ -0,0 +1,41 @@
AMDPCSDBV1
[AMDPCSROOT/SYSTEM/MCIL]
DigitalHDTVDefaultUnderscan=V0
[AMDPCSROOT/SYSTEM/DDX]
EnableTearFreeDesktop=V1
OGLFMTA2R10G10B10Enable=V1
VideoOverlay=Soff
OpenGLOverlay=Soff
TexturedVideo=Son
TexturedVideoSync=Son
[AMDPCSROOT/SYSTEM/2ID-1002-9802-0/OpenGL]
VSyncControl=V3
[AMDPCSROOT/SYSTEM/2ID-1002-9803-0/OpenGL]
VSyncControl=V3
[AMDPCSROOT/SYSTEM/2ID-1002-9804-0/OpenGL]
VSyncControl=V3
[AMDPCSROOT/SYSTEM/2ID-1002-9805-0/OpenGL]
VSyncControl=V3
[AMDPCSROOT/SYSTEM/2ID-1002-9802-0/LDC]
GammaChannelSelState=V0
[AMDPCSROOT/SYSTEM/2ID-1002-9803-0/LDC]
GammaChannelSelState=V0
[AMDPCSROOT/SYSTEM/2ID-1002-9804-0/LDC]
GammaChannelSelState=V0
[AMDPCSROOT/SYSTEM/2ID-1002-9805-0/LDC]
GammaChannelSelState=V0
[AMDPCSROOT/SYSTEM/2ID-1002-980-0/LDC]
GammaChannelSelState=V0
[AMDPCSROOT/SYSTEM/LDC]
ColorPreviewDlgState=V0

View File

@ -1,14 +1,48 @@
Section "Device"
Identifier "fglrx"
Driver "fglrx"
Option "HWCursor" "false"
Identifier "fglrx"
Driver "fglrx"
Option "HWCursor" "false"
Option "VideoOverlay" "off"
Option "OpenGLOverlay" "off"
Option "TexturedVideo" "on"
Option "TexturedVideoSync" "on"
Option "XAANoOffscreenPixmaps" "True"
Option "AllowGLXWithComposite" "True"
Option "AIGLX" "on"
Option "no_accel" "no" # XAA Beschleunigung on(no)/off(yes)
Option "AccelMethod" "XAA" # 2D-Hardware-Acceleration XAA, EXA
Option "FSAAEnable" "on" # Antialiasing
Option "FSAAScale" "6" # 0,2,4,6
Option "EnablePageFlip" "true"
Option "no_dri" "no"
Option "TripleBuffer" "true"
Option "UseInternalAGPGART" "yes"
Option "Textured2D" "True"
Option "TexturedXrender" "True"
EndSection
Section "ServerFlags"
Option "AIGLX" "1"
EndSection
Section "DRI"
Mode 0666
EndSection
Section "Extensions"
# For Textured2d and Textured XRender
Option "RENDER" "1"
Option "XVideo" "1"
Option "Composite" "1"
Option "Damage" "1"
EndSection
Section "Screen"
Identifier "screen"
Device "fglrx"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
Identifier "screen"
Device "fglrx"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection

View File

@ -64,6 +64,9 @@ mkdir -p $INSTALL/etc/X11
mkdir -p $INSTALL/etc/ati
cp $PKG_BUILD/common/etc/ati/amdpcsdb.default $INSTALL/etc/ati
# cp $PKG_DIR/config/amdpcsdb.default $INSTALL/etc/ati/amdpcsdb
cp $PKG_DIR/config/amdpcsdb $INSTALL/usr/config/fglrx.conf
ln -sf /storage/.config/fglrx.conf $INSTALL/etc/ati/amdpcsdb
cp $PKG_BUILD/common/etc/ati/control $INSTALL/etc/ati
cp $PKG_BUILD/common/etc/ati/signature $INSTALL/etc/ati
@ -84,7 +87,7 @@ mkdir -p $INSTALL/usr/lib
cp $PKG_BUILD/arch/$ARCH/usr/X11R6/$LIBDIR/libfglrx*.so* $INSTALL/usr/lib
if [ "$VAAPI" = yes ]; then
$SCRIPTS/install libva
$SCRIPTS/install xvba-video
cp $PKG_BUILD/arch/$ARCH/usr/X11R6/$LIBDIR/libAMDXvBA.cap $INSTALL/usr/lib
cp $PKG_BUILD/arch/$ARCH/usr/X11R6/$LIBDIR/libAMDXvBA.so* $INSTALL/usr/lib/libAMDXvBA.so.1

View File

@ -0,0 +1,831 @@
/*******************************************************************************
*
* Copyright (c) 2011, Advanced Micro Devices, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following are met:
*
* Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific, prior, written permission.
*
* You must reproduce the above copyright notice.
*
* You must include the following terms in your license and/or other
* materials provided with the software.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Without limiting the foregoing, the software may implement third
* party technologies (e.g. third party libraries) for which you must
* obtain licenses from parties other than AMD. You agree that AMD has
* not obtained or conveyed to you, and that you shall be responsible for
* obtaining the rights to use and/or distribute the applicable underlying
* intellectual property rights related to the third party technologies.
* These third party technologies are not licensed hereunder.
*
* Without limiting the foregoing, for MPEG-2 products, the following
* additional notices are provided: For MPEG-2 Encoding Products (those
* that are "Sold" to end-users, directly or indirectly):
*
* NO LICENSE IS GRANTED HEREIN, BY IMPLICATION OR OTHERWISE,
* TO YOU OR YOUR CUSTOMERS TO USE MPEG-2 ENCODING PRODUCTS,
* MPEG-2 DISTRIBUTION ENCODING PRODUCTS, MPEG-2 ENCODING SOFTWARE,
* AND/OR MPEG-2 BUNDLED ENCODING SOFTWARE FOR ENCODING OR HAVING
* ENCODED ONE OR MORE MPEG-2 VIDEO EVENTS FOR RECORDING ON AN
* MPEG-2 PACKAGED MEDIUM FOR ANY USE OR DISTRIBUTION OTHER THAN
* PERSONAL USE OF LICENSEE'S CUSTOMER.
*
* For MPEG-2 Intermediate Products (those that are NOT "Sold" to
* end-users, directly or indirectly):
*
* NO LICENSE IS GRANTED HEREIN, BY IMPLICATION OR OTHERWISE,
* TO YOU OR YOUR CUSTOMERS TO USE MPEG-2 INTERMEDIATE PRODUCTS
* MANUFACTURED OR SOLD BY YOU.
*
* If you use the software (in whole or in part), you shall adhere to
* all applicable U.S., European, and other export laws, including but
* not limited to the U.S. Export Administration Regulations ("EAR"),
* (15 C.F.R. Sections 730 through 774), and E.U. Council Regulation (EC)
* No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of
* the EAR, you hereby certify that, except pursuant to a license granted
* by the United States Department of Commerce Bureau of Industry and
* Security or as otherwise permitted pursuant to a License Exception
* under the U.S. Export Administration Regulations ("EAR"), you will
* not (1) export, re-export or release to a national of a country in
* Country Groups D:1, E:1 or E:2 any restricted technology, software,
* or source code you receive hereunder, or (2) export to Country Groups
* D:1, E:1 or E:2 the direct product of such technology or software, if
* such foreign produced direct product is subject to national security
* controls as identified on the Commerce Control List (currently found
* in Supplement 1 to Part 774 of EAR). For the most current Country
* Group listings, or for additional information about the EAR or your
* obligations under those regulations, please refer to the U.S. Bureau
* of Industry and Security's website at http://www.bis.doc.gov/.
*
*******************************************************************************/
#ifndef _XVBA_H
#define _XVBA_H
// A minor revision change indicates a backward-compatible change; a major revision change indicates a backward-incompatible
#define XVBA_VERSION_MAJOR 0
#define XVBA_VERSION_MINOR 74
#define XVBA_VERSION ((XVBA_VERSION_MAJOR << 16) | XVBA_VERSION_MINOR)
#define NUM_OF_XVBA_DECODE_CAP 3
#define NUM_OF_XVBA_GET_SURFACE_TARGET 3
#ifdef __cplusplus
extern "C" {
#endif
typedef enum _XVBA_SURFACE_FLAG
{
XVBA_FRAME = 0,
XVBA_TOP_FIELD,
XVBA_BOTTOM_FIELD,
} XVBA_SURFACE_FLAG;
/* Four-character-code (FOURCC) */
#define XVBA_FOURCC(a,b,c,d)\
(((unsigned int)(a)<<0) |\
((unsigned int)(b)<<8) |\
((unsigned int)(c)<<16)|\
((unsigned int)(d)<<24))
typedef enum _XVBA_SURFACE_FORMAT
{
XVBA_NV12 = XVBA_FOURCC('N','V','1','2'), /* 12bit Y/CbCr 4:2:0 planar */
XVBA_YUY2 = XVBA_FOURCC('Y','U','Y','2'), /* 16bit YUV 4:2:2 */
XVBA_ARGB = XVBA_FOURCC('A','R','G','B'), /* 32bit ARGB-8-8-8-8 */
XVBA_AYUV = XVBA_FOURCC('A','Y','U','V'), /* 32bit AYUV-8-8-8-8 */
XVBA_YV12 = XVBA_FOURCC('Y','V','1','2'), /* 12bit Y/V/U 4:2:0 planar */
} XVBA_SURFACE_FORMAT;
typedef struct _XVBA_GetSurface_Target
{
unsigned int size; ///< structure size
XVBA_SURFACE_FORMAT surfaceType;
XVBA_SURFACE_FLAG flag;
} XVBA_GetSurface_Target;
/**
* XVBA Query Extension
*/
Bool
XVBAQueryExtension
(
Display *display,
int *version
);
/******************************************************************/
/* XVBA Context */
/******************************************************************/
/**
* XVBA Context Create
*/
typedef struct
{
unsigned int size; ///< structure size
Display *display;
Drawable draw;
} XVBA_Create_Context_Input;
typedef struct
{
unsigned int size; ///< structure size
void *context;
} XVBA_Create_Context_Output;
Status
XVBACreateContext
(
XVBA_Create_Context_Input *create_context_input,
XVBA_Create_Context_Output *create_context_output
);
/**
* XVBA Context Destroy
*/
Status
XVBADestroyContext
(
void *context
);
/******************************************************************/
/* XVBA Sessions */
/******************************************************************/
/**
* XVBA Context Query Session Info
*/
typedef struct
{
unsigned int size; ///< structure size
void *context;
} XVBA_GetSessionInfo_Input;
typedef struct
{
unsigned int size; ///< structure size
unsigned int getcapdecode_output_size; ///< 0 = Decode not supported, NZ = Decode session is supported and the value is used for XVBAGetCapDecode output struct size
unsigned int xvba_gsio_reserved_0;
unsigned int xvba_gsio_reserved_1;
} XVBA_GetSessionInfo_Output;
Status
XVBAGetSessionInfo
(
XVBA_GetSessionInfo_Input *get_session_info_input,
XVBA_GetSessionInfo_Output *get_session_info_output
);
/******************************************************************/
/* XVBA decode errors */
/******************************************************************/
typedef enum
{
XVBA_DECODE_NO_ERROR = 0,
XVBA_DECODE_BAD_PICTURE, ///< the entire picture is corrupted . All MBs are invalid
XVBA_DECODE_BAD_SLICE, ///< part of the picture, slice, wasn.t decoded properly . all MBs in this slice are bad
XVBA_DECODE_BAD_MB ///< some MBs are not decoded properly
} XVBA_DECODE_ERROR;
typedef struct
{
unsigned int size; ///< structure size
XVBA_DECODE_ERROR type;
unsigned int num_of_bad_mbs; ///< number of marcoblocks that were not properly decoded
} XVBADecodeError;
/******************************************************************/
/* XVBA Surface */
/******************************************************************/
/**
* XVBA Surface create
*/
typedef struct
{
unsigned int size;
void *session;
unsigned int width;
unsigned int height;
XVBA_SURFACE_FORMAT surface_type;
} XVBA_Create_Surface_Input;
typedef struct
{
unsigned int size;
void *surface; ///< Pointer to XVBASurface
} XVBA_Create_Surface_Output;
Status
XVBACreateSurface(
XVBA_Create_Surface_Input *create_surface_input,
XVBA_Create_Surface_Output *create_surface_output
);
/**
* XVBA Surface destroy
*/
Status
XVBADestroySurface(
void *surface
);
/**
* Synchronization query_status_flags
*/
typedef enum
{
XVBA_GET_SURFACE_STATUS = 1, ///< get surface status; is surface still used by GPU
XVBA_GET_DECODE_ERRORS ///< get decode errors for target surface
} XVBA_QUERY_STATUS;
/**
* Synchronization status flags
*/
#define XVBA_STILL_PENDING 0x00000001 ///< surface is still used by HW
#define XVBA_COMPLETED 0x00000002 ///< HW completed job on this surface
#define XVBA_NO_ERROR_DECODE 0x00000004 ///< no decode errors
#define XVBA_ERROR_DECODE 0x00000008 ///< decode errors for queried surface
/**
* XVBA Surface synchronization
*/
typedef struct
{
unsigned int size;
void *session;
void *surface;
XVBA_QUERY_STATUS query_status;
} XVBA_Surface_Sync_Input;
typedef struct
{
unsigned int size;
unsigned int status_flags;
XVBADecodeError decode_error;
} XVBA_Surface_Sync_Output;
Status
XVBASyncSurface (
XVBA_Surface_Sync_Input *surface_sync_input,
XVBA_Surface_Sync_Output *surface_sync_output
);
// Conversion from OGL to XVBA surface
typedef struct
{
unsigned int size;
void *session;
void *glcontext;
unsigned int gltexture;
} XVBA_Create_GLShared_Surface_Input;
typedef struct
{
unsigned int size;
void *surface; // Pointer to XVBASurface
} XVBA_Create_GLShared_Surface_Output;
Status
XVBACreateGLSharedSurface (
XVBA_Create_GLShared_Surface_Input *create_glshared_surface_input,
XVBA_Create_GLShared_Surface_Output *create_glshared_surface_output
);
/**
* XVBA Get Surface
*/
typedef struct {
unsigned int size; ///< structure size
void *session; // XVBA session
void *src_surface; // source XVBA surface
void *target_buffer; // application supplied system memory buffer
unsigned int target_pitch; // pitch of the destination buffer
unsigned int target_width; // width of the destination buffer
unsigned int target_height; // height of the destination buffer
XVBA_GetSurface_Target target_parameter; // destination buffer format and flag
unsigned int reserved [4]; // reserved
} XVBA_Get_Surface_Input;
Status
XVBAGetSurface (
XVBA_Get_Surface_Input *get_surface_input
);
/**
* XVBA Transfer Surface
*/
typedef struct {
unsigned int size; ///< structure size
void *session; // XVBA session
void *src_surface; // source XVBA surface
void *target_surface; // destination XVBA surface
XVBA_SURFACE_FLAG flag; // top, bottom or frame
unsigned int reserved [4]; // reserved
} XVBA_Transfer_Surface_Input;
Status
XVBATransferSurface (
XVBA_Transfer_Surface_Input *transfer_surface_input
);
/******************************************************************/
/* XVBA Buffers */
/******************************************************************/
typedef enum
{
XVBA_NONE = 0,
XVBA_PICTURE_DESCRIPTION_BUFFER,
XVBA_DATA_BUFFER,
XVBA_DATA_CTRL_BUFFER,
XVBA_QM_BUFFER
} XVBA_BUFFER;
typedef struct
{
unsigned int size; ///< structure size
XVBA_BUFFER buffer_type;
unsigned int buffer_size; ///< allocated size of data in bytes
void *bufferXVBA; ///< pointer to XVBA decode data buffer
unsigned int data_size_in_buffer;///< Used in Decode call only
int data_offset; ///< Used in Decode call only
void *appPrivate; ///< used only by application to store pointer to its private data.
} XVBABufferDescriptor;
/**
* XVBA Decode buffers create
*/
typedef struct
{
unsigned int size; ///< structure size
void *session;
XVBA_BUFFER buffer_type;
unsigned int num_of_buffers;
} XVBA_Create_DecodeBuff_Input;
typedef struct
{
unsigned int size; ///< structure size
unsigned int num_of_buffers_in_list;
XVBABufferDescriptor *buffer_list;
} XVBA_Create_DecodeBuff_Output;
Status
XVBACreateDecodeBuffers (
XVBA_Create_DecodeBuff_Input *create_decodebuff_input,
XVBA_Create_DecodeBuff_Output *create_decodebuff_output
);
/**
* XVBA Decode buffers destroy
*/
typedef struct
{
unsigned int size;
void *session;
unsigned int num_of_buffers_in_list;
XVBABufferDescriptor *buffer_list;
} XVBA_Destroy_Decode_Buffers_Input;
Status
XVBADestroyDecodeBuffers (
XVBA_Destroy_Decode_Buffers_Input *buffer_list
);
/******************************************************************/
/* XVBA Decode session (XVBADecodeCap) */
/******************************************************************/
/**
* XVBADecodeCap flags
*/
typedef enum
{
XVBA_NOFLAG = 0,
XVBA_H264_BASELINE,
XVBA_H264_MAIN,
XVBA_H264_HIGH,
XVBA_VC1_SIMPLE,
XVBA_VC1_MAIN,
XVBA_VC1_ADVANCED,
} XVBA_DECODE_FLAGS;
/**
* XVBADecodeCap capability_id
*/
typedef enum
{
XVBA_H264 = 0x100,///< bitstream level of acceleration
XVBA_VC1, ///< bitstream level of acceleration
XVBA_MPEG2_IDCT, ///< iDCT and motion compensation level of acceleration
XVBA_MPEG2_VLD ///< bitstream level of acceleration
} XVBA_CAPABILITY_ID;
typedef struct {
unsigned int size; ///< structure size
XVBA_CAPABILITY_ID capability_id; ///< Unique descriptor for decode capability
XVBA_DECODE_FLAGS flags; ///< defines for additional information about capability
XVBA_SURFACE_FORMAT surface_type; ///< Surface type: fourcc YUV or RGB supported with this capability.
} XVBADecodeCap;
/**
* XVBADecodeCap Query Info
*/
typedef struct {
unsigned int size; ///< structure size
void *context;
} XVBA_GetCapDecode_Input;
typedef struct {
unsigned int size; ///< structure size
unsigned int num_of_decodecaps;
XVBADecodeCap decode_caps_list[NUM_OF_XVBA_DECODE_CAP];
unsigned int num_of_getsurface_target;
XVBA_GetSurface_Target getsurface_target_list[NUM_OF_XVBA_GET_SURFACE_TARGET];
} XVBA_GetCapDecode_Output;
Status
XVBAGetCapDecode (
XVBA_GetCapDecode_Input *decodecap_list_input,
XVBA_GetCapDecode_Output *decodecap_list_output
);
/**
* XVBADecodeCap create
*/
typedef struct {
unsigned int size; ///< structure size
unsigned int width; ///< decoded video width
unsigned int height; ///< decoded video height
void *context;
XVBADecodeCap *decode_cap; ///< capability from the driver reported list
} XVBA_Create_Decode_Session_Input;
typedef struct {
unsigned int size; ///< structure size
void *session; ///< Pointer to the created decode session
} XVBA_Create_Decode_Session_Output;
Status
XVBACreateDecode (
XVBA_Create_Decode_Session_Input *create_decode_session_input,
XVBA_Create_Decode_Session_Output *create_decode_session_output
);
/**
* XVBADecodeCap destroy
*/
Status
XVBADestroyDecode (
void *session
);
/******************************************************************/
/* XVBA Decode API */
/******************************************************************/
#define XVBA_PREDICTION_FIELD 0x01
#define XVBA_PREDICTION_FRAME 0x02
#define XVBA_PREDICTION_DUAL_PRIME 0x03
#define XVBA_PREDICTION_16x8 0x02
#define XVBA_SECOND_FIELD 0x00000004
/**
* XVBA inits picture decoding
*/
typedef struct
{
unsigned int size; ///< structure size
void *session; ///< pointer to decode session
void *target_surface; ///< decode target
} XVBA_Decode_Picture_Start_Input;
Status
XVBAStartDecodePicture (
XVBA_Decode_Picture_Start_Input *decode_picture_start
);
/**
* XVBA picture decode
*/
typedef struct
{
unsigned int size; ///< structure size
void *session; ///< pointer to decode session
unsigned int num_of_buffers_in_list; ///< number of decode compressed data buffers
XVBABufferDescriptor **buffer_list; ///< array of XVBABufferDescriptor structures
} XVBA_Decode_Picture_Input;
Status
XVBADecodePicture (
XVBA_Decode_Picture_Input *decode_picture_input
);
/**
* XVBA end picture decode
*/
typedef struct
{
unsigned int size;
void *session;
} XVBA_Decode_Picture_End_Input;
Status
XVBAEndDecodePicture (
XVBA_Decode_Picture_End_Input *decode_picture_end_input
);
/******************************************************************/
/* XVBA Decode Data buffers */
/******************************************************************/
/*
* XVBA compressed data type: XVBA_PICTURE_DESCRIPTOR_BUFFER
*/
typedef struct
{
//VC-1, MPEG2 bitstream references
void *past_surface;
void *future_surface;
unsigned int profile;
unsigned int level;
unsigned int width_in_mb;
unsigned int height_in_mb;
unsigned int picture_structure;
union {
struct {
unsigned int residual_colour_transform_flag : 1;
unsigned int delta_pic_always_zero_flag : 1;
unsigned int gaps_in_frame_num_value_allowed_flag: 1;
unsigned int frame_mbs_only_flag : 1;
unsigned int mb_adaptive_frame_field_flag : 1;
unsigned int direct_8x8_inference_flag : 1;
unsigned int xvba_avc_sps_reserved : 26;
} avc;
struct {
unsigned int postprocflag : 1;
unsigned int pulldown : 1;
unsigned int interlace : 1;
unsigned int tfcntrflag : 1;
unsigned int finterpflag : 1;
unsigned int reserved : 1;
unsigned int psf : 1;
unsigned int second_field : 1;
unsigned int xvba_vc1_sps_reserved : 24;
} vc1;
unsigned int flags;
} sps_info;
unsigned char chroma_format;
unsigned char avc_bit_depth_luma_minus8;
unsigned char avc_bit_depth_chroma_minus8;
unsigned char avc_log2_max_frame_num_minus4;
unsigned char avc_pic_order_cnt_type;
unsigned char avc_log2_max_pic_order_cnt_lsb_minus4;
unsigned char avc_num_ref_frames;
unsigned char avc_reserved_8bit;
union {
struct {
unsigned int entropy_coding_mode_flag : 1;
unsigned int pic_order_present_flag : 1;
unsigned int weighted_pred_flag : 1;
unsigned int weighted_bipred_idc : 2;
unsigned int deblocking_filter_control_present_flag : 1;
unsigned int constrained_intra_pred_flag : 1;
unsigned int redundant_pic_cnt_present_flag : 1;
unsigned int transform_8x8_mode_flag : 1;
unsigned int xvba_avc_pps_reserved : 23;
} avc;
struct {
unsigned int panscan_flag : 1;
unsigned int refdist_flag : 1;
unsigned int loopfilter : 1;
unsigned int fastuvmc : 1;
unsigned int extended_mv : 1;
unsigned int dquant : 2;
unsigned int vstransform : 1;
unsigned int overlap : 1;
unsigned int quantizer : 2;
unsigned int extended_dmv : 1;
unsigned int maxbframes : 3;
unsigned int rangered : 1;
unsigned int syncmarker : 1;
unsigned int multires : 1;
unsigned int reserved : 2;
unsigned int range_mapy_flag : 1;
unsigned int range_mapy : 3;
unsigned int range_mapuv_flag : 1;
unsigned int range_mapuv : 3;
unsigned int xvba_vc1_pps_reserved: 4;
} vc1;
unsigned int flags;
} pps_info;
unsigned char avc_num_slice_groups_minus1;
unsigned char avc_slice_group_map_type;
unsigned char avc_num_ref_idx_l0_active_minus1;
unsigned char avc_num_ref_idx_l1_active_minus1;
char avc_pic_init_qp_minus26;
char avc_pic_init_qs_minus26;
char avc_chroma_qp_index_offset;
char avc_second_chroma_qp_index_offset;
unsigned short avc_slice_group_change_rate_minus1;
unsigned short avc_reserved_16bit;
unsigned int avc_frame_num;
unsigned int avc_frame_num_list[16]; ///< bit 31 is used to indicate long/short term
int avc_curr_field_order_cnt_list[2];
int avc_field_order_cnt_list[16][2];
unsigned char avc_slice_group_map[810];
int avc_intra_flag;
int avc_reference;
int xvba_reserved[14];
} XVBAPictureDescriptor;
/**
* XVBA Compressed data type: XVBA_DATA_CTRL_BUFFER
* (H264 and VC1 only)
*/
typedef struct
{
unsigned int SliceBitsInBuffer;
unsigned int SliceDataLocation;
unsigned int SliceBytesInBuffer;
unsigned int reserved[5];
} XVBADataCtrl;
/**
* XVBA Compressed data type: XVBA_DATA_BUFFER
* (MPEG2 iDCT level decode only)
*/
typedef struct
{
struct
{
unsigned short index: 15; ///< contains rates scan index of the coefficient within the block.
///< cannot be greater or equal to (block width * block height)
unsigned short endofblock: 1;
} idx;
short coeff; ///< value of the coefficient in the block; mismatch control and
///< clipping is host.s responsibility
} XVBAMpeg2Residual;
typedef struct
{
short horizontal;
short vertical;
} XVBAMpeg2MV;
typedef struct
{
unsigned short mb_address;
struct
{
unsigned short mb_intra : 1;
unsigned short motion_fw : 1;
unsigned short motion_back : 1;
unsigned short reserved2 : 2;
unsigned short field_residual : 1;
unsigned short mb_scan_mode : 2;
unsigned short motion_type : 2;
unsigned short reserved1 : 2;
unsigned short motion_vector_sel0 : 1;
unsigned short motion_vector_sel1 : 1;
unsigned short motion_vector_sel2 : 1;
unsigned short motion_vector_sel3 : 1;
} mpeg2data1;
struct
{
unsigned int mb_data_resid_location : 24;
unsigned int skipped_mb : 8;
} mpeg2data2;
unsigned short pattern_code;
unsigned char numcoeff[6];
} XVBAMpeg2IntraMB;
typedef struct
{
unsigned short mb_address;
struct
{
unsigned short mb_intra : 1;
unsigned short motion_fw : 1;
unsigned short motion_back : 1;
unsigned short reserved2 : 2;
unsigned short field_residual : 1;
unsigned short mb_scan_mode : 2;
unsigned short motion_type : 2;
unsigned short reserved1 : 2;
unsigned short motion_vector_sel0 : 1;
unsigned short motion_vector_sel1 : 1;
unsigned short motion_vector_sel2 : 1;
unsigned short motion_vector_sel3 : 1;
} mpeg2data1;
struct
{
unsigned int mb_data_resid_location : 24;
unsigned int skipped_mb : 8;
} mpeg2data2;
unsigned short pattern_code;
unsigned char numcoeff[6];
XVBAMpeg2MV motion_vector[4];
} XVBAMpeg2NonIntraMB;
/**
* XVBA compressed data type: XVBA_QM_BUFFER
* (H264 and VC1 only)
*/
typedef struct
{
unsigned char bScalingLists4x4[6][16];
unsigned char bScalingLists8x8[2][64];
} XVBAQuantMatrixAvc;
#ifdef __cplusplus
}
#endif
#endif //_XVBA_H

View File

@ -175,8 +175,8 @@
# Displayserver to use (xorg-server / no)
DISPLAYSERVER="xorg-server"
# Graphic drivers to use (all / i915,i965,r200,r300,r600,radeon,nvidia,nouveau,vmware)
# Space separated list is supported,
# Graphic drivers to use (all / i915,i965,r200,r300,r600,fglrx,nvidia,nouveau,vmware)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau"
GRAPHIC_DRIVERS="nouveau"

View File

@ -175,8 +175,8 @@
# Displayserver to use (xorg-server / no)
DISPLAYSERVER="xorg-server"
# Graphic drivers to use (all / i915,i965,r200,r300,r600,radeon,nvidia,nouveau,vmware)
# Space separated list is supported,
# Graphic drivers to use (all / i915,i965,r200,r300,r600,fglrx,nvidia,nouveau,vmware)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon fglrx nvidia nouveau"
GRAPHIC_DRIVERS="fglrx"
@ -187,7 +187,7 @@
VDPAU="no"
# Use VAAPI video acceleration (needs intel i965 driver and a supported card)
VAAPI="no"
VAAPI="yes"
# Use Broadcom CrystalHD Decoder Card for video acceleration
# (needs Kernelsupport for Broadcom Decoder Card and a supported card)

View File

@ -175,10 +175,10 @@
# Displayserver to use (xorg-server / no)
DISPLAYSERVER="xorg-server"
# Graphic drivers to use (all / i915,i965,r200,r300,r600,radeon,nvidia,nouveau,vmware)
# Space separated list is supported,
# Graphic drivers to use (all / i915,i965,r200,r300,r600,fglrx,nvidia,nouveau,vmware)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 nvidia nouveau"
GRAPHIC_DRIVERS="i915 i965 r200 r300 fglrx nvidia vmware"
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 nvidia vmware"
# Use VDPAU video# use linux-next (latest rc) instead latest released version
LINUX_NEXT="no"

View File

@ -175,8 +175,8 @@
# Displayserver to use (xorg-server / no)
DISPLAYSERVER="xorg-server"
# Graphic drivers to use (all / i915,i965,r200,r300,r600,radeon,nvidia,nouveau,vmware)
# Space separated list is supported,
# Graphic drivers to use (all / i915,i965,r200,r300,r600,fglrx,nvidia,nouveau,vmware)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau"
GRAPHIC_DRIVERS="nvidia"

View File

@ -175,10 +175,10 @@
# Displayserver to use (xorg-server / no)
DISPLAYSERVER="xorg-server"
# Graphic drivers to use (all / i915,i965,r200,r300,r600,radeon,nvidia,nouveau,vmware)
# Space separated list is supported,
# Graphic drivers to use (all / i915,i965,r200,r300,r600,fglrx,nvidia,nouveau,vmware)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau"
GRAPHIC_DRIVERS="i965"
GRAPHIC_DRIVERS="i915 i965"
# use linux-next (latest rc) instead latest released version
LINUX_NEXT="no"

View File

@ -172,8 +172,8 @@
# Displayserver to use (xorg-server / no)
DISPLAYSERVER="xorg-server"
# Graphic drivers to use (all / i915,i965,r200,r300,r600,radeon,nvidia,nouveau,vmware)
# Space separated list is supported,
# Graphic drivers to use (all / i915,i965,r200,r300,r600,fglrx,nvidia,nouveau,vmware)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau"
GRAPHIC_DRIVERS="nvidia"