All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/3] package/kodi: fix segfault during playback of mpeg2 content using vaapi
@ 2016-03-19 20:25 Bernd Kuhls
  2016-03-19 20:25 ` [Buildroot] [PATCH 2/3] Config.in: add symbols for BR2_HOST_GCC_AT_LEAST_4_6 Bernd Kuhls
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Bernd Kuhls @ 2016-03-19 20:25 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 ...artly-backport-of-PR-9231-to-fix-segfault.patch | 204 +++++++++++++++++++++
 1 file changed, 204 insertions(+)
 create mode 100644 package/kodi/0005-Jarvis-partly-backport-of-PR-9231-to-fix-segfault.patch

diff --git a/package/kodi/0005-Jarvis-partly-backport-of-PR-9231-to-fix-segfault.patch b/package/kodi/0005-Jarvis-partly-backport-of-PR-9231-to-fix-segfault.patch
new file mode 100644
index 0000000..9b59b3b
--- /dev/null
+++ b/package/kodi/0005-Jarvis-partly-backport-of-PR-9231-to-fix-segfault.patch
@@ -0,0 +1,204 @@
+Patch sent upstream: https://github.com/xbmc/xbmc/pull/9388
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+
+From 6a9e2bf65a346a43caff06efbf6051318d11aa8e Mon Sep 17 00:00:00 2001
+From: Bernd Kuhls <berndkuhls@hotmail.com>
+Date: Sat, 19 Mar 2016 08:49:43 +0100
+Subject: [PATCH 1/1] [Jarvis] partly backport of PR 9231 to fix segfault
+
+This patch is a backport of
+https://github.com/xbmc/xbmc/commit/a81208e3b53b84763fb9f20d8642ffc7bc63c9a7
+to fix a segfault during playback of vaapi-accelerated mpeg2 content:
+
+terminate called after throwing an instance of 'std::logic_error'
+  what():  basic_string::_S_construct null not valid
+[New LWP 3743]
+
+Program received signal SIGABRT, Aborted.
+[Switching to LWP 3743]
+0xb5664a9b in raise () from /lib/libc.so.0
+(gdb) bt full
+#0  0xb5664a9b in raise () from /lib/libc.so.0
+No symbol table info available.
+#1  0xb5660520 in abort () from /lib/libc.so.0
+No symbol table info available.
+#2  0xb56e6536 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
+No symbol table info available.
+#3  0xb56e4a1c in ?? () from /usr/lib/libstdc++.so.6
+No symbol table info available.
+#4  0xb56e4a80 in std::terminate() () from /usr/lib/libstdc++.so.6
+No symbol table info available.
+#5  0xb56e4cc9 in __cxa_throw () from /usr/lib/libstdc++.so.6
+No symbol table info available.
+#6  0xb5719d79 in std::__throw_logic_error(char const*) () from /usr/lib/libstdc++.so.6
+No symbol table info available.
+#7  0xb5722c41 in char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) () from /usr/lib/libstdc++.so.6
+No symbol table info available.
+#8  0xb5722cc7 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) () from /usr/lib/libstdc++.so.6
+No symbol table info available.
+#9  0x0848fea3 in CDVDVideoCodec::IsCodecDisabled (map=0x9130420 <g_vaapi_available>, size=5, id=AV_CODEC_ID_MPEG4)
+    at DVDVideoCodec.cpp:75
+        index = <optimized out>
+#10 0x08499d04 in VAAPI::CDecoder::Open (this=0xd09e5e8, avctx=0xd6a2ec0, mainctx=0xd6a2ec0, fmt=AV_PIX_FMT_VAAPI_VLD,
+    surfaces=6) at VAAPI.cpp:503
+        gpuvendor = {static npos = <optimized out>,
+          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xceb267c "intel open source technology center"}}
+        profile = <optimized out>
+#11 0x08491bda in CDVDVideoCodecFFmpeg::GetFormat (avctx=0xd6a2ec0, fmt=0x986d9c0) at DVDVideoCodecFFmpeg.cpp:143
+        dec = 0xd09e5e8
+        ctx = <optimized out>
+        cur = 0x986d9c0
+#12 0xb61c8ced in ?? () from /usr/lib/libavcodec.so.56
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ .../cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.cpp | 18 +++++++-----------
+ xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h  |  9 ++-------
+ xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp        | 19 ++++++++-----------
+ xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp        | 19 ++++++++-----------
+ 4 files changed, 25 insertions(+), 40 deletions(-)
+
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.cpp
+index 2428696..43e8844 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.cpp
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.cpp
+@@ -60,19 +60,15 @@ bool CDVDVideoCodec::IsSettingVisible(const std::string &condition, const std::s
+   return true;
+ }
+ 
+-bool CDVDVideoCodec::IsCodecDisabled(DVDCodecAvailableType* map, unsigned int size, AVCodecID id)
++bool CDVDVideoCodec::IsCodecDisabled(const std::map<AVCodecID, std::string> &map, AVCodecID id)
+ {
+-  int index = -1;
+-  for (unsigned int i = 0; i < size; ++i)
++  auto codec = map.find(id);
++  if (codec != map.end())
+   {
+-    if(map[i].codec == id)
+-    {
+-      index = (int) i;
+-      break;
+-    }
++    return (!CSettings::GetInstance().GetBool(codec->second) ||
++            !CDVDVideoCodec::IsSettingVisible("unused", "unused",
++                                              CSettings::GetInstance().GetSetting(codec->second),
++                                              NULL));
+   }
+-  if(index > -1)
+-    return (!CSettings::GetInstance().GetBool(map[index].setting) || !CDVDVideoCodec::IsSettingVisible("unused", "unused", CSettings::GetInstance().GetSetting(map[index].setting), NULL));
+-
+   return false; //don't disable what we don't have
+ }
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h
+index c84bb70..68ada7d 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h
+@@ -24,6 +24,7 @@
+ 
+ #include <vector>
+ #include <string>
++#include <map>
+ #include "cores/VideoRenderers/RenderFormats.h"
+ 
+ 
+@@ -34,12 +35,6 @@ extern "C" {
+ 
+ class CSetting;
+ 
+-struct DVDCodecAvailableType 
+-{
+-  AVCodecID codec;
+-  const char* setting;
+-};
+-
+ // when modifying these structures, make sure you update all codecs accordingly
+ #define FRAME_TYPE_UNDEF 0
+ #define FRAME_TYPE_I 1
+@@ -290,7 +285,7 @@ public:
+   /**
+   * Interact with user settings so that user disabled codecs are disabled
+   */
+-  static bool IsCodecDisabled(DVDCodecAvailableType* map, unsigned int size, AVCodecID id);
++  static bool IsCodecDisabled(const std::map<AVCodecID, std::string> &map, AVCodecID id);
+ 
+    /* For calculation of dropping requirements player asks for some information.
+    *
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
+index 540f914..ff53dd5 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
+@@ -451,16 +451,6 @@ bool CVideoSurfaces::HasRefs()
+ // VAAPI
+ //-----------------------------------------------------------------------------
+ 
+-// settings codecs mapping
+-DVDCodecAvailableType g_vaapi_available[] = {
+-  { AV_CODEC_ID_H263, CSettings::SETTING_VIDEOPLAYER_USEVAAPIMPEG4.c_str() },
+-  { AV_CODEC_ID_MPEG4, CSettings::SETTING_VIDEOPLAYER_USEVAAPIMPEG4.c_str() },
+-  { AV_CODEC_ID_WMV3, CSettings::SETTING_VIDEOPLAYER_USEVAAPIVC1.c_str() },
+-  { AV_CODEC_ID_VC1, CSettings::SETTING_VIDEOPLAYER_USEVAAPIVC1.c_str() },
+-  { AV_CODEC_ID_MPEG2VIDEO, CSettings::SETTING_VIDEOPLAYER_USEVAAPIMPEG2.c_str() },
+-};
+-const size_t settings_count = sizeof(g_vaapi_available) / sizeof(DVDCodecAvailableType);
+-
+ CDecoder::CDecoder() : m_vaapiOutput(&m_inMsgEvent)
+ {
+   m_vaapiConfig.videoSurfaces = &m_videoSurfaces;
+@@ -500,7 +490,14 @@ bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum P
+   }
+ 
+   // check if user wants to decode this format with VAAPI
+-  if (CDVDVideoCodec::IsCodecDisabled(g_vaapi_available, settings_count, avctx->codec_id))
++  std::map<AVCodecID, std::string> settings_map = {
++    { AV_CODEC_ID_H263, CSettings::SETTING_VIDEOPLAYER_USEVAAPIMPEG4 },
++    { AV_CODEC_ID_MPEG4, CSettings::SETTING_VIDEOPLAYER_USEVAAPIMPEG4 },
++    { AV_CODEC_ID_WMV3, CSettings::SETTING_VIDEOPLAYER_USEVAAPIVC1 },
++    { AV_CODEC_ID_VC1, CSettings::SETTING_VIDEOPLAYER_USEVAAPIVC1 },
++    { AV_CODEC_ID_MPEG2VIDEO, CSettings::SETTING_VIDEOPLAYER_USEVAAPIMPEG2 },
++  };
++  if (CDVDVideoCodec::IsCodecDisabled(settings_map, avctx->codec_id))
+     return false;
+ 
+   if (g_advancedSettings.CanLogComponent(LOGVIDEO))
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
+index 85d9295..4e995b6 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
+@@ -45,16 +45,6 @@ using namespace VDPAU;
+ 
+ #define ARSIZE(x) (sizeof(x) / sizeof((x)[0]))
+ 
+-// settings codecs mapping
+-DVDCodecAvailableType g_vdpau_available[] = {
+-  { AV_CODEC_ID_H263, CSettings::SETTING_VIDEOPLAYER_USEVDPAUMPEG4.c_str() },
+-  { AV_CODEC_ID_MPEG4, CSettings::SETTING_VIDEOPLAYER_USEVDPAUMPEG4.c_str() },
+-  { AV_CODEC_ID_WMV3, CSettings::SETTING_VIDEOPLAYER_USEVDPAUVC1.c_str() },
+-  { AV_CODEC_ID_VC1, CSettings::SETTING_VIDEOPLAYER_USEVDPAUVC1.c_str() },
+-  { AV_CODEC_ID_MPEG2VIDEO, CSettings::SETTING_VIDEOPLAYER_USEVDPAUMPEG2.c_str() },
+-};
+-const size_t settings_count = sizeof(g_vdpau_available) / sizeof(DVDCodecAvailableType);
+-
+ CDecoder::Desc decoder_profiles[] = {
+ {"MPEG1",        VDP_DECODER_PROFILE_MPEG1},
+ {"MPEG2_SIMPLE", VDP_DECODER_PROFILE_MPEG2_SIMPLE},
+@@ -494,7 +484,14 @@ bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum P
+   // nvidia is whitelisted despite for mpeg-4 we need to query user settings
+   if ((gpuvendor.compare(0, 6, "nvidia") != 0)  || (avctx->codec_id == AV_CODEC_ID_MPEG4) || (avctx->codec_id == AV_CODEC_ID_H263))
+   {
+-    if (CDVDVideoCodec::IsCodecDisabled(g_vdpau_available, settings_count, avctx->codec_id))
++    std::map<AVCodecID, std::string> settings_map = {
++      { AV_CODEC_ID_H263, CSettings::SETTING_VIDEOPLAYER_USEVDPAUMPEG4 },
++      { AV_CODEC_ID_MPEG4, CSettings::SETTING_VIDEOPLAYER_USEVDPAUMPEG4 },
++      { AV_CODEC_ID_WMV3, CSettings::SETTING_VIDEOPLAYER_USEVDPAUVC1 },
++      { AV_CODEC_ID_VC1, CSettings::SETTING_VIDEOPLAYER_USEVDPAUVC1 },
++      { AV_CODEC_ID_MPEG2VIDEO, CSettings::SETTING_VIDEOPLAYER_USEVDPAUMPEG2 },
++    };
++    if (CDVDVideoCodec::IsCodecDisabled(settings_map, avctx->codec_id))
+       return false;
+   }
+ 
+-- 
+2.7.0
+
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 2/3] Config.in: add symbols for BR2_HOST_GCC_AT_LEAST_4_6
  2016-03-19 20:25 [Buildroot] [PATCH 1/3] package/kodi: fix segfault during playback of mpeg2 content using vaapi Bernd Kuhls
@ 2016-03-19 20:25 ` Bernd Kuhls
  2016-03-20 14:00   ` Thomas Petazzoni
  2016-03-19 20:25 ` [Buildroot] [PATCH 3/3] package/kodi: needs host gcc >= 4.6 Bernd Kuhls
  2016-03-20 14:00 ` [Buildroot] [PATCH 1/3] package/kodi: fix segfault during playback of mpeg2 content using vaapi Thomas Petazzoni
  2 siblings, 1 reply; 6+ messages in thread
From: Bernd Kuhls @ 2016-03-19 20:25 UTC (permalink / raw)
  To: buildroot

This option is needed to fix the Kodi build with older host gcc
versions.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 Config.in | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Config.in b/Config.in
index dfb5721..b5cc892 100644
--- a/Config.in
+++ b/Config.in
@@ -23,9 +23,14 @@ config BR2_HOST_GCC_VERSION
 	string
 	option env="HOST_GCC_VERSION"
 
+config BR2_HOST_GCC_AT_LEAST_4_6
+	bool
+	default y if BR2_HOST_GCC_VERSION = "4 6"
+
 config BR2_HOST_GCC_AT_LEAST_4_7
 	bool
 	default y if BR2_HOST_GCC_VERSION = "4 7"
+	select BR2_HOST_GCC_AT_LEAST_4_6
 
 config BR2_HOST_GCC_AT_LEAST_4_8
 	bool
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 3/3] package/kodi: needs host gcc >= 4.6
  2016-03-19 20:25 [Buildroot] [PATCH 1/3] package/kodi: fix segfault during playback of mpeg2 content using vaapi Bernd Kuhls
  2016-03-19 20:25 ` [Buildroot] [PATCH 2/3] Config.in: add symbols for BR2_HOST_GCC_AT_LEAST_4_6 Bernd Kuhls
