Merge remote-tracking branch 'tangocash/master'

Origin commit data
------------------
Branch: master
Commit: 71cde46afe
Author: max_10 <max_10@gmx.de>
Date: 2017-10-15 (Sun, 15 Oct 2017)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
max_10
2017-10-15 13:20:45 +02:00
4 changed files with 44 additions and 7 deletions

View File

@@ -305,7 +305,7 @@ elif test "$BOXTYPE" = "generic"; then
elif test "$BOXTYPE" = "duckbox"; then elif test "$BOXTYPE" = "duckbox"; then
AC_DEFINE(HAVE_DUCKBOX_HARDWARE, 1, [building for a duckbox]) AC_DEFINE(HAVE_DUCKBOX_HARDWARE, 1, [building for a duckbox])
elif test "$BOXTYPE" = "armbox"; then elif test "$BOXTYPE" = "armbox"; then
AC_DEFINE(HAVE_ARM_HARDWARE, 1, [building for a armbox]) AC_DEFINE(HAVE_ARM_HARDWARE, 1, [building for an armbox])
fi fi

View File

@@ -394,8 +394,10 @@ void cAudio::SetHdmiDD(bool enable)
void cAudio::SetSpdifDD(bool enable) void cAudio::SetSpdifDD(bool enable)
{ {
//using this function for dts passthrough
const char *opt[] = { "downmix", "passthrough" };
lt_debug("%s %d\n", __func__, enable); lt_debug("%s %d\n", __func__, enable);
setBypassMode(!enable); proc_put("/proc/stb/audio/dts", opt[enable], strlen(opt[enable]));
} }
void cAudio::ScheduleMute(bool On) void cAudio::ScheduleMute(bool On)

View File

@@ -70,6 +70,7 @@ GstElement * videoSink = NULL;
gchar * uri = NULL; gchar * uri = NULL;
GstTagList * m_stream_tags = 0; GstTagList * m_stream_tags = 0;
static int end_eof = 0; static int end_eof = 0;
#define HTTP_TIMEOUT 30
gint match_sinktype(const GValue *velement, const gchar *type) gint match_sinktype(const GValue *velement, const gchar *type)
{ {
@@ -77,6 +78,35 @@ gint match_sinktype(const GValue *velement, const gchar *type)
return strcmp(g_type_name(G_OBJECT_TYPE(element)), type); return strcmp(g_type_name(G_OBJECT_TYPE(element)), type);
} }
void playbinNotifySource(GObject *object, GParamSpec *unused, gpointer /*user_data*/)
{
GstElement *source = NULL;
g_object_get(object, "source", &source, NULL);
if (source)
{
if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "timeout") != 0)
{
GstElementFactory *factory = gst_element_get_factory(source);
if (factory)
{
const gchar *sourcename = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory));
if (!strcmp(sourcename, "souphttpsrc"))
{
g_object_set(G_OBJECT(source), "timeout", HTTP_TIMEOUT, NULL);
}
}
}
if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "ssl-strict") != 0)
{
g_object_set(G_OBJECT(source), "ssl-strict", FALSE, NULL);
}
gst_object_unref(source);
}
}
GstBusSyncReply Gst_bus_call(GstBus * bus, GstMessage *msg, gpointer user_data) GstBusSyncReply Gst_bus_call(GstBus * bus, GstMessage *msg, gpointer user_data)
{ {
gchar * sourceName; gchar * sourceName;
@@ -387,6 +417,10 @@ bool cPlayback::Start(char *filename, int /*vpid*/, int /*vtype*/, int /*apid*/,
{ {
isHTTP = true; isHTTP = true;
} }
else if(!strncmp("https://", filename, 8))
{
isHTTP = true;
}
else if(!strncmp("file://", filename, 7)) else if(!strncmp("file://", filename, 7))
{ {
isHTTP = false; isHTTP = false;
@@ -434,6 +468,8 @@ bool cPlayback::Start(char *filename, int /*vpid*/, int /*vtype*/, int /*apid*/,
if(isHTTP) if(isHTTP)
{ {
g_signal_connect (G_OBJECT (m_gst_playbin), "notify::source", G_CALLBACK (playbinNotifySource), NULL);
// set buffer size // set buffer size
g_object_set(G_OBJECT(m_gst_playbin), "buffer-size", m_buffer_size, NULL); g_object_set(G_OBJECT(m_gst_playbin), "buffer-size", m_buffer_size, NULL);
g_object_set(G_OBJECT(m_gst_playbin), "buffer-duration", 5LL * GST_SECOND, NULL); g_object_set(G_OBJECT(m_gst_playbin), "buffer-duration", 5LL * GST_SECOND, NULL);

View File

@@ -80,7 +80,7 @@ extern void dvbsub_write(AVSubtitle *, int64_t);
extern void dvbsub_ass_write(AVCodecContext *c, AVSubtitle *sub, int pid); extern void dvbsub_ass_write(AVCodecContext *c, AVSubtitle *sub, int pid);
extern void dvbsub_ass_clear(void); extern void dvbsub_ass_clear(void);
// from neutrino-mp/lib/lib/libtuxtxt/tuxtxt_common.h // from neutrino-mp/lib/lib/libtuxtxt/tuxtxt_common.h
//extern void teletext_write(int pid, uint8_t *data, int size); extern void teletext_write(int pid, uint8_t *data, int size);
static std::string lastlog_message; static std::string lastlog_message;
static unsigned int lastlog_repeats; static unsigned int lastlog_repeats;
@@ -253,11 +253,10 @@ bool Input::Play()
} }
} }
} }
} else if (_teletextTrack && (_teletextTrack->stream == stream)) {
if (packet.data && packet.size > 1)
teletext_write(_teletextTrack->pid, packet.data + 1, packet.size - 1);
} }
// else if (_teletextTrack && (_teletextTrack->stream == stream)) {
// if (packet.data && packet.size > 1)
// teletext_write(_teletextTrack->pid, packet.data + 1, packet.size - 1);
// }
#if (LIBAVFORMAT_VERSION_MAJOR == 57 && LIBAVFORMAT_VERSION_MINOR == 25) #if (LIBAVFORMAT_VERSION_MAJOR == 57 && LIBAVFORMAT_VERSION_MINOR == 25)
av_packet_unref(&packet); av_packet_unref(&packet);