added mpeg2 library
This commit is contained in:
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
1
project/jni/mpeg2/src/convert/.deps/rgb.Plo
Normal file
1
project/jni/mpeg2/src/convert/.deps/rgb.Plo
Normal file
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
1
project/jni/mpeg2/src/convert/.deps/uyvy.Plo
Normal file
1
project/jni/mpeg2/src/convert/.deps/uyvy.Plo
Normal file
@@ -0,0 +1 @@
|
||||
# dummy
|
||||
558
project/jni/mpeg2/src/convert/Makefile
Normal file
558
project/jni/mpeg2/src/convert/Makefile
Normal file
@@ -0,0 +1,558 @@
|
||||
# Makefile.in generated by automake 1.10.1 from Makefile.am.
|
||||
# libmpeg2/convert/Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
pkgdatadir = $(datadir)/libmpeg2
|
||||
pkglibdir = $(libdir)/libmpeg2
|
||||
pkgincludedir = $(includedir)/libmpeg2
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = x86_64-unknown-linux-gnu
|
||||
host_triplet = x86_64-unknown-linux-gnu
|
||||
subdir = libmpeg2/convert
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/libmpeg2convert.pc.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/cflags.m4 \
|
||||
$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/keywords.m4 \
|
||||
$(top_srcdir)/m4/nonpic.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES = libmpeg2convert.pc
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)"
|
||||
libLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
|
||||
libmpeg2convert_la_DEPENDENCIES = libmpeg2convertarch.la
|
||||
am_libmpeg2convert_la_OBJECTS = rgb.lo uyvy.lo
|
||||
libmpeg2convert_la_OBJECTS = $(am_libmpeg2convert_la_OBJECTS)
|
||||
libmpeg2convert_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(libmpeg2convert_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||
libmpeg2convertarch_la_LIBADD =
|
||||
am_libmpeg2convertarch_la_OBJECTS = libmpeg2convertarch_la-rgb_mmx.lo \
|
||||
libmpeg2convertarch_la-rgb_vis.lo
|
||||
libmpeg2convertarch_la_OBJECTS = $(am_libmpeg2convertarch_la_OBJECTS)
|
||||
libmpeg2convertarch_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||
$(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)/include
|
||||
depcomp = $(SHELL) $(top_srcdir)/.auto/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(libmpeg2convert_la_SOURCES) \
|
||||
$(libmpeg2convertarch_la_SOURCES)
|
||||
DIST_SOURCES = $(libmpeg2convert_la_SOURCES) \
|
||||
$(libmpeg2convertarch_la_SOURCES)
|
||||
pkgconfigDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(pkgconfig_DATA)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = ${SHELL} /home/lyubomyr/dev/libmpeg2-0.5.1/.auto/missing --run aclocal-1.10
|
||||
AMTAR = ${SHELL} /home/lyubomyr/dev/libmpeg2-0.5.1/.auto/missing --run tar
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
|
||||
AR = ar
|
||||
ARCH_OPT_CFLAGS =
|
||||
AS = as
|
||||
AUTOCONF = ${SHELL} /home/lyubomyr/dev/libmpeg2-0.5.1/.auto/missing --run autoconf
|
||||
AUTOHEADER = ${SHELL} /home/lyubomyr/dev/libmpeg2-0.5.1/.auto/missing --run autoheader
|
||||
AUTOMAKE = ${SHELL} /home/lyubomyr/dev/libmpeg2-0.5.1/.auto/missing --run automake-1.10
|
||||
AWK = gawk
|
||||
CC = gcc
|
||||
CCAS = gcc
|
||||
CCASDEPMODE = depmode=gcc3
|
||||
CCASFLAGS = -g -O2
|
||||
CCDEPMODE = depmode=gcc3
|
||||
CFLAGS = -g -O2
|
||||
CPP = gcc -E
|
||||
CPPFLAGS =
|
||||
CXX = g++
|
||||
CXXCPP = g++ -E
|
||||
CXXDEPMODE = depmode=gcc3
|
||||
CXXFLAGS = -g -O2
|
||||
CYGPATH_W = echo
|
||||
DEFS = -DHAVE_CONFIG_H
|
||||
DEPDIR = .deps
|
||||
DLLTOOL = dlltool
|
||||
DSYMUTIL =
|
||||
ECHO = echo
|
||||
ECHO_C =
|
||||
ECHO_N = -n
|
||||
ECHO_T =
|
||||
EGREP = /bin/grep -E
|
||||
EXEEXT =
|
||||
F77 =
|
||||
FFLAGS =
|
||||
GREP = /bin/grep
|
||||
INSTALL = /usr/bin/install -c
|
||||
INSTALL_DATA = ${INSTALL} -m 644
|
||||
INSTALL_PROGRAM = ${INSTALL}
|
||||
INSTALL_SCRIPT = ${INSTALL}
|
||||
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
|
||||
LDFLAGS =
|
||||
LIBMPEG2_CFLAGS =
|
||||
LIBOBJS =
|
||||
LIBS =
|
||||
LIBTOOL = $(SHELL) $(top_builddir)/libtool
|
||||
LIBVO_CFLAGS =
|
||||
LIBVO_LIBS =
|
||||
LN_S = ln -s
|
||||
LTLIBOBJS =
|
||||
MAINT = #
|
||||
MAKEINFO = ${SHELL} /home/lyubomyr/dev/libmpeg2-0.5.1/.auto/missing --run makeinfo
|
||||
MKDIR_P = /bin/mkdir -p
|
||||
MPEG2DEC_CFLAGS = -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare -g -O3 -fomit-frame-pointer -fno-common
|
||||
NMEDIT =
|
||||
OBJDUMP = objdump
|
||||
OBJEXT = o
|
||||
OPT_CFLAGS = -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare -g -O3 -fomit-frame-pointer -fno-common
|
||||
PACKAGE = libmpeg2
|
||||
PACKAGE_BUGREPORT =
|
||||
PACKAGE_NAME = libmpeg2
|
||||
PACKAGE_STRING = libmpeg2 0.5.1
|
||||
PACKAGE_TARNAME = libmpeg2
|
||||
PACKAGE_VERSION = 0.5.1
|
||||
PATH_SEPARATOR = :
|
||||
RANLIB = ranlib
|
||||
SDLCONFIG =
|
||||
SED = /bin/sed
|
||||
SET_MAKE =
|
||||
SHELL = /bin/bash
|
||||
STRIP = strip
|
||||
VERSION = 0.5.1
|
||||
XMKMF =
|
||||
X_CFLAGS =
|
||||
X_EXTRA_LIBS =
|
||||
X_LIBS =
|
||||
X_PRE_LIBS =
|
||||
abs_builddir = /home/lyubomyr/dev/libmpeg2-0.5.1/libmpeg2/convert
|
||||
abs_srcdir = /home/lyubomyr/dev/libmpeg2-0.5.1/libmpeg2/convert
|
||||
abs_top_builddir = /home/lyubomyr/dev/libmpeg2-0.5.1
|
||||
abs_top_srcdir = /home/lyubomyr/dev/libmpeg2-0.5.1
|
||||
ac_ct_CC = gcc
|
||||
ac_ct_CXX = g++
|
||||
ac_ct_F77 =
|
||||
am__include = include
|
||||
am__leading_dot = .
|
||||
am__quote =
|
||||
am__tar = ${AMTAR} chof - "$$tardir"
|
||||
am__untar = ${AMTAR} xf -
|
||||
bindir = ${exec_prefix}/bin
|
||||
build = x86_64-unknown-linux-gnu
|
||||
build_alias =
|
||||
build_cpu = x86_64
|
||||
build_os = linux-gnu
|
||||
build_vendor = unknown
|
||||
builddir = .
|
||||
datadir = ${datarootdir}
|
||||
datarootdir = ${prefix}/share
|
||||
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
|
||||
dvidir = ${docdir}
|
||||
exec_prefix = ${prefix}
|
||||
host = x86_64-unknown-linux-gnu
|
||||
host_alias =
|
||||
host_cpu = x86_64
|
||||
host_os = linux-gnu
|
||||
host_vendor = unknown
|
||||
htmldir = ${docdir}
|
||||
includedir = ${prefix}/include
|
||||
infodir = ${datarootdir}/info
|
||||
install_sh = $(SHELL) /home/lyubomyr/dev/libmpeg2-0.5.1/.auto/install-sh
|
||||
libdir = ${exec_prefix}/lib
|
||||
libexecdir = ${exec_prefix}/libexec
|
||||
localedir = ${datarootdir}/locale
|
||||
localstatedir = ${prefix}/var
|
||||
mandir = ${datarootdir}/man
|
||||
mkdir_p = /bin/mkdir -p
|
||||
oldincludedir = /usr/include
|
||||
pdfdir = ${docdir}
|
||||
prefix = /usr/local
|
||||
program_transform_name = s,x,x,
|
||||
psdir = ${docdir}
|
||||
sbindir = ${exec_prefix}/sbin
|
||||
sharedstatedir = ${prefix}/com
|
||||
srcdir = .
|
||||
sysconfdir = ${prefix}/etc
|
||||
target_alias =
|
||||
top_builddir = ../..
|
||||
top_srcdir = ../..
|
||||
AM_CFLAGS = $(OPT_CFLAGS) $(LIBMPEG2_CFLAGS)
|
||||
lib_LTLIBRARIES = libmpeg2convert.la
|
||||
libmpeg2convert_la_SOURCES = rgb.c uyvy.c
|
||||
libmpeg2convert_la_LIBADD = libmpeg2convertarch.la
|
||||
libmpeg2convert_la_LDFLAGS = -no-undefined
|
||||
noinst_LTLIBRARIES = libmpeg2convertarch.la
|
||||
libmpeg2convertarch_la_SOURCES = rgb_mmx.c rgb_vis.c
|
||||
libmpeg2convertarch_la_CFLAGS = $(OPT_CFLAGS) $(ARCH_OPT_CFLAGS) $(LIBMPEG2_CFLAGS)
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libmpeg2convert.pc
|
||||
EXTRA_DIST = convert_internal.h
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libmpeg2/convert/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign libmpeg2/convert/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: # $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
libmpeg2convert.pc: $(top_builddir)/config.status $(srcdir)/libmpeg2convert.pc.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
p=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
|
||||
done
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
|
||||
clean-noinstLTLIBRARIES:
|
||||
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
|
||||
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
libmpeg2convert.la: $(libmpeg2convert_la_OBJECTS) $(libmpeg2convert_la_DEPENDENCIES)
|
||||
$(libmpeg2convert_la_LINK) -rpath $(libdir) $(libmpeg2convert_la_OBJECTS) $(libmpeg2convert_la_LIBADD) $(LIBS)
|
||||
libmpeg2convertarch.la: $(libmpeg2convertarch_la_OBJECTS) $(libmpeg2convertarch_la_DEPENDENCIES)
|
||||
$(libmpeg2convertarch_la_LINK) $(libmpeg2convertarch_la_OBJECTS) $(libmpeg2convertarch_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
include ./$(DEPDIR)/libmpeg2convertarch_la-rgb_mmx.Plo
|
||||
include ./$(DEPDIR)/libmpeg2convertarch_la-rgb_vis.Plo
|
||||
include ./$(DEPDIR)/rgb.Plo
|
||||
include ./$(DEPDIR)/uyvy.Plo
|
||||
|
||||
.c.o:
|
||||
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
# source='$<' object='$@' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
||||
# $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
# source='$<' object='$@' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
||||
# $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
# source='$<' object='$@' libtool=yes \
|
||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
||||
# $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
libmpeg2convertarch_la-rgb_mmx.lo: rgb_mmx.c
|
||||
$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) -MT libmpeg2convertarch_la-rgb_mmx.lo -MD -MP -MF $(DEPDIR)/libmpeg2convertarch_la-rgb_mmx.Tpo -c -o libmpeg2convertarch_la-rgb_mmx.lo `test -f 'rgb_mmx.c' || echo '$(srcdir)/'`rgb_mmx.c
|
||||
mv -f $(DEPDIR)/libmpeg2convertarch_la-rgb_mmx.Tpo $(DEPDIR)/libmpeg2convertarch_la-rgb_mmx.Plo
|
||||
# source='rgb_mmx.c' object='libmpeg2convertarch_la-rgb_mmx.lo' libtool=yes \
|
||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
||||
# $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) -c -o libmpeg2convertarch_la-rgb_mmx.lo `test -f 'rgb_mmx.c' || echo '$(srcdir)/'`rgb_mmx.c
|
||||
|
||||
libmpeg2convertarch_la-rgb_vis.lo: rgb_vis.c
|
||||
$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) -MT libmpeg2convertarch_la-rgb_vis.lo -MD -MP -MF $(DEPDIR)/libmpeg2convertarch_la-rgb_vis.Tpo -c -o libmpeg2convertarch_la-rgb_vis.lo `test -f 'rgb_vis.c' || echo '$(srcdir)/'`rgb_vis.c
|
||||
mv -f $(DEPDIR)/libmpeg2convertarch_la-rgb_vis.Tpo $(DEPDIR)/libmpeg2convertarch_la-rgb_vis.Plo
|
||||
# source='rgb_vis.c' object='libmpeg2convertarch_la-rgb_vis.lo' libtool=yes \
|
||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
||||
# $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) -c -o libmpeg2convertarch_la-rgb_vis.lo `test -f 'rgb_vis.c' || echo '$(srcdir)/'`rgb_vis.c
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-pkgconfigDATA: $(pkgconfig_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
|
||||
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||
$(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-pkgconfigDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LTLIBRARIES) $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||
clean-noinstLTLIBRARIES mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-pkgconfigDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am: install-libLTLIBRARIES
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \
|
||||
ctags distclean distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-libLTLIBRARIES install-man install-pdf \
|
||||
install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
|
||||
pdf pdf-am ps ps-am tags uninstall uninstall-am \
|
||||
uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
|
||||
|
||||
# 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.
|
||||
.NOEXPORT:
|
||||
15
project/jni/mpeg2/src/convert/Makefile.am
Normal file
15
project/jni/mpeg2/src/convert/Makefile.am
Normal file
@@ -0,0 +1,15 @@
|
||||
AM_CFLAGS = $(OPT_CFLAGS) $(LIBMPEG2_CFLAGS)
|
||||
|
||||
lib_LTLIBRARIES = libmpeg2convert.la
|
||||
libmpeg2convert_la_SOURCES = rgb.c uyvy.c
|
||||
libmpeg2convert_la_LIBADD = libmpeg2convertarch.la
|
||||
libmpeg2convert_la_LDFLAGS = -no-undefined
|
||||
|
||||
noinst_LTLIBRARIES = libmpeg2convertarch.la
|
||||
libmpeg2convertarch_la_SOURCES = rgb_mmx.c rgb_vis.c
|
||||
libmpeg2convertarch_la_CFLAGS = $(OPT_CFLAGS) $(ARCH_OPT_CFLAGS) $(LIBMPEG2_CFLAGS)
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libmpeg2convert.pc
|
||||
|
||||
EXTRA_DIST = convert_internal.h
|
||||
558
project/jni/mpeg2/src/convert/Makefile.in
Normal file
558
project/jni/mpeg2/src/convert/Makefile.in
Normal file
@@ -0,0 +1,558 @@
|
||||
# Makefile.in generated by automake 1.10.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = libmpeg2/convert
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/libmpeg2convert.pc.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/cflags.m4 \
|
||||
$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/keywords.m4 \
|
||||
$(top_srcdir)/m4/nonpic.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES = libmpeg2convert.pc
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)"
|
||||
libLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
|
||||
libmpeg2convert_la_DEPENDENCIES = libmpeg2convertarch.la
|
||||
am_libmpeg2convert_la_OBJECTS = rgb.lo uyvy.lo
|
||||
libmpeg2convert_la_OBJECTS = $(am_libmpeg2convert_la_OBJECTS)
|
||||
libmpeg2convert_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(libmpeg2convert_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||
libmpeg2convertarch_la_LIBADD =
|
||||
am_libmpeg2convertarch_la_OBJECTS = libmpeg2convertarch_la-rgb_mmx.lo \
|
||||
libmpeg2convertarch_la-rgb_vis.lo
|
||||
libmpeg2convertarch_la_OBJECTS = $(am_libmpeg2convertarch_la_OBJECTS)
|
||||
libmpeg2convertarch_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||
$(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
|
||||
depcomp = $(SHELL) $(top_srcdir)/.auto/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(libmpeg2convert_la_SOURCES) \
|
||||
$(libmpeg2convertarch_la_SOURCES)
|
||||
DIST_SOURCES = $(libmpeg2convert_la_SOURCES) \
|
||||
$(libmpeg2convertarch_la_SOURCES)
|
||||
pkgconfigDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(pkgconfig_DATA)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@
|
||||
AR = @AR@
|
||||
ARCH_OPT_CFLAGS = @ARCH_OPT_CFLAGS@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCAS = @CCAS@
|
||||
CCASDEPMODE = @CCASDEPMODE@
|
||||
CCASFLAGS = @CCASFLAGS@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBVO_CFLAGS = @LIBVO_CFLAGS@
|
||||
LIBVO_LIBS = @LIBVO_LIBS@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MPEG2DEC_CFLAGS = @MPEG2DEC_CFLAGS@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OPT_CFLAGS = @OPT_CFLAGS@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SDLCONFIG = @SDLCONFIG@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
XMKMF = @XMKMF@
|
||||
X_CFLAGS = @X_CFLAGS@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_LIBS = @X_LIBS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
AM_CFLAGS = $(OPT_CFLAGS) $(LIBMPEG2_CFLAGS)
|
||||
lib_LTLIBRARIES = libmpeg2convert.la
|
||||
libmpeg2convert_la_SOURCES = rgb.c uyvy.c
|
||||
libmpeg2convert_la_LIBADD = libmpeg2convertarch.la
|
||||
libmpeg2convert_la_LDFLAGS = -no-undefined
|
||||
noinst_LTLIBRARIES = libmpeg2convertarch.la
|
||||
libmpeg2convertarch_la_SOURCES = rgb_mmx.c rgb_vis.c
|
||||
libmpeg2convertarch_la_CFLAGS = $(OPT_CFLAGS) $(ARCH_OPT_CFLAGS) $(LIBMPEG2_CFLAGS)
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libmpeg2convert.pc
|
||||
EXTRA_DIST = convert_internal.h
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libmpeg2/convert/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign libmpeg2/convert/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
libmpeg2convert.pc: $(top_builddir)/config.status $(srcdir)/libmpeg2convert.pc.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
p=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
|
||||
done
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
|
||||
clean-noinstLTLIBRARIES:
|
||||
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
|
||||
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
libmpeg2convert.la: $(libmpeg2convert_la_OBJECTS) $(libmpeg2convert_la_DEPENDENCIES)
|
||||
$(libmpeg2convert_la_LINK) -rpath $(libdir) $(libmpeg2convert_la_OBJECTS) $(libmpeg2convert_la_LIBADD) $(LIBS)
|
||||
libmpeg2convertarch.la: $(libmpeg2convertarch_la_OBJECTS) $(libmpeg2convertarch_la_DEPENDENCIES)
|
||||
$(libmpeg2convertarch_la_LINK) $(libmpeg2convertarch_la_OBJECTS) $(libmpeg2convertarch_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpeg2convertarch_la-rgb_mmx.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpeg2convertarch_la-rgb_vis.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rgb.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uyvy.Plo@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
libmpeg2convertarch_la-rgb_mmx.lo: rgb_mmx.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) -MT libmpeg2convertarch_la-rgb_mmx.lo -MD -MP -MF $(DEPDIR)/libmpeg2convertarch_la-rgb_mmx.Tpo -c -o libmpeg2convertarch_la-rgb_mmx.lo `test -f 'rgb_mmx.c' || echo '$(srcdir)/'`rgb_mmx.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libmpeg2convertarch_la-rgb_mmx.Tpo $(DEPDIR)/libmpeg2convertarch_la-rgb_mmx.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rgb_mmx.c' object='libmpeg2convertarch_la-rgb_mmx.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) -c -o libmpeg2convertarch_la-rgb_mmx.lo `test -f 'rgb_mmx.c' || echo '$(srcdir)/'`rgb_mmx.c
|
||||
|
||||
libmpeg2convertarch_la-rgb_vis.lo: rgb_vis.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) -MT libmpeg2convertarch_la-rgb_vis.lo -MD -MP -MF $(DEPDIR)/libmpeg2convertarch_la-rgb_vis.Tpo -c -o libmpeg2convertarch_la-rgb_vis.lo `test -f 'rgb_vis.c' || echo '$(srcdir)/'`rgb_vis.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libmpeg2convertarch_la-rgb_vis.Tpo $(DEPDIR)/libmpeg2convertarch_la-rgb_vis.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rgb_vis.c' object='libmpeg2convertarch_la-rgb_vis.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmpeg2convertarch_la_CFLAGS) $(CFLAGS) -c -o libmpeg2convertarch_la-rgb_vis.lo `test -f 'rgb_vis.c' || echo '$(srcdir)/'`rgb_vis.c
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-pkgconfigDATA: $(pkgconfig_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
|
||||
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||
$(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-pkgconfigDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LTLIBRARIES) $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||
clean-noinstLTLIBRARIES mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-pkgconfigDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am: install-libLTLIBRARIES
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \
|
||||
ctags distclean distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-libLTLIBRARIES install-man install-pdf \
|
||||
install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
|
||||
pdf pdf-am ps ps-am tags uninstall uninstall-am \
|
||||
uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
|
||||
|
||||
# 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.
|
||||
.NOEXPORT:
|
||||
42
project/jni/mpeg2/src/convert/convert_internal.h
Normal file
42
project/jni/mpeg2/src/convert/convert_internal.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* convert_internal.h
|
||||
* Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
|
||||
* Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
|
||||
*
|
||||
* This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
|
||||
* See http://libmpeg2.sourceforge.net/ for updates.
|
||||
*
|
||||
* mpeg2dec 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.
|
||||
*
|
||||
* mpeg2dec 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
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
uint8_t * rgb_ptr;
|
||||
int width;
|
||||
int field;
|
||||
int y_stride, rgb_stride, y_increm, uv_increm, rgb_increm, rgb_slice;
|
||||
int chroma420, convert420;
|
||||
int dither_offset, dither_stride;
|
||||
int y_stride_frame, uv_stride_frame, rgb_stride_frame, rgb_stride_min;
|
||||
} convert_rgb_t;
|
||||
|
||||
typedef void mpeg2convert_copy_t (void * id, uint8_t * const * src,
|
||||
unsigned int v_offset);
|
||||
|
||||
mpeg2convert_copy_t * mpeg2convert_rgb_mmxext (int bpp, int mode,
|
||||
const mpeg2_sequence_t * seq);
|
||||
mpeg2convert_copy_t * mpeg2convert_rgb_mmx (int bpp, int mode,
|
||||
const mpeg2_sequence_t * seq);
|
||||
mpeg2convert_copy_t * mpeg2convert_rgb_vis (int bpp, int mode,
|
||||
const mpeg2_sequence_t * seq);
|
||||
10
project/jni/mpeg2/src/convert/libmpeg2convert.pc
Normal file
10
project/jni/mpeg2/src/convert/libmpeg2convert.pc
Normal file
@@ -0,0 +1,10 @@
|
||||
prefix=/usr/local
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/lib
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: libmpeg2convert
|
||||
Description: Image conversion library helper for libmpeg2
|
||||
Version: 0.5.1
|
||||
Libs: -L${libdir} -lmpeg2convert
|
||||
Cflags: -I${includedir}/mpeg2dec
|
||||
10
project/jni/mpeg2/src/convert/libmpeg2convert.pc.in
Normal file
10
project/jni/mpeg2/src/convert/libmpeg2convert.pc.in
Normal file
@@ -0,0 +1,10 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: libmpeg2convert
|
||||
Description: Image conversion library helper for libmpeg2
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -lmpeg2convert
|
||||
Cflags: -I${includedir}/mpeg2dec
|
||||
598
project/jni/mpeg2/src/convert/rgb.c
Normal file
598
project/jni/mpeg2/src/convert/rgb.c
Normal file
@@ -0,0 +1,598 @@
|
||||
/*
|
||||
* rgb.c
|
||||
* Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
|
||||
* Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
|
||||
*
|
||||
* This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
|
||||
* See http://libmpeg2.sourceforge.net/ for updates.
|
||||
*
|
||||
* mpeg2dec 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.
|
||||
*
|
||||
* mpeg2dec 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
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "attributes.h"
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "mpeg2.h"
|
||||
#include "mpeg2convert.h"
|
||||
#include "convert_internal.h"
|
||||
|
||||
static int matrix_coefficients = 6;
|
||||
|
||||
static const int Inverse_Table_6_9[8][4] = {
|
||||
{117504, 138453, 13954, 34903}, /* no sequence_display_extension */
|
||||
{117504, 138453, 13954, 34903}, /* ITU-R Rec. 709 (1990) */
|
||||
{104597, 132201, 25675, 53279}, /* unspecified */
|
||||
{104597, 132201, 25675, 53279}, /* reserved */
|
||||
{104448, 132798, 24759, 53109}, /* FCC */
|
||||
{104597, 132201, 25675, 53279}, /* ITU-R Rec. 624-4 System B, G */
|
||||
{104597, 132201, 25675, 53279}, /* SMPTE 170M */
|
||||
{117579, 136230, 16907, 35559} /* SMPTE 240M (1987) */
|
||||
};
|
||||
|
||||
static const uint8_t dither[] ATTR_ALIGN(32) = {
|
||||
0, 0, 23, 54, 5, 13, 29, 68, 1, 3, 24, 58, 7, 17, 30, 71,
|
||||
0, 0, 23, 54, 5, 13, 29, 68, 1, 3, 24, 58, 7, 17, 30, 71,
|
||||
0, 0, 23, 54, 5, 13, 29, 68, 1, 3, 24, 58, 7, 17, 30, 71,
|
||||
0, 0, 23, 54, 5, 13, 29, 68, 1, 3, 24, 58, 7, 17, 30, 71,
|
||||
15, 36, 7, 18, 21, 50, 13, 31, 17, 39, 9, 21, 22, 53, 15, 35,
|
||||
15, 36, 7, 18, 21, 50, 13, 31, 17, 39, 9, 21, 22, 53, 15, 35,
|
||||
15, 36, 7, 18, 21, 50, 13, 31, 17, 39, 9, 21, 22, 53, 15, 35,
|
||||
15, 36, 7, 18, 21, 50, 13, 31, 17, 39, 9, 21, 22, 53, 15, 35,
|
||||
3, 9, 27, 63, 1, 4, 25, 59, 5, 12, 28, 67, 3, 7, 26, 62,
|
||||
3, 9, 27, 63, 1, 4, 25, 59, 5, 12, 28, 67, 3, 7, 26, 62,
|
||||
3, 9, 27, 63, 1, 4, 25, 59, 5, 12, 28, 67, 3, 7, 26, 62,
|
||||
3, 9, 27, 63, 1, 4, 25, 59, 5, 12, 28, 67, 3, 7, 26, 62,
|
||||
19, 45, 11, 27, 17, 41, 9, 22, 21, 49, 13, 30, 19, 44, 11, 26,
|
||||
19, 45, 11, 27, 17, 41, 9, 22, 21, 49, 13, 30, 19, 44, 11, 26,
|
||||
19, 45, 11, 27, 17, 41, 9, 22, 21, 49, 13, 30, 19, 44, 11, 26,
|
||||
19, 45, 11, 27, 17, 41, 9, 22, 21, 49, 13, 30, 19, 44, 11, 26,
|
||||
0, 2, 24, 57, 6, 15, 30, 70, 0, 1, 23, 55, 6, 14, 29, 69,
|
||||
0, 2, 24, 57, 6, 15, 30, 70, 0, 1, 23, 55, 6, 14, 29, 69,
|
||||
0, 2, 24, 57, 6, 15, 30, 70, 0, 1, 23, 55, 6, 14, 29, 69,
|
||||
0, 2, 24, 57, 6, 15, 30, 70, 0, 1, 23, 55, 6, 14, 29, 69,
|
||||
16, 38, 8, 20, 22, 52, 14, 34, 16, 37, 8, 19, 21, 51, 14, 33,
|
||||
16, 38, 8, 20, 22, 52, 14, 34, 16, 37, 8, 19, 21, 51, 14, 33,
|
||||
16, 38, 8, 20, 22, 52, 14, 34, 16, 37, 8, 19, 21, 51, 14, 33,
|
||||
16, 38, 8, 20, 22, 52, 14, 34, 16, 37, 8, 19, 21, 51, 14, 33,
|
||||
4, 11, 28, 66, 2, 6, 26, 61, 4, 10, 27, 65, 2, 5, 25, 60,
|
||||
4, 11, 28, 66, 2, 6, 26, 61, 4, 10, 27, 65, 2, 5, 25, 60,
|
||||
4, 11, 28, 66, 2, 6, 26, 61, 4, 10, 27, 65, 2, 5, 25, 60,
|
||||
4, 11, 28, 66, 2, 6, 26, 61, 4, 10, 27, 65, 2, 5, 25, 60,
|
||||
20, 47, 12, 29, 18, 43, 10, 25, 20, 46, 12, 28, 18, 42, 10, 23,
|
||||
20, 47, 12, 29, 18, 43, 10, 25, 20, 46, 12, 28, 18, 42, 10, 23,
|
||||
20, 47, 12, 29, 18, 43, 10, 25, 20, 46, 12, 28, 18, 42, 10, 23,
|
||||
20, 47, 12, 29, 18, 43, 10, 25, 20, 46, 12, 28, 18, 42, 10, 23,
|
||||
0, 0, 23, 54, 5, 13, 29, 68, 1, 3, 24, 58, 7, 17, 30, 71,
|
||||
0, 0, 23, 54, 5, 13, 29, 68, 1, 3, 24, 58, 7, 17, 30, 71,
|
||||
0, 0, 23, 54, 5, 13, 29, 68, 1, 3, 24, 58, 7, 17, 30, 71,
|
||||
0, 0, 23, 54, 5, 13, 29, 68, 1, 3, 24, 58, 7, 17, 30, 71,
|
||||
15, 36, 7, 18, 21, 50, 13, 31, 17, 39, 9, 21, 22, 53, 15, 35,
|
||||
15, 36, 7, 18, 21, 50, 13, 31, 17, 39, 9, 21, 22, 53, 15, 35
|
||||
};
|
||||
|
||||
static const uint8_t dither_temporal[64] = {
|
||||
0x00, 0x20, 0x21, 0x01, 0x40, 0x60, 0x61, 0x41,
|
||||
0x42, 0x62, 0x63, 0x43, 0x02, 0x22, 0x23, 0x03,
|
||||
0x80, 0xa0, 0xa1, 0x81, 0xc0, 0xe0, 0xe1, 0xc1,
|
||||
0xc2, 0xe2, 0xe3, 0xc3, 0x82, 0xa2, 0xa3, 0x83,
|
||||
0x84, 0xa4, 0xa5, 0x85, 0xc4, 0xe4, 0xe5, 0xc5,
|
||||
0xc6, 0xe6, 0xe7, 0xc7, 0x86, 0xa6, 0xa7, 0x87,
|
||||
0x04, 0x24, 0x25, 0x05, 0x44, 0x64, 0x65, 0x45,
|
||||
0x46, 0x66, 0x67, 0x47, 0x06, 0x26, 0x27, 0x07
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
convert_rgb_t base;
|
||||
void * table_rV[256];
|
||||
void * table_gU[256];
|
||||
int table_gV[256];
|
||||
void * table_bU[256];
|
||||
} convert_rgb_c_t;
|
||||
|
||||
#define RGB(type,i) \
|
||||
U = pu[i]; \
|
||||
V = pv[i]; \
|
||||
r = (type *) id->table_rV[V]; \
|
||||
g = (type *) (((uint8_t *)id->table_gU[U]) + id->table_gV[V]); \
|
||||
b = (type *) id->table_bU[U];
|
||||
|
||||
#define DST(py,dst,i,j) \
|
||||
Y = py[i]; \
|
||||
dst[i] = r[Y] + g[Y] + b[Y];
|
||||
|
||||
#define DSTRGB(py,dst,i,j) \
|
||||
Y = py[i]; \
|
||||
dst[3*i] = r[Y]; dst[3*i+1] = g[Y]; dst[3*i+2] = b[Y];
|
||||
|
||||
#define DSTBGR(py,dst,i,j) \
|
||||
Y = py[i]; \
|
||||
dst[3*i] = b[Y]; dst[3*i+1] = g[Y]; dst[3*i+2] = r[Y];
|
||||
|
||||
#define DSTDITHER(py,dst,i,j) \
|
||||
Y = py[i]; \
|
||||
dst[i] = r[Y+pd[2*i+96*j]] + g[Y-pd[2*i+96*j]] + b[Y+pd[2*i+1+96*j]];
|
||||
|
||||
#define DO(x) x
|
||||
#define SKIP(x)
|
||||
|
||||
#define DECLARE_420(func,type,num,DST,DITHER) \
|
||||
static void func (void * _id, uint8_t * const * src, \
|
||||
unsigned int v_offset) \
|
||||
{ \
|
||||
const convert_rgb_c_t * const id = (convert_rgb_c_t *) _id; \
|
||||
type * dst_1; \
|
||||
const uint8_t * py_1, * pu, * pv; \
|
||||
int i; \
|
||||
DITHER(uint8_t dithpos = id->base.dither_offset;) \
|
||||
\
|
||||
dst_1 = (type *)(id->base.rgb_ptr + id->base.rgb_slice * v_offset); \
|
||||
py_1 = src[0]; pu = src[1]; pv = src[2]; \
|
||||
\
|
||||
i = 8; \
|
||||
do { \
|
||||
const uint8_t * py_2; \
|
||||
int j, U, V, Y; \
|
||||
const type * r, * g, * b; \
|
||||
type * dst_2; \
|
||||
DITHER(const uint8_t * const pd = dither + 2 * dithpos;) \
|
||||
\
|
||||
dst_2 = (type *)((char *)dst_1 + id->base.rgb_stride); \
|
||||
py_2 = py_1 + id->base.y_stride; \
|
||||
j = id->base.width; \
|
||||
do { \
|
||||
RGB (type, 0) \
|
||||
DST (py_1, dst_1, 0, 0) \
|
||||
DST (py_1, dst_1, 1, 0) \
|
||||
DST (py_2, dst_2, 0, 1) \
|
||||
DST (py_2, dst_2, 1, 1) \
|
||||
\
|
||||
RGB (type, 1) \
|
||||
DST (py_2, dst_2, 2, 1) \
|
||||
DST (py_2, dst_2, 3, 1) \
|
||||
DST (py_1, dst_1, 2, 0) \
|
||||
DST (py_1, dst_1, 3, 0) \
|
||||
\
|
||||
RGB (type, 2) \
|
||||
DST (py_1, dst_1, 4, 0) \
|
||||
DST (py_1, dst_1, 5, 0) \
|
||||
DST (py_2, dst_2, 4, 1) \
|
||||
DST (py_2, dst_2, 5, 1) \
|
||||
\
|
||||
RGB (type, 3) \
|
||||
DST (py_2, dst_2, 6, 1) \
|
||||
DST (py_2, dst_2, 7, 1) \
|
||||
DST (py_1, dst_1, 6, 0) \
|
||||
DST (py_1, dst_1, 7, 0) \
|
||||
\
|
||||
pu += 4; \
|
||||
pv += 4; \
|
||||
py_1 += 8; \
|
||||
py_2 += 8; \
|
||||
dst_1 += 8 * num; \
|
||||
dst_2 += 8 * num; \
|
||||
} while (--j); \
|
||||
if (--i == id->base.field) { \
|
||||
dst_1 = (type *)(id->base.rgb_ptr + \
|
||||
id->base.rgb_slice * (v_offset + 1)); \
|
||||
py_1 = src[0] + id->base.y_stride_frame; \
|
||||
pu = src[1] + id->base.uv_stride_frame; \
|
||||
pv = src[2] + id->base.uv_stride_frame; \
|
||||
} else { \
|
||||
py_1 += id->base.y_increm; \
|
||||
pu += id->base.uv_increm; \
|
||||
pv += id->base.uv_increm; \
|
||||
dst_1 = (type *)((char *)dst_1 + id->base.rgb_increm); \
|
||||
DITHER(dithpos += id->base.dither_stride;) \
|
||||
} \
|
||||
} while (i); \
|
||||
}
|
||||
|
||||
DECLARE_420 (rgb_c_32_420, uint32_t, 1, DST, SKIP)
|
||||
DECLARE_420 (rgb_c_24_rgb_420, uint8_t, 3, DSTRGB, SKIP)
|
||||
DECLARE_420 (rgb_c_24_bgr_420, uint8_t, 3, DSTBGR, SKIP)
|
||||
DECLARE_420 (rgb_c_16_420, uint16_t, 1, DST, SKIP)
|
||||
DECLARE_420 (rgb_c_8_420, uint8_t, 1, DSTDITHER, DO)
|
||||
|
||||
#define DECLARE_422(func,type,num,DST,DITHER) \
|
||||
static void func (void * _id, uint8_t * const * src, \
|
||||
unsigned int v_offset) \
|
||||
{ \
|
||||
const convert_rgb_c_t * const id = (convert_rgb_c_t *) _id; \
|
||||
type * dst; \
|
||||
const uint8_t * py, * pu, * pv; \
|
||||
int i; \
|
||||
DITHER(uint8_t dithpos = id->base.dither_offset;) \
|
||||
\
|
||||
dst = (type *)(id->base.rgb_ptr + id->base.rgb_stride * v_offset); \
|
||||
py = src[0]; pu = src[1]; pv = src[2]; \
|
||||
\
|
||||
i = 16; \
|
||||
do { \
|
||||
int j, U, V, Y; \
|
||||
const type * r, * g, * b; \
|
||||
DITHER(const uint8_t * const pd = dither + 2 * dithpos;) \
|
||||
\
|
||||
j = id->base.width; \
|
||||
do { \
|
||||
RGB (type, 0) \
|
||||
DST (py, dst, 0, 0) \
|
||||
DST (py, dst, 1, 0) \
|
||||
\
|
||||
RGB (type, 1) \
|
||||
DST (py, dst, 2, 0) \
|
||||
DST (py, dst, 3, 0) \
|
||||
\
|
||||
RGB (type, 2) \
|
||||
DST (py, dst, 4, 0) \
|
||||
DST (py, dst, 5, 0) \
|
||||
\
|
||||
RGB (type, 3) \
|
||||
DST (py, dst, 6, 0) \
|
||||
DST (py, dst, 7, 0) \
|
||||
\
|
||||
pu += 4; \
|
||||
pv += 4; \
|
||||
py += 8; \
|
||||
dst += 8 * num; \
|
||||
} while (--j); \
|
||||
py += id->base.y_increm; \
|
||||
pu += id->base.uv_increm; \
|
||||
pv += id->base.uv_increm; \
|
||||
dst = (type *)((char *)dst + id->base.rgb_increm); \
|
||||
DITHER(dithpos += id->base.dither_stride;) \
|
||||
} while (--i); \
|
||||
}
|
||||
|
||||
DECLARE_422 (rgb_c_32_422, uint32_t, 1, DST, SKIP)
|
||||
DECLARE_422 (rgb_c_24_rgb_422, uint8_t, 3, DSTRGB, SKIP)
|
||||
DECLARE_422 (rgb_c_24_bgr_422, uint8_t, 3, DSTBGR, SKIP)
|
||||
DECLARE_422 (rgb_c_16_422, uint16_t, 1, DST, SKIP)
|
||||
DECLARE_422 (rgb_c_8_422, uint8_t, 1, DSTDITHER, DO)
|
||||
|
||||
#define DECLARE_444(func,type,num,DST,DITHER) \
|
||||
static void func (void * _id, uint8_t * const * src, \
|
||||
unsigned int v_offset) \
|
||||
{ \
|
||||
const convert_rgb_c_t * const id = (convert_rgb_c_t *) _id; \
|
||||
type * dst; \
|
||||
const uint8_t * py, * pu, * pv; \
|
||||
int i; \
|
||||
DITHER(uint8_t dithpos = id->base.dither_offset;) \
|
||||
\
|
||||
dst = (type *)(id->base.rgb_ptr + id->base.rgb_stride * v_offset); \
|
||||
py = src[0]; pu = src[1]; pv = src[2]; \
|
||||
\
|
||||
i = 16; \
|
||||
do { \
|
||||
int j, U, V, Y; \
|
||||
const type * r, * g, * b; \
|
||||
DITHER(const uint8_t * const pd = dither + 2 * dithpos;) \
|
||||
\
|
||||
j = id->base.width; \
|
||||
do { \
|
||||
RGB (type, 0) \
|
||||
DST (py, dst, 0, 0) \
|
||||
RGB (type, 1) \
|
||||
DST (py, dst, 1, 0) \
|
||||
RGB (type, 2) \
|
||||
DST (py, dst, 2, 0) \
|
||||
RGB (type, 3) \
|
||||
DST (py, dst, 3, 0) \
|
||||
RGB (type, 4) \
|
||||
DST (py, dst, 4, 0) \
|
||||
RGB (type, 5) \
|
||||
DST (py, dst, 5, 0) \
|
||||
RGB (type, 6) \
|
||||
DST (py, dst, 6, 0) \
|
||||
RGB (type, 7) \
|
||||
DST (py, dst, 7, 0) \
|
||||
\
|
||||
pu += 8; \
|
||||
pv += 8; \
|
||||
py += 8; \
|
||||
dst += 8 * num; \
|
||||
} while (--j); \
|
||||
py += id->base.y_increm; \
|
||||
pu += id->base.y_increm; \
|
||||
pv += id->base.y_increm; \
|
||||
dst = (type *)((char *)dst + id->base.rgb_increm); \
|
||||
DITHER(dithpos += id->base.dither_stride;) \
|
||||
} while (--i); \
|
||||
}
|
||||
|
||||
DECLARE_444 (rgb_c_32_444, uint32_t, 1, DST, SKIP)
|
||||
DECLARE_444 (rgb_c_24_rgb_444, uint8_t, 3, DSTRGB, SKIP)
|
||||
DECLARE_444 (rgb_c_24_bgr_444, uint8_t, 3, DSTBGR, SKIP)
|
||||
DECLARE_444 (rgb_c_16_444, uint16_t, 1, DST, SKIP)
|
||||
DECLARE_444 (rgb_c_8_444, uint8_t, 1, DSTDITHER, DO)
|
||||
|
||||
static void rgb_start (void * _id, const mpeg2_fbuf_t * fbuf,
|
||||
const mpeg2_picture_t * picture,
|
||||
const mpeg2_gop_t * gop)
|
||||
{
|
||||
convert_rgb_t * id = (convert_rgb_t *) _id;
|
||||
int uv_stride = id->uv_stride_frame;
|
||||
id->y_stride = id->y_stride_frame;
|
||||
id->rgb_ptr = fbuf->buf[0];
|
||||
id->rgb_slice = id->rgb_stride = id->rgb_stride_frame;
|
||||
id->dither_stride = 32;
|
||||
id->dither_offset = dither_temporal[picture->temporal_reference & 63];
|
||||
id->field = 0;
|
||||
if ((picture->nb_fields == 1) ||
|
||||
(id->chroma420 && !(picture->flags & PIC_FLAG_PROGRESSIVE_FRAME))) {
|
||||
uv_stride <<= 1;
|
||||
id->y_stride <<= 1;
|
||||
id->rgb_stride <<= 1;
|
||||
id->dither_stride <<= 1;
|
||||
id->dither_offset += 16;
|
||||
if (picture->nb_fields == 1) {
|
||||
id->rgb_slice <<= 1;
|
||||
if (!(picture->flags & PIC_FLAG_TOP_FIELD_FIRST)) {
|
||||
id->rgb_ptr += id->rgb_stride_frame;
|
||||
id->dither_offset += 32;
|
||||
}
|
||||
} else
|
||||
id->field = 8 >> id->convert420;
|
||||
}
|
||||
id->y_increm = (id->y_stride << id->convert420) - id->y_stride_frame;
|
||||
id->uv_increm = uv_stride - id->uv_stride_frame;
|
||||
id->rgb_increm = (id->rgb_stride << id->convert420) - id->rgb_stride_min;
|
||||
id->dither_stride <<= id->convert420;
|
||||
}
|
||||
|
||||
static inline int div_round (int dividend, int divisor)
|
||||
{
|
||||
if (dividend > 0)
|
||||
return (dividend + (divisor>>1)) / divisor;
|
||||
else
|
||||
return -((-dividend + (divisor>>1)) / divisor);
|
||||
}
|
||||
|
||||
static unsigned int rgb_c_init (convert_rgb_c_t * id,
|
||||
mpeg2convert_rgb_order_t order,
|
||||
unsigned int bpp)
|
||||
{
|
||||
int i;
|
||||
uint8_t table_Y[1024];
|
||||
uint32_t * table_32 = 0;
|
||||
uint16_t * table_16 = 0;
|
||||
uint8_t * table_8 = 0;
|
||||
uint8_t * table_332 = 0;
|
||||
int entry_size = 0;
|
||||
void * table_r = 0;
|
||||
void * table_g = 0;
|
||||
void * table_b = 0;
|
||||
|
||||
int crv = Inverse_Table_6_9[matrix_coefficients][0];
|
||||
int cbu = Inverse_Table_6_9[matrix_coefficients][1];
|
||||
int cgu = -Inverse_Table_6_9[matrix_coefficients][2];
|
||||
int cgv = -Inverse_Table_6_9[matrix_coefficients][3];
|
||||
|
||||
for (i = 0; i < 1024; i++) {
|
||||
int j;
|
||||
|
||||
j = (76309 * (i - 384 - 16) + 32768) >> 16;
|
||||
table_Y[i] = (j < 0) ? 0 : ((j > 255) ? 255 : j);
|
||||
}
|
||||
|
||||
switch (bpp) {
|
||||
case 32:
|
||||
if (!id)
|
||||
return (197 + 2*682 + 256 + 132) * sizeof (uint32_t);
|
||||
table_32 = (uint32_t *) (id + 1);
|
||||
entry_size = sizeof (uint32_t);
|
||||
table_r = table_32 + 197;
|
||||
table_b = table_32 + 197 + 685;
|
||||
table_g = table_32 + 197 + 2*682;
|
||||
|
||||
for (i = -197; i < 256+197; i++)
|
||||
((uint32_t *) table_r)[i] =
|
||||
table_Y[i+384] << ((order == MPEG2CONVERT_RGB) ? 16 : 0);
|
||||
for (i = -132; i < 256+132; i++)
|
||||
((uint32_t *) table_g)[i] = table_Y[i+384] << 8;
|
||||
for (i = -232; i < 256+232; i++)
|
||||
((uint32_t *) table_b)[i] =
|
||||
table_Y[i+384] << ((order == MPEG2CONVERT_RGB) ? 0 : 16);
|
||||
break;
|
||||
|
||||
case 24:
|
||||
if (!id)
|
||||
return (256 + 2*232) * sizeof (uint8_t);
|
||||
table_8 = (uint8_t *) (id + 1);
|
||||
entry_size = sizeof (uint8_t);
|
||||
table_r = table_g = table_b = table_8 + 232;
|
||||
|
||||
for (i = -232; i < 256+232; i++)
|
||||
((uint8_t * )table_b)[i] = table_Y[i+384];
|
||||
break;
|
||||
|
||||
case 15:
|
||||
case 16:
|
||||
if (!id)
|
||||
return (197 + 2*682 + 256 + 132) * sizeof (uint16_t);
|
||||
table_16 = (uint16_t *) (id + 1);
|
||||
entry_size = sizeof (uint16_t);
|
||||
table_r = table_16 + 197;
|
||||
table_b = table_16 + 197 + 685;
|
||||
table_g = table_16 + 197 + 2*682;
|
||||
|
||||
for (i = -197; i < 256+197; i++) {
|
||||
int j = table_Y[i+384] >> 3;
|
||||
|
||||
if (order == MPEG2CONVERT_RGB)
|
||||
j <<= ((bpp==16) ? 11 : 10);
|
||||
|
||||
((uint16_t *)table_r)[i] = j;
|
||||
}
|
||||
for (i = -132; i < 256+132; i++) {
|
||||
int j = table_Y[i+384] >> ((bpp==16) ? 2 : 3);
|
||||
|
||||
((uint16_t *)table_g)[i] = j << 5;
|
||||
}
|
||||
for (i = -232; i < 256+232; i++) {
|
||||
int j = table_Y[i+384] >> 3;
|
||||
|
||||
if (order == MPEG2CONVERT_BGR)
|
||||
j <<= ((bpp==16) ? 11 : 10);
|
||||
|
||||
((uint16_t *)table_b)[i] = j;
|
||||
}
|
||||
break;
|
||||
|
||||
case 8:
|
||||
if (!id)
|
||||
return (197 + 2*682 + 256 + 232 + 71) * sizeof (uint8_t);
|
||||
table_332 = (uint8_t *) (id + 1);
|
||||
entry_size = sizeof (uint8_t);
|
||||
table_r = table_332 + 197;
|
||||
table_g = table_332 + 197 + 682 + 30;
|
||||
table_b = table_332 + 197 + 2*682;
|
||||
|
||||
for (i = -197; i < 256+197+30; i++)
|
||||
((uint8_t *)table_r)[i] = ((table_Y[i+384] * 7 / 255) <<
|
||||
(order == MPEG2CONVERT_RGB ? 5 : 0));
|
||||
for (i = -132; i < 256+132+30; i++)
|
||||
((uint8_t *)table_g)[i-30] = ((table_Y[i+384] * 7 / 255) <<
|
||||
(order == MPEG2CONVERT_RGB ? 2 : 3));
|
||||
for (i = -232; i < 256+232+71; i++)
|
||||
((uint8_t *)table_b)[i] = ((table_Y[i+384] / 85) <<
|
||||
(order == MPEG2CONVERT_RGB ? 0 : 6));
|
||||
break;
|
||||
}
|
||||
|
||||
for (i = 0; i < 256; i++) {
|
||||
id->table_rV[i] = (((uint8_t *)table_r) +
|
||||
entry_size * div_round (crv * (i-128), 76309));
|
||||
id->table_gU[i] = (((uint8_t *)table_g) +
|
||||
entry_size * div_round (cgu * (i-128), 76309));
|
||||
id->table_gV[i] = entry_size * div_round (cgv * (i-128), 76309);
|
||||
id->table_bU[i] = (((uint8_t *)table_b) +
|
||||
entry_size * div_round (cbu * (i-128), 76309));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rgb_internal (mpeg2convert_rgb_order_t order, unsigned int bpp,
|
||||
int stage, void * _id, const mpeg2_sequence_t * seq,
|
||||
int stride, uint32_t accel, void * arg,
|
||||
mpeg2_convert_init_t * result)
|
||||
{
|
||||
convert_rgb_t * id = (convert_rgb_t *) _id;
|
||||
mpeg2convert_copy_t * copy = (mpeg2convert_copy_t *) 0;
|
||||
unsigned int id_size = sizeof (convert_rgb_t);
|
||||
int chroma420 = (seq->chroma_height < seq->height);
|
||||
int convert420 = 0;
|
||||
int rgb_stride_min = ((bpp + 7) >> 3) * seq->width;
|
||||
|
||||
#ifdef ARCH_X86
|
||||
if (!copy && (accel & MPEG2_ACCEL_X86_MMXEXT)) {
|
||||
convert420 = 0;
|
||||
copy = mpeg2convert_rgb_mmxext (order, bpp, seq);
|
||||
}
|
||||
if (!copy && (accel & MPEG2_ACCEL_X86_MMX)) {
|
||||
convert420 = 0;
|
||||
copy = mpeg2convert_rgb_mmx (order, bpp, seq);
|
||||
}
|
||||
#endif
|
||||
#ifdef ARCH_SPARC
|
||||
if (!copy && (accel & MPEG2_ACCEL_SPARC_VIS)) {
|
||||
convert420 = chroma420;
|
||||
copy = mpeg2convert_rgb_vis (order, bpp, seq);
|
||||
}
|
||||
#endif
|
||||
if (!copy) {
|
||||
int src, dest;
|
||||
static void (* rgb_c[3][5]) (void *, uint8_t * const *,
|
||||
unsigned int) =
|
||||
{{rgb_c_24_bgr_420, rgb_c_8_420, rgb_c_16_420,
|
||||
rgb_c_24_rgb_420, rgb_c_32_420},
|
||||
{rgb_c_24_bgr_422, rgb_c_8_422, rgb_c_16_422,
|
||||
rgb_c_24_rgb_422, rgb_c_32_422},
|
||||
{rgb_c_24_bgr_444, rgb_c_8_444, rgb_c_16_444,
|
||||
rgb_c_24_rgb_444, rgb_c_32_444}};
|
||||
|
||||
convert420 = chroma420;
|
||||
id_size = (sizeof (convert_rgb_c_t) +
|
||||
rgb_c_init ((convert_rgb_c_t *) id, order, bpp));
|
||||
src = ((seq->chroma_width == seq->width) +
|
||||
(seq->chroma_height == seq->height));
|
||||
dest = ((bpp == 24 && order == MPEG2CONVERT_BGR) ? 0 : (bpp + 7) >> 3);
|
||||
copy = rgb_c[src][dest];
|
||||
}
|
||||
|
||||
result->id_size = id_size;
|
||||
|
||||
if (stride < rgb_stride_min)
|
||||
stride = rgb_stride_min;
|
||||
|
||||
if (stage == MPEG2_CONVERT_STRIDE)
|
||||
return stride;
|
||||
else if (stage == MPEG2_CONVERT_START) {
|
||||
id->width = seq->width >> 3;
|
||||
id->y_stride_frame = seq->width;
|
||||
id->uv_stride_frame = seq->chroma_width;
|
||||
id->rgb_stride_frame = stride;
|
||||
id->rgb_stride_min = rgb_stride_min;
|
||||
id->chroma420 = chroma420;
|
||||
id->convert420 = convert420;
|
||||
result->buf_size[0] = stride * seq->height;
|
||||
result->buf_size[1] = result->buf_size[2] = 0;
|
||||
result->start = rgb_start;
|
||||
result->copy = copy;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DECLARE(func,order,bpp) \
|
||||
int func (int stage, void * id, \
|
||||
const mpeg2_sequence_t * sequence, int stride, \
|
||||
uint32_t accel, void * arg, mpeg2_convert_init_t * result) \
|
||||
{ \
|
||||
return rgb_internal (order, bpp, stage, id, sequence, stride, \
|
||||
accel, arg, result); \
|
||||
}
|
||||
|
||||
DECLARE (mpeg2convert_rgb32, MPEG2CONVERT_RGB, 32)
|
||||
DECLARE (mpeg2convert_rgb24, MPEG2CONVERT_RGB, 24)
|
||||
DECLARE (mpeg2convert_rgb16, MPEG2CONVERT_RGB, 16)
|
||||
DECLARE (mpeg2convert_rgb15, MPEG2CONVERT_RGB, 15)
|
||||
DECLARE (mpeg2convert_rgb8, MPEG2CONVERT_RGB, 8)
|
||||
DECLARE (mpeg2convert_bgr32, MPEG2CONVERT_BGR, 32)
|
||||
DECLARE (mpeg2convert_bgr24, MPEG2CONVERT_BGR, 24)
|
||||
DECLARE (mpeg2convert_bgr16, MPEG2CONVERT_BGR, 16)
|
||||
DECLARE (mpeg2convert_bgr15, MPEG2CONVERT_BGR, 15)
|
||||
DECLARE (mpeg2convert_bgr8, MPEG2CONVERT_BGR, 8)
|
||||
|
||||
mpeg2_convert_t * mpeg2convert_rgb (mpeg2convert_rgb_order_t order,
|
||||
unsigned int bpp)
|
||||
{
|
||||
static mpeg2_convert_t * table[5][2] =
|
||||
{{mpeg2convert_rgb15, mpeg2convert_bgr15},
|
||||
{mpeg2convert_rgb8, mpeg2convert_bgr8},
|
||||
{mpeg2convert_rgb16, mpeg2convert_bgr16},
|
||||
{mpeg2convert_rgb24, mpeg2convert_bgr24},
|
||||
{mpeg2convert_rgb32, mpeg2convert_bgr32}};
|
||||
|
||||
if (order == MPEG2CONVERT_RGB || order == MPEG2CONVERT_BGR) {
|
||||
if (bpp == 15)
|
||||
return table[0][order == MPEG2CONVERT_BGR];
|
||||
else if (bpp >= 8 && bpp <= 32 && (bpp & 7) == 0)
|
||||
return table[bpp >> 3][order == MPEG2CONVERT_BGR];
|
||||
}
|
||||
return (mpeg2_convert_t *) 0;
|
||||
}
|
||||
321
project/jni/mpeg2/src/convert/rgb_mmx.c
Normal file
321
project/jni/mpeg2/src/convert/rgb_mmx.c
Normal file
@@ -0,0 +1,321 @@
|
||||
/*
|
||||
* rgb_mmx.c
|
||||
* Copyright (C) 2000-2003 Silicon Integrated System Corp.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Author: Olie Lho <ollie@sis.com.tw>
|
||||
*
|
||||
* This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
|
||||
* See http://libmpeg2.sourceforge.net/ for updates.
|
||||
*
|
||||
* mpeg2dec 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.
|
||||
*
|
||||
* mpeg2dec 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
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifdef ARCH_X86
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "mpeg2.h"
|
||||
#include "mpeg2convert.h"
|
||||
#include "convert_internal.h"
|
||||
#include "attributes.h"
|
||||
#include "mmx.h"
|
||||
|
||||
#define CPU_MMXEXT 0
|
||||
#define CPU_MMX 1
|
||||
|
||||
/* CPU_MMXEXT/CPU_MMX adaptation layer */
|
||||
|
||||
#define movntq(src,dest) \
|
||||
do { \
|
||||
if (cpu == CPU_MMXEXT) \
|
||||
movntq_r2m (src, dest); \
|
||||
else \
|
||||
movq_r2m (src, dest); \
|
||||
} while (0)
|
||||
|
||||
static inline void mmx_yuv2rgb (uint8_t * py, uint8_t * pu, uint8_t * pv)
|
||||
{
|
||||
static mmx_t mmx_80w = {0x0080008000800080LL};
|
||||
static mmx_t mmx_U_green = {0xf37df37df37df37dLL};
|
||||
static mmx_t mmx_U_blue = {0x4093409340934093LL};
|
||||
static mmx_t mmx_V_red = {0x3312331233123312LL};
|
||||
static mmx_t mmx_V_green = {0xe5fce5fce5fce5fcLL};
|
||||
static mmx_t mmx_10w = {0x1010101010101010LL};
|
||||
static mmx_t mmx_00ffw = {0x00ff00ff00ff00ffLL};
|
||||
static mmx_t mmx_Y_coeff = {0x253f253f253f253fLL};
|
||||
|
||||
movd_m2r (*pu, mm0); /* mm0 = 00 00 00 00 u3 u2 u1 u0 */
|
||||
movd_m2r (*pv, mm1); /* mm1 = 00 00 00 00 v3 v2 v1 v0 */
|
||||
movq_m2r (*py, mm6); /* mm6 = Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 */
|
||||
pxor_r2r (mm4, mm4); /* mm4 = 0 */
|
||||
/* XXX might do cache preload for image here */
|
||||
|
||||
/*
|
||||
* Do the multiply part of the conversion for even and odd pixels
|
||||
* register usage:
|
||||
* mm0 -> Cblue, mm1 -> Cred, mm2 -> Cgreen even pixels
|
||||
* mm3 -> Cblue, mm4 -> Cred, mm5 -> Cgreen odd pixels
|
||||
* mm6 -> Y even, mm7 -> Y odd
|
||||
*/
|
||||
|
||||
punpcklbw_r2r (mm4, mm0); /* mm0 = u3 u2 u1 u0 */
|
||||
punpcklbw_r2r (mm4, mm1); /* mm1 = v3 v2 v1 v0 */
|
||||
psubsw_m2r (mmx_80w, mm0); /* u -= 128 */
|
||||
psubsw_m2r (mmx_80w, mm1); /* v -= 128 */
|
||||
psllw_i2r (3, mm0); /* promote precision */
|
||||
psllw_i2r (3, mm1); /* promote precision */
|
||||
movq_r2r (mm0, mm2); /* mm2 = u3 u2 u1 u0 */
|
||||
movq_r2r (mm1, mm3); /* mm3 = v3 v2 v1 v0 */
|
||||
pmulhw_m2r (mmx_U_green, mm2); /* mm2 = u * u_green */
|
||||
pmulhw_m2r (mmx_V_green, mm3); /* mm3 = v * v_green */
|
||||
pmulhw_m2r (mmx_U_blue, mm0); /* mm0 = chroma_b */
|
||||
pmulhw_m2r (mmx_V_red, mm1); /* mm1 = chroma_r */
|
||||
paddsw_r2r (mm3, mm2); /* mm2 = chroma_g */
|
||||
|
||||
psubusb_m2r (mmx_10w, mm6); /* Y -= 16 */
|
||||
movq_r2r (mm6, mm7); /* mm7 = Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 */
|
||||
pand_m2r (mmx_00ffw, mm6); /* mm6 = Y6 Y4 Y2 Y0 */
|
||||
psrlw_i2r (8, mm7); /* mm7 = Y7 Y5 Y3 Y1 */
|
||||
psllw_i2r (3, mm6); /* promote precision */
|
||||
psllw_i2r (3, mm7); /* promote precision */
|
||||
pmulhw_m2r (mmx_Y_coeff, mm6); /* mm6 = luma_rgb even */
|
||||
pmulhw_m2r (mmx_Y_coeff, mm7); /* mm7 = luma_rgb odd */
|
||||
|
||||
/*
|
||||
* Do the addition part of the conversion for even and odd pixels
|
||||
* register usage:
|
||||
* mm0 -> Cblue, mm1 -> Cred, mm2 -> Cgreen even pixels
|
||||
* mm3 -> Cblue, mm4 -> Cred, mm5 -> Cgreen odd pixels
|
||||
* mm6 -> Y even, mm7 -> Y odd
|
||||
*/
|
||||
|
||||
movq_r2r (mm0, mm3); /* mm3 = chroma_b */
|
||||
movq_r2r (mm1, mm4); /* mm4 = chroma_r */
|
||||
movq_r2r (mm2, mm5); /* mm5 = chroma_g */
|
||||
paddsw_r2r (mm6, mm0); /* mm0 = B6 B4 B2 B0 */
|
||||
paddsw_r2r (mm7, mm3); /* mm3 = B7 B5 B3 B1 */
|
||||
paddsw_r2r (mm6, mm1); /* mm1 = R6 R4 R2 R0 */
|
||||
paddsw_r2r (mm7, mm4); /* mm4 = R7 R5 R3 R1 */
|
||||
paddsw_r2r (mm6, mm2); /* mm2 = G6 G4 G2 G0 */
|
||||
paddsw_r2r (mm7, mm5); /* mm5 = G7 G5 G3 G1 */
|
||||
packuswb_r2r (mm0, mm0); /* saturate to 0-255 */
|
||||
packuswb_r2r (mm1, mm1); /* saturate to 0-255 */
|
||||
packuswb_r2r (mm2, mm2); /* saturate to 0-255 */
|
||||
packuswb_r2r (mm3, mm3); /* saturate to 0-255 */
|
||||
packuswb_r2r (mm4, mm4); /* saturate to 0-255 */
|
||||
packuswb_r2r (mm5, mm5); /* saturate to 0-255 */
|
||||
punpcklbw_r2r (mm3, mm0); /* mm0 = B7 B6 B5 B4 B3 B2 B1 B0 */
|
||||
punpcklbw_r2r (mm4, mm1); /* mm1 = R7 R6 R5 R4 R3 R2 R1 R0 */
|
||||
punpcklbw_r2r (mm5, mm2); /* mm2 = G7 G6 G5 G4 G3 G2 G1 G0 */
|
||||
}
|
||||
|
||||
static inline void mmx_unpack_16rgb (uint8_t * image, const int cpu)
|
||||
{
|
||||
static mmx_t mmx_bluemask = {0xf8f8f8f8f8f8f8f8LL};
|
||||
static mmx_t mmx_greenmask = {0xfcfcfcfcfcfcfcfcLL};
|
||||
static mmx_t mmx_redmask = {0xf8f8f8f8f8f8f8f8LL};
|
||||
|
||||
/*
|
||||
* convert RGB plane to RGB 16 bits
|
||||
* mm0 -> B, mm1 -> R, mm2 -> G
|
||||
* mm4 -> GB, mm5 -> AR pixel 4-7
|
||||
* mm6 -> GB, mm7 -> AR pixel 0-3
|
||||
*/
|
||||
|
||||
pand_m2r (mmx_bluemask, mm0); /* mm0 = b7b6b5b4b3______ */
|
||||
pand_m2r (mmx_greenmask, mm2); /* mm2 = g7g6g5g4g3g2____ */
|
||||
pand_m2r (mmx_redmask, mm1); /* mm1 = r7r6r5r4r3______ */
|
||||
psrlq_i2r (3, mm0); /* mm0 = ______b7b6b5b4b3 */
|
||||
pxor_r2r (mm4, mm4); /* mm4 = 0 */
|
||||
movq_r2r (mm0, mm5); /* mm5 = ______b7b6b5b4b3 */
|
||||
movq_r2r (mm2, mm7); /* mm7 = g7g6g5g4g3g2____ */
|
||||
|
||||
punpcklbw_r2r (mm4, mm2);
|
||||
punpcklbw_r2r (mm1, mm0);
|
||||
psllq_i2r (3, mm2);
|
||||
por_r2r (mm2, mm0);
|
||||
movntq (mm0, *image);
|
||||
|
||||
punpckhbw_r2r (mm4, mm7);
|
||||
punpckhbw_r2r (mm1, mm5);
|
||||
psllq_i2r (3, mm7);
|
||||
por_r2r (mm7, mm5);
|
||||
movntq (mm5, *(image+8));
|
||||
}
|
||||
|
||||
static inline void mmx_unpack_32rgb (uint8_t * image, const int cpu)
|
||||
{
|
||||
/*
|
||||
* convert RGB plane to RGB packed format,
|
||||
* mm0 -> B, mm1 -> R, mm2 -> G, mm3 -> 0,
|
||||
* mm4 -> GB, mm5 -> AR pixel 4-7,
|
||||
* mm6 -> GB, mm7 -> AR pixel 0-3
|
||||
*/
|
||||
|
||||
pxor_r2r (mm3, mm3);
|
||||
movq_r2r (mm0, mm6);
|
||||
movq_r2r (mm1, mm7);
|
||||
movq_r2r (mm0, mm4);
|
||||
movq_r2r (mm1, mm5);
|
||||
punpcklbw_r2r (mm2, mm6);
|
||||
punpcklbw_r2r (mm3, mm7);
|
||||
punpcklwd_r2r (mm7, mm6);
|
||||
movntq (mm6, *image);
|
||||
movq_r2r (mm0, mm6);
|
||||
punpcklbw_r2r (mm2, mm6);
|
||||
punpckhwd_r2r (mm7, mm6);
|
||||
movntq (mm6, *(image+8));
|
||||
punpckhbw_r2r (mm2, mm4);
|
||||
punpckhbw_r2r (mm3, mm5);
|
||||
punpcklwd_r2r (mm5, mm4);
|
||||
movntq (mm4, *(image+16));
|
||||
movq_r2r (mm0, mm4);
|
||||
punpckhbw_r2r (mm2, mm4);
|
||||
punpckhwd_r2r (mm5, mm4);
|
||||
movntq (mm4, *(image+24));
|
||||
}
|
||||
|
||||
static inline void rgb16 (void * const _id, uint8_t * const * src,
|
||||
const unsigned int v_offset, const int cpu)
|
||||
{
|
||||
convert_rgb_t * const id = (convert_rgb_t *) _id;
|
||||
uint8_t * dst;
|
||||
uint8_t * py, * pu, * pv;
|
||||
int i, j;
|
||||
|
||||
dst = id->rgb_ptr + id->rgb_slice * v_offset;
|
||||
py = src[0]; pu = src[1]; pv = src[2];
|
||||
|
||||
i = 16;
|
||||
do {
|
||||
j = id->width;
|
||||
do {
|
||||
mmx_yuv2rgb (py, pu, pv);
|
||||
mmx_unpack_16rgb (dst, cpu);
|
||||
py += 8;
|
||||
pu += 4;
|
||||
pv += 4;
|
||||
dst += 16;
|
||||
} while (--j);
|
||||
|
||||
dst += id->rgb_increm;
|
||||
py += id->y_increm;
|
||||
if (--i == id->field) {
|
||||
dst = id->rgb_ptr + id->rgb_slice * (v_offset + 1);
|
||||
py = src[0] + id->y_stride_frame;
|
||||
pu = src[1] + id->uv_stride_frame;
|
||||
pv = src[2] + id->uv_stride_frame;
|
||||
} else if (! (i & id->chroma420)) {
|
||||
pu += id->uv_increm;
|
||||
pv += id->uv_increm;
|
||||
} else {
|
||||
pu -= id->uv_stride_frame;
|
||||
pv -= id->uv_stride_frame;
|
||||
}
|
||||
} while (i);
|
||||
}
|
||||
|
||||
static inline void argb32 (void * const _id, uint8_t * const * src,
|
||||
const unsigned int v_offset, const int cpu)
|
||||
{
|
||||
convert_rgb_t * const id = (convert_rgb_t *) _id;
|
||||
uint8_t * dst;
|
||||
uint8_t * py, * pu, * pv;
|
||||
int i, j;
|
||||
|
||||
dst = id->rgb_ptr + id->rgb_slice * v_offset;
|
||||
py = src[0]; pu = src[1]; pv = src[2];
|
||||
|
||||
i = 16;
|
||||
do {
|
||||
j = id->width;
|
||||
do {
|
||||
mmx_yuv2rgb (py, pu, pv);
|
||||
mmx_unpack_32rgb (dst, cpu);
|
||||
py += 8;
|
||||
pu += 4;
|
||||
pv += 4;
|
||||
dst += 32;
|
||||
} while (--j);
|
||||
|
||||
dst += id->rgb_increm;
|
||||
py += id->y_increm;
|
||||
if (--i == id->field) {
|
||||
dst = id->rgb_ptr + id->rgb_slice * (v_offset + 1);
|
||||
py = src[0] + id->y_stride_frame;
|
||||
pu = src[1] + id->uv_stride_frame;
|
||||
pv = src[2] + id->uv_stride_frame;
|
||||
} else if (! (i & id->chroma420)) {
|
||||
pu += id->uv_increm;
|
||||
pv += id->uv_increm;
|
||||
} else {
|
||||
pu -= id->uv_stride_frame;
|
||||
pv -= id->uv_stride_frame;
|
||||
}
|
||||
} while (i);
|
||||
}
|
||||
|
||||
static void mmxext_rgb16 (void * id, uint8_t * const * src,
|
||||
unsigned int v_offset)
|
||||
{
|
||||
rgb16 (id, src, v_offset, CPU_MMXEXT);
|
||||
}
|
||||
|
||||
static void mmxext_argb32 (void * id, uint8_t * const * src,
|
||||
unsigned int v_offset)
|
||||
{
|
||||
argb32 (id, src, v_offset, CPU_MMXEXT);
|
||||
}
|
||||
|
||||
static void mmx_rgb16 (void * id, uint8_t * const * src, unsigned int v_offset)
|
||||
{
|
||||
rgb16 (id, src, v_offset, CPU_MMX);
|
||||
}
|
||||
|
||||
static void mmx_argb32 (void * id, uint8_t * const * src,
|
||||
unsigned int v_offset)
|
||||
{
|
||||
argb32 (id, src, v_offset, CPU_MMX);
|
||||
}
|
||||
|
||||
mpeg2convert_copy_t * mpeg2convert_rgb_mmxext (int order, int bpp,
|
||||
const mpeg2_sequence_t * seq)
|
||||
{
|
||||
if (order == MPEG2CONVERT_RGB && seq->chroma_width < seq->width) {
|
||||
if (bpp == 16)
|
||||
return mmxext_rgb16;
|
||||
else if (bpp == 32)
|
||||
return mmxext_argb32;
|
||||
}
|
||||
return NULL; /* Fallback to C */
|
||||
}
|
||||
|
||||
mpeg2convert_copy_t * mpeg2convert_rgb_mmx (int order, int bpp,
|
||||
const mpeg2_sequence_t * seq)
|
||||
{
|
||||
if (order == MPEG2CONVERT_RGB && seq->chroma_width < seq->width) {
|
||||
if (bpp == 16)
|
||||
return mmx_rgb16;
|
||||
else if (bpp == 32)
|
||||
return mmx_argb32;
|
||||
}
|
||||
return NULL; /* Fallback to C */
|
||||
}
|
||||
#endif
|
||||
384
project/jni/mpeg2/src/convert/rgb_vis.c
Normal file
384
project/jni/mpeg2/src/convert/rgb_vis.c
Normal file
@@ -0,0 +1,384 @@
|
||||
/*
|
||||
* rgb_vis.c
|
||||
* Copyright (C) 2003 David S. Miller <davem@redhat.com>
|
||||
*
|
||||
* This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
|
||||
* See http://libmpeg2.sourceforge.net/ for updates.
|
||||
*
|
||||
* mpeg2dec 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.
|
||||
*
|
||||
* mpeg2dec 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
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifdef ARCH_SPARC
|
||||
|
||||
#include <stddef.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "mpeg2.h"
|
||||
#include "mpeg2convert.h"
|
||||
#include "convert_internal.h"
|
||||
#include "attributes.h"
|
||||
#include "vis.h"
|
||||
|
||||
/* Based partially upon the MMX yuv2rgb code, see there for credits.
|
||||
*
|
||||
* The difference here is that since we have enough registers we
|
||||
* process both even and odd scanlines in one pass.
|
||||
*/
|
||||
|
||||
static const uint16_t const_2048[] ATTR_ALIGN(8) = {2048, 2048, 2048, 2048};
|
||||
static const uint16_t const_1024[] ATTR_ALIGN(8) = {1024, 1024, 1024, 1024};
|
||||
static const uint16_t const_128[] ATTR_ALIGN(8) = {128, 128, 128, 128};
|
||||
static const uint8_t const_Ugreen[] ATTR_ALIGN(8) =
|
||||
{0xf3, 0x00, 0xf3, 0x00, 0xf3, 0x00, 0xf3, 0x00};
|
||||
static const uint8_t const_Vgreen[] ATTR_ALIGN(8) =
|
||||
{0xe6, 0x00, 0xe6, 0x00, 0xe6, 0x00, 0xe6, 0x00};
|
||||
static const uint8_t const_Ublue_Vred[] ATTR_ALIGN(8) =
|
||||
{0x41, 0x41, 0x41, 0x41, 0x33, 0x33, 0x33, 0x33};
|
||||
static const uint8_t const_Ycoeff[] ATTR_ALIGN(4) = {0x25, 0x25, 0x25, 0x25};
|
||||
|
||||
#define TMP0 0
|
||||
#define TMP1 1
|
||||
#define TMP2 2
|
||||
#define TMP3 3
|
||||
#define TMP4 4
|
||||
#define TMP5 5
|
||||
#define TMP6 6
|
||||
#define TMP7 7
|
||||
#define TMP8 8
|
||||
#define TMP9 9
|
||||
#define TMP10 10
|
||||
#define TMP11 11
|
||||
#define TMP12 12
|
||||
#define TMP13 13
|
||||
|
||||
#define CONST_UBLUE 14
|
||||
#define CONST_VRED 15
|
||||
#define CONST_2048 16
|
||||
|
||||
#define BLUE8_EVEN 18
|
||||
#define BLUE8_ODD 19
|
||||
#define RED8_EVEN 20
|
||||
#define RED8_ODD 21
|
||||
#define GREEN8_EVEN 22
|
||||
#define GREEN8_ODD 23
|
||||
|
||||
#define BLUE8_2_EVEN 24
|
||||
#define BLUE8_2_ODD 25
|
||||
#define RED8_2_EVEN 26
|
||||
#define RED8_2_ODD 27
|
||||
#define GREEN8_2_EVEN 28
|
||||
#define GREEN8_2_ODD 29
|
||||
|
||||
#define CONST_YCOEFF 30
|
||||
#define ZEROS 31
|
||||
|
||||
#define PU_0 32
|
||||
#define PU_2 34
|
||||
#define PV_0 36
|
||||
#define PV_2 38
|
||||
#define PY_0 40
|
||||
#define PY_2 42
|
||||
#define PY_4 44
|
||||
#define PY_6 46
|
||||
|
||||
#define CONST_128 56
|
||||
#define CONST_1024 58
|
||||
#define CONST_VGREEN 60
|
||||
#define CONST_UGREEN 62
|
||||
|
||||
static inline void vis_init_consts(void)
|
||||
{
|
||||
vis_set_gsr(7 << VIS_GSR_SCALEFACT_SHIFT);
|
||||
|
||||
vis_ld64(const_2048[0], CONST_2048);
|
||||
vis_ld64(const_1024[0], CONST_1024);
|
||||
vis_ld64(const_Ugreen[0], CONST_UGREEN);
|
||||
vis_ld64(const_Vgreen[0], CONST_VGREEN);
|
||||
vis_fzeros(ZEROS);
|
||||
vis_ld64(const_Ublue_Vred[0], CONST_UBLUE);
|
||||
vis_ld32(const_Ycoeff[0], CONST_YCOEFF);
|
||||
vis_ld64(const_128[0], CONST_128);
|
||||
}
|
||||
|
||||
static inline void vis_yuv2rgb(uint8_t *py, uint8_t *pu, uint8_t *pv,
|
||||
int y_stride)
|
||||
{
|
||||
vis_ld32(pu[0], TMP0);
|
||||
|
||||
vis_ld32(pv[0], TMP2);
|
||||
|
||||
vis_ld64(py[0], TMP4);
|
||||
vis_mul8x16au(TMP0, CONST_2048, PU_0);
|
||||
|
||||
vis_ld64_2(py, y_stride, TMP8);
|
||||
vis_mul8x16au(TMP2, CONST_2048, PV_0);
|
||||
|
||||
vis_pmerge(TMP4, TMP5, TMP6);
|
||||
|
||||
vis_pmerge(TMP6, TMP7, TMP4);
|
||||
|
||||
vis_pmerge(TMP8, TMP9, TMP10);
|
||||
|
||||
vis_pmerge(TMP10, TMP11, TMP8);
|
||||
vis_mul8x16au(TMP4, CONST_2048, PY_0);
|
||||
|
||||
vis_psub16(PU_0, CONST_1024, PU_0);
|
||||
vis_mul8x16au(TMP5, CONST_2048, PY_2);
|
||||
|
||||
vis_psub16(PV_0, CONST_1024, PV_0);
|
||||
vis_mul8x16au(TMP8, CONST_2048, PY_4);
|
||||
|
||||
vis_psub16(PY_0, CONST_128, PY_0);
|
||||
vis_mul8x16au(TMP9, CONST_2048, PY_6);
|
||||
|
||||
vis_psub16(PY_2, CONST_128, PY_2);
|
||||
vis_mul8x16(CONST_YCOEFF, PY_0, PY_0);
|
||||
|
||||
vis_psub16(PY_4, CONST_128, PY_4);
|
||||
vis_mul8x16(CONST_YCOEFF, PY_2, PY_2);
|
||||
|
||||
vis_psub16(PY_6, CONST_128, PY_6);
|
||||
vis_mul8x16(CONST_YCOEFF, PY_4, PY_4);
|
||||
|
||||
vis_mul8x16(CONST_YCOEFF, PY_6, PY_6);
|
||||
|
||||
vis_mul8sux16(CONST_UGREEN, PU_0, TMP0);
|
||||
|
||||
vis_mul8sux16(CONST_VGREEN, PV_0, TMP2);
|
||||
|
||||
vis_mul8x16(CONST_UBLUE, PU_0, TMP4);
|
||||
|
||||
vis_mul8x16(CONST_VRED, PV_0, TMP6);
|
||||
vis_padd16(TMP0, TMP2, TMP10);
|
||||
|
||||
vis_padd16(PY_0, TMP4, TMP0);
|
||||
|
||||
vis_padd16(PY_2, TMP4, TMP2);
|
||||
vis_pack16(TMP0, BLUE8_EVEN);
|
||||
|
||||
vis_padd16(PY_4, TMP4, TMP0);
|
||||
vis_pack16(TMP2, BLUE8_ODD);
|
||||
|
||||
vis_padd16(PY_6, TMP4, TMP2);
|
||||
vis_pack16(TMP0, BLUE8_2_EVEN);
|
||||
|
||||
vis_padd16(PY_0, TMP6, TMP0);
|
||||
vis_pack16(TMP2, BLUE8_2_ODD);
|
||||
|
||||
vis_padd16(PY_2, TMP6, TMP2);
|
||||
vis_pack16(TMP0, RED8_EVEN);
|
||||
|
||||
vis_padd16(PY_4, TMP6, TMP0);
|
||||
vis_pack16(TMP2, RED8_ODD);
|
||||
|
||||
vis_padd16(PY_6, TMP6, TMP2);
|
||||
vis_pack16(TMP0, RED8_2_EVEN);
|
||||
|
||||
vis_padd16(PY_0, TMP10, TMP0);
|
||||
vis_pack16(TMP2, RED8_2_ODD);
|
||||
|
||||
vis_padd16(PY_2, TMP10, TMP2);
|
||||
vis_pack16(TMP0, GREEN8_EVEN);
|
||||
|
||||
vis_padd16(PY_4, TMP10, TMP0);
|
||||
vis_pack16(TMP2, GREEN8_ODD);
|
||||
|
||||
vis_padd16(PY_6, TMP10, TMP2);
|
||||
vis_pack16(TMP0, GREEN8_2_EVEN);
|
||||
|
||||
vis_pack16(TMP2, GREEN8_2_ODD);
|
||||
vis_pmerge(BLUE8_EVEN, BLUE8_ODD, BLUE8_EVEN);
|
||||
|
||||
vis_pmerge(BLUE8_2_EVEN, BLUE8_2_ODD, BLUE8_2_EVEN);
|
||||
|
||||
vis_pmerge(RED8_EVEN, RED8_ODD, RED8_EVEN);
|
||||
|
||||
vis_pmerge(RED8_2_EVEN, RED8_2_ODD, RED8_2_EVEN);
|
||||
|
||||
vis_pmerge(GREEN8_EVEN, GREEN8_ODD, GREEN8_EVEN);
|
||||
|
||||
vis_pmerge(GREEN8_2_EVEN, GREEN8_2_ODD, GREEN8_2_EVEN);
|
||||
}
|
||||
|
||||
static inline void vis_unpack_32rgb(uint8_t *image, int stride)
|
||||
{
|
||||
vis_pmerge(ZEROS, GREEN8_EVEN, TMP0);
|
||||
vis_pmerge(RED8_EVEN, BLUE8_EVEN, TMP2);
|
||||
|
||||
vis_pmerge(TMP0, TMP2, TMP4);
|
||||
vis_st64(TMP4, image[0]);
|
||||
|
||||
vis_pmerge(TMP1, TMP3, TMP6);
|
||||
vis_st64_2(TMP6, image, 8);
|
||||
|
||||
vis_pmerge(ZEROS, GREEN8_ODD, TMP8);
|
||||
vis_pmerge(RED8_ODD, BLUE8_ODD, TMP10);
|
||||
|
||||
vis_pmerge(TMP8, TMP10, TMP0);
|
||||
vis_st64_2(TMP0, image, 16);
|
||||
|
||||
vis_pmerge(TMP9, TMP11, TMP2);
|
||||
vis_st64_2(TMP2, image, 24);
|
||||
|
||||
image += stride;
|
||||
|
||||
vis_pmerge(ZEROS, GREEN8_2_EVEN, TMP0);
|
||||
vis_pmerge(RED8_2_EVEN, BLUE8_2_EVEN, TMP2);
|
||||
|
||||
vis_pmerge(TMP0, TMP2, TMP4);
|
||||
vis_st64(TMP4, image[0]);
|
||||
|
||||
vis_pmerge(TMP1, TMP3, TMP6);
|
||||
vis_st64_2(TMP6, image, 8);
|
||||
|
||||
vis_pmerge(ZEROS, GREEN8_2_ODD, TMP8);
|
||||
vis_pmerge(RED8_2_ODD, BLUE8_2_ODD, TMP10);
|
||||
|
||||
vis_pmerge(TMP8, TMP10, TMP0);
|
||||
vis_st64_2(TMP0, image, 16);
|
||||
|
||||
vis_pmerge(TMP9, TMP11, TMP2);
|
||||
vis_st64_2(TMP2, image, 24);
|
||||
}
|
||||
|
||||
static inline void vis_unpack_32bgr(uint8_t *image, int stride)
|
||||
{
|
||||
vis_pmerge(ZEROS, GREEN8_EVEN, TMP0);
|
||||
vis_pmerge(BLUE8_EVEN, RED8_EVEN, TMP2);
|
||||
|
||||
vis_pmerge(TMP0, TMP2, TMP4);
|
||||
vis_st64(TMP4, image[0]);
|
||||
|
||||
vis_pmerge(TMP1, TMP3, TMP6);
|
||||
vis_st64_2(TMP6, image, 8);
|
||||
|
||||
vis_pmerge(ZEROS, GREEN8_ODD, TMP8);
|
||||
vis_pmerge(BLUE8_ODD, RED8_ODD, TMP10);
|
||||
|
||||
vis_pmerge(TMP8, TMP10, TMP0);
|
||||
vis_st64_2(TMP0, image, 16);
|
||||
|
||||
vis_pmerge(TMP9, TMP11, TMP2);
|
||||
vis_st64_2(TMP2, image, 24);
|
||||
|
||||
image += stride;
|
||||
|
||||
vis_pmerge(ZEROS, GREEN8_2_EVEN, TMP0);
|
||||
vis_pmerge(BLUE8_2_EVEN, RED8_2_EVEN, TMP2);
|
||||
|
||||
vis_pmerge(TMP0, TMP2, TMP4);
|
||||
vis_st64(TMP4, image[0]);
|
||||
|
||||
vis_pmerge(TMP1, TMP3, TMP6);
|
||||
vis_st64_2(TMP6, image, 8);
|
||||
|
||||
vis_pmerge(ZEROS, GREEN8_2_ODD, TMP8);
|
||||
vis_pmerge(BLUE8_2_ODD, RED8_2_ODD, TMP10);
|
||||
|
||||
vis_pmerge(TMP8, TMP10, TMP0);
|
||||
vis_st64_2(TMP0, image, 16);
|
||||
|
||||
vis_pmerge(TMP9, TMP11, TMP2);
|
||||
vis_st64_2(TMP2, image, 24);
|
||||
}
|
||||
|
||||
static inline void vis_yuv420_argb32(uint8_t *image,
|
||||
uint8_t *py, uint8_t *pu, uint8_t *pv,
|
||||
int width, int height, int rgb_stride,
|
||||
int y_stride, int uv_stride)
|
||||
{
|
||||
height >>= 1;
|
||||
uv_stride -= width >> 1;
|
||||
do {
|
||||
int i = width >> 3;
|
||||
do {
|
||||
vis_yuv2rgb(py, pu, pv, y_stride);
|
||||
vis_unpack_32rgb(image, rgb_stride);
|
||||
py += 8;
|
||||
pu += 4;
|
||||
pv += 4;
|
||||
image += 32;
|
||||
} while (--i);
|
||||
|
||||
py += (y_stride << 1) - width;
|
||||
image += (rgb_stride << 1) - 4 * width;
|
||||
pu += uv_stride;
|
||||
pv += uv_stride;
|
||||
} while (--height);
|
||||
}
|
||||
|
||||
static inline void vis_yuv420_abgr32(uint8_t *image,
|
||||
uint8_t *py, uint8_t *pu, uint8_t *pv,
|
||||
int width, int height, int rgb_stride,
|
||||
int y_stride, int uv_stride)
|
||||
{
|
||||
height >>= 1;
|
||||
uv_stride -= width >> 1;
|
||||
do {
|
||||
int i = width >> 3;
|
||||
do {
|
||||
vis_yuv2rgb(py, pu, pv, y_stride);
|
||||
vis_unpack_32bgr(image, rgb_stride);
|
||||
py += 8;
|
||||
pu += 4;
|
||||
pv += 4;
|
||||
image += 32;
|
||||
} while (--i);
|
||||
|
||||
py += (y_stride << 1) - width;
|
||||
image += (rgb_stride << 1) - 4 * width;
|
||||
pu += uv_stride;
|
||||
pv += uv_stride;
|
||||
} while (--height);
|
||||
}
|
||||
|
||||
static void vis_argb32(void *_id, uint8_t * const *src,
|
||||
unsigned int v_offset)
|
||||
{
|
||||
convert_rgb_t *id = (convert_rgb_t *) _id;
|
||||
|
||||
vis_init_consts();
|
||||
vis_yuv420_argb32(id->rgb_ptr + id->rgb_stride * v_offset,
|
||||
src[0], src[1], src[2], id->width, 16,
|
||||
id->rgb_stride, id->y_stride, id->y_stride >> 1);
|
||||
}
|
||||
|
||||
static void vis_abgr32(void *_id, uint8_t * const *src,
|
||||
unsigned int v_offset)
|
||||
{
|
||||
convert_rgb_t *id = (convert_rgb_t *) _id;
|
||||
|
||||
vis_init_consts();
|
||||
vis_yuv420_abgr32(id->rgb_ptr + id->rgb_stride * v_offset,
|
||||
src[0], src[1], src[2], id->width, 16,
|
||||
id->rgb_stride, id->y_stride, id->y_stride >> 1);
|
||||
}
|
||||
|
||||
mpeg2convert_copy_t *mpeg2convert_rgb_vis(int order, int bpp,
|
||||
const mpeg2_sequence_t * seq)
|
||||
{
|
||||
if (bpp == 32 && seq->chroma_height < seq->height) {
|
||||
if (order == MPEG2CONVERT_RGB)
|
||||
return vis_argb32;
|
||||
if (order == MPEG2CONVERT_BGR)
|
||||
return vis_abgr32;
|
||||
}
|
||||
|
||||
return NULL; /* Fallback to C */
|
||||
}
|
||||
|
||||
#endif /* ARCH_SPARC */
|
||||
123
project/jni/mpeg2/src/convert/uyvy.c
Normal file
123
project/jni/mpeg2/src/convert/uyvy.c
Normal file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* uyvy.c
|
||||
* Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
|
||||
* Copyright (C) 2003 Regis Duchesne <hpreg@zoy.org>
|
||||
* Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
|
||||
*
|
||||
* This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
|
||||
* See http://libmpeg2.sourceforge.net/ for updates.
|
||||
*
|
||||
* mpeg2dec 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.
|
||||
*
|
||||
* mpeg2dec 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
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "mpeg2.h"
|
||||
#include "mpeg2convert.h"
|
||||
|
||||
typedef struct {
|
||||
int width;
|
||||
int stride;
|
||||
int chroma420;
|
||||
uint8_t * out;
|
||||
} convert_uyvy_t;
|
||||
|
||||
static void uyvy_start (void * _id, const mpeg2_fbuf_t * fbuf,
|
||||
const mpeg2_picture_t * picture,
|
||||
const mpeg2_gop_t * gop)
|
||||
{
|
||||
convert_uyvy_t * instance = (convert_uyvy_t *) _id;
|
||||
|
||||
instance->out = fbuf->buf[0];
|
||||
instance->stride = instance->width;
|
||||
if (picture->nb_fields == 1) {
|
||||
if (! (picture->flags & PIC_FLAG_TOP_FIELD_FIRST))
|
||||
instance->out += 2 * instance->stride;
|
||||
instance->stride <<= 1;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
#define PACK(a,b,c,d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
|
||||
#else
|
||||
#define PACK(a,b,c,d) (((d) << 24) | ((c) << 16) | ((b) << 8) | (a))
|
||||
#endif
|
||||
|
||||
static void uyvy_copy (void * const _id, uint8_t * const * src,
|
||||
const unsigned int v_offset)
|
||||
{
|
||||
const convert_uyvy_t * const id = (convert_uyvy_t *) _id;
|
||||
uint8_t * _dst;
|
||||
uint8_t * py, * pu, * pv;
|
||||
int i, j;
|
||||
|
||||
_dst = id->out + 2 * id->stride * v_offset;
|
||||
py = src[0]; pu = src[1]; pv = src[2];
|
||||
|
||||
i = 16;
|
||||
do {
|
||||
uint32_t * dst = (uint32_t *) _dst;
|
||||
|
||||
j = id->width >> 4;
|
||||
do {
|
||||
dst[0] = PACK (pu[0], py[0], pv[0], py[1]);
|
||||
dst[1] = PACK (pu[1], py[2], pv[1], py[3]);
|
||||
dst[2] = PACK (pu[2], py[4], pv[2], py[5]);
|
||||
dst[3] = PACK (pu[3], py[6], pv[3], py[7]);
|
||||
dst[4] = PACK (pu[4], py[8], pv[4], py[9]);
|
||||
dst[5] = PACK (pu[5], py[10], pv[5], py[11]);
|
||||
dst[6] = PACK (pu[6], py[12], pv[6], py[13]);
|
||||
dst[7] = PACK (pu[7], py[14], pv[7], py[15]);
|
||||
py += 16;
|
||||
pu += 8;
|
||||
pv += 8;
|
||||
dst += 8;
|
||||
} while (--j);
|
||||
py -= id->width;
|
||||
pu -= id->width >> 1;
|
||||
pv -= id->width >> 1;
|
||||
_dst += 2 * id->stride;
|
||||
py += id->stride;
|
||||
if (! (--i & id->chroma420)) {
|
||||
pu += id->stride >> 1;
|
||||
pv += id->stride >> 1;
|
||||
}
|
||||
} while (i);
|
||||
}
|
||||
|
||||
int mpeg2convert_uyvy (int stage, void * _id, const mpeg2_sequence_t * seq,
|
||||
int stride, uint32_t accel, void * arg,
|
||||
mpeg2_convert_init_t * result)
|
||||
{
|
||||
convert_uyvy_t * instance = (convert_uyvy_t *) _id;
|
||||
|
||||
if (seq->chroma_width == seq->width)
|
||||
return 1;
|
||||
|
||||
if (instance) {
|
||||
instance->width = seq->width;
|
||||
instance->chroma420 = (seq->chroma_height < seq->height);
|
||||
result->buf_size[0] = seq->width * seq->height * 2;
|
||||
result->buf_size[1] = result->buf_size[2] = 0;
|
||||
result->start = uyvy_start;
|
||||
result->copy = uyvy_copy;
|
||||
} else {
|
||||
result->id_size = sizeof (convert_uyvy_t);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user