@ 2016-03-19 20:25 ` Bernd Kuhls
  2016-03-20 14:00   ` Thomas Petazzoni
  2016-03-20 14:00 ` [Buildroot] [PATCH 1/3] package/kodi: fix segfault during playback of mpeg2 content using vaapi Thomas Petazzoni
  2 siblings, 1 reply; 6+ messages in thread
From: Bernd Kuhls @ 2016-03-19 20:25 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 ...exturePacker-fix-compilation-with-gcc-4.6.patch | 57 ++++++++++++++++++++++
 package/kodi/Config.in                             |  4 +-
 2 files changed, 60 insertions(+), 1 deletion(-)
 create mode 100644 package/kodi/0006-native-TexturePacker-fix-compilation-with-gcc-4.6.patch

diff --git a/package/kodi/0006-native-TexturePacker-fix-compilation-with-gcc-4.6.patch b/package/kodi/0006-native-TexturePacker-fix-compilation-with-gcc-4.6.patch
new file mode 100644
index 0000000..4aac119
--- /dev/null
+++ b/package/kodi/0006-native-TexturePacker-fix-compilation-with-gcc-4.6.patch
@@ -0,0 +1,57 @@
+Patch sent upstream: https://github.com/xbmc/xbmc/pull/9378
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+
+From 2b395fb3f07551ae1ce2e484c14ac59f36e192b0 Mon Sep 17 00:00:00 2001
+From: Bernd Kuhls <bernd.kuhls@t-online.de>
+Date: Thu, 17 Mar 2016 21:47:53 +0100
+Subject: [PATCH 1/1] native/TexturePacker: fix compilation with gcc 4.6
+
+Kodi itself depends on gcc >= 4.7 due to its use of the C++11 standard.
+When cross-compiling the host gcc currently also needs to be >= 4.7 due
+to the texturepacker tool being needed as native binary to compile
+Textures.xbt for the target system.
+
+Cross-compiling on a system where host gcc is at version 4.6 fails atm
+with this error:
+
+cc1plus: error: unrecognized command line option '-std=c++11'
+make[4]: *** [md5.o] Error 1
+make[4]: *** Waiting for unfinished jobs....
+cc1plus: error: unrecognized command line option '-std=c++11'
+cc1plus: error: unrecognized command line option '-std=c++11'
+
+make[4]: *** [DecoderManager.o] Error 1
+make[4]: *** [XBTFWriter.o] Error 1
+cc1plus: error: unrecognized command line option '-std=c++11'
+make[4]: *** [TexturePacker.o] Error 1
+cc1plus: error: unrecognized command line option '-std=c++11'
+make[4]: *** [decoder/PNGDecoder.o] Error 1
+make[3]: *** [all] Error 2
+make[2]: *** [native/TexturePacker] Error 2
+
+Using this patch the problem is fixed and a working TexturePacker host
+binary is created.
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ tools/depends/native/TexturePacker/src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/depends/native/TexturePacker/src/Makefile.am b/tools/depends/native/TexturePacker/src/Makefile.am
+index c1fc8be..d075290 100644
+--- a/tools/depends/native/TexturePacker/src/Makefile.am
++++ b/tools/depends/native/TexturePacker/src/Makefile.am
+@@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = subdir-objects
+ 
+ AM_CFLAGS = -DTARGET_POSIX -DUSE_LZO_PACKING
+ AM_CFLAGS += @EXTRA_DEFINES@
+-AM_CXXFLAGS = $(AM_CFLAGS) -std=c++11
++AM_CXXFLAGS = $(AM_CFLAGS) -std=c++0x
+ 
+ AM_CPPFLAGS = \
+   -I. \
+-- 
+2.7.0
+
diff --git a/package/kodi/Config.in b/package/kodi/Config.in
index 9590070..ff2e75c 100644
--- a/package/kodi/Config.in
+++ b/package/kodi/Config.in
@@ -4,10 +4,11 @@ config BR2_PACKAGE_KODI_ARCH_SUPPORTS
 		&& BR2_PACKAGE_BOOST_ARCH_SUPPORTS \
 		&& BR2_TOOLCHAIN_HAS_SYNC_8
 
-comment "kodi needs a uClibc or (e)glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.7"
+comment "kodi needs a uClibc or (e)glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.7, host gcc >= 4.6"
 	depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
 		|| !BR2_USE_WCHAR || BR2_STATIC_LIBS \
+		|| !BR2_HOST_GCC_AT_LEAST_4_6 \
 		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \
 		|| BR2_TOOLCHAIN_USES_MUSL
 	depends on BR2_USE_MMU
@@ -36,6 +37,7 @@ comment "kodi requires an OpenGL ES and EGL backend"
 menuconfig BR2_PACKAGE_KODI
 	bool "kodi"
 	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_HOST_GCC_AT_LEAST_4_6
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on !BR2_TOOLCHAIN_USES_MUSL
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/3] package/kodi: fix segfault during playback of mpeg2 content using vaapi
  2016-03-19 20:25 [Buildroot] [PATCH 1/3] package/kodi: fix segfault during playback of mpeg2 content using vaapi Bernd Kuhls
  2016-03-19 20:25 ` [Buildroot] [PATCH 2/3] Config.in: add symbols for BR2_HOST_GCC_AT_LEAST_4_6 Bernd Kuhls
  2016-03-19 20:25 ` [Buildroot] [PATCH 3/3] package/kodi: needs host gcc >= 4.6 Bernd Kuhls
@ 2016-03-20 14:00 ` Thomas Petazzoni
  2 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2016-03-20 14:00 UTC (permalink / raw)
  To: buildroot

