1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
DESCRIPTION = "GSTREAMER Plugin (gstreamer-ti) for TI ARM/DSP processors"
HOMEPAGE = "https://gforge.ti.com/gf/project/gstreamer_ti/"
SECTION = "multimedia"
LICENSE = "LGPL"
# TODO :: Replace omapl137 with official support in GST (currently linking to omapl138)
# TODO :: Codec Server Environment Variables shouldn't be required
# TODO :: Add (and check) rc scripts for all targets (just copied for now) (365,6467,omapl137)
# TODO :: Check if CPPFLAGS_append is still required
# TODO :: Remove ENCODE/DECODE combo exports - these are not used anymore (check?)
inherit autotools
inherit update-rc.d
require recipes-ti/includes/ti-paths.inc
require recipes-ti/includes/ti-staging.inc
# Rebuild on kernel change since it links statically to ti-dmai, ti-codec-engine, etc
PR = "r85+${MACHINE_KERNEL_PR}"
DEPENDS = "ti-dmai gstreamer gst-plugins-base"
# enable c6accel elements on omapl138 and omap3
#DEPENDS_append_omapl138 = " ti-c6accel "
#EXTRA_OECONF_omapl138 = "--enable-c6accel"
#DEPENDS_append_omap3 = " ti-c6accel "
#EXTRA_OECONF_omap3 = "--enable-c6accel"
export C6ACCEL_INSTALL_DIR
# gstreamer_ti picks up some config variables from the environment
# - variables are used in the gstreamer makefile
# - PLATFORM, XDC_PLATFORM, XDC_TARGET, MVTOOL_DIR
# - others used by config.bld (which it gets from the dmai config.bld)
# - CROSS_COMPILE, PLATFORM_XDC
PLATFORM_dm6446 = "dm6446"
PLATFORM_dm6467 = "dm6467"
PLATFORM_dm6467t = "dm6467t"
PLATFORM_omap3 = "omap3530"
PLATFORM_dm355 = "dm355"
PLATFORM_dm365 = "dm365"
PLATFORM_omapl137 = "omapl137"
PLATFORM_omapl138 = "omapl138"
PLATFORM ?= "UNDEFINED_PLATFORM"
GST_TI_PLATFORM = ${PLATFORM}
XDC_PLATFORM_dm6446 = "ti.platforms.evmDM6446"
XDC_PLATFORM_dm6467 = "ti.platforms.evmDM6467"
XDC_PLATFORM_omap3 = "ti.platforms.evm3530"
XDC_PLATFORM_dm355 = "ti.platforms.evmDM355"
XDC_PLATFORM_dm365 = "ti.platforms.evmDM365"
XDC_PLATFORM_omapl137 = "ti.platforms.evmOMAPL137"
XDC_PLATFORM_omapl138 = "ti.platforms.evmOMAPL138"
XDC_PLATFORM ?= "UNDEFINED_XDC_PLATFORM"
MEMARGS_omap3 = "99M@0x80000000"
MEMARGS ?= "UNDEFINED_MEM_ARGS"
export MEMARGS
export PLATFORM
export GST_TI_PLATFORM
export XDC_PLATFORM
export XDC_TARGET = "gnu.targets.arm.GCArmv5T"
export PLATFORM_XDC = ${XDC_PLATFORM}
export CSTOOL_DIR = "${TOOLCHAIN_PATH}"
export MVTOOL_DIR = "${TOOLCHAIN_PATH}"
export MVTOOL_PREFIX = "${TARGET_PREFIX}"
export CROSS_COMPILE = "${TOOLCHAIN_PATH}/${TARGET_PREFIX}"
export LINK_XDC_ROOT = "${LINK_INSTALL_DIR}"
# export codec combo (or server) locations
# Why do we need to do this?? - These will get picked up from CODEC_INSTALL_DIR?
# Sould only need this if we change from default server
export CODEC_SERVER = "${installdir}/ti-codecs-server/cs.x64P"
CPPFLAGS_append = " -DPlatform_${PLATFORM}"
# We are still using encode/decode combo for DM6446
export ENCODE_COMBO = "${installdir}/ti-codecs-server/encodeCombo.x64P"
export DECODE_COMBO = "${installdir}/ti-codecs-server/decodeCombo.x64P"
# Makefile also expects to be able to find the kernel headers from the envirionment
export LINUXKERNEL_INSTALL_DIR = "${STAGING_KERNEL_DIR}"
do_configure_prepend() {
# PSP kernel is based on older DSS. we need to replace linux/omapfb.h with mach/omapfb.h
if ! [ -e ${STAGING_KERNEL_DIR}/include/linux/omapfb.h ] ; then
sed -i -e s:linux/omapfb:mach/omapfb:g ${S}/src/omapfb.h || true
fi
# Angstrom 2008 breaks with -Wl,-T, while angstrom 2010 needs it
if [ $(${TARGET_PREFIX}gcc -dumpversion | awk -F. '{print $2}') -gt 3 ] ; then
# Fix up linkerscripts, recent toolchains need -T to prepend the default script to the custom one
for makefile in $(find ${S} -name "Makefile.am") ; do
sed -i -e 's:-Wl,$(XDC_CONFIG_BASENAME)/linker.cmd:-Wl,-T,$(XDC_CONFIG_BASENAME)/linker.cmd:g' $makefile
done
fi
}
do_compile() {
# Recent kernel headers warn against inclusion from userspace
for makefile in $(find ${S} -name "Makefile") ; do
sed -i -e s:-Werror::g $makefile
done
oe_runmake
}
do_install_prepend () {
install -d ${D}/${installdir}/gst/${PLATFORM}
# copy gstreamer demo scripts
cp -R ${WORKDIR}/gstreamer_ti/gstreamer_demo/shared ${D}/${installdir}/gst
# If we have loadmodules.sh in WORKDIR then give preference to this over
# the default gst-ti loadmdules.sh
if [ -f ${WORKDIR}/loadmodules.sh ]; then
cp ${WORKDIR}/loadmodules.sh ${D}/${installdir}/gst/${PLATFORM}
else
cp -R ${WORKDIR}/gstreamer_ti/gstreamer_demo/${PLATFORM} ${D}/${installdir}/gst
fi
# delete .svn files
find ${D}/${installdir}/gst -name .svn -type d | xargs rm -rf
chmod 0755 ${D}/${installdir}/gst -R
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/gstreamer-ti-rc.sh ${D}${sysconfdir}/init.d/gstti-init
sed -i -e 's|<platform>|${PLATFORM}|g' ${D}${sysconfdir}/init.d/gstti-init
install -d ${D}${base_libdir}/systemd/system
install -m 0644 ${WORKDIR}/gstti-init.service ${D}${base_libdir}/systemd/system/
sed -i -e 's|<platform>|${PLATFORM}|g' -e 's|MEMARGS|${MEMARGS}|' ${D}${base_libdir}/systemd/system/gstti-init.service
}
RRECOMMENDS_${PN}_append_dm6446 += "ti-codecs-dm6446-server ti-cmem-module ti-dsplink-module"
RRECOMMENDS_${PN}_append_dm6467 += "ti-codecs-dm6467 ti-cmem-module ti-dsplink-module"
RRECOMMENDS_${PN}_append_omap3 += "ti-codecs-omap3530-server ti-cmem-module ti-dsplink-module ti-lpm-module ti-sdma-module"
RRECOMMENDS_${PN}_append_dm355 += "ti-codecs-dm355 ti-cmem-module ti-dm355mm-module"
RRECOMMENDS_${PN}_append_dm365 += "ti-codecs-dm365 ti-cmem-module ti-dm365mm-module ti-edma-module ti-irq-module"
RRECOMMENDS_${PN}_append_omapl137 += "ti-codecs-omapl137-server ti-cmem-module ti-dsplink-module"
RRECOMMENDS_${PN}_append_omapl138 += "ti-codecs-omapl138-server ti-cmem-module ti-dsplink-module"
FILES_${PN} += "${libdir}/gstreamer-0.10/*.so ${sysconfdir} ${installdir} ${base_libdir}/systemd"
FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.a ${libdir}/gstreamer-0.10/*.la"
FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
pkg_postinst_${PN} () {
if test "x$D" != "x"; then
echo "Can't run gstreamer-ti postinst offline"
exit 1
fi
if [ -e ${base_bindir}/systemctl ] ; then
systemctl enable gstti-init.service
fi
if [ -d ${installdir}/ti-codecs-server/ ]; then
ln -sf ${installdir}/ti-codecs-server/* ${installdir}/gst/${PLATFORM}/
fi
}
PACKAGE_ARCH = "${MACHINE_ARCH}"
INITSCRIPT_NAME = "gstti-init"
INITSCRIPT_PARAMS = "start 30 5 2 . stop 40 0 1 6 ."
|