From e55f6a9d1e52d14c4dacfe015a0565480bc78f30 Mon Sep 17 00:00:00 2001 From: hschang Date: Thu, 15 Oct 2015 16:20:21 +0900 Subject: [PATCH] update dvbapp. - use gst-plugin-sunsink. (openpli) - remove patch files. (according to update servicemp3) - add vuplus-3gcommand/vuplus-dlnaserver. --- .../gstreamer/gst-plugin-subsink.bb | 27 ++++++ meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb | 11 ++- .../enigma2/enigma2/enigma2_vuplus_1080p.patch | 28 ------ .../enigma2/enigma2_vuplus_addlibpythondeps.patch | 28 ------ .../enigma2/enigma2_vuplus_mediaplayer.patch | 83 ---------------- .../enigma2_vuplus_mediaplayer_subtitle.patch | 104 --------------------- .../vuplus-3gcommand/vuplus-3gcommand.bb | 28 ++++++ .../vuplus-dlnaserver/vuplus-dlnaserver.bb | 28 ++++++ 8 files changed, 89 insertions(+), 248 deletions(-) create mode 100644 meta-openvuplus/recipes-multimedia/gstreamer/gst-plugin-subsink.bb delete mode 100644 meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_1080p.patch delete mode 100644 meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_addlibpythondeps.patch delete mode 100644 meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer_subtitle.patch create mode 100644 meta-openvuplus/recipes-vuplus/vuplus-3gcommand/vuplus-3gcommand.bb create mode 100644 meta-openvuplus/recipes-vuplus/vuplus-dlnaserver/vuplus-dlnaserver.bb diff --git a/meta-openvuplus/recipes-multimedia/gstreamer/gst-plugin-subsink.bb b/meta-openvuplus/recipes-multimedia/gstreamer/gst-plugin-subsink.bb new file mode 100644 index 0000000..be3f579 --- /dev/null +++ b/meta-openvuplus/recipes-multimedia/gstreamer/gst-plugin-subsink.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "gstreamer subsink plugin" +SECTION = "multimedia" +PRIORITY = "optional" +DEPENDS = "gstreamer gst-plugins-base" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +inherit gitpkgv + +PV = "0.10.0+git${SRCPV}" +PKGV = "0.10.0+git${GITPKGV}" +PR = "r2" + +SRCREV = "0cb20d602414f25edd8d139627b8e0b2b58aae33" +SRC_URI = "git://git.code.sf.net/p/openpli/gstsubsink" + +S = "${WORKDIR}/git" + +do_configure_prepend() { + sed -i 's/AC_INIT.*$/AC_INIT(gst-plugin-subsink, 0.10.0, @pli4)/' ${S}/configure.ac +} +inherit autotools pkgconfig + +FILES_${PN} = "${libdir}/gstreamer-0.10/*.so*" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" diff --git a/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb b/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb index bc91978..352b3bb 100644 --- a/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb +++ b/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb @@ -7,7 +7,7 @@ DEPENDS = "jpeg libungif libmad libpng libsigc++-1.2 gettext-native \ libfribidi libxmlccwrap libdreamdvd gstreamer gst-plugin-dvbmediasink \ gst-plugins-bad gst-plugins-good gst-plugins-ugly python-wifi \ hostap-daemon bridge-utils ntfs-3g dosfstools util-linux \ - satipclient \ + satipclient vuplus-3gcommand vuplus-dlnaserver\ " RDEPENDS_GST= "gst-plugins-base-decodebin gst-plugins-base-decodebin2 gst-plugins-base-app gst-plugins-bad-fragmented \ @@ -18,6 +18,7 @@ RDEPENDS_GST= "gst-plugins-base-decodebin gst-plugins-base-decodebin2 gst-plugin gst-plugins-good-souphttpsrc gst-plugins-ugly-mpegaudioparse gst-plugins-base-subparse \ gst-plugins-good-apetag gst-plugins-good-icydemux gst-plugins-good-autodetect gst-plugins-good-flv \ gst-plugins-bad-mms gst-plugins-ugly-asf gst-plugins-bad-faad \ + gst-plugin-subsink \ " RDEPENDS_${PN} = "python-codecs python-core python-lang python-re python-threading \ @@ -72,7 +73,7 @@ RDEPENDS_enigma2-plugin-systemplugins-wirelessaccesspoint = "hostap-daemon bridg RDEPENDS_enigma2-plugin-extensions-streamtv = "librtmp0 gst-plugins-bad-rtmp " DEPENDS += "djmount minidlna" -RDEPENDS_enigma2-plugin-extensions-dlnaserver = "minidlna " +RDEPENDS_enigma2-plugin-extensions-dlnaserver = "minidlna vuplus-dlnaserver" RDEPENDS_enigma2-plugin-extensions-dlnabrowser = "djmount kernel-module-fuse fuse-utils" DEPENDS += "opera-hbbtv" @@ -81,6 +82,7 @@ RDEPENDS_enigma2-plugin-extensions-hbbtv = "opera-hbbtv" DEPENDS += "wvdial wvstreams ppp usb-modeswitch usb-modeswitch-data" RDEPENDS_enigma2-plugin-systemplugins-3gmodemmanager = "ppp usb-modeswitch usb-modeswitch-data wvdial wvstreams \ kernel-module-ppp-async kernel-module-ppp-deflate kernel-module-ppp-synctty kernel-module-ppp-generic kernel-module-usbserial \ + vuplus-3gcommand \ " RDEPENDS_enigma2-plugin-systemplugins-devicemanager = "util-linux-blkid ntfs-3g dosfstools" @@ -95,7 +97,7 @@ DEPENDS += "${@base_contains("VUPLUS_FEATURES", "uianimation", "libgles libvugle RDEPENDS_append_vuplus += "${@base_contains("VUPLUS_FEATURES", "uianimation", "libgles libvugles2" , "", d)}" PN = "enigma2" -PR = "r101" +PR = "r102" SRCDATE = "20121128" #SRCDATE is NOT used by git to checkout a specific revision @@ -114,10 +116,8 @@ SRCREV = "" SRC_URI = "git://code.vuplus.com/git/dvbapp.git;protocol=http;branch=${BRANCH};tag=${SRCREV} \ file://enigma2_vuplus_skin.patch;patch=1;pnum=1 \ file://enigma2_vuplus_mediaplayer.patch;patch=1;pnum=1 \ - file://enigma2_vuplus_mediaplayer_subtitle.patch;patch=1;pnum=1 \ file://enigma2_vuplus_remove_dreambox_enigma.patch;patch=1;pnum=1 \ file://enigma2_vuplus_vfd_mode.patch;patch=1;pnum=1 \ - file://enigma2_vuplus_addlibpythondeps.patch;patch=1;pnum=1 \ file://enigma2_vuplus_pluginbrowser.patch;striplevel=1 \ file://enigma2_vuplus_proc_oom_score_adj.patch;striplevel=1 \ file://enigma2_vuplus_fix_standby_name.patch \ @@ -190,6 +190,7 @@ do_compile_prepend_vuplus() { } EXTRA_OECONF = " \ + --enable-dependency-tracking \ ${@base_contains("VUPLUS_FEATURES", "display-text-vfd", "--with-display-text-vfd" , "", d)} \ ${@base_contains("VUPLUS_FEATURES", "display-graphic-vfd", "--with-display-graphic-vfd" , "", d)} \ ${@base_contains("VUPLUS_FEATURES", "right-half-vfd-skin", "--with-set-right-half-vfd-skin" , "", d)} \ diff --git a/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_1080p.patch b/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_1080p.patch deleted file mode 100644 index bb8f5f2..0000000 --- a/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_1080p.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/lib/python/Plugins/SystemPlugins/Videomode/VideoHardware.py b/lib/python/Plugins/SystemPlugins/Videomode/VideoHardware.py -index 6ecbfd4..d801f58 100644 ---- a/lib/python/Plugins/SystemPlugins/Videomode/VideoHardware.py -+++ b/lib/python/Plugins/SystemPlugins/Videomode/VideoHardware.py -@@ -37,6 +37,10 @@ class VideoHardware: - "60Hz": { 60: "1080i" }, - "multi": { 50: "1080i50", 60: "1080i" } } - -+ rates["1080p"] = { "50Hz": { 50: "1080p50" }, -+ "60Hz": { 60: "1080p" }, -+ "multi": { 50: "1080p50", 60: "1080p" } } -+ - rates["PC"] = { - "1024x768": { 60: "1024x768" }, # not possible on DM7025 - "800x600" : { 60: "800x600" }, # also not possible -@@ -55,10 +59,10 @@ class VideoHardware: - - modes["Scart"] = ["PAL", "NTSC", "Multi"] - modes["YPbPr"] = ["720p", "1080i", "576p", "480p", "576i", "480i"] -- modes["DVI"] = ["720p", "1080i", "576p", "480p", "576i", "480i"] -+ modes["DVI"] = ["720p", "1080i", "1080p", "576p", "480p", "576i", "480i"] - modes["DVI-PC"] = ["PC"] - -- widescreen_modes = set(["720p", "1080i"]) -+ widescreen_modes = set(["720p", "1080i", "1080p"]) - - def getOutputAspect(self): - ret = (16,9) diff --git a/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_addlibpythondeps.patch b/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_addlibpythondeps.patch deleted file mode 100644 index 71a7c86..0000000 --- a/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_addlibpythondeps.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/lib/python/.deps/connections.Po b/lib/python/.deps/connections.Po -new file mode 100644 -index 0000000..9ce06a8 ---- /dev/null -+++ b/lib/python/.deps/connections.Po -@@ -0,0 +1 @@ -+# dummy -diff --git a/lib/python/.deps/enigma_python.Pcpp b/lib/python/.deps/enigma_python.Pcpp -new file mode 100644 -index 0000000..9ce06a8 ---- /dev/null -+++ b/lib/python/.deps/enigma_python.Pcpp -@@ -0,0 +1 @@ -+# dummy -diff --git a/lib/python/.deps/enigma_python.Po b/lib/python/.deps/enigma_python.Po -new file mode 100644 -index 0000000..9ce06a8 ---- /dev/null -+++ b/lib/python/.deps/enigma_python.Po -@@ -0,0 +1 @@ -+# dummy -diff --git a/lib/python/.deps/python.Po b/lib/python/.deps/python.Po -new file mode 100644 -index 0000000..9ce06a8 ---- /dev/null -+++ b/lib/python/.deps/python.Po -@@ -0,0 +1 @@ -+# dummy diff --git a/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer.patch b/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer.patch index 813687c..b0d7ed0 100644 --- a/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer.patch +++ b/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer.patch @@ -129,86 +129,3 @@ index 80cc196..7abb2ee 100755 self.doSeekRelative(-1) elif self.isStateForward(seekstate): speed = seekstate[1] -diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp -index e79be09..ae4611c 100755 ---- a/lib/service/servicemp3.cpp -+++ b/lib/service/servicemp3.cpp -@@ -245,6 +245,7 @@ eServiceMP3::eServiceMP3(eServiceReference ref) - CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll); - m_aspect = m_width = m_height = m_framerate = m_progressive = -1; - -+ m_cur_rate=1.0; - m_state = stIdle; - eDebug("eServiceMP3::construct!"); - -@@ -540,6 +541,9 @@ RESULT eServiceMP3::unpause() - if (!m_gst_playbin || m_state != stRunning) - return -1; - -+ if(m_cur_rate!=1.0) -+ trickSeek(1); -+ - gst_element_set_state(m_gst_playbin, GST_STATE_PLAYING); - - return 0; -@@ -575,7 +579,7 @@ RESULT eServiceMP3::seekToImpl(pts_t to) - { - /* convert pts to nanoseconds */ - gint64 time_nanoseconds = to * 11111LL; -- if (!gst_element_seek (m_gst_playbin, 1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, -+ if (!gst_element_seek (m_gst_playbin, m_cur_rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, - GST_SEEK_TYPE_SET, time_nanoseconds, - GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)) - { -@@ -612,19 +616,23 @@ RESULT eServiceMP3::trickSeek(gdouble ratio) - if (!ratio) - return seekRelative(0, 0); - -+ eSingleLocker l(m_subs_to_pull_lock); -+ - GstEvent *s_event; - int flags; - flags = GST_SEEK_FLAG_NONE; - flags |= GST_SEEK_FLAG_FLUSH; - // flags |= GstSeekFlags (GST_SEEK_FLAG_ACCURATE); -- flags |= GST_SEEK_FLAG_KEY_UNIT; -+// flags |= GST_SEEK_FLAG_KEY_UNIT; - // flags |= GstSeekFlags (GST_SEEK_FLAG_SEGMENT); - // flags |= GstSeekFlags (GST_SEEK_FLAG_SKIP); - - GstFormat fmt = GST_FORMAT_TIME; -- gint64 pos, len; -+ pts_t pos; -+ gint64 len; - gst_element_query_duration(m_gst_playbin, &fmt, &len); -- gst_element_query_position(m_gst_playbin, &fmt, &pos); -+ getPlayPosition(pos); -+ pos=pos*11111; - - if ( ratio >= 0 ) - { -@@ -642,7 +650,11 @@ RESULT eServiceMP3::trickSeek(gdouble ratio) - eDebug("eServiceMP3::trickSeek failed"); - return -1; - } -- -+ m_subtitle_pages.clear(); -+ m_prev_decoder_time = -1; -+ m_decoder_time_valid_state = 0; -+ m_subs_to_pull = 0; -+ m_cur_rate=ratio; - return 0; - } - -diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h -index 41aec13..cb5b048 100644 ---- a/lib/service/servicemp3.h -+++ b/lib/service/servicemp3.h -@@ -269,6 +269,7 @@ private: - gint m_aspect, m_width, m_height, m_framerate, m_progressive; - std::string m_useragent; - RESULT trickSeek(gdouble ratio); -+ double m_cur_rate; - }; - - #endif diff --git a/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer_subtitle.patch b/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer_subtitle.patch deleted file mode 100644 index a17d0a3..0000000 --- a/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer_subtitle.patch +++ /dev/null @@ -1,104 +0,0 @@ -diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp -index ae4611c..99bb50d 100755 ---- a/lib/service/servicemp3.cpp -+++ b/lib/service/servicemp3.cpp -@@ -245,6 +245,8 @@ eServiceMP3::eServiceMP3(eServiceReference ref) - CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll); - m_aspect = m_width = m_height = m_framerate = m_progressive = -1; - -+ m_subs_behind_seek = 0; -+ m_block_sub = FALSE; - m_cur_rate=1.0; - m_state = stIdle; - eDebug("eServiceMP3::construct!"); -@@ -595,6 +597,7 @@ RESULT eServiceMP3::seekTo(pts_t to) - RESULT ret = -1; - - if (m_gst_playbin) { -+ m_block_sub = TRUE; - eSingleLocker l(m_subs_to_pull_lock); // this is needed to dont handle incomming subtitles during seek! - if (!(ret = seekToImpl(to))) - { -@@ -603,6 +606,13 @@ RESULT eServiceMP3::seekTo(pts_t to) - m_decoder_time_valid_state = 0; - m_subs_to_pull = 0; - } -+ m_block_sub = FALSE; -+ } -+ m_subs_to_pull+=m_subs_behind_seek; -+ while(m_subs_behind_seek) -+ { -+ m_pump.send(Message(2)); -+ m_subs_behind_seek--; - } - - return ret; -@@ -616,6 +626,7 @@ RESULT eServiceMP3::trickSeek(gdouble ratio) - if (!ratio) - return seekRelative(0, 0); - -+ m_block_sub = TRUE; - eSingleLocker l(m_subs_to_pull_lock); - - GstEvent *s_event; -@@ -655,6 +666,13 @@ RESULT eServiceMP3::trickSeek(gdouble ratio) - m_decoder_time_valid_state = 0; - m_subs_to_pull = 0; - m_cur_rate=ratio; -+ m_block_sub = FALSE; -+ m_subs_to_pull+=m_subs_behind_seek; -+ while(m_subs_behind_seek) -+ { -+ m_pump.send(Message(2)); -+ m_subs_behind_seek--; -+ } - return 0; - } - -@@ -1650,10 +1668,17 @@ eAutoInitPtr init_eServiceFactoryMP3(eAutoInitNumbers::servi - - void eServiceMP3::gstCBsubtitleAvail(GstElement *appsink, gpointer user_data) - { -- eServiceMP3 *_this = (eServiceMP3*)user_data; -- eSingleLocker l(_this->m_subs_to_pull_lock); -- ++_this->m_subs_to_pull; -- _this->m_pump.send(Message(2)); -+ eServiceMP3 *_this = (eServiceMP3*)user_data; -+ if(_this->m_block_sub != TRUE) -+ { -+ eSingleLocker l(_this->m_subs_to_pull_lock); -+ ++_this->m_subs_to_pull; -+ _this->m_pump.send(Message(2)); -+ } -+ else -+ { -+ _this->m_subs_behind_seek++; -+ } - } - - void eServiceMP3::gstTextpadHasCAPS(GstPad *pad, GParamSpec * unused, gpointer user_data) -@@ -1729,6 +1754,11 @@ void eServiceMP3::pullSubtitle() - { - GstBuffer *buffer; - { -+ if(m_block_sub == TRUE) -+ { -+ g_signal_emit_by_name (sink, "pull-buffer", &buffer); -+ return; -+ } - eSingleLocker l(m_subs_to_pull_lock); - --m_subs_to_pull; - g_signal_emit_by_name (sink, "pull-buffer", &buffer); -diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h -index cb5b048..7e3f6a6 100644 ---- a/lib/service/servicemp3.h -+++ b/lib/service/servicemp3.h -@@ -270,6 +270,8 @@ private: - std::string m_useragent; - RESULT trickSeek(gdouble ratio); - double m_cur_rate; -+ bool m_block_sub; -+ int m_subs_behind_seek; - }; - - #endif diff --git a/meta-openvuplus/recipes-vuplus/vuplus-3gcommand/vuplus-3gcommand.bb b/meta-openvuplus/recipes-vuplus/vuplus-3gcommand/vuplus-3gcommand.bb new file mode 100644 index 0000000..5a931e9 --- /dev/null +++ b/meta-openvuplus/recipes-vuplus/vuplus-3gcommand/vuplus-3gcommand.bb @@ -0,0 +1,28 @@ +DESCIPTION = "3gcommand" +MAINTAINER = "vuplus team" +LICENSE = "CLOSED" + +PV = "1.0" +PR = "r0" + +SRC_URI = "http://archive.vuplus.com/download/utils/vuplus-3gcommand-${PV}.tar.gz" + +do_install() { + install -d ${D}/usr/lib/enigma2/python/Plugins/SystemPlugins/3GModemManager + install -m 0755 ${WORKDIR}/3gcommand ${D}/usr/lib/enigma2/python/Plugins/SystemPlugins/3GModemManager/3gcommand +} + +do_install_arm() { + install -d ${D}/usr/lib/enigma2/python/Plugins/SystemPlugins/3GModemManager + install -m 0755 ${WORKDIR}/3gcommand_arm ${D}/usr/lib/enigma2/python/Plugins/SystemPlugins/3GModemManager/3gcommand +} + +PACKAGES = "${PN}" +FILES_${PN} = "/" + +do_populate_sysroot[noexec] = "1" +INSANE_SKIP_${PN} = "already-stripped" + +SRC_URI[md5sum] = "a586fa3901204a0344ea28fe6ec20ee1" +SRC_URI[sha256sum] = "59669751d0b95d1da693b22719fa80dd971deb2a0e551d88258f1e634a1acedd" + diff --git a/meta-openvuplus/recipes-vuplus/vuplus-dlnaserver/vuplus-dlnaserver.bb b/meta-openvuplus/recipes-vuplus/vuplus-dlnaserver/vuplus-dlnaserver.bb new file mode 100644 index 0000000..909fd95 --- /dev/null +++ b/meta-openvuplus/recipes-vuplus/vuplus-dlnaserver/vuplus-dlnaserver.bb @@ -0,0 +1,28 @@ +DESCIPTION = "dinaserver" +MAINTAINER = "vuplus team" +LICENSE = "CLOSED" + +PV = "1.0" +PR = "r0" + +SRC_URI = "http://archive.vuplus.com/download/utils/vuplus-dlnaserver-${PV}.tar.gz" + +do_install() { + install -d ${D}/usr/lib/enigma2/python/Plugins/Extensions/DLNAServer + install -m 0755 ${WORKDIR}/dlnaserver ${D}/usr/lib/enigma2/python/Plugins/Extensions/DLNAServer/dlnaserver +} + +do_install_arm() { + install -d ${D}/usr/lib/enigma2/python/Plugins/Extensions/DLNAServer + install -m 0755 ${WORKDIR}/dlnaserver_arm ${D}/usr/lib/enigma2/python/Plugins/Extensions/DLNAServer/dlnaserver +} + +PACKAGES = "${PN}" +FILES_${PN} = "/" + +do_populate_sysroot[noexec] = "1" +INSANE_SKIP_${PN} = "already-stripped" + +SRC_URI[md5sum] = "c08be968fcf1d707bd940c4bb7fa1fdb" +SRC_URI[sha256sum] = "9b5fc064e725749c45e9f7517e63a8258845220ef6dc5a20093e09f5335493a1" + -- 2.7.4