Dear Bernd Kuhls,

I've applied, but there are still some minor issues in the way your
format patches.

On Sat, 19 Mar 2016 21:25:34 +0100, Bernd Kuhls wrote:
> diff --git a/package/kodi/0005-Jarvis-partly-backport-of-PR-9231-to-fix-segfault.patch b/package/kodi/0005-Jarvis-partly-backport-of-PR-9231-to-fix-segfault.patch
> new file mode 100644
> index 0000000..9b59b3b
> --- /dev/null
> +++ b/package/kodi/0005-Jarvis-partly-backport-of-PR-9231-to-fix-segfault.patch
> @@ -0,0 +1,204 @@
> +Patch sent upstream: https://github.com/xbmc/xbmc/pull/9388
> +
> +Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>

This should go *below* your SoB in the patch itself (see below).

> +From 6a9e2bf65a346a43caff06efbf6051318d11aa8e Mon Sep 17 00:00:00 2001

I.E this should be the *first* line of any Git patch. Otherwise it's no
longer a Git patch.

> +From: Bernd Kuhls <berndkuhls@hotmail.com>
> +Date: Sat, 19 Mar 2016 08:49:43 +0100
> +Subject: [PATCH 1/1] [Jarvis] partly backport of PR 9231 to fix segfault

The other detail is that 1/1 should not be there, please use "git
format-patch -N" when formatting patches.

