DISTRO = "vuplus"
DISTRO_NAME = "Vuplus"
-DISTRO_VERSION = "2.0.6"
+DISTRO_VERSION = "2.0.7"
TARGET_OS = "linux"
kernel-module-libata kernel-module-ntfs kernel-module-sata-svw \
kernel-module-nls-iso8859-15 kernel-module-nls-cp850 \
kernel-module-nls-utf8 \
- kernel-module-i2c-core kernel-module-firmware-class kernel-module-input kernel-module-evdev \
+ kernel-module-i2c-core kernel-module-i2c-dev kernel-module-firmware-class kernel-module-input kernel-module-evdev \
kernel-module-snd-pcm kernel-module-snd \
kernel-module-tun \
kernel-module-fb \
kernel-module-libata kernel-module-ntfs kernel-module-sata-svw \
kernel-module-nls-iso8859-15 kernel-module-nls-cp850 \
kernel-module-nls-utf8 \
- kernel-module-i2c-core kernel-module-firmware-class kernel-module-input kernel-module-evdev \
+ kernel-module-i2c-core kernel-module-i2c-dev kernel-module-firmware-class kernel-module-input kernel-module-evdev \
kernel-module-snd-pcm kernel-module-snd \
kernel-module-tun \
kernel-module-fb \
# enigma2_vuplus_mediaplayer.patch is for trick-play in media player
-SRC_URI_bm750 = "git://archive.vuplus.com/git/enigma2.git;protocol=http;branch=${BRANCH};tag=${SRCREV} \
+SRC_URI_bm750 = "git://archive.vuplus.com/git/enigma2.git.5.9;protocol=http;branch=${BRANCH};tag=${SRCREV} \
file://enigma2_vuplus_vfd.patch;patch=1;pnum=1 \
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://MyriadPro-Regular.otf \
file://MyriadPro-Semibold.otf \
file://number_key \
"
-SRC_URI_vusolo = "git://archive.vuplus.com/git/enigma2.git;protocol=http;branch=${BRANCH};tag=${SRCREV} \
+SRC_URI_vusolo = "git://archive.vuplus.com/git/enigma2.git.5.9;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_misc.patch;patch=1;pnum=1 \
file://enigma2_vuplus_remove_dreambox_enigma.patch;patch=1;pnum=1 \
file://MyriadPro-Regular.otf \
-SRC_URI_vuuno = "git://archive.vuplus.com/git/enigma2.git;protocol=http;branch=${BRANCH};tag=${SRCREV} \
+SRC_URI_vuuno = "git://archive.vuplus.com/git/enigma2.git.5.9;protocol=http;branch=${BRANCH};tag=${SRCREV} \
file://enigma2_vuplus_vfd.patch;patch=1;pnum=1 \
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://MyriadPro-Regular.otf \
file://MyriadPro-Semibold.otf \
file://number_key \
"
-SRC_URI_vuultimo = "git://archive.vuplus.com/git/enigma2.git;protocol=http;branch=${BRANCH};tag=${SRCREV} \
+SRC_URI_vuultimo = "git://archive.vuplus.com/git/enigma2.git.5.9;protocol=http;branch=${BRANCH};tag=${SRCREV} \
file://enigma2_vuplus_vfd.patch;patch=1;pnum=1 \
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://MyriadPro-Regular.otf \
file://MyriadPro-Semibold.otf \
diff --git a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py
-index 13599a0..8678b59 100755
+index 75fba2d..da5ebd4 100644
--- a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py
+++ b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py
@@ -7,7 +7,7 @@ from Screens.HelpMenu import HelpableScreen
def addPlaylistParser(self, parser, extension):
self.playlistparsers[extension] = parser
diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py
-index 0432930..8cbc453 100755
+index 07fbac8..6ca65e3 100755
--- a/lib/python/Screens/InfoBarGenerics.py
+++ b/lib/python/Screens/InfoBarGenerics.py
-@@ -936,14 +936,17 @@ class InfoBarSeek:
+@@ -957,14 +957,17 @@ class InfoBarSeek:
def seekFwd(self):
seek = self.getSeek()
if seek and not (seek.isCurrentlySeekable() & 2):
if len(config.seek.speeds_slowmotion.value):
self.setSeekState(self.makeStateSlowMotion(config.seek.speeds_slowmotion.value[-1]))
else:
-@@ -954,7 +957,11 @@ class InfoBarSeek:
+@@ -975,7 +978,11 @@ class InfoBarSeek:
speed = self.seekstate[1]
if self.seekstate[2]:
speed /= self.seekstate[2]
self.setSeekState(self.makeStateForward(speed))
elif self.isStateBackward(self.seekstate):
speed = -self.seekstate[1]
-@@ -972,18 +979,27 @@ class InfoBarSeek:
+@@ -993,18 +1000,27 @@ class InfoBarSeek:
def seekBack(self):
seek = self.getSeek()
if seek and not (seek.isCurrentlySeekable() & 2):
elif self.isStateForward(seekstate):
speed = seekstate[1]
diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
-index f96b8c4..ba21d0c 100644
+old mode 100644
+new mode 100755
+index be55d0c..7ce34c1
--- a/lib/service/servicemp3.cpp
+++ b/lib/service/servicemp3.cpp
-@@ -239,6 +239,8 @@ eServiceMP3::eServiceMP3(eServiceReference ref)
+@@ -235,6 +235,7 @@ eServiceMP3::eServiceMP3(eServiceReference ref)
CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll);
m_aspect = m_width = m_height = m_framerate = m_progressive = -1;
-+ m_event_on=FALSE;
+ m_cur_rate=1.0;
m_state = stIdle;
eDebug("eServiceMP3::construct!");
-@@ -565,6 +567,9 @@ RESULT eServiceMP3::unpause()
+@@ -517,6 +518,9 @@ RESULT eServiceMP3::unpause()
if (!m_gst_playbin || m_state != stRunning)
return -1;
gst_element_set_state(m_gst_playbin, GST_STATE_PLAYING);
return 0;
-@@ -600,7 +605,7 @@ RESULT eServiceMP3::seekToImpl(pts_t to)
+@@ -552,7 +556,7 @@ RESULT eServiceMP3::seekToImpl(pts_t to)
{
/* convert pts to nanoseconds */
gint64 time_nanoseconds = to * 11111LL;
GST_SEEK_TYPE_SET, time_nanoseconds,
GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE))
{
-@@ -617,6 +622,7 @@ RESULT eServiceMP3::seekTo(pts_t to)
-
- if (m_gst_playbin) {
- eSingleLocker l(m_subs_to_pull_lock); // this is needed to dont handle incomming subtitles during seek!
-+ m_event_on = TRUE;
- if (!(ret = seekToImpl(to)))
- {
- m_subtitle_pages.clear();
-@@ -624,6 +630,7 @@ RESULT eServiceMP3::seekTo(pts_t to)
- m_decoder_time_valid_state = 0;
- m_subs_to_pull = 0;
- }
-+ m_event_on = FALSE;
- }
-
- return ret;
-@@ -636,20 +643,26 @@ RESULT eServiceMP3::trickSeek(gdouble ratio)
- return -1;
+@@ -589,19 +593,23 @@ RESULT eServiceMP3::trickSeek(gdouble ratio)
if (!ratio)
return seekRelative(0, 0);
-+
-+ eSingleLocker l(m_subs_to_pull_lock);
-+ m_event_on=TRUE;
++ eSingleLocker l(m_subs_to_pull_lock);
++
GstEvent *s_event;
int flags;
flags = GST_SEEK_FLAG_NONE;
- 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);
if ( ratio >= 0 )
{
-@@ -667,7 +680,12 @@ RESULT eServiceMP3::trickSeek(gdouble ratio)
+@@ -619,7 +627,11 @@ RESULT eServiceMP3::trickSeek(gdouble ratio)
eDebug("eServiceMP3::trickSeek failed");
return -1;
}
+ m_prev_decoder_time = -1;
+ m_decoder_time_valid_state = 0;
+ m_subs_to_pull = 0;
-+ m_event_on=FALSE;
+ m_cur_rate=ratio;
return 0;
}
-@@ -1594,10 +1612,12 @@ eAutoInitPtr<eServiceFactoryMP3> 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_event_on){
-+ eSingleLocker l(_this->m_subs_to_pull_lock);
-+ ++_this->m_subs_to_pull;
-+ _this->m_pump.send(Message(2));
-+ }
- }
-
- gboolean eServiceMP3::gstGhostpadSinkEvent(GstPad * pad, GstEvent * event)
-@@ -1942,6 +1962,8 @@ void eServiceMP3::pullSubtitle()
-
- if (appsink)
- {
-+ if(m_event_on)
-+ return;
- while (m_subs_to_pull && m_subtitle_pages.size() < 2)
- {
- GstBuffer *buffer;
diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h
-index 173084d..d212b87 100644
+old mode 100644
+new mode 100755
+index f3cc6dd..07eb321
--- a/lib/service/servicemp3.h
+++ b/lib/service/servicemp3.h
-@@ -276,6 +276,10 @@ private:
+@@ -265,6 +265,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;
-+ bool m_event_on;
-+
++ double m_cur_rate;
};
#endif
--- /dev/null
+diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
+index 7ce34c1..e620225 100755
+--- a/lib/service/servicemp3.cpp
++++ b/lib/service/servicemp3.cpp
+@@ -235,6 +235,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!");
+@@ -572,6 +574,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)))
+ {
+@@ -580,6 +583,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;
+@@ -593,6 +603,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;
+@@ -632,6 +643,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;
+ }
+
+@@ -1572,10 +1590,17 @@ eAutoInitPtr<eServiceFactoryMP3> 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)
+@@ -1651,6 +1676,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 07eb321..f6282bf 100755
+--- a/lib/service/servicemp3.h
++++ b/lib/service/servicemp3.h
+@@ -266,6 +266,8 @@ private:
+ std::string m_useragent;
+ RESULT trickSeek(gdouble ratio);
+ double m_cur_rate;
++ bool m_block_sub;
++ int m_subs_behind_seek;
+ };
+
+ #endif
modprobe $mod
done
-for mod in input evdev i2c-core firmware_class; do
+for mod in input evdev i2c-core i2c-dev firmware_class; do
modprobe $mod
done
modprobe $mod
done
-for mod in input evdev i2c-core firmware_class; do
+for mod in input evdev i2c-core i2c-dev firmware_class; do
modprobe $mod
done
DEPENDS = "makedevs"
RDEPENDS = "makedevs"
LICENSE = "GPL"
-PR = "r27"
+PR = "r28"
#FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/${P}', '${FILE_DIRNAME}/initscripts-${PV}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
#deprecated
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
-# CONFIG_SCSI_MULTI_LUN is not set
+CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
require linux-vuplus-2.6.18.inc
-PR = "r9"
+PR = "r10"
SRC_URI += "\
file://bm750_defconfig \
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
-# CONFIG_SCSI_MULTI_LUN is not set
+CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
require linux-vuplus-2.6.18.inc
-PR = "r12"
+PR = "r13"
SRC_URI += "\
file://vusolo_defconfig \
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
-# CONFIG_SCSI_MULTI_LUN is not set
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
#
# SCSI Transport Attributes
require linux-vuplus-2.6.18.inc
-PR = "r11"
+PR = "r12"
SRC_URI += "\
file://vuultimo_defconfig \
require linux-vuplus-2.6.18.inc
-PR = "r11"
+PR = "r12"
SRC_URI += "\
file://vuuno_defconfig \
DESCRIPTION = "Basic task to get a device booting"
-PR = "r60"
+PR = "r61"
inherit task
-DESCRIPTION = "Vuplus: Enigma2 Task for the Vuplus Distribution"
+DESCRIPTION = "Vuplus: E2 Task for the Vuplus Distribution"
SECTION = "vuplus/base"
LICENSE = "MIT"
-PR = "r2"
+PR = "r3"
inherit task
RPROVIDES_task-vuplus-enigma2 = "task-vuplus-ui"
DESCRIPTION_task-vuplus-enigma2 = "Vuplus: Enigma2 Dependencies"
RDEPENDS_task-vuplus-enigma2 = "\
- dreambox-blindscan-utils \
+ vuplus-blindscan-utils \
enigma2 \
enigma2-defaultservices \
enigma2-plugin-extensions-mediascanner \
enigma2-meta \
enigma2-plugins-meta \
enigma2-skins-meta \
- enigma2-drivers-meta \
"
RRECOMMENDS_task-vuplus-enigma2 = "\
RDEPENDS_task-vuplus-enigma2_append_bm750 = "\
enigma2-plugin-systemplugins-fancontrol \
"
+RDEPENDS_task-vuplus-enigma2_append_vuuno = "\
+ enigma2-plugin-systemplugins-fpgaupgrade \
+"
+RDEPENDS_task-vuplus-enigma2_append_vuultimo = "\
+ enigma2-plugin-systemplugins-fpgaupgrade \
+"
PACKAGE_ARCH = "${MACHINE_ARCH}"
DESCRIPTION = "Provide per-machine static nodes of /dev"
RDEPENDS = "udev"
-PR = "r2"
+PR = "r3"
SRC_URI = "file://udev_static_devices_tarball"
PV_vuuno = "${KV}"
PV_vuultimo = "${KV}"
-SRCDATE_bm750 = "20110429"
-SRCDATE_vusolo = "20110429"
-SRCDATE_vuuno = "20110429"
-SRCDATE_vuultimo = "20110430"
+SRCDATE_bm750 = "20110526"
+SRCDATE_vusolo = "20110526"
+SRCDATE_vuuno = "20110526"
+SRCDATE_vuultimo = "20110526"
RDEPENDS = "initscripts-vuplus kernel (${KV}) kernel-module-firmware-class kernel-module-input kernel-module-evdev kernel-module-i2c-core kernel-module-snd kernel-module-snd-pcm"
RDEPENDS_append_vuplus = " module-init-tools-depmod"
-SRC_URI = "http://archive.vuplus.com/download/drivers/vuplus-dvb-modules-${MACHINE}-${PV}-${PREFERRED_GCC_VERSION}-${SRCDATE}.tar.gz "
-
-SRC_URI_vuuno = "http://archive.vuplus.com/download/drivers/beta/vuplus-dvb-modules-${MACHINE}-${PV}-${PREFERRED_GCC_VERSION}-${SRCDATE}.tar.gz "
-SRC_URI_vuultimo = "http://archive.vuplus.com/download/drivers/beta/vuplus-dvb-modules-${MACHINE}-${PV}-${PREFERRED_GCC_VERSION}-${SRCDATE}.tar.gz "
+SRC_URI = "http://archive.vuplus.com/download/drivers/beta/vuplus-dvb-modules-${MACHINE}-${PV}-${PREFERRED_GCC_VERSION}-${SRCDATE}.tar.gz "
S = "${WORKDIR}"
DESCRIPTION = "Configuration files for online package repositories aka feeds"
-PR = "r5"
+PR = "r6"
DISTRO_FEED_PREFIX ?= "official"
DISTRO_FEED_URI ?= "http://archive.vuplus.com/openembedded/${DISTRO_VERSION}/vuplus/feeds/stable"