From 15e39ca28a1a98ea43729b65eb19e8e4e5e94ebc Mon Sep 17 00:00:00 2001 From: Christian König Date: Mon, 5 Aug 2013 11:41:27 -0600 Subject: st/omx: initial OpenMAX support v3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Featuring a full grown MPEG2 and H264 decoder and a couple of hundred bugs. v2 (Leo): fix an error for pic_order_cnt_type 1 v3 (Leo): implement support for field decoding Signed-off-by: Christian König Signed-off-by: Leo Liu --- src/gallium/targets/r600/omx/Makefile.am | 77 +++++++++++++++++++++++++++++++ src/gallium/targets/r600/omx/drm_target.c | 1 + 2 files changed, 78 insertions(+) create mode 100644 src/gallium/targets/r600/omx/Makefile.am create mode 120000 src/gallium/targets/r600/omx/drm_target.c (limited to 'src/gallium/targets/r600') diff --git a/src/gallium/targets/r600/omx/Makefile.am b/src/gallium/targets/r600/omx/Makefile.am new file mode 100644 index 00000000000..7660a8d2740 --- /dev/null +++ b/src/gallium/targets/r600/omx/Makefile.am @@ -0,0 +1,77 @@ +# Copyright © 2012 Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +include $(top_srcdir)/src/gallium/Automake.inc + +AM_CFLAGS = \ + $(GALLIUM_CFLAGS) \ + $(PTHREAD_CFLAGS) \ + $(LIBDRM_CFLAGS) +AM_CPPFLAGS = \ + -I$(top_srcdir)/src/gallium/drivers \ + -I$(top_srcdir)/src/gallium/winsys + +omxdir = $(OMX_LIB_INSTALL_DIR) +omx_LTLIBRARIES = libomx_r600.la + +EXPORTS = '^(omx_component_library_Setup|radeon_drm_winsys_create)$$' + +libomx_r600_la_SOURCES = \ + drm_target.c \ + $(top_srcdir)/src/gallium/auxiliary/vl/vl_winsys_dri.c + +libomx_r600_la_LDFLAGS = \ + -module \ + -export-symbols-regex $(EXPORTS) \ + -shared \ + -no-undefined + +libomx_r600_la_LIBADD = \ + $(top_builddir)/src/gallium/auxiliary/libgallium.la \ + $(top_builddir)/src/gallium/drivers/r600/libr600.la \ + $(top_builddir)/src/gallium/state_trackers/omx/libomxtracker.la \ + $(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la \ + $(top_builddir)/src/gallium/drivers/trace/libtrace.la \ + $(GALLIUM_DRI_LIB_DEPS) \ + $(OMX_LIBS) \ + $(LIBDRM_LIBS) \ + $(RADEON_LIBS) \ + -lstdc++ + +if HAVE_MESA_LLVM +libomx_r600_la_LINK = $(CXXLINK) $(libomx_r600_la_LDFLAGS) +# Mention a dummy pure C++ file to trigger generation of the $(LINK) variable +nodist_EXTRA_libomx_r600_la_SOURCES = dummy-cpp.cpp + +libomx_r600_la_LDFLAGS += $(LLVM_LDFLAGS) +libomx_r600_la_LIBADD += $(LLVM_LIBS) +else +libomx_r600_la_LINK = $(LINK) $(libomx_r600_la_LDFLAGS) +# Mention a dummy pure C file to trigger generation of the $(LINK) variable +nodist_EXTRA_libomx_r600_la_SOURCES = dummy-c.c +endif + +# Provide compatibility with scripts for the old Mesa build system for +# a while by putting a link to the driver into /lib of the build tree. +all-local: libomx_r600.la + $(MKDIR_P) $(top_builddir)/$(LIB_DIR)/gallium + ln -f .libs/libomx_r600.so* $(top_builddir)/$(LIB_DIR)/gallium/ diff --git a/src/gallium/targets/r600/omx/drm_target.c b/src/gallium/targets/r600/omx/drm_target.c new file mode 120000 index 00000000000..6955421104a --- /dev/null +++ b/src/gallium/targets/r600/omx/drm_target.c @@ -0,0 +1 @@ +../common/drm_target.c \ No newline at end of file -- cgit v1.2.3