# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id$

PortSystem          1.0
PortGroup           github 1.0 
PortGroup           python 1.0

github.setup        remap ndnvideo a7cd19d43cee16e85fcfdb4ead15dcb7075b3eeb
checksums           rmd160  d4ebdcb8c252a863c29058956bd5e13f17dd5e68 \
                    sha256  8890d6eb24c720e40e45e6e2d4b446f41b40e1b6f4ff98fe908cba004e2c77d0

name                py-ndnvideo
homepage            https://github.com/remap/ndnvideo
license             Unknown
# version             
revision            2

python.versions         27
python.default_version  27

categories          net ccnx
platforms           darwin
maintainers         ucla.edu:alexander.afanasyev

description         A video toolkit it publishes and plays live video in a segmented stream \
                    that also seeks from buffer in CCNx repo

# long_description     

use_configure       false

if {$subport != $name} {
    depends_lib-append  port:ccnx \
        port:py${python.version}-pyccn \
        port:py${python.version}-gst-python \
        port:gstreamer010-gst-ffmpeg \
        port:gstreamer010-gst-plugins-bad \
        port:gstreamer010-gst-plugins-base \
        port:gstreamer010-gst-plugins-gl \
        port:gstreamer010-gst-plugins-good \
        port:gstreamer010-gst-plugins-ugly \
        port:gstreamer010-gst-rtsp \
        port:gstreamer010 
}
# port:gstreamer010-gst-rtsp-server \

patchfiles          fix-play.patch

build {
    reinplace "s|/usr/bin/env python|${python.bin}|g" ${worksrcpath}/videostreaming/play.py
}

destroot {
    xinstall -d ${destroot}${python.pkgd}/ndnvideo
    xinstall -d ${destroot}${python.pkgd}/ndnvideo/pytimecode

    # system "echo ${worksrcpath}"
    eval xinstall [glob ${worksrcpath}/videostreaming/*.py] ${destroot}${python.pkgd}/ndnvideo
    eval xinstall [glob ${worksrcpath}/videostreaming/pytimecode/*.py] ${destroot}${python.pkgd}/ndnvideo/pytimecode

    xinstall ${worksrcpath}/videostreaming/play.py ${destroot}${prefix}/bin/ndnplay
}