> +This patch is a backport of
> +https://github.com/xbmc/xbmc/commit/a81208e3b53b84763fb9f20d8642ffc7bc63c9a7
> +to fix a segfault during playback of vaapi-accelerated mpeg2 content:
> +
> +terminate called after throwing an instance of 'std::logic_error'
> +  what():  basic_string::_S_construct null not valid
> +[New LWP 3743]
> +
> +Program received signal SIGABRT, Aborted.
> +[Switching to LWP 3743]
> +0xb5664a9b in raise () from /lib/libc.so.0
> +(gdb) bt full
> +#0  0xb5664a9b in raise () from /lib/libc.so.0
> +No symbol table info available.
> +#1  0xb5660520 in abort () from /lib/libc.so.0
> +No symbol table info available.
> +#2  0xb56e6536 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
> +No symbol table info available.
> +#3  0xb56e4a1c in ?? () from /usr/lib/libstdc++.so.6
> +No symbol table info available.
> +#4  0xb56e4a80 in std::terminate() () from /usr/lib/libstdc++.so.6
> +No symbol table info available.
> +#5  0xb56e4cc9 in __cxa_throw () from /usr/lib/libstdc++.so.6
> +No symbol table info available.
> +#6  0xb5719d79 in std::__throw_logic_error(char const*) () from /usr/lib/libstdc++.so.6
> +No symbol table info available.
> +#7  0xb5722c41 in char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) () from /usr/lib/libstdc++.so.6
> +No symbol table info available.
> +#8  0xb5722cc7 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) () from /usr/lib/libstdc++.so.6
> +No symbol table info available.
> +#9  0x0848fea3 in CDVDVideoCodec::IsCodecDisabled (map=0x9130420 <g_vaapi_available>, size=5, id=AV_CODEC_ID_MPEG4)
> +    at DVDVideoCodec.cpp:75
> +        index = <optimized out>
> +#10 0x08499d04 in VAAPI::CDecoder::Open (this=0xd09e5e8, avctx=0xd6a2ec0, mainctx=0xd6a2ec0, fmt=AV_PIX_FMT_VAAPI_VLD,
> +    surfaces=6) at VAAPI.cpp:503
> +        gpuvendor = {static npos = <optimized out>,
> +          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xceb267c "intel open source technology center"}}
> +        profile = <optimized out>
> +#11 0x08491bda in CDVDVideoCodecFFmpeg::GetFormat (avctx=0xd6a2ec0, fmt=0x986d9c0) at DVDVideoCodecFFmpeg.cpp:143
> +        dec = 0xd09e5e8
> +        ctx = <optimized out>
> +        cur = 0x986d9c0
> +#12 0xb61c8ced in ?? () from /usr/lib/libavcodec.so.56
> +
> +Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>

