<widget name="statuspic" pixmaps="skin_default/buttons/button_green.png,skin_default/buttons/button_green_off.png" position="130,380" zPosition="10" size="15,16" transparent="1" alphatest="on"/>
</screen>
<!-- Audio selection -->
+<<<<<<< HEAD
<screen name="AudioSelection" position="center,center" size="560,330" title="Audio">
<widget name="config" position="50,10" size="500,110" scrollbarMode="showOnDemand" />
+=======
+ <screen name="AudioSelection" position="center,center" size="520,330" title="Audio">
+ <widget name="config" position="50,10" size="460,110" scrollbarMode="showOnDemand" />
+>>>>>>> more experimenting on vobsubs
<widget source="key_red" render="Pixmap" pixmap="skin_default/buttons/key_red.png" position="10,10" size="35,25" alphatest="on">
<convert type="ConditionalShowHide" />
<convert type="ConditionalShowHide" />
</widget>
+<<<<<<< HEAD
<widget source="key_red" render="Pixmap" pixmap="skin_default/buttons/key_red.png" position="10,10" size="35,25" alphatest="on">
<convert type="ConditionalShowHide" />
<widget source="streams" render="Listbox" scrollbarMode="showOnDemand" position="10,120" size="540,200" zPosition="3" transparent="1" >
+=======
+ <ePixmap pixmap="skin_default/div-h.png" position="10,112" size="500,2" />
+
+ <widget source="streams" render="Listbox" scrollbarMode="showOnDemand" position="10,120" size="500,200" zPosition="3" transparent="1" >
+>>>>>>> more experimenting on vobsubs
<convert type="TemplatedMultiContent">
{"templates":
{"default": (25, [
MultiContentEntryText(pos = (0, 0), size = (35, 25), font = 0, flags = RT_HALIGN_LEFT, text = 1), # key,
+<<<<<<< HEAD
<convert type="TemplatedMultiContent">
{"templates":
{"default": (25, [
}
</convert>
</widget>
+=======
+ MultiContentEntryText(pos = (40, 0), size = (55, 25), font = 0, flags = RT_HALIGN_LEFT, text = 2), # number,
+ MultiContentEntryText(pos = (100, 0), size = (120, 25), font = 0, flags = RT_HALIGN_LEFT, text = 3), # description,
+ MultiContentEntryText(pos = (230, 0), size = (200, 25), font = 0, flags = RT_HALIGN_LEFT, text = 4), # language,
+ MultiContentEntryText(pos = (440, 4), size = (60, 25), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # selection,
+ ], True, "showNever"),
+ "notselected": (25, [
+ MultiContentEntryText(pos = (0, 0), size = (35, 25), font = 0, flags = RT_HALIGN_LEFT, text = 1), # key,
+ MultiContentEntryText(pos = (40, 0), size = (55, 25), font = 0, flags = RT_HALIGN_LEFT, text = 2), # number,
+ MultiContentEntryText(pos = (100, 0), size = (120, 25), font = 0, flags = RT_HALIGN_LEFT, text = 3), # description,
+ MultiContentEntryText(pos = (230, 0), size = (200, 25), font = 0, flags = RT_HALIGN_LEFT, text = 4), # language,
+ MultiContentEntryText(pos = (440, 4), size = (60, 25), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # selection,
+>>>>>>> more experimenting on vobsubs
], False, "showNever")
},
"fonts": [gFont("Regular", 20), gFont("Regular", 16)],
"cancel": self.cancel,
"up": self.keyUp,
"down": self.keyDown,
- }, -3)
+ }, -2)
self.settings = ConfigSubsection()
choicelist = [(PAGE_AUDIO,_("audio tracks")), (PAGE_SUBTITLES,_("Subtitles"))]
streams.append((x, "", number, description, language, selected))
else:
+ conflist.append(getConfigListEntry("", self.settings.dummy))
+ self["key_green"].setBoolean(False)
streams = []
conflist.append(('',))
self["key_green"].setBoolean(False)
number = "%x%02x" % (x[3],x[2])
elif x[0] == 2:
- types = ("UTF-8 text","SSA / AAS",".SRT file")
+ types = (_("<unknown>"), "UTF-8 text", "SSA / AAS", ".SRT", "VOB")
description = types[x[2]]
streams.append((x, "", number, description, language, selected))
class SubtitleSelection(AudioSelection):
def __init__(self, session, infobar=None):
- AudioSelection.__init__(self, session, infobar, page=PAGE_SUBTITLES)
- self.skinName = ["AudioSelection"]
+ AudioSelection.__init__(self, session, infobar, PAGE_SUBTITLES)
source = GST_MESSAGE_SRC(msg);
sourceName = gst_object_get_name(source);
-#if 0
+#if 1
if (gst_message_get_structure(msg))
{
gchar *string = gst_structure_to_string(gst_message_get_structure(msg));
gint64 buf_pos = GST_BUFFER_TIMESTAMP(buffer);
gint64 duration_ns = GST_BUFFER_DURATION(buffer);
size_t len = GST_BUFFER_SIZE(buffer);
-
- if ( m_subtitleStreams[m_currentSubtitleStream].type < stVOB )
- {
- unsigned char line[len+1];
- memcpy(line, GST_BUFFER_DATA(buffer), len);
- line[len] = 0;
- eDebug("got new text subtitle @ buf_pos = %lld ns (in pts=%lld): '%s' ", buf_pos, buf_pos/11111, line);
- ePangoSubtitlePage* page = new ePangoSubtitlePage;
- gRGB rgbcol(0xD0,0xD0,0xD0);
- page->m_elements.push_back(ePangoSubtitlePageElement(rgbcol, (const char*)line));
- page->show_pts = buf_pos / 11111L;
- page->m_timeout = duration_ns / 1000000;
- SubtitlePage subtitlepage;
- subtitlepage.pango_page = page;
- subtitlepage.vob_page = NULL;
- m_subtitle_pages.push_back(subtitlepage);
- pushSubtitles();
- }
- else
+ eDebug("pullSubtitle m_subtitleStreams[m_currentSubtitleStream].type=%i",m_subtitleStreams[m_currentSubtitleStream].type);
+
+ if ( m_subtitleStreams[m_currentSubtitleStream].type )
{
- eDebug("got new subpicture @ buf_pos = %lld ns (in pts=%lld), len=%i bytes. ", buf_pos, buf_pos/11111, len);
- eVobSubtitlePage* page = new eVobSubtitlePage;
- eSize size = eSize(720, 576);
- page->m_pixmap = new gPixmap(size, 32, 0);
-// ePtr<gPixmap> pixmap;
-// pixmap = new gPixmap(size, 32, 1); /* allocate accel surface (if possible) */
- memcpy(page->m_pixmap->surface->data, GST_BUFFER_DATA(buffer), len);
- page->show_pts = buf_pos / 11111L;
- page->m_timeout = duration_ns / 1000000;
- SubtitlePage subtitlepage;
- subtitlepage.vob_page = page;
- subtitlepage.pango_page = NULL;
- m_subtitle_pages.push_back(subtitlepage);
- pushSubtitles();
+ if ( m_subtitleStreams[m_currentSubtitleStream].type < stVOB )
+ {
+ unsigned char line[len+1];
+ memcpy(line, GST_BUFFER_DATA(buffer), len);
+ line[len] = 0;
+ eDebug("got new text subtitle @ buf_pos = %lld ns (in pts=%lld): '%s' ", buf_pos, buf_pos/11111, line);
+ ePangoSubtitlePage* page = new ePangoSubtitlePage;
+ gRGB rgbcol(0xD0,0xD0,0xD0);
+ page->m_elements.push_back(ePangoSubtitlePageElement(rgbcol, (const char*)line));
+ page->show_pts = buf_pos / 11111L;
+ page->m_timeout = duration_ns / 1000000;
+ SubtitlePage subtitlepage;
+ subtitlepage.pango_page = page;
+ subtitlepage.vob_page = NULL;
+ m_subtitle_pages.push_back(subtitlepage);
+ pushSubtitles();
+ }
+ else
+ {
+ eDebug("got new subpicture @ buf_pos = %lld ns (in pts=%lld), duration=%lld ns, len=%i bytes. ", buf_pos, buf_pos/11111, duration_ns, len);
+ eVobSubtitlePage* page = new eVobSubtitlePage;
+ eSize size = eSize(720, 576);
+ page->m_pixmap = new gPixmap(size, 32, 0);
+ // ePtr<gPixmap> pixmap;
+ // pixmap = new gPixmap(size, 32, 1); /* allocate accel surface (if possible) */
+ memcpy(page->m_pixmap->surface->data, GST_BUFFER_DATA(buffer), len);
+ page->show_pts = buf_pos / 11111L;
+ page->m_timeout = duration_ns / 1000000;
+ SubtitlePage subtitlepage;
+ subtitlepage.vob_page = page;
+ subtitlepage.pango_page = NULL;
+ m_subtitle_pages.push_back(subtitlepage);
+ pushSubtitles();
+ }
}
gst_buffer_unref(buffer);
}
g_object_get (G_OBJECT (m_gst_playbin), "current-text", &text_pid, NULL);
eDebug ("eServiceMP3::switched to subtitle stream %i", text_pid);
+ m_event((iPlayableService*)this, evUpdatedInfo);
return 0;
PyObject *eServiceMP3::getSubtitleList()
{
eDebug("eServiceMP3::getSubtitleList");
-
ePyObject l = PyList_New(0);
- int stream_count[sizeof(subtype_t)];
+ int stream_idx = 0;
- for ( unsigned int i = 0; i <= sizeof(subtype_t); i++ )
- stream_count[i] = 0;
-
for (std::vector<subtitleStream>::iterator IterSubtitleStream(m_subtitleStreams.begin()); IterSubtitleStream != m_subtitleStreams.end(); ++IterSubtitleStream)
{
subtype_t type = IterSubtitleStream->type;
ePyObject tuple = PyTuple_New(5);
+ eDebug("eServiceMP3::getSubtitleList idx=%i type=%i, code=%s", stream_idx, int(type), (IterSubtitleStream->language_code).c_str());
PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(2));
- PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(stream_count[type]));
+ PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(stream_idx));
PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(int(type)));
PyTuple_SET_ITEM(tuple, 3, PyInt_FromLong(0));
PyTuple_SET_ITEM(tuple, 4, PyString_FromString((IterSubtitleStream->language_code).c_str()));
PyList_Append(l, tuple);
Py_DECREF(tuple);
- stream_count[type]++;
+ stream_idx++;
}
+ eDebug("eServiceMP3::getSubtitleList finished");
return l;
}