summaryrefslogtreecommitdiff
path: root/recipes/ti/gstreamer-ti_svn.bb
blob: 45fb8dc6111155ee3472299a7342f1f8c2428b4a (plain)
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
DESCRIPTION = "GSTREAMER Plugin (gstreamer-ti) for TI ARM/DSP processors"
HOMEPAGE = "https://gforge.ti.com/gf/project/gstreamer_ti/"
SECTION = "multimedia"

# 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 ti-paths.inc
require ti-staging.inc

PROVIDES += "gstreamer-ti-demo-script"

PV = "svnr${SRCREV}"
# Rebuild on kernel change since it links statically to ti-dmai, ti-codec-engine, etc
PR = "r47+${MACHINE_KERNEL_PR}"

S = "${WORKDIR}/gstreamer_ti/ti_build/ticodecplugin"

GST_TI_RC_SCRIPT_dm6446   = "gstreamer-ti-dm6446-rc.sh"
GST_TI_RC_SCRIPT_dm6467   = "gstreamer-ti-dm6467-rc.sh"
GST_TI_RC_SCRIPT_omap3    = "gstreamer-ti-omap3530-rc.sh"
GST_TI_RC_SCRIPT_dm355    = "gstreamer-ti-dm355-rc.sh"
GST_TI_RC_SCRIPT_dm365    = "gstreamer-ti-dm365-rc.sh"
GST_TI_RC_SCRIPT_omapl137 = "gstreamer-ti-omapl137-rc.sh"
GST_TI_RC_SCRIPT_omapl138 = "gstreamer-ti-omapl138-rc.sh"

SRCREV = "573"

SRC_URI = "svn://gforge.ti.com/svn/gstreamer_ti/trunk;module=gstreamer_ti;proto=https;user=anonymous;pswd='' \
           file://gstreamer-ti-tracker-462.patch;patch=1 \
           file://gstreamer-ti-remove-mp3-decode-support-from-auddec1.patch;patch=1 \
           file://${GST_TI_RC_SCRIPT} \
"

SRC_URI_append_omap3 = " \
           file://gstreamer-ti-add-omapfb.patch;patch=1 \
"

SRC_URI_append_omapl137 = " \
           file://gstreamer-ti-omapl138.patch;patch=1 \
"

SRC_URI_append_omapl138 = " \
           file://gstreamer-ti-omapl138.patch;patch=1 \
"

SRC_URI_append_dm6467 = " \
           file://gstreamer-ti-dm6467-usesinglecsserver.patch;patch=1 \
"

DEPENDS = "ti-dmai gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly"

# 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_omap3         = "omap3530"
PLATFORM_dm355         = "dm355"
PLATFORM_dm365         = "dm365"
PLATFORM_omapl137      = "omapl138"
PLATFORM_omapl138      = "omapl138"
PLATFORM              ?= "<UNDEFINED_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.evmOMAPL138"
XDC_PLATFORM_omapl138  = "ti.platforms.evmOMAPL138"
XDC_PLATFORM          ?= "<UNDEFINED_XDC_PLATFORM>"

export PLATFORM
export XDC_PLATFORM
export XDC_TARGET      = "gnu.targets.arm.GCArmv5T"
export PLATFORM_XDC    = ${XDC_PLATFORM}
export MVTOOL_DIR      = "${TOOLCHAIN_PATH}"
export CROSS_COMPILE   = "${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}"

# Makefile also expects to be able to find the kernel headers from the envirionment
export LINUXKERNEL_INSTALL_DIR = ${STAGING_KERNEL_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 HMJCP_COMBO     = "${installdir}/ti-codecs-server/hmjcp.accel"
export CODEC_SERVER    = "${installdir}/ti-codecs-server/cs.x64P"

# TODO :: These 2 can be removed now since dm6467 uses single CS server (like omap/omapl)
export ENCODE_COMBO    = "${installdir}/ti-codecs-server/encodeCombo.x64P"
export DECODE_COMBO    = "${installdir}/ti-codecs-server/decodeCombo.x64P"

CPPFLAGS_append = " -DPlatform_${PLATFORM}"

do_configure_prepend() {
    sed -i -e 's:(LINK_INSTALL_DIR)/packages:(LINK_INSTALL_DIR):g' ${S}/src/Makefile.am

    # TODO :: Is this still true?
    # 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
}

do_install_prepend () {

    # install gstreamer demo scripts
    install -d ${D}/${installdir}/gst
    cp -r ${WORKDIR}/gstreamer_ti/gstreamer_demo/shared ${D}/${installdir}/gst

    if [ -d ${WORKDIR}/gstreamer_ti/gstreamer_demo/${PLATFORM} ] ; then
        cp -r ${WORKDIR}/gstreamer_ti/gstreamer_demo/${PLATFORM} ${D}/${installdir}/gst
        
        # default loadmodules script is hard-coded for insmod, change to modprobe
        sed -i 's/insmod/modprobe/g' ${D}/${installdir}/gst/${PLATFORM}/loadmodules.sh
        sed -i 's/.ko//g' ${D}/${installdir}/gst/${PLATFORM}/loadmodules.sh

        if [ "${PLATFORM}" = "omap3530" ]; then
            echo "modprobe sdmak" >> ${D}/${installdir}/gst/${PLATFORM}/loadmodules.sh
        fi
    fi

    chmod 0755 ${D}/${installdir}/gst -R
    install -d ${D}${sysconfdir}/init.d/
    install -m 0755  ${WORKDIR}/${GST_TI_RC_SCRIPT} ${D}${sysconfdir}/init.d/gstti-init
}

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"
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}"
FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.a ${libdir}/gstreamer-0.10/*.la"
FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"

PACKAGES += "gstreamer-ti-demo-script"
RDEPENDS_gstreamer-ti-demo-script = "${PN}"

FILES_gstreamer-ti-demo-script = "${installdir}/gst/*"

pkg_postinst_gstreamer-ti-demo-script () {
        ln -sf ${installdir}/ti-codecs-server/* ${installdir}/gst/${PLATFORM}/
}

INITSCRIPT_NAME = "gstti-init"
INITSCRIPT_PARAMS = "start 30 5 2 . stop 40 0 1 6 ."