Your "Sent upstream ..." text should go here.

Applied with those minor nits fixed. Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 2/3] Config.in: add symbols for BR2_HOST_GCC_AT_LEAST_4_6
  2016-03-19 20:25 ` [Buildroot] [PATCH 2/3] Config.in: add symbols for BR2_HOST_GCC_AT_LEAST_4_6 Bernd Kuhls
@ 2016-03-20 14:00   ` Thomas Petazzoni
  0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2016-03-20 14:00 UTC (permalink / raw)
  To: buildroot

Dear Bernd Kuhls,

On Sat, 19 Mar 2016 21:25:35 +0100, Bernd Kuhls wrote:
> This option is needed to fix the Kodi build with older host gcc
> versions.
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  Config.in | 5 +++++
>  1 file changed, 5 insertions(+)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 3/3] package/kodi: needs host gcc >= 4.6
  2016-03-19 20:25 ` [Buildroot] [PATCH 3/3] package/kodi: needs host gcc >= 4.6 Bernd Kuhls
@ 2016-03-20 14:00   ` Thomas Petazzoni
  0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2016-03-20 14:00 UTC (permalink / raw)
  To: buildroot

Dear Bernd Kuhls,

On Sat, 19 Mar 2016 21:25:36 +0100, Bernd Kuhls wrote:
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  ...exturePacker-fix-compilation-with-gcc-4.6.patch | 57 ++++++++++++++++++++++
>  package/kodi/Config.in                             |  4 +-
>  2 files changed, 60 insertions(+), 1 deletion(-)
>  create mode 100644 package/kodi/0006-native-TexturePacker-fix-compilation-with-gcc-4.6.patch

Same issues in the patch, which I've fixed as well. Applied, thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-03-20 14:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-19 20:25 [Buildroot] [PATCH 1/3] package/kodi: fix segfault during playback of mpeg2 content using vaapi Bernd Kuhls
2016-03-19 20:25 ` [Buildroot] [PATCH 2/3] Config.in: add symbols for BR2_HOST_GCC_AT_LEAST_4_6 Bernd Kuhls
2016-03-20 14:00   ` Thomas Petazzoni
2016-03-19 20:25 ` [Buildroot] [PATCH 3/3] package/kodi: needs host gcc >= 4.6 Bernd Kuhls
2016-03-20 14:00   ` Thomas Petazzoni
2016-03-20 14:00 ` [Buildroot] [PATCH 1/3] package/kodi: fix segfault during playback of mpeg2 content using vaapi Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.