buildroot.buildroot.org archive mirror
 help / color / mirror / Atom feed
* [Buildroot] [RFC/PATCH v2 0/4] package/kodi: Bump version to 14.0a4-Helix
@ 2014-10-06 20:47 Bernd Kuhls
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 1/4] package/ffmpeg: Add Kodi patchset Bernd Kuhls
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Bernd Kuhls @ 2014-10-06 20:47 UTC (permalink / raw)
  To: buildroot

Hi,

this patchset is a RFC and not meant to be committed to buildroot git yet.

The follow-up version of XBMC 13.x-Gotham will be called Kodi, its alpha4 was
released October 3rd: http://xbmc.org/kodi-14-0-helix-alpha-4

In order to prepare this version bump I am sharing my patchset as an RFC, two
preparatory patches to rename the package, splitted for easier review, and one
patch for the real version bump.

Regards, Bernd

v2:
- rebased: - _CONF_OPT -> _CONF_OPTS
- added notes to "Rename XBMC to Kodi"-patches, they are meant to be committed
  together (Yann)
- kodi specific ffmpeg-patches are now a seperate commit (Yann),
  depends on http://patchwork.ozlabs.org/patch/396911/
- ffmpeg is now compiled dynamically, ported from
  https://github.com/OpenELEC/OpenELEC.tv/commit/ba586280


Bernd Kuhls (4):
  package/ffmpeg: Add Kodi patchset
  Rename XBMC to Kodi - part I - move files
  Rename XBMC to Kodi - part II - rename variables
  package/kodi: Bump version to 14.0a4-Helix

-- 
1.7.10.4

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

* [Buildroot] [RFC/PATCH v2 1/4] package/ffmpeg: Add Kodi patchset
  2014-10-06 20:47 [Buildroot] [RFC/PATCH v2 0/4] package/kodi: Bump version to 14.0a4-Helix Bernd Kuhls
@ 2014-10-06 20:48 ` Bernd Kuhls
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 2/4] Rename XBMC to Kodi - part I - move files Bernd Kuhls
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Bernd Kuhls @ 2014-10-06 20:48 UTC (permalink / raw)
  To: buildroot


Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/ffmpeg/ffmpeg-kodi.patch |  904 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 904 insertions(+)
 create mode 100644 package/ffmpeg/ffmpeg-kodi.patch

diff --git a/package/ffmpeg/ffmpeg-kodi.patch b/package/ffmpeg/ffmpeg-kodi.patch
new file mode 100644
index 0000000..f13d674
--- /dev/null
+++ b/package/ffmpeg/ffmpeg-kodi.patch
@@ -0,0 +1,904 @@
+In the past xbmc delivered its own ffmpeg source code with specific patches to
+address bugs found during the use of xbmc. For Helix the ffmpeg source code was
+removed, Helix uses a vanilla ffmpeg source tarball and applies this patchset
+on top of it.
+
+Downloaded from
+https://github.com/xbmc/FFmpeg/compare/FFmpeg:release/2.4...release/2.4-xbmc.patch
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+From 622f5f1b5e76283e70772152134c7562b6e17e9d Mon Sep 17 00:00:00 2001
+From: Joakim Plate <elupus@ecce.se>
+Date: Sun, 11 Sep 2011 19:04:51 +0200
+Subject: [PATCH 01/17] Support raw dvdsub palette as stored on normal dvd's
+
+This is how the palette is stored on dvd's. Currently
+only xbmc passes the palette information to libavcodec
+this way.
+---
+ libavcodec/dvdsubdec.c | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+diff --git a/libavcodec/dvdsubdec.c b/libavcodec/dvdsubdec.c
+index 7355c03..4a945d9 100644
+--- a/libavcodec/dvdsubdec.c
++++ b/libavcodec/dvdsubdec.c
+@@ -61,6 +61,24 @@ static void yuv_a_to_rgba(const uint8_t *ycbcr, const uint8_t *alpha, uint32_t *
+     }
+ }
+ 
++static void ayvu_to_argb(const uint8_t *ayvu, uint32_t *argb, int num_values)
++{
++    uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;
++    uint8_t r, g, b;
++    int i, y, cb, cr, a;
++    int r_add, g_add, b_add;
++
++    for (i = num_values; i > 0; i--) {
++        a = *ayvu++;
++        y = *ayvu++;
++        cr = *ayvu++;
++        cb = *ayvu++;
++        YUV_TO_RGB1_CCIR(cb, cr);
++        YUV_TO_RGB2_CCIR(r, g, b, y);
++        *argb++ = (a << 24) | (r << 16) | (g << 8) | b;
++    }
++}
++
+ static int decode_run_2bit(GetBitContext *gb, int *color)
+ {
+     unsigned int v, t;
+@@ -629,6 +647,12 @@ static av_cold int dvdsub_init(AVCodecContext *avctx)
+ 
+     if (ctx->palette_str)
+         parse_palette(ctx, ctx->palette_str);
++
++    if (!ctx->has_palette && avctx->extradata_size == 64) {
++        ayvu_to_argb((uint8_t*)avctx->extradata, ctx->palette, 16);
++        ctx->has_palette = 1;
++    }
++
+     if (ctx->has_palette) {
+         int i;
+         av_log(avctx, AV_LOG_DEBUG, "palette:");
+
+From 5bd445513110e57a41458888c80b0532cdcd09aa Mon Sep 17 00:00:00 2001
+From: Joakim Plate <elupus@ecce.se>
+Date: Sat, 22 Oct 2011 18:33:45 +0200
+Subject: [PATCH 02/17] Check return value of avio_seek and avoid modifying
+ state if it fails
+
+The code still modifies state if the timestamp is not found. Not
+sure exactly how to avoid that.
+---
+ libavformat/matroskadec.c | 23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
+
+diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
+index b8ddf67..1a1935f 100644
+--- a/libavformat/matroskadec.c
++++ b/libavformat/matroskadec.c
+@@ -2921,8 +2921,8 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
+     timestamp = FFMAX(timestamp, st->index_entries[0].timestamp);
+ 
+     if ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
+-        avio_seek(s->pb, st->index_entries[st->nb_index_entries - 1].pos,
+-                  SEEK_SET);
++        if (avio_seek(s->pb, st->index_entries[st->nb_index_entries-1].pos, SEEK_SET) < 0)
++            return -1;
+         matroska->current_id = 0;
+         while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0) {
+             matroska_clear_queue(matroska);
+@@ -2931,16 +2931,11 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
+         }
+     }
+ 
+-    matroska_clear_queue(matroska);
+     if (index < 0 || (matroska->cues_parsing_deferred < 0 && index == st->nb_index_entries - 1))
+         goto err;
+ 
+     index_min = index;
+     for (i = 0; i < matroska->tracks.nb_elem; i++) {
+-        tracks[i].audio.pkt_cnt        = 0;
+-        tracks[i].audio.sub_packet_cnt = 0;
+-        tracks[i].audio.buf_timecode   = AV_NOPTS_VALUE;
+-        tracks[i].end_timecode         = 0;
+         if (tracks[i].type == MATROSKA_TRACK_TYPE_SUBTITLE &&
+             tracks[i].stream->discard != AVDISCARD_ALL) {
+             index_sub = av_index_search_timestamp(
+@@ -2954,8 +2949,18 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
+         }
+     }
+ 
+-    avio_seek(s->pb, st->index_entries[index_min].pos, SEEK_SET);
+-    matroska->current_id       = 0;
++    if (avio_seek(s->pb, st->index_entries[index_min].pos, SEEK_SET) < 0)
++        return -1;
++
++    matroska_clear_queue(matroska);
++    for (i=0; i < matroska->tracks.nb_elem; i++) {
++        tracks[i].audio.pkt_cnt = 0;
++        tracks[i].audio.sub_packet_cnt = 0;
++        tracks[i].audio.buf_timecode = AV_NOPTS_VALUE;
++        tracks[i].end_timecode = 0;
++    }
++    matroska->current_id = 0;
++
+     if (flags & AVSEEK_FLAG_ANY) {
+         st->skip_to_keyframe = 0;
+         matroska->skip_to_timecode = timestamp;
+
+From 870b1a68c4fdb6a31b0dc29ece7aa429659fb52d Mon Sep 17 00:00:00 2001
+From: Joakim Plate <elupus@ecce.se>
+Date: Mon, 12 Sep 2011 21:37:17 +0200
+Subject: [PATCH 03/17] asf hacks
+
+---
+ libavformat/asfdec.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
+index 7f7bb4d..8911987 100644
+--- a/libavformat/asfdec.c
++++ b/libavformat/asfdec.c
+@@ -1549,9 +1549,20 @@ static int asf_read_seek(AVFormatContext *s, int stream_index,
+     AVStream *st    = s->streams[stream_index];
+     int ret = 0;
+ 
++    if (pts == 0) {
++      // this is a hack since av_gen_search searches the entire file in this case
++      av_log(s, AV_LOG_DEBUG, "SEEKTO: %"PRId64"\n", s->data_offset);
++      if (avio_seek(s->pb, s->data_offset, SEEK_SET) < 0)
++          return -1;
++      return 0;
++    }
++
+     if (s->packet_size <= 0)
+         return -1;
+ 
++    if (st->codec->codec_type != AVMEDIA_TYPE_VIDEO)
++        return -1;
++
+     /* Try using the protocol's read_seek if available */
+     if (s->pb) {
+         int ret = avio_seek_time(s->pb, stream_index, pts, flags);
+
+From 6fee17a0a63bf20b7835832e2d01ee7857b821b1 Mon Sep 17 00:00:00 2001
+From: Cory Fields <theuni-nospam-@xbmc.org>
+Date: Mon, 28 Jun 2010 01:55:31 -0400
+Subject: [PATCH 04/17] if av_read_packet returns AVERROR_IO, we are done.
+ ffmpeg's codecs might or might not handle returning any completed demuxed
+ packets correctly
+
+---
+ libavformat/utils.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libavformat/utils.c b/libavformat/utils.c
+index e899e4d..d75c168 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -1271,6 +1271,8 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
+         if (ret < 0) {
+             if (ret == AVERROR(EAGAIN))
+                 return ret;
++            if (ret == AVERROR(EIO))
++                return ret;
+             /* flush the parsers */
+             for (i = 0; i < s->nb_streams; i++) {
+                 st = s->streams[i];
+
+From f7ef5230815955d6db8037cbca363c23c1ebce5b Mon Sep 17 00:00:00 2001
+From: Cory Fields <theuni-nospam-@xbmc.org>
+Date: Mon, 28 Jun 2010 02:10:50 -0400
+Subject: [PATCH 05/17] added: Ticket #7187, TV Teletext support for DVB EBU
+ Teletext streams
+
+---
+ libavcodec/avcodec.h | 4 ++++
+ libavformat/mpegts.c | 2 ++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
+index fb1c9ca..45bfba3 100644
+--- a/libavcodec/avcodec.h
++++ b/libavcodec/avcodec.h
+@@ -523,6 +523,10 @@ enum AVCodecID {
+     AV_CODEC_ID_PJS        = MKBETAG('P','h','J','S'),
+     AV_CODEC_ID_ASS        = MKBETAG('A','S','S',' '),  ///< ASS as defined in Matroska
+ 
++    /* data codecs */
++    AV_CODEC_ID_VBI_DATA= 0x17500,
++    AV_CODEC_ID_VBI_TELETEXT,
++
+     /* other specific kind of codecs (generally used for attachments) */
+     AV_CODEC_ID_FIRST_UNKNOWN = 0x18000,           ///< A dummy ID pointing at the start of various fake codecs.
+     AV_CODEC_ID_TTF = 0x18000,
+diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
+index 8808269..4d73e6d 100644
+--- a/libavformat/mpegts.c
++++ b/libavformat/mpegts.c
+@@ -717,6 +717,8 @@ static const StreamType DESC_types[] = {
+     { 0x7b, AVMEDIA_TYPE_AUDIO,    AV_CODEC_ID_DTS          },
+     { 0x56, AVMEDIA_TYPE_SUBTITLE, AV_CODEC_ID_DVB_TELETEXT },
+     { 0x59, AVMEDIA_TYPE_SUBTITLE, AV_CODEC_ID_DVB_SUBTITLE }, /* subtitling descriptor */
++    { 0x45, AVMEDIA_TYPE_DATA,         AV_CODEC_ID_VBI_DATA }, /* VBI Data descriptor */
++    { 0x46, AVMEDIA_TYPE_DATA,     AV_CODEC_ID_VBI_TELETEXT }, /* VBI Teletext descriptor */
+     { 0 },
+ };
+ 
+
+From 1b74fd18695d977496d26085fb305fababfebd1d Mon Sep 17 00:00:00 2001
+From: Joakim Plate <elupus@ecce.se>
+Date: Sun, 18 Sep 2011 19:16:34 +0200
+Subject: [PATCH 06/17] Don't accept mpegts PMT that isn't current
+
+---
+ libavformat/mpegts.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
+index 4d73e6d..4160c80 100644
+--- a/libavformat/mpegts.c
++++ b/libavformat/mpegts.c
+@@ -561,6 +561,7 @@ typedef struct SectionHeader {
+     uint8_t tid;
+     uint16_t id;
+     uint8_t version;
++    uint8_t current;
+     uint8_t sec_num;
+     uint8_t last_sec_num;
+ } SectionHeader;
+@@ -632,6 +633,7 @@ static int parse_section_header(SectionHeader *h,
+     val = get8(pp, p_end);
+     if (val < 0)
+         return val;
++    h->current = val & 0x1;
+     h->version = (val >> 1) & 0x1f;
+     val = get8(pp, p_end);
+     if (val < 0)
+@@ -1904,6 +1906,8 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
+         return;
+     if (ts->skip_changes)
+         return;
++    if (!h->current)
++        return;
+ 
+     ts->stream->ts_id = h->id;
+ 
+
+From 354837b4c939246753039ce70c60cbd9fb1e01d0 Mon Sep 17 00:00:00 2001
+From: Joakim Plate <elupus@ecce.se>
+Date: Sun, 18 Sep 2011 19:17:23 +0200
+Subject: [PATCH 07/17] Don't reparse PMT unless it's version has changed
+
+---
+ libavformat/mpegts.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
+index 4160c80..c946449 100644
+--- a/libavformat/mpegts.c
++++ b/libavformat/mpegts.c
+@@ -87,6 +87,7 @@ struct MpegTSFilter {
+     int es_id;
+     int last_cc; /* last cc code (-1 if first packet) */
+     int64_t last_pcr;
++    int last_version; /* last version of data on this pid */
+     enum MpegTSFilterType type;
+     union {
+         MpegTSPESFilter pes_filter;
+@@ -439,6 +440,7 @@ static MpegTSFilter *mpegts_open_filter(MpegTSContext *ts, unsigned int pid,
+     filter->es_id   = -1;
+     filter->last_cc = -1;
+     filter->last_pcr= -1;
++    filter->last_version = -1;
+ 
+     return filter;
+ }
+@@ -1908,6 +1910,10 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
+         return;
+     if (!h->current)
+         return;
++    if (h->version == filter->last_version)
++        return;
++    filter->last_version = h->version;
++    av_dlog(ts->stream, "version=%d\n", filter->last_version);
+ 
+     ts->stream->ts_id = h->id;
+ 
+
+From c874d974baefc35d6300938997131efd1a4da48b Mon Sep 17 00:00:00 2001
+From: Cory Fields <theuni-nospam-@xbmc.org>
+Date: Fri, 9 Jul 2010 16:43:31 -0400
+Subject: [PATCH 08/17] Read PID timestamps as well as PCR timestamps to find
+ location in mpegts stream
+
+---
+ libavformat/mpegts.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 46 insertions(+), 2 deletions(-)
+
+diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
+index c946449..772df83 100644
+--- a/libavformat/mpegts.c
++++ b/libavformat/mpegts.c
+@@ -2388,6 +2388,44 @@ static void seek_back(AVFormatContext *s, AVIOContext *pb, int64_t pos) {
+         av_log(s, pb->seekable ? AV_LOG_ERROR : AV_LOG_INFO, "Unable to seek back to the start\n");
+ }
+ 
++static int parse_timestamp(int64_t *ts, const uint8_t *buf)
++{
++    int afc, flags;
++    const uint8_t *p;
++
++    if(!(buf[1] & 0x40)) /* must be a start packet */
++        return -1;
++
++    afc = (buf[3] >> 4) & 3;
++    p = buf + 4;
++    if (afc == 0 || afc == 2) /* invalid or only adaption field */
++        return -1;
++    if (afc == 3)
++        p += p[0] + 1;
++    if (p >= buf + TS_PACKET_SIZE)
++        return -1;
++
++    if (p[0] != 0x00 || p[1] != 0x00 || p[2] != 0x01)  /* packet_start_code_prefix */
++        return -1;
++
++    flags = p[3] | 0x100; /* stream type */
++    if (!((flags >= 0x1c0 && flags <= 0x1df) ||
++          (flags >= 0x1e0 && flags <= 0x1ef) ||
++          (flags == 0x1bd) || (flags == 0x1fd)))
++        return -1;
++
++    flags = p[7];
++    if ((flags & 0xc0) == 0x80) {
++        *ts = ff_parse_pes_pts(p+9);
++        return 0;
++    } else if ((flags & 0xc0) == 0xc0) {
++        *ts = ff_parse_pes_pts(p+9+5);
++        return 0;
++    }
++    return -1;
++}
++
++
+ static int mpegts_read_header(AVFormatContext *s)
+ {
+     MpegTSContext *ts = s->priv_data;
+@@ -2587,6 +2625,7 @@ static av_unused int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index,
+     uint8_t buf[TS_PACKET_SIZE];
+     int pcr_l, pcr_pid =
+         ((PESContext *)s->streams[stream_index]->priv_data)->pcr_pid;
++    int pid = ((PESContext*)s->streams[stream_index]->priv_data)->pid;
+     int pos47 = ts->pos47_full % ts->raw_packet_size;
+     pos =
+         ((*ppos + ts->raw_packet_size - 1 - pos47) / ts->raw_packet_size) *
+@@ -2608,6 +2647,11 @@ static av_unused int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index,
+             *ppos = pos;
+             return timestamp;
+         }
++        if ((pid < 0 || (AV_RB16(buf + 1) & 0x1fff) == pid) &&
++            parse_timestamp(&timestamp, buf) == 0) {
++            *ppos = pos;
++            return timestamp;
++        }
+         pos += ts->raw_packet_size;
+     }
+ 
+@@ -2707,7 +2751,7 @@ AVInputFormat ff_mpegts_demuxer = {
+     .read_header    = mpegts_read_header,
+     .read_packet    = mpegts_read_packet,
+     .read_close     = mpegts_read_close,
+-    .read_timestamp = mpegts_get_dts,
++    .read_timestamp = mpegts_get_pcr,
+     .flags          = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,
+     .priv_class     = &mpegts_class,
+ };
+@@ -2719,7 +2763,7 @@ AVInputFormat ff_mpegtsraw_demuxer = {
+     .read_header    = mpegts_read_header,
+     .read_packet    = mpegts_raw_read_packet,
+     .read_close     = mpegts_read_close,
+-    .read_timestamp = mpegts_get_dts,
++    .read_timestamp = mpegts_get_pcr,
+     .flags          = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,
+     .priv_class     = &mpegtsraw_class,
+ };
+
+From 24ad8f579e523eeec50fbedca28820c3619449c7 Mon Sep 17 00:00:00 2001
+From: Joakim Plate <elupus@ecce.se>
+Date: Sat, 22 Oct 2011 19:01:38 +0200
+Subject: [PATCH 09/17] Get stream durations using read_timestamp
+
+---
+ libavformat/utils.c | 39 +++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 39 insertions(+)
+
+diff --git a/libavformat/utils.c b/libavformat/utils.c
+index d75c168..9f74313 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -2312,6 +2312,41 @@ static void estimate_timings_from_bit_rate(AVFormatContext *ic)
+ #define DURATION_MAX_READ_SIZE 250000LL
+ #define DURATION_MAX_RETRY 4
+ 
++static void av_estimate_timings_from_pts2(AVFormatContext *ic, int64_t old_offset)
++{
++    AVStream *st;
++    int i, step= 1024;
++    int64_t ts, pos;
++
++    for(i=0;i<ic->nb_streams;i++) {
++        st = ic->streams[i];
++
++        pos = 0;
++        ts = ic->iformat->read_timestamp(ic, i, &pos, DURATION_MAX_READ_SIZE);
++        if (ts == AV_NOPTS_VALUE)
++            continue;
++        if (st->start_time > ts || st->start_time == AV_NOPTS_VALUE)
++            st->start_time = ts;
++
++        pos = avio_size(ic->pb) - 1;
++        do {
++            pos -= step;
++            ts = ic->iformat->read_timestamp(ic, i, &pos, pos + step);
++            step += step;
++        } while (ts == AV_NOPTS_VALUE && pos >= step && step < DURATION_MAX_READ_SIZE);
++
++        if (ts == AV_NOPTS_VALUE)
++            continue;
++
++        if (st->duration < ts - st->start_time || st->duration == AV_NOPTS_VALUE)
++            st->duration = ts - st->start_time;
++    }
++
++    fill_all_stream_timings(ic);
++
++    avio_seek(ic->pb, old_offset, SEEK_SET);
++}
++
+ /* only usable for MPEG-PS streams */
+ static void estimate_timings_from_pts(AVFormatContext *ic, int64_t old_offset)
+ {
+@@ -2462,6 +2497,10 @@ static void estimate_timings(AVFormatContext *ic, int64_t old_offset)
+          * the components */
+         fill_all_stream_timings(ic);
+         ic->duration_estimation_method = AVFMT_DURATION_FROM_STREAM;
++    } else if (ic->iformat->read_timestamp && 
++        file_size && ic->pb->seekable) {
++        /* get accurate estimate from the PTSes */
++        av_estimate_timings_from_pts2(ic, old_offset);
+     } else {
+         /* less precise: use bitrate info */
+         estimate_timings_from_bit_rate(ic);
+
+From 5edeb3be287bae328c18b0dd6a3278843882a276 Mon Sep 17 00:00:00 2001
+From: Joakim Plate <elupus@ecce.se>
+Date: Wed, 8 Dec 2010 14:03:43 +0000
+Subject: [PATCH 10/17] changed: allow 4 second skew between streams in mov
+ before attempting to seek
+
+---
+ libavformat/mov.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libavformat/mov.c b/libavformat/mov.c
+index ae48c02..047cdc6 100644
+--- a/libavformat/mov.c
++++ b/libavformat/mov.c
+@@ -3694,8 +3694,8 @@ static AVIndexEntry *mov_find_next_sample(AVFormatContext *s, AVStream **st)
+             if (!sample || (!s->pb->seekable && current_sample->pos < sample->pos) ||
+                 (s->pb->seekable &&
+                  ((msc->pb != s->pb && dts < best_dts) || (msc->pb == s->pb &&
+-                 ((FFABS(best_dts - dts) <= AV_TIME_BASE && current_sample->pos < sample->pos) ||
+-                  (FFABS(best_dts - dts) > AV_TIME_BASE && dts < best_dts)))))) {
++                 ((FFABS(best_dts - dts) <= 4*AV_TIME_BASE && current_sample->pos < sample->pos) ||
++                  (FFABS(best_dts - dts) > 4*AV_TIME_BASE && dts < best_dts)))))) {
+                 sample = current_sample;
+                 best_dts = dts;
+                 *st = avst;
+
+From 957d47d1c2484a398bc357e102357fc47515610f Mon Sep 17 00:00:00 2001
+From: Joakim Plate <elupus@ecce.se>
+Date: Fri, 26 Nov 2010 20:56:48 +0000
+Subject: [PATCH 11/17] fixed: memleak in mpegts demuxer on some malformed (??)
+ mpegts files with too large pes packets
+
+at-visions sample file brokenStream.mpg
+---
+ libavformat/mpegts.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
+index 772df83..40dfab1 100644
+--- a/libavformat/mpegts.c
++++ b/libavformat/mpegts.c
+@@ -820,6 +820,10 @@ static void reset_pes_packet_state(PESContext *pes)
+ 
+ static void new_pes_packet(PESContext *pes, AVPacket *pkt)
+ {
++    if(pkt->data) {
++      av_log(pes->stream, AV_LOG_ERROR, "ignoring previously allocated packet on stream %d\n", pkt->stream_index);
++      av_free_packet(pkt);
++    }
+     av_init_packet(pkt);
+ 
+     pkt->buf  = pes->buffer;
+@@ -2578,6 +2582,8 @@ static int mpegts_read_packet(AVFormatContext *s, AVPacket *pkt)
+ 
+     pkt->size = -1;
+     ts->pkt = pkt;
++    ts->pkt->data = NULL;
++
+     ret = handle_packets(ts, 0);
+     if (ret < 0) {
+         av_free_packet(ts->pkt);
+
+From 2962ec9624a1c7108b2874335616ef5cc0a4a0d3 Mon Sep 17 00:00:00 2001
+From: Joakim Plate <elupus@ecce.se>
+Date: Mon, 28 Jun 2010 21:26:54 +0000
+Subject: [PATCH 12/17] Speed up mpegts av_find_stream_info
+
+---
+ libavformat/mpegts.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
+index 40dfab1..031f4e1 100644
+--- a/libavformat/mpegts.c
++++ b/libavformat/mpegts.c
+@@ -982,7 +982,7 @@ static int mpegts_push_data(MpegTSFilter *filter,
+                         goto skip;
+ 
+                     /* stream not present in PMT */
+-                    if (!pes->st) {
++                    if (ts->auto_guess && !pes->st) {
+                         if (ts->skip_changes)
+                             goto skip;
+ 
+
+From 2418829bd999ac9ce6c4c1ce1e8bc267327a4b86 Mon Sep 17 00:00:00 2001
+From: marc <mhocking@ubuntu-desktop.(none)>
+Date: Mon, 18 Feb 2013 17:18:18 +0000
+Subject: [PATCH 13/17] dxva-h264 Fix dxva playback of streams that don't start
+ with an I-Frame.
+
+---
+ libavcodec/dxva2_h264.c | 8 ++++++++
+ libavcodec/h264.c       | 1 +
+ libavcodec/h264.h       | 2 ++
+ libavcodec/h264_slice.c | 1 +
+ 4 files changed, 12 insertions(+)
+
+diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
+index 6deccc3..85b25fd 100644
+--- a/libavcodec/dxva2_h264.c
++++ b/libavcodec/dxva2_h264.c
+@@ -451,6 +451,14 @@ static int dxva2_h264_end_frame(AVCodecContext *avctx)
+ 
+     if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0)
+         return -1;
++
++    // Wait for an I-frame before start decoding. Workaround for ATI UVD and UVD+ GPUs
++    if (!h->got_first_iframe) {
++        if (!(ctx_pic->pp.wBitFields & (1 << 15)))
++            return -1;
++        h->got_first_iframe = 1;
++    }
++
+     ret = ff_dxva2_common_end_frame(avctx, &h->cur_pic_ptr->f,
+                                     &ctx_pic->pp, sizeof(ctx_pic->pp),
+                                     &ctx_pic->qm, sizeof(ctx_pic->qm),
+diff --git a/libavcodec/h264.c b/libavcodec/h264.c
+index c4f4b05..080845c 100644
+--- a/libavcodec/h264.c
++++ b/libavcodec/h264.c
+@@ -1085,6 +1085,7 @@ void ff_h264_flush_change(H264Context *h)
+     h->list_count = 0;
+     h->current_slice = 0;
+     h->mmco_reset = 1;
++    h->got_first_iframe = 0;
+ }
+ 
+ /* forget old pics after a seek */
+diff --git a/libavcodec/h264.h b/libavcodec/h264.h
+index 5ec4f0c..d26cee3 100644
+--- a/libavcodec/h264.h
++++ b/libavcodec/h264.h
+@@ -740,6 +740,8 @@ typedef struct H264Context {
+     int luma_weight_flag[2];    ///< 7.4.3.2 luma_weight_lX_flag
+     int chroma_weight_flag[2];  ///< 7.4.3.2 chroma_weight_lX_flag
+ 
++    int got_first_iframe;
++
+     // Timestamp stuff
+     int sei_buffering_period_present;   ///< Buffering period SEI flag
+     int initial_cpb_removal_delay[32];  ///< Initial timestamps for CPBs
+diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
+index ffb7de5..338114e 100644
+--- a/libavcodec/h264_slice.c
++++ b/libavcodec/h264_slice.c
+@@ -1178,6 +1178,7 @@ static int h264_slice_header_init(H264Context *h, int reinit)
+         ff_h264_free_tables(h, 0);
+     h->first_field           = 0;
+     h->prev_interlaced_frame = 1;
++    h->got_first_iframe = 0;
+ 
+     init_scan_tables(h);
+     ret = ff_h264_alloc_tables(h);
+
+From a8df0cfd31a31b6962616cabc40d7929746eee4d Mon Sep 17 00:00:00 2001
+From: elupus <elupus@xbmc.org>
+Date: Tue, 1 Nov 2011 20:18:35 +0100
+Subject: [PATCH 14/17] add public version of ff_read_frame_flush
+
+We need this since we sometimes seek on the
+input stream behind ffmpeg's back. After this
+all data need to be flushed completely.
+---
+ libavformat/avformat.h | 5 +++++
+ libavformat/utils.c    | 5 +++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/libavformat/avformat.h b/libavformat/avformat.h
+index b915148..64695c6 100644
+--- a/libavformat/avformat.h
++++ b/libavformat/avformat.h
+@@ -2112,6 +2112,11 @@ int av_read_packet(AVFormatContext *s, AVPacket *pkt);
+ int av_read_frame(AVFormatContext *s, AVPacket *pkt);
+ 
+ /**
++ * Clear out any buffered data in context
++ */
++void av_read_frame_flush(AVFormatContext *s);
++
++/**
+  * Seek to the keyframe at timestamp.
+  * 'timestamp' in 'stream_index'.
+  *
+diff --git a/libavformat/utils.c b/libavformat/utils.c
+index 9f74313..8de7c3d 100644
+--- a/libavformat/utils.c
++++ b/libavformat/utils.c
+@@ -1580,6 +1580,11 @@ void ff_read_frame_flush(AVFormatContext *s)
+     }
+ }
+ 
++void av_read_frame_flush(AVFormatContext *s)
++{
++  ff_read_frame_flush(s);
++}
++
+ void ff_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp)
+ {
+     int i;
+
+From d01ef454fb11286e666d568c47ead0c1633d659a Mon Sep 17 00:00:00 2001
+From: Memphiz <memphis@machzwo.de>
+Date: Mon, 12 May 2014 18:27:01 +0200
+Subject: [PATCH 15/17] fix --disable-ffplay should disable any needs to check
+ or add compile/link flags otherwise SDL gets spewed all over pkg-config files
+ and generally causes a mess
+
+---
+ configure | 32 +++++++++++++++++---------------
+ 1 file changed, 17 insertions(+), 15 deletions(-)
+
+diff --git a/configure b/configure
+index 618dfab..30fe640 100755
+--- a/configure
++++ b/configure
+@@ -4911,22 +4911,24 @@ if enabled libdc1394; then
+     die "ERROR: No version of libdc1394 found "
+ fi
+ 
+-SDL_CONFIG="${cross_prefix}sdl-config"
+-if check_pkg_config sdl SDL_events.h SDL_PollEvent; then
+-    check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
+-    check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags &&
+-    enable sdl
+-else
+-  if "${SDL_CONFIG}" --version > /dev/null 2>&1; then
+-    sdl_cflags=$("${SDL_CONFIG}" --cflags)
+-    sdl_libs=$("${SDL_CONFIG}" --libs)
+-    check_func_headers SDL_version.h SDL_Linked_Version $sdl_cflags $sdl_libs &&
+-    check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
+-    check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags &&
+-    enable sdl
+-  fi
++if enabled ffplay; then
++    SDL_CONFIG="${cross_prefix}sdl-config"
++    if check_pkg_config sdl SDL_events.h SDL_PollEvent; then
++        check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
++        check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags &&
++        enable sdl
++    else
++      if "${SDL_CONFIG}" --version > /dev/null 2>&1; then
++        sdl_cflags=$("${SDL_CONFIG}" --cflags)
++        sdl_libs=$("${SDL_CONFIG}" --libs)
++        check_func_headers SDL_version.h SDL_Linked_Version $sdl_cflags $sdl_libs &&
++        check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
++        check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags &&
++        enable sdl
++      fi
++    fi
++    enabled sdl && add_cflags $sdl_cflags && add_extralibs $sdl_libs
+ fi
+-enabled sdl && add_cflags $sdl_cflags && add_extralibs $sdl_libs
+ 
+ makeinfo --version > /dev/null 2>&1 && enable makeinfo  || disable makeinfo
+ enabled makeinfo && (makeinfo --version | \
+
+From 27fa565a9ec4a4e1b1f28e83e17a9aa7bf795fe7 Mon Sep 17 00:00:00 2001
+From: Hendrik Leppkes <h.leppkes@gmail.com>
+Date: Sun, 21 Sep 2014 02:29:27 +0200
+Subject: [PATCH 16/17] mlpdec: support major sync headers with optional
+ extension blocks
+
+Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
+---
+ libavcodec/mlp_parser.c | 29 ++++++++++++++++++++++++-----
+ libavcodec/mlp_parser.h |  1 +
+ libavcodec/mlpdec.c     |  7 ++++++-
+ 3 files changed, 31 insertions(+), 6 deletions(-)
+
+diff --git a/libavcodec/mlp_parser.c b/libavcodec/mlp_parser.c
+index 4bb82ee..deaa844 100644
+--- a/libavcodec/mlp_parser.c
++++ b/libavcodec/mlp_parser.c
+@@ -119,6 +119,23 @@ uint64_t ff_truehd_layout(int chanmap)
+     return layout;
+ }
+ 
++static int ff_mlp_get_major_sync_size(const uint8_t * buf, int bufsize)
++{
++    int has_extension, extensions = 0;
++    int size = 28;
++    if (bufsize < 28)
++        return -1;
++
++    if (AV_RB32(buf) == 0xf8726fba) {
++        has_extension = buf[25] & 1;
++        if (has_extension) {
++            extensions = buf[26] >> 4;
++            size += 2 + extensions * 2;
++        }
++    }
++    return size;
++}
++
+ /** Read a major sync info header - contains high level information about
+  *  the stream - sample rate, channel arrangement etc. Most of this
+  *  information is not actually necessary for decoding, only for playback.
+@@ -127,18 +144,19 @@ uint64_t ff_truehd_layout(int chanmap)
+ 
+ int ff_mlp_read_major_sync(void *log, MLPHeaderInfo *mh, GetBitContext *gb)
+ {
+-    int ratebits, channel_arrangement;
++    int ratebits, channel_arrangement, header_size;
+     uint16_t checksum;
+ 
+     av_assert1(get_bits_count(gb) == 0);
+ 
+-    if (gb->size_in_bits < 28 << 3) {
++    header_size = ff_mlp_get_major_sync_size(gb->buffer, gb->size_in_bits >> 3);
++    if (header_size < 0 || gb->size_in_bits < header_size << 3) {
+         av_log(log, AV_LOG_ERROR, "packet too short, unable to read major sync\n");
+         return -1;
+     }
+ 
+-    checksum = ff_mlp_checksum16(gb->buffer, 26);
+-    if (checksum != AV_RL16(gb->buffer+26)) {
++    checksum = ff_mlp_checksum16(gb->buffer, header_size - 2);
++    if (checksum != AV_RL16(gb->buffer+header_size-2)) {
+         av_log(log, AV_LOG_ERROR, "major sync info header checksum error\n");
+         return AVERROR_INVALIDDATA;
+     }
+@@ -147,6 +165,7 @@ int ff_mlp_read_major_sync(void *log, MLPHeaderInfo *mh, GetBitContext *gb)
+         return AVERROR_INVALIDDATA;
+ 
+     mh->stream_type = get_bits(gb, 8);
++    mh->header_size = header_size;
+ 
+     if (mh->stream_type == 0xbb) {
+         mh->group1_bits = mlp_quants[get_bits(gb, 4)];
+@@ -199,7 +218,7 @@ int ff_mlp_read_major_sync(void *log, MLPHeaderInfo *mh, GetBitContext *gb)
+ 
+     mh->num_substreams = get_bits(gb, 4);
+ 
+-    skip_bits_long(gb, 4 + 11 * 8);
++    skip_bits_long(gb, 4 + (header_size - 17) * 8);
+ 
+     return 0;
+ }
+diff --git a/libavcodec/mlp_parser.h b/libavcodec/mlp_parser.h
+index 5d1d2e7..0c0109e 100644
+--- a/libavcodec/mlp_parser.h
++++ b/libavcodec/mlp_parser.h
+@@ -32,6 +32,7 @@
+ typedef struct MLPHeaderInfo
+ {
+     int stream_type;                        ///< 0xBB for MLP, 0xBA for TrueHD
++    int header_size;                        ///< Size of the major sync header, in bytes
+ 
+     int group1_bits;                        ///< The bit depth of the first substream
+     int group2_bits;                        ///< Bit depth of the second substream (MLP only)
+diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c
+index ed6a7fb..fddeb14 100644
+--- a/libavcodec/mlpdec.c
++++ b/libavcodec/mlpdec.c
+@@ -132,6 +132,9 @@ typedef struct MLPDecodeContext {
+     /// Current access unit being read has a major sync.
+     int         is_major_sync_unit;
+ 
++    /// Size of the major sync unit, in bytes
++    int         major_sync_header_size;
++
+     /// Set if a valid major sync block has been read. Otherwise no decoding is possible.
+     uint8_t     params_valid;
+ 
+@@ -349,6 +352,8 @@ static int read_major_sync(MLPDecodeContext *m, GetBitContext *gb)
+         return AVERROR_PATCHWELCOME;
+     }
+ 
++    m->major_sync_header_size = mh.header_size;
++
+     m->access_unit_size      = mh.access_unit_size;
+     m->access_unit_size_pow2 = mh.access_unit_size_pow2;
+ 
+@@ -1142,7 +1147,7 @@ static int read_access_unit(AVCodecContext *avctx, void* data,
+         if (read_major_sync(m, &gb) < 0)
+             goto error;
+         m->is_major_sync_unit = 1;
+-        header_size += 28;
++        header_size += m->major_sync_header_size;
+     }
+ 
+     if (!m->params_valid) {
+
+From 265630307d5b36e87ac2879ce9852364ce1f6a8b Mon Sep 17 00:00:00 2001
+From: Hendrik Leppkes <h.leppkes@gmail.com>
+Date: Sun, 21 Sep 2014 02:29:28 +0200
+Subject: [PATCH 17/17] mlpdec: support TrueHD streams with an Atmos substream
+
+The fourth substream is being discarded, since its not raw audio data,
+but an encoded Atmos stream which needs a specialized decoder.
+
+Fixes decoding of the true hd stream from Transformers\ -\ Age\ of\ Extinction\ 2014\ 1080P-003.mkv
+
+Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
+---
+ libavcodec/mlp.h    | 2 +-
+ libavcodec/mlpdec.c | 4 +++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libavcodec/mlp.h b/libavcodec/mlp.h
+index bb9ca26..05d8dba 100644
+--- a/libavcodec/mlp.h
++++ b/libavcodec/mlp.h
+@@ -45,7 +45,7 @@
+ /** Maximum number of substreams that can be decoded.
+  *  MLP's limit is 2. TrueHD supports at least up to 3.
+  */
+-#define MAX_SUBSTREAMS      3
++#define MAX_SUBSTREAMS      4
+ 
+ /** which multiple of 48000 the maximum sample rate is */
+ #define MAX_RATEFACTOR      4
+diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c
+index fddeb14..e443f81 100644
+--- a/libavcodec/mlpdec.c
++++ b/libavcodec/mlpdec.c
+@@ -358,7 +358,9 @@ static int read_major_sync(MLPDecodeContext *m, GetBitContext *gb)
+     m->access_unit_size_pow2 = mh.access_unit_size_pow2;
+ 
+     m->num_substreams        = mh.num_substreams;
+-    m->max_decoded_substream = m->num_substreams - 1;
++
++    /* limit to decoding 3 substreams, as the 4th is used by Dolby Atmos for non-audio data */
++    m->max_decoded_substream = FFMIN(m->num_substreams - 1, 2);
+ 
+     m->avctx->sample_rate    = mh.group1_samplerate;
+     m->avctx->frame_size     = mh.access_unit_size;
-- 
1.7.10.4

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

* [Buildroot] [RFC/PATCH v2 2/4] Rename XBMC to Kodi - part I - move files
  2014-10-06 20:47 [Buildroot] [RFC/PATCH v2 0/4] package/kodi: Bump version to 14.0a4-Helix Bernd Kuhls
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 1/4] package/ffmpeg: Add Kodi patchset Bernd Kuhls
@ 2014-10-06 20:48 ` Bernd Kuhls
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 3/4] Rename XBMC to Kodi - part II - rename variables Bernd Kuhls
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 4/4] package/kodi: Bump version to 14.0a4-Helix Bernd Kuhls
  3 siblings, 0 replies; 6+ messages in thread
From: Bernd Kuhls @ 2014-10-06 20:48 UTC (permalink / raw)
  To: buildroot

Background information: http://xbmc.org/introducing-kodi-14

In a first step to bump version to 14.0-Helix move the package
to its new directory. Because git will not recognize the moved
files due to many upcoming changes to variable names the move
is done in this seperate commit.

The "Rename XBMC to Kodi" is split in two parts for easier review,
please apply both patches in one commit.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/Config.in                                                    |    2 +-
 package/{xbmc => kodi}/Config.in                                     |    0
 package/{xbmc/S50xbmc => kodi/S50kodi}                               |    0
 package/{xbmc/br-xbmc => kodi/br-kodi}                               |    0
 .../kodi-0001-Fixup-include-path.patch}                              |    0
 .../{xbmc/xbmc-0002-mathutil.patch => kodi/kodi-0002-mathutil.patch} |    0
 package/{xbmc/xbmc.mk => kodi/kodi.mk}                               |    0
 package/{xbmc/xbmc.service => kodi/kodi.service}                     |    0
 8 files changed, 1 insertion(+), 1 deletion(-)
 rename package/{xbmc => kodi}/Config.in (100%)
 rename package/{xbmc/S50xbmc => kodi/S50kodi} (100%)
 rename package/{xbmc/br-xbmc => kodi/br-kodi} (100%)
 rename package/{xbmc/xbmc-0001-Fixup-include-path.patch => kodi/kodi-0001-Fixup-include-path.patch} (100%)
 rename package/{xbmc/xbmc-0002-mathutil.patch => kodi/kodi-0002-mathutil.patch} (100%)
 rename package/{xbmc/xbmc.mk => kodi/kodi.mk} (100%)
 rename package/{xbmc/xbmc.service => kodi/kodi.service} (100%)

diff --git a/package/Config.in b/package/Config.in
index 2dbe6f8..71cc533 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -14,6 +14,7 @@ menu "Audio and video applications"
 	source "package/gstreamer/Config.in"
 	source "package/gstreamer1/Config.in"
 	source "package/jack2/Config.in"
+	source "package/kodi/Config.in"
 	source "package/lame/Config.in"
 	source "package/libvpx/Config.in"
 	source "package/madplay/Config.in"
@@ -33,7 +34,6 @@ menu "Audio and video applications"
 	source "package/vlc/Config.in"
 	source "package/vorbis-tools/Config.in"
 	source "package/wavpack/Config.in"
-	source "package/xbmc/Config.in"
 	source "package/yavta/Config.in"
 	source "package/ympd/Config.in"
 endmenu
diff --git a/package/xbmc/Config.in b/package/kodi/Config.in
similarity index 100%
rename from package/xbmc/Config.in
rename to package/kodi/Config.in
diff --git a/package/xbmc/S50xbmc b/package/kodi/S50kodi
similarity index 100%
rename from package/xbmc/S50xbmc
rename to package/kodi/S50kodi
diff --git a/package/xbmc/br-xbmc b/package/kodi/br-kodi
similarity index 100%
rename from package/xbmc/br-xbmc
rename to package/kodi/br-kodi
diff --git a/package/xbmc/xbmc-0001-Fixup-include-path.patch b/package/kodi/kodi-0001-Fixup-include-path.patch
similarity index 100%
rename from package/xbmc/xbmc-0001-Fixup-include-path.patch
rename to package/kodi/kodi-0001-Fixup-include-path.patch
diff --git a/package/xbmc/xbmc-0002-mathutil.patch b/package/kodi/kodi-0002-mathutil.patch
similarity index 100%
rename from package/xbmc/xbmc-0002-mathutil.patch
rename to package/kodi/kodi-0002-mathutil.patch
diff --git a/package/xbmc/xbmc.mk b/package/kodi/kodi.mk
similarity index 100%
rename from package/xbmc/xbmc.mk
rename to package/kodi/kodi.mk
diff --git a/package/xbmc/xbmc.service b/package/kodi/kodi.service
similarity index 100%
rename from package/xbmc/xbmc.service
rename to package/kodi/kodi.service
-- 
1.7.10.4

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

* [Buildroot] [RFC/PATCH v2 3/4] Rename XBMC to Kodi - part II - rename variables
  2014-10-06 20:47 [Buildroot] [RFC/PATCH v2 0/4] package/kodi: Bump version to 14.0a4-Helix Bernd Kuhls
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 1/4] package/ffmpeg: Add Kodi patchset Bernd Kuhls
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 2/4] Rename XBMC to Kodi - part I - move files Bernd Kuhls
@ 2014-10-06 20:48 ` Bernd Kuhls
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 4/4] package/kodi: Bump version to 14.0a4-Helix Bernd Kuhls
  3 siblings, 0 replies; 6+ messages in thread
From: Bernd Kuhls @ 2014-10-06 20:48 UTC (permalink / raw)
  To: buildroot

- add xbmc-related options to Config.in.legacy

The "Rename XBMC to Kodi" is split in two parts for easier review,
please apply both patches in one commit.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 Config.in.legacy                           |  119 +++++++++++++++
 package/kodi/Config.in                     |  100 ++++++------
 package/kodi/S50kodi                       |   16 +-
 package/kodi/br-kodi                       |   16 +-
 package/kodi/kodi.mk                       |  226 ++++++++++++++--------------
 package/kodi/kodi.service                  |    2 +-
 package/xbmc-addon-xvdr/xbmc-addon-xvdr.mk |    2 +-
 package/xbmc-pvr-addons/xbmc-pvr-addons.mk |    2 +-
 8 files changed, 301 insertions(+), 182 deletions(-)

diff --git a/Config.in.legacy b/Config.in.legacy
index 6e202fe..ba68fa7 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -101,6 +101,125 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2014.11"
 
+config BR2_PACKAGE_XBMC
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_ALSA_LIB
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_ALSA_LIB
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_AVAHI
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_AVAHI
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_DBUS
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_DBUS
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_LIBBLURAY
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_LIBBLURAY
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_GOOM
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_GOOM
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_RSXS
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_RSXS
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_LIBCEC
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_LIBCEC
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_LIBMICROHTTPD
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_LIBMICROHTTPD
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_LIBNFS
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_LIBNFS
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_RTMPDUMP
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_RTMPDUMP
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_LIBSHAIRPLAY
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_LIBSHAIRPLAY
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_LIBSMBCLIENT
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_LIBSMBCLIENT
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_LIBTHEORA
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_LIBTHEORA
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_LIBUSB
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_LIBUSB
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_LIBVA
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_LIBVA
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
+config BR2_PACKAGE_XBMC_WAVPACK
+	bool "xbmc options have been renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_KODI_WAVPACK
+	help
+	  The XBMC media center project was renamed to Kodi entertainment center
+
 config BR2_PACKAGE_LINUX_FIRMWARE_XC5000
 	bool "Xceive xc5000 option has been renamed"
 	select BR2_PACKAGE_LINUX_FIRMWARE_XCx000
diff --git a/package/kodi/Config.in b/package/kodi/Config.in
index a7337d5..3f14a75 100644
--- a/package/kodi/Config.in
+++ b/package/kodi/Config.in
@@ -1,35 +1,35 @@
-config BR2_PACKAGE_XBMC_ARCH_SUPPORTS
+config BR2_PACKAGE_KODI_ARCH_SUPPORTS
 	bool
 	default y if BR2_arm || BR2_i386 || BR2_x86_64
 
-comment "xbmc needs a toolchain w/ C++, IPv6, largefile, threads, wchar"
-	depends on BR2_PACKAGE_XBMC_ARCH_SUPPORTS
+comment "kodi needs a toolchain w/ C++, IPv6, largefile, threads, wchar"
+	depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
 	depends on !BR2_INET_IPV6 || !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
 	depends on BR2_USE_MMU
 
-config BR2_PACKAGE_XBMC_EGL_GLES
+config BR2_PACKAGE_KODI_EGL_GLES
 	bool
 	default y
 	depends on BR2_PACKAGE_HAS_LIBEGL
 	depends on BR2_PACKAGE_HAS_LIBGLES
-	depends on !BR2_PACKAGE_XBMC_GL # prefer GL if available
+	depends on !BR2_PACKAGE_KODI_GL # prefer GL if available
 
-config BR2_PACKAGE_XBMC_GL
+config BR2_PACKAGE_KODI_GL
 	bool
 	default y
 	depends on BR2_PACKAGE_HAS_LIBGL
-	depends on !BR2_arm # xbmc needs egl/gles on arm
+	depends on !BR2_arm # kodi needs egl/gles on arm
 
-comment "xbmc needs an OpenGL or an openGL ES and EGL backend"
+comment "kodi needs an OpenGL or an openGL ES and EGL backend"
 	depends on BR2_i386 || BR2_x86_64
-	depends on !BR2_PACKAGE_XBMC_GL && !BR2_PACKAGE_XBMC_EGL_GLES
+	depends on !BR2_PACKAGE_KODI_GL && !BR2_PACKAGE_KODI_EGL_GLES
 
-comment "xbmc requires an OpenGL ES and EGL backend"
+comment "kodi requires an OpenGL ES and EGL backend"
 	depends on BR2_arm
-	depends on !BR2_PACKAGE_XBMC_EGL_GLES
+	depends on !BR2_PACKAGE_KODI_EGL_GLES
 
-menuconfig BR2_PACKAGE_XBMC
-	bool "xbmc"
+menuconfig BR2_PACKAGE_KODI
+	bool "kodi"
 	select BR2_NEEDS_HOST_JAVA
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_BOOST_THREAD
@@ -44,8 +44,8 @@ menuconfig BR2_PACKAGE_XBMC
 	select BR2_PACKAGE_LIBCDIO
 	select BR2_PACKAGE_LIBCURL
 	select BR2_PACKAGE_LIBFRIBIDI
-	select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_XBMC_GL
-	select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_XBMC_GL
+	select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_KODI_GL
+	select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_KODI_GL
 	select BR2_PACKAGE_LIBGCRYPT
 	select BR2_PACKAGE_LIBID3TAG
 	select BR2_PACKAGE_LIBMAD
@@ -75,56 +75,56 @@ menuconfig BR2_PACKAGE_XBMC
 	select BR2_PACKAGE_PYTHON_UNICODEDATA
 	select BR2_PACKAGE_PYTHON_ZLIB
 	select BR2_PACKAGE_READLINE
-	select BR2_PACKAGE_SDL if BR2_PACKAGE_XBMC_GL
-	select BR2_PACKAGE_SDL_X11 if BR2_PACKAGE_XBMC_GL
-	select BR2_PACKAGE_SDL_IMAGE if BR2_PACKAGE_XBMC_GL
+	select BR2_PACKAGE_SDL if BR2_PACKAGE_KODI_GL
+	select BR2_PACKAGE_SDL_X11 if BR2_PACKAGE_KODI_GL
+	select BR2_PACKAGE_SDL_IMAGE if BR2_PACKAGE_KODI_GL
 	select BR2_PACKAGE_SQLITE
 	select BR2_PACKAGE_TAGLIB
 	select BR2_PACKAGE_TIFF
 	select BR2_PACKAGE_TINYXML
-	select BR2_PACKAGE_XLIB_XMU if BR2_PACKAGE_XBMC_GL # needed by rsxs screensaver
-	select BR2_PACKAGE_XLIB_XRANDR if BR2_PACKAGE_XBMC_GL
-	select BR2_PACKAGE_XLIB_XT if BR2_PACKAGE_XBMC_GL # needed by rsxs screensaver
+	select BR2_PACKAGE_XLIB_XMU if BR2_PACKAGE_KODI_GL # needed by rsxs screensaver
+	select BR2_PACKAGE_XLIB_XRANDR if BR2_PACKAGE_KODI_GL
+	select BR2_PACKAGE_XLIB_XT if BR2_PACKAGE_KODI_GL # needed by rsxs screensaver
 	select BR2_PACKAGE_YAJL
 	select BR2_PACKAGE_ZLIB
 	depends on BR2_INET_IPV6
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_LARGEFILE
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_PACKAGE_XBMC_EGL_GLES || BR2_PACKAGE_XBMC_GL
+	depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL
 	depends on BR2_USE_MMU # python
 	depends on BR2_USE_WCHAR
-	depends on BR2_PACKAGE_XBMC_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
 	help
-	  XBMC is an award-winning free and open source (GPL) software
+	  Kodi is an award-winning free and open source (GPL) software
 	  media player and entertainment hub for digital media.
 
-	  http://xbmc.org
+	  http://kodi.tv
 
-if BR2_PACKAGE_XBMC
+if BR2_PACKAGE_KODI
 
-config BR2_PACKAGE_XBMC_ALSA_LIB
+config BR2_PACKAGE_KODI_ALSA_LIB
 	bool "alsa"
 	select BR2_PACKAGE_ALSA_LIB
 	help
 	  Enable alsa support.
 
-config BR2_PACKAGE_XBMC_AVAHI
+config BR2_PACKAGE_KODI_AVAHI
 	bool "avahi"
 	depends on !BR2_PREFER_STATIC_LIB # avahi
 	select BR2_PACKAGE_AVAHI
 	select BR2_PACKAGE_AVAHI_DAEMON
 	help
 	  Enable Avahi support.
-	  Select this if you want XBMC to support Bonjour protocol.
+	  Select this if you want Kodi to support Bonjour protocol.
 
-config BR2_PACKAGE_XBMC_DBUS
+config BR2_PACKAGE_KODI_DBUS
 	bool "dbus"
 	select BR2_PACKAGE_DBUS
 	help
 	  Enable D-Bus support
 
-config BR2_PACKAGE_XBMC_LIBBLURAY
+config BR2_PACKAGE_KODI_LIBBLURAY
 	bool "blu-ray"
 	select BR2_PACKAGE_LIBBLURAY
 	depends on !BR2_PREFER_STATIC_LIB
@@ -135,43 +135,43 @@ config BR2_PACKAGE_XBMC_LIBBLURAY
 comment "libbluray support needs a toolchain w/ dynamic library"
 	depends on BR2_PREFER_STATIC_LIB
 
-config BR2_PACKAGE_XBMC_GOOM
+config BR2_PACKAGE_KODI_GOOM
 	bool "goom screensaver"
-	depends on BR2_PACKAGE_XBMC_GL
+	depends on BR2_PACKAGE_KODI_GL
 	help
 	  Enable goom screensaver
 
 comment "goom needs an OpenGL backend"
-	depends on !BR2_PACKAGE_XBMC_GL
+	depends on !BR2_PACKAGE_KODI_GL
 
-config BR2_PACKAGE_XBMC_RSXS
+config BR2_PACKAGE_KODI_RSXS
 	bool "rsxs screensaver"
-	depends on BR2_PACKAGE_XBMC_GL
+	depends on BR2_PACKAGE_KODI_GL
 	help
 	  Enable goom screensaver
 
 comment "rsxs needs an OpenGL backend"
-	depends on !BR2_PACKAGE_XBMC_GL
+	depends on !BR2_PACKAGE_KODI_GL
 
-config BR2_PACKAGE_XBMC_LIBCEC
+config BR2_PACKAGE_KODI_LIBCEC
 	bool "hdmi cec"
 	depends on !BR2_PREFER_STATIC_LIB # libcec
 	depends on BR2_PACKAGE_HAS_UDEV
 	select BR2_PACKAGE_LIBCEC
 	help
 	  Enable CEC (Consumer Electronics Control) support.
-	  Select this if you want XBMC to support HDMI CEC.
+	  Select this if you want Kodi to support HDMI CEC.
 
 comment "hdmi cec support needs udev /dev management and a toolchain w/ dynamic library"
 	depends on BR2_PREFER_STATIC_LIB || !BR2_PACKAGE_HAS_UDEV
 
-config BR2_PACKAGE_XBMC_LIBMICROHTTPD
+config BR2_PACKAGE_KODI_LIBMICROHTTPD
 	bool "web server"
 	select BR2_PACKAGE_LIBMICROHTTPD
 	help
 	  Enable webserver feature
 
-config BR2_PACKAGE_XBMC_LIBNFS
+config BR2_PACKAGE_KODI_LIBNFS
 	bool "nfs"
 	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	select BR2_PACKAGE_LIBNFS
@@ -181,42 +181,42 @@ config BR2_PACKAGE_XBMC_LIBNFS
 comment "nfs support needs a toolchain w/ RPC support"
 	depends on !BR2_TOOLCHAIN_HAS_NATIVE_RPC
 
-config BR2_PACKAGE_XBMC_RTMPDUMP
+config BR2_PACKAGE_KODI_RTMPDUMP
 	bool "rtmp"
 	select BR2_PACKAGE_RTMPDUMP
 	help
 	  Enable RTMP input support.
 	  Select this if you want to play back rtmp stream.
 
-config BR2_PACKAGE_XBMC_LIBSHAIRPLAY
+config BR2_PACKAGE_KODI_LIBSHAIRPLAY
 	bool "shairport"
 	select BR2_PACKAGE_LIBSHAIRPLAY
 	help
 	  Enable Shairport support.
 	  Select this if you want to stream content from an Apple device.
 
-config BR2_PACKAGE_XBMC_LIBSMBCLIENT
+config BR2_PACKAGE_KODI_LIBSMBCLIENT
 	bool "samba"
 	select BR2_PACKAGE_SAMBA
 	select BR2_PACKAGE_SAMBA_LIBSMBCLIENT
 	help
 	  Enable Samba support
 
-config BR2_PACKAGE_XBMC_LIBTHEORA
+config BR2_PACKAGE_KODI_LIBTHEORA
 	bool "theora"
 	select BR2_PACKAGE_LIBTHEORA
 	help
 	  Enable Theora input support.
 	  Select this if you want to play back OGG/OGV files (Video).
 
-config BR2_PACKAGE_XBMC_LIBUSB
+config BR2_PACKAGE_KODI_LIBUSB
 	bool "usb"
 	select BR2_PACKAGE_LIBUSB
 	select BR2_PACKAGE_LIBUSB_COMPAT
 	help
 	  Enable libusb support.
 
-config BR2_PACKAGE_XBMC_LIBVA
+config BR2_PACKAGE_KODI_LIBVA
 	bool "va"
 	select BR2_PACKAGE_LIBVA
 	depends on !BR2_PREFER_STATIC_LIB
@@ -226,16 +226,16 @@ config BR2_PACKAGE_XBMC_LIBVA
 comment "libva support needs toolchain w/ dynamic library"
 	depends on BR2_PREFER_STATIC_LIB
 
-config BR2_PACKAGE_XBMC_WAVPACK
+config BR2_PACKAGE_KODI_WAVPACK
 	bool "wavpack"
 	select BR2_PACKAGE_WAVPACK
 	help
 	  Enable WAV input support.
 	  Select this if you want to play back WV files.
 
-comment "XBMC addons"
+comment "Kodi addons"
 
 source "package/xbmc-addon-xvdr/Config.in"
 source "package/xbmc-pvr-addons/Config.in"
 
-endif # BR2_PACKAGE_XBMC
+endif # BR2_PACKAGE_KODI
diff --git a/package/kodi/S50kodi b/package/kodi/S50kodi
index 312452b..f9abbb5 100755
--- a/package/kodi/S50kodi
+++ b/package/kodi/S50kodi
@@ -1,20 +1,20 @@
 #!/bin/sh
 #
-# Starts XBMC.
+# Starts Kodi
 #
 
-BIN=/usr/bin/br-xbmc
-XBMC=/usr/lib/xbmc/xbmc.bin
-XBMC_ARGS="--standalone -fs -n"
-PIDFILE=/var/run/xbmc.pid
+BIN=/usr/bin/br-kodi
+KODI=/usr/lib/xbmc/xbmc.bin
+KODI_ARGS="--standalone -fs -n"
+PIDFILE=/var/run/kodi.pid
 
 start() {
-	echo -n "Starting XBMC: "
-	start-stop-daemon -S -q -b -m -p $PIDFILE --exec $BIN -- $XBMC $XBMC_ARGS
+	echo -n "Starting Kodi: "
+	start-stop-daemon -S -q -b -m -p $PIDFILE --exec $BIN -- $KODI $KODI_ARGS
 	[ $? == 0 ] && echo "OK" || echo "FAIL"
 }
 stop() {
-	echo -n "Stopping XBMC: "
+	echo -n "Stopping Kodi: "
 	start-stop-daemon -K -q -p $PIDFILE
 	[ $? == 0 ] && echo "OK" || echo "FAIL"
 }
diff --git a/package/kodi/br-kodi b/package/kodi/br-kodi
index fee5d51..83d4d4e 100755
--- a/package/kodi/br-kodi
+++ b/package/kodi/br-kodi
@@ -1,15 +1,15 @@
 #!/bin/sh
 
-# We're called with the real XBMC executable as
-# first argument, followed by any XBMC extra args
-XBMC="${1}"
+# We're called with the real Kodi executable as
+# first argument, followed by any Kodi extra args
+KODI="${1}"
 shift
 
 # In case someone asked we terminate, just kill
-# the XBMC process
+# the Kodi process
 trap_kill() {
     LOOP=0
-    killall "${XBMC##*/}"
+    killall "${KODI##*/}"
 }
 trap trap_kill INT QUIT TERM
 
@@ -17,11 +17,11 @@ LOOP=1
 while [ ${LOOP} -eq 1 ]; do
     # Hack: BusyBox ash does not catch signals while a non-builtin
     # is running, and only catches the signal when the non-builtin
-    # command ends. So, we just background the XBMC binary, and wait
+    # command ends. So, we just background the Kodi binary, and wait
     # for it. But BusyBox' ash's wait builtin does not return the
     # exit code even if there was only one job (which is correct
-    # for POSIX). So we explicitly wait for the XBMC job
-    "${XBMC}" "${@}" &
+    # for POSIX). So we explicitly wait for the Kodi job
+    "${KODI}" "${@}" &
     wait %1
     ret=$?
     case "${ret}" in
diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
index 0101ad7..5e74da0 100644
--- a/package/kodi/kodi.mk
+++ b/package/kodi/kodi.mk
@@ -1,35 +1,35 @@
 ################################################################################
 #
-# xbmc
+# kodi
 #
 ################################################################################
 
-XBMC_VERSION = 13.2-Gotham
-XBMC_SOURCE = $(XBMC_VERSION).tar.gz
-XBMC_SITE = https://github.com/xbmc/xbmc/archive
-XBMC_LICENSE = GPLv2
-XBMC_LICENSE_FILES = LICENSE.GPL
-# XBMC needs host-sdl_image (and therefore host-sdl) for a host tools it builds
+KODI_VERSION = 13.2-Gotham
+KODI_SOURCE = $(KODI_VERSION).tar.gz
+KODI_SITE = https://github.com/xbmc/xbmc/archive
+KODI_LICENSE = GPLv2
+KODI_LICENSE_FILES = LICENSE.GPL
+# Kodi needs host-sdl_image (and therefore host-sdl) for a host tools it builds
 # called TexturePacker. It is responsible to take all the images used in the
 # GUI and pack them in a blob.
 # http://wiki.xbmc.org/index.php?title=TexturePacker
-XBMC_DEPENDENCIES = host-gawk host-gettext host-gperf host-infozip host-lzo host-sdl_image host-swig
-XBMC_DEPENDENCIES += boost bzip2 expat flac fontconfig freetype jasper jpeg \
+KODI_DEPENDENCIES = host-gawk host-gettext host-gperf host-infozip host-lzo host-sdl_image host-swig
+KODI_DEPENDENCIES += boost bzip2 expat flac fontconfig freetype jasper jpeg \
 	libass libcdio libcurl libfribidi libgcrypt libmad libmodplug libmpeg2 \
 	libogg libplist libpng libsamplerate libungif libvorbis libxml2 libxslt lzo ncurses \
 	openssl pcre python readline sqlite taglib tiff tinyxml yajl zlib
 
-# xbmc at i386 depends on nasm
-XBMC_DEPENDENCIES += $(if $(BR2_i386),host-nasm)
+# kodi at i386 depends on nasm
+KODI_DEPENDENCIES += $(if $(BR2_i386),host-nasm)
 
 # ffmpeg depends on yasm on MMX archs
-# xbmc configure passes $(BR2_ARCH) to ffmpeg configure which adds
+# kodi configure passes $(BR2_ARCH) to ffmpeg configure which adds
 # yasm as dependency for x86_64, even if BR2_x86_generic=y
 ifneq ($(BR2_X86_CPU_HAS_MMX)$(BR2_x86_64),)
-XBMC_DEPENDENCIES += host-yasm
+KODI_DEPENDENCIES += host-yasm
 endif
 
-XBMC_CONF_ENV = \
+KODI_CONF_ENV = \
 	PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)" \
 	PYTHON_LDFLAGS="-lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm" \
 	PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)" \
@@ -39,7 +39,7 @@ XBMC_CONF_ENV = \
 	USE_TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr" \
 	TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
 
-XBMC_CONF_OPTS +=  \
+KODI_CONF_OPTS +=  \
 	--with-arch=$(BR2_ARCH) \
 	--disable-crystalhd \
 	--disable-debug \
@@ -57,199 +57,199 @@ XBMC_CONF_OPTS +=  \
 	--enable-optimizations
 
 ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
-XBMC_DEPENDENCIES += rpi-userland
-XBMC_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer
-XBMC_CONF_ENV += INCLUDES="-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
+KODI_DEPENDENCIES += rpi-userland
+KODI_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer
+KODI_CONF_ENV += INCLUDES="-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
 	-I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux" \
 	LIBS="-lvcos -lvchostif"
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_DBUS),y)
-XBMC_DEPENDENCIES += dbus
-XBMC_CONF_OPTS += --enable-dbus
+ifeq ($(BR2_PACKAGE_KODI_DBUS),y)
+KODI_DEPENDENCIES += dbus
+KODI_CONF_OPTS += --enable-dbus
 else
-XBMC_CONF_OPTS += --disable-dbus
+KODI_CONF_OPTS += --disable-dbus
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_ALSA_LIB),y)
-XBMC_DEPENDENCIES += alsa-lib
-XBMC_CONF_OPTS += --enable-alsa
+ifeq ($(BR2_PACKAGE_KODI_ALSA_LIB),y)
+KODI_DEPENDENCIES += alsa-lib
+KODI_CONF_OPTS += --enable-alsa
 else
-XBMC_CONF_OPTS += --disable-alsa
+KODI_CONF_OPTS += --disable-alsa
 endif
 
 ifeq ($(BR2_PACKAGE_LAME),y)
-XBMC_DEPENDENCIES += lame
-XBMC_CONF_OPTS += --enable-libmp3lame
+KODI_DEPENDENCIES += lame
+KODI_CONF_OPTS += --enable-libmp3lame
 else
-XBMC_CONF_OPTS += --disable-libmp3lame
+KODI_CONF_OPTS += --disable-libmp3lame
 endif
 
-# quote from xbmc/configure.in: "GLES overwrites GL if both set to yes."
+# quote from kodi/configure.in: "GLES overwrites GL if both set to yes."
 # we choose the opposite because opengl offers more features, like libva support
-ifeq ($(BR2_PACKAGE_XBMC_GL),y)
-XBMC_DEPENDENCIES += libglew libglu libgl sdl_image xlib_libX11 xlib_libXext \
+ifeq ($(BR2_PACKAGE_KODI_GL),y)
+KODI_DEPENDENCIES += libglew libglu libgl sdl_image xlib_libX11 xlib_libXext \
 	xlib_libXmu xlib_libXrandr xlib_libXt
-XBMC_CONF_OPTS += --enable-gl --enable-sdl --enable-x11 --enable-xrandr --disable-gles
-ifeq ($(BR2_PACKAGE_XBMC_RSXS),y)
+KODI_CONF_OPTS += --enable-gl --enable-sdl --enable-x11 --enable-xrandr --disable-gles
+ifeq ($(BR2_PACKAGE_KODI_RSXS),y)
 # fix rsxs compile
 # make sure target libpng-config is used, options taken from rsxs-0.9/acinclude.m4
-XBMC_CONF_ENV += \
+KODI_CONF_ENV += \
 	jm_cv_func_gettimeofday_clobber=no \
 	mac_cv_pkg_png=$(STAGING_DIR)/usr/bin/libpng-config \
 	mac_cv_pkg_cppflags="`$(STAGING_DIR)/usr/bin/libpng-config --I_opts --cppflags`" \
 	mac_cv_pkg_cxxflags="`$(STAGING_DIR)/usr/bin/libpng-config --ccopts`" \
 	mac_cv_pkg_ldflags="`$(STAGING_DIR)/usr/bin/libpng-config --L_opts --R_opts`" \
 	mac_cv_pkg_libs="`$(STAGING_DIR)/usr/bin/libpng-config --libs`"
-XBMC_CONF_OPTS += --enable-rsxs
+KODI_CONF_OPTS += --enable-rsxs
 else
-XBMC_CONF_OPTS += --disable-rsxs
+KODI_CONF_OPTS += --disable-rsxs
 endif
 else
-XBMC_CONF_OPTS += --disable-gl --disable-rsxs --disable-sdl --disable-x11 --disable-xrandr
-ifeq ($(BR2_PACKAGE_XBMC_EGL_GLES),y)
-XBMC_DEPENDENCIES += libegl libgles
-XBMC_CONF_OPTS += --enable-gles
+KODI_CONF_OPTS += --disable-gl --disable-rsxs --disable-sdl --disable-x11 --disable-xrandr
+ifeq ($(BR2_PACKAGE_KODI_EGL_GLES),y)
+KODI_DEPENDENCIES += libegl libgles
+KODI_CONF_OPTS += --enable-gles
 else
-XBMC_CONF_OPTS += --disable-gles
+KODI_CONF_OPTS += --disable-gles
 endif
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_GOOM),y)
-XBMC_CONF_OPTS += --enable-goom
+ifeq ($(BR2_PACKAGE_KODI_GOOM),y)
+KODI_CONF_OPTS += --enable-goom
 else
-XBMC_CONF_OPTS += --disable-goom
+KODI_CONF_OPTS += --disable-goom
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_LIBUSB),y)
-XBMC_DEPENDENCIES += libusb-compat
-XBMC_CONF_OPTS += --enable-libusb
+ifeq ($(BR2_PACKAGE_KODI_LIBUSB),y)
+KODI_DEPENDENCIES += libusb-compat
+KODI_CONF_OPTS += --enable-libusb
 else
-XBMC_CONF_OPTS += --disable-libusb
+KODI_CONF_OPTS += --disable-libusb
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_LIBMICROHTTPD),y)
-XBMC_DEPENDENCIES += libmicrohttpd
-XBMC_CONF_OPTS += --enable-webserver
+ifeq ($(BR2_PACKAGE_KODI_LIBMICROHTTPD),y)
+KODI_DEPENDENCIES += libmicrohttpd
+KODI_CONF_OPTS += --enable-webserver
 else
-XBMC_CONF_OPTS += --disable-webserver
+KODI_CONF_OPTS += --disable-webserver
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_LIBSMBCLIENT),y)
-XBMC_DEPENDENCIES += samba
-XBMC_CONF_OPTS += --enable-samba
+ifeq ($(BR2_PACKAGE_KODI_LIBSMBCLIENT),y)
+KODI_DEPENDENCIES += samba
+KODI_CONF_OPTS += --enable-samba
 else
-XBMC_CONF_OPTS += --disable-samba
+KODI_CONF_OPTS += --disable-samba
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_LIBNFS),y)
-XBMC_DEPENDENCIES += libnfs
-XBMC_CONF_OPTS += --enable-nfs
+ifeq ($(BR2_PACKAGE_KODI_LIBNFS),y)
+KODI_DEPENDENCIES += libnfs
+KODI_CONF_OPTS += --enable-nfs
 else
-XBMC_CONF_OPTS += --disable-nfs
+KODI_CONF_OPTS += --disable-nfs
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_RTMPDUMP),y)
-XBMC_DEPENDENCIES += rtmpdump
-XBMC_CONF_OPTS += --enable-rtmp
+ifeq ($(BR2_PACKAGE_KODI_RTMPDUMP),y)
+KODI_DEPENDENCIES += rtmpdump
+KODI_CONF_OPTS += --enable-rtmp
 else
-XBMC_CONF_OPTS += --disable-rtmp
+KODI_CONF_OPTS += --disable-rtmp
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_LIBBLURAY),y)
-XBMC_DEPENDENCIES += libbluray
-XBMC_CONF_OPTS += --enable-libbluray
+ifeq ($(BR2_PACKAGE_KODI_LIBBLURAY),y)
+KODI_DEPENDENCIES += libbluray
+KODI_CONF_OPTS += --enable-libbluray
 else
-XBMC_CONF_OPTS += --disable-libbluray
+KODI_CONF_OPTS += --disable-libbluray
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_LIBSHAIRPLAY),y)
-XBMC_DEPENDENCIES += libshairplay
-XBMC_CONF_OPTS += --enable-airplay
+ifeq ($(BR2_PACKAGE_KODI_LIBSHAIRPLAY),y)
+KODI_DEPENDENCIES += libshairplay
+KODI_CONF_OPTS += --enable-airplay
 else
-XBMC_CONF_OPTS += --disable-airplay
+KODI_CONF_OPTS += --disable-airplay
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_AVAHI),y)
-XBMC_DEPENDENCIES += avahi
-XBMC_CONF_OPTS += --enable-avahi
+ifeq ($(BR2_PACKAGE_KODI_AVAHI),y)
+KODI_DEPENDENCIES += avahi
+KODI_CONF_OPTS += --enable-avahi
 else
-XBMC_CONF_OPTS += --disable-avahi
+KODI_CONF_OPTS += --disable-avahi
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_LIBCEC),y)
-XBMC_DEPENDENCIES += libcec
-XBMC_CONF_OPTS += --enable-libcec
+ifeq ($(BR2_PACKAGE_KODI_LIBCEC),y)
+KODI_DEPENDENCIES += libcec
+KODI_CONF_OPTS += --enable-libcec
 else
-XBMC_CONF_OPTS += --disable-libcec
+KODI_CONF_OPTS += --disable-libcec
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_WAVPACK),y)
-XBMC_DEPENDENCIES += wavpack
+ifeq ($(BR2_PACKAGE_KODI_WAVPACK),y)
+KODI_DEPENDENCIES += wavpack
 endif
 
-ifeq ($(BR2_PACKAGE_XBMC_LIBTHEORA),y)
-XBMC_DEPENDENCIES += libtheora
+ifeq ($(BR2_PACKAGE_KODI_LIBTHEORA),y)
+KODI_DEPENDENCIES += libtheora
 endif
 
-# xbmc needs libva & libva-glx
-ifeq ($(BR2_PACKAGE_XBMC_LIBVA)$(BR2_PACKAGE_MESA3D_DRI_DRIVER),yy)
-XBMC_DEPENDENCIES += mesa3d libva
-XBMC_CONF_OPTS += --enable-vaapi
+# kodi needs libva & libva-glx
+ifeq ($(BR2_PACKAGE_KODI_LIBVA)$(BR2_PACKAGE_MESA3D_DRI_DRIVER),yy)
+KODI_DEPENDENCIES += mesa3d libva
+KODI_CONF_OPTS += --enable-vaapi
 else
-XBMC_CONF_OPTS += --disable-vaapi
+KODI_CONF_OPTS += --disable-vaapi
 endif
 
 # Add HOST_DIR to PATH for codegenerator.mk to find swig
-define XBMC_BOOTSTRAP
+define KODI_BOOTSTRAP
 	cd $(@D) && PATH=$(BR_PATH) ./bootstrap
 endef
-XBMC_PRE_CONFIGURE_HOOKS += XBMC_BOOTSTRAP
+KODI_PRE_CONFIGURE_HOOKS += KODI_BOOTSTRAP
 
-define XBMC_CLEAN_UNUSED_ADDONS
+define KODI_CLEAN_UNUSED_ADDONS
 	rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/screensaver.rsxs.plasma
 	rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.milkdrop
 	rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.projectm
 	rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.itunes
 endef
-XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_CLEAN_UNUSED_ADDONS
+KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_UNUSED_ADDONS
 
-define XBMC_CLEAN_CONFLUENCE_SKIN
+define KODI_CLEAN_CONFLUENCE_SKIN
 	find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.png -delete
 	find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.jpg -delete
 endef
-XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_CLEAN_CONFLUENCE_SKIN
+KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_CONFLUENCE_SKIN
 
-define XBMC_INSTALL_BR_WRAPPER
-	$(INSTALL) -D -m 0755 package/xbmc/br-xbmc \
-		$(TARGET_DIR)/usr/bin/br-xbmc
+define KODI_INSTALL_BR_WRAPPER
+	$(INSTALL) -D -m 0755 package/kodi/br-kodi \
+		$(TARGET_DIR)/usr/bin/br-kodi
 endef
-XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_INSTALL_BR_WRAPPER
+KODI_POST_INSTALL_TARGET_HOOKS += KODI_INSTALL_BR_WRAPPER
 
-# When run from a startup script, XBMC has no $HOME where to store its
+# When run from a startup script, Kodi has no $HOME where to store its
 # configuration, so ends up storing it in /.xbmc  (yes, at the root of
 # the rootfs). This is a problem for read-only filesystems. But we can't
 # easily change that, so create /.xbmc as a symlink where we want the
 # config to eventually be.
-define XBMC_INSTALL_CONFIG_DIR
-	$(INSTALL) -d -m 0755 $(TARGET_DIR)/var/xbmc
-	ln -sf /var/xbmc $(TARGET_DIR)/.xbmc
+define KODI_INSTALL_CONFIG_DIR
+	$(INSTALL) -d -m 0755 $(TARGET_DIR)/var/kodi
+	ln -sf /var/kodi $(TARGET_DIR)/.xbmc
 endef
-XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_INSTALL_CONFIG_DIR
+KODI_POST_INSTALL_TARGET_HOOKS += KODI_INSTALL_CONFIG_DIR
 
-define XBMC_INSTALL_INIT_SYSV
-	$(INSTALL) -D -m 755 package/xbmc/S50xbmc \
-		$(TARGET_DIR)/etc/init.d/S50xbmc
+define KODI_INSTALL_INIT_SYSV
+	$(INSTALL) -D -m 755 package/kodi/S50kodi \
+		$(TARGET_DIR)/etc/init.d/S50kodi
 endef
 
-define XBMC_INSTALL_INIT_SYSTEMD
-	$(INSTALL) -D -m 644 package/xbmc/xbmc.service \
-		$(TARGET_DIR)/etc/systemd/system/xbmc.service
+define KODI_INSTALL_INIT_SYSTEMD
+	$(INSTALL) -D -m 644 package/kodi/kodi.service \
+		$(TARGET_DIR)/etc/systemd/system/kodi.service
 
 	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
 
-	ln -fs ../xbmc.service \
-		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/xbmc.service
+	ln -fs ../kodi.service \
+		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/kodi.service
 endef
 
 $(eval $(autotools-package))
diff --git a/package/kodi/kodi.service b/package/kodi/kodi.service
index 3fe5895..acd3b8e 100644
--- a/package/kodi/kodi.service
+++ b/package/kodi/kodi.service
@@ -1,5 +1,5 @@
 [Unit]
-Description = XBMC media center
+Description = Kodi Entertainment Center
 After = network.target
 
 [Service]
diff --git a/package/xbmc-addon-xvdr/xbmc-addon-xvdr.mk b/package/xbmc-addon-xvdr/xbmc-addon-xvdr.mk
index a4d9624..16f3a0d 100644
--- a/package/xbmc-addon-xvdr/xbmc-addon-xvdr.mk
+++ b/package/xbmc-addon-xvdr/xbmc-addon-xvdr.mk
@@ -21,6 +21,6 @@ XBMC_ADDON_XVDR_AUTORECONF = YES
 # This really is a runtime dependency, but we need XBMC to be installed
 # first, since we'll install files in XBMC's directories _after_ XBMC has
 # installed his own files
-XBMC_ADDON_XVDR_DEPENDENCIES = xbmc
+XBMC_ADDON_XVDR_DEPENDENCIES = kodi
 
 $(eval $(autotools-package))
diff --git a/package/xbmc-pvr-addons/xbmc-pvr-addons.mk b/package/xbmc-pvr-addons/xbmc-pvr-addons.mk
index bfcb7ed..4410153 100644
--- a/package/xbmc-pvr-addons/xbmc-pvr-addons.mk
+++ b/package/xbmc-pvr-addons/xbmc-pvr-addons.mk
@@ -18,7 +18,7 @@ XBMC_PVR_ADDONS_DEPENDENCIES = boost zlib
 # This really is a runtime dependency, but we need XBMC to be installed
 # first, since we'll install files in XBMC's directories _after_ XBMC has
 # installed its own files
-XBMC_PVR_ADDONS_DEPENDENCIES += xbmc
+XBMC_PVR_ADDONS_DEPENDENCIES += kodi
 
 XBMC_PVR_ADDONS_CONF_OPTS = \
 	--enable-release \
-- 
1.7.10.4

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

* [Buildroot] [RFC/PATCH v2 4/4] package/kodi: Bump version to 14.0a4-Helix
  2014-10-06 20:47 [Buildroot] [RFC/PATCH v2 0/4] package/kodi: Bump version to 14.0a4-Helix Bernd Kuhls
                   ` (2 preceding siblings ...)
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 3/4] Rename XBMC to Kodi - part II - rename variables Bernd Kuhls
@ 2014-10-06 20:48 ` Bernd Kuhls
  2014-10-06 20:56   ` Yann E. MORIN
  3 siblings, 1 reply; 6+ messages in thread
From: Bernd Kuhls @ 2014-10-06 20:48 UTC (permalink / raw)
  To: buildroot

- delete kodi-0002-mathutil.patch, committed upstream
- add dependency to ffmpeg, xbmc does not deliver its own ffmpeg anymore
- remove dependency to lame, audio encoders have been seperated from kodi

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/kodi/Config.in                |    3 +
 package/kodi/kodi-0002-mathutil.patch |  213 ---------------------------------
 package/kodi/kodi.mk                  |   26 +---
 3 files changed, 8 insertions(+), 234 deletions(-)
 delete mode 100644 package/kodi/kodi-0002-mathutil.patch

diff --git a/package/kodi/Config.in b/package/kodi/Config.in
index 3f14a75..de32ec9 100644
--- a/package/kodi/Config.in
+++ b/package/kodi/Config.in
@@ -35,6 +35,9 @@ menuconfig BR2_PACKAGE_KODI
 	select BR2_PACKAGE_BOOST_THREAD
 	select BR2_PACKAGE_BZIP2
 	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_FFMPEG
+	select BR2_PACKAGE_FFMPEG_GPL
+	select BR2_PACKAGE_FFMPEG_POSTPROC # postproc depends on GPL
 	select BR2_PACKAGE_FLAC
 	select BR2_PACKAGE_FONTCONFIG
 	select BR2_PACKAGE_FREETYPE
diff --git a/package/kodi/kodi-0002-mathutil.patch b/package/kodi/kodi-0002-mathutil.patch
deleted file mode 100644
index 33f91eb..0000000
--- a/package/kodi/kodi-0002-mathutil.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-Taken from upstream PR: https://github.com/xbmc/xbmc/pull/3760
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-
-From 7388e8be7cd5e78100532ebf0dba15dccb7b03f8 Mon Sep 17 00:00:00 2001
-From: Ben Avison <bavison@riscosopen.org>
-Date: Tue, 3 Dec 2013 15:51:39 +0000
-Subject: [PATCH] Faster and simpler portable implementation of
- MathUtils::round_int().
-
-Much as I like a bit of inline assembler, I have also removed the ARM versions
-of MathUtils::truncate_int() and MathUtils::round_int(). The former was just
-how any sane compiler should have assembled a cast from double to signed int
-anyway. The latter was a much too complicated way to achieve the desired
-effect, and was switched out in most ARM builds anyway in favour of the old
-portable implementation that used floor().
-
-Verified that MathUtils::test() still passes, and that GCC is now able to
-inline MathUtils::round_int(), where it didn't previously.
-
-I tested on a Raspberry Pi with the default theme, displaying the front page
-with the RSS ticker enabled. This saturates the CPU, so I'm measuring the
-improvement using the debug window's FPS figure. This patch improves this from
-~50.8 FPS to ~52.6 FPS.
----
- xbmc/utils/MathUtils.h | 129 +++++++++++++++++++++++--------------------------
- 1 file changed, 61 insertions(+), 68 deletions(-)
-
-diff --git a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
-index 96af9f4..0dae77d 100644
---- a/xbmc/utils/MathUtils.h
-+++ b/xbmc/utils/MathUtils.h
-@@ -34,17 +34,13 @@
- 
- #if defined(__ppc__) || \
-     defined(__powerpc__) || \
--   (defined(TARGET_DARWIN_IOS) && defined(__llvm__)) || \
--   (defined(TARGET_ANDROID) && defined(__arm__)) || \
--    defined(TARGET_RASPBERRY_PI)
-+    defined(__arm__)
-   #define DISABLE_MATHUTILS_ASM_ROUND_INT
- #endif
- 
- #if defined(__ppc__) || \
-     defined(__powerpc__) || \
--   (defined(TARGET_DARWIN) && defined(__llvm__)) || \
--   (defined(TARGET_ANDROID) && defined(__arm__)) || \
--    defined(TARGET_RASPBERRY_PI)
-+    defined(__arm__)
-   #define DISABLE_MATHUTILS_ASM_TRUNCATE_INT
- #endif
- 
-@@ -73,60 +69,63 @@
-   {
-     assert(x > static_cast<double>(INT_MIN / 2) - 1.0);
-     assert(x < static_cast<double>(INT_MAX / 2) + 1.0);
--    const float round_to_nearest = 0.5f;
--    int i;
- 
- #if defined(DISABLE_MATHUTILS_ASM_ROUND_INT)
--    i = floor(x + round_to_nearest);
--
--#elif defined(__arm__)
--    // From 'ARM-v7-M Architecture Reference Manual' page A7-569:
--    //  "The floating-point to integer operation (vcvt) [normally] uses the Round towards Zero rounding mode"
--    // Because of this...we must use some less-than-straightforward logic to perform this operation without
--    //  changing the rounding mode flags
--
--    /* The assembly below implements the following logic:
--     if (x < 0)
--       inc = -0.5f
--     else
--       inc = 0.5f
--     int_val = trunc(x+inc);
--     err = x - int_val;
--     if (err == 0.5f)
--       int_val++;
--     return int_val;
--    */
-+    /* This implementation warrants some further explanation.
-+     *
-+     * First, a couple of notes on rounding:
-+     * 1) C casts from float/double to integer round towards zero.
-+     * 2) Float/double additions are rounded according to the normal rules,
-+     *    in other words: on some architectures, it's fixed at compile-time,
-+     *    and on others it can be set using fesetround()). The following
-+     *    analysis assumes round-to-nearest with ties rounding to even. This
-+     *    is a fairly sensible choice, and is the default with ARM VFP.
-+     *
-+     * What this function wants is round-to-nearest with ties rounding to
-+     * +infinity. This isn't an IEEE rounding mode, even if we could guarantee
-+     * that all architectures supported fesetround(), which they don't. Instead,
-+     * this adds an offset of 2147483648.5 (= 0x80000000.8p0), then casts to
-+     * an unsigned int (crucially, all possible inputs are now in a range where
-+     * round to zero acts the same as round to -infinity) and then subtracts
-+     * 0x80000000 in the integer domain. The 0.5 component of the offset
-+     * converts what is effectively a round down into a round to nearest, with
-+     * ties rounding up, as desired.
-+     *
-+     * There is a catch, that because there is a double rounding, there is a
-+     * small region where the input falls just *below* a tie, where the addition
-+     * of the offset causes a round *up* to an exact integer, due to the finite
-+     * level of precision available in floating point. You need to be aware of
-+     * this when calling this function, although@present it is not believed
-+     * that XBMC ever attempts to round numbers in this window.
-+     *
-+     * It is worth proving the size of the affected window. Recall that double
-+     * precision employs a mantissa of 52 bits.
-+     * 1) For all inputs -0.5 <= x <= INT_MAX
-+     *    Once the offset is applied, the most significant binary digit in the
-+     *    floating-point representation is +2^31.
-+     *    At this magnitude, the smallest step representable in double precision
-+     *    is 2^31 / 2^52 = 0.000000476837158203125
-+     *    So the size of the range which is rounded up due to the addition is
-+     *    half the size of this step, or 0.0000002384185791015625
-+     *
-+     * 2) For all inputs INT_MIN/2 < x < -0.5
-+     *    Once the offset is applied, the most significant binary digit in the
-+     *    floating-point representation is +2^30.
-+     *    At this magnitude, the smallest step representable in double precision
-+     *    is 2^30 / 2^52 = 0.0000002384185791015625
-+     *    So the size of the range which is rounded up due to the addition is
-+     *    half the size of this step, or 0.00000011920928955078125
-+     *
-+     * 3) For all inputs INT_MIN <= x <= INT_MIN/2
-+     *    The representation once the offset is applied has equal or greater
-+     *    precision than the input, so the addition does not cause rounding.
-+     */
-+    return ((unsigned int) (x + 0x80000000.8p0)) - 0x80000000;
- 
--    __asm__ __volatile__ (
--#if defined(__ARM_PCS_VFP)
--      "fconstd d1,#%G[rnd_val]     \n\t" // Copy round_to_nearest into a working register (d1 = 0.5)
- #else
--      "vmov.F64 d1,%[rnd_val]      \n\t"
--#endif
--      "fcmpezd %P[value]           \n\t" // Check value against zero (value == 0?)
--      "fmstat                      \n\t" // Copy the floating-point status flags into the general-purpose status flags
--      "it mi                       \n\t"
--      "vnegmi.F64 d1, d1           \n\t" // if N-flag is set, negate round_to_nearest (if (value < 0) d1 = -1 * d1)
--      "vadd.F64 d1,%P[value],d1    \n\t" // Add round_to_nearest to value, store result in working register (d1 += value)
--      "vcvt.S32.F64 s3,d1          \n\t" // Truncate(round towards zero) (s3 = (int)d1)
--      "vmov %[result],s3           \n\t" // Store the integer result in a general-purpose register (result = s3)
--      "vcvt.F64.S32 d1,s3          \n\t" // Convert back to floating-point (d1 = (double)s3)
--      "vsub.F64 d1,%P[value],d1    \n\t" // Calculate the error (d1 = value - d1)
--#if defined(__ARM_PCS_VFP)
--      "fconstd d2,#%G[rnd_val]     \n\t" // d2 = 0.5;
--#else
--      "vmov.F64 d2,%[rnd_val]      \n\t"
--#endif
--      "fcmped d1, d2               \n\t" // (d1 == 0.5?)
--      "fmstat                      \n\t" // Copy the floating-point status flags into the general-purpose status flags
--      "it eq                       \n\t"
--      "addeq %[result],#1          \n\t" // (if (d1 == d2) result++;)
--      : [result] "=r"(i)                                  // Outputs
--      : [rnd_val] "Dv" (round_to_nearest), [value] "w"(x) // Inputs
--      : "d1", "d2", "s3"                                  // Clobbers
--    );
--
--#elif defined(__SSE2__)
-+    const float round_to_nearest = 0.5f;
-+    int i;
-+#if defined(__SSE2__)
-     const float round_dn_to_nearest = 0.4999999f;
-     i = (x > 0) ? _mm_cvttsd_si32(_mm_set_sd(x + round_to_nearest)) : _mm_cvttsd_si32(_mm_set_sd(x - round_dn_to_nearest));
- 
-@@ -150,8 +149,8 @@
-     );
- 
- #endif
--
-     return i;
-+#endif
-   }
- 
-   /*! \brief Truncate to nearest integer.
-@@ -165,20 +164,13 @@
-   {
-     assert(x > static_cast<double>(INT_MIN / 2) - 1.0);
-     assert(x < static_cast<double>(INT_MAX / 2) + 1.0);
--    int i;
- 
- #if defined(DISABLE_MATHUTILS_ASM_TRUNCATE_INT)
--    return i = (int)x;
--
--#elif defined(__arm__)
--    __asm__ __volatile__ (
--      "vcvt.S32.F64 %[result],%P[value]   \n\t" // Truncate(round towards zero) and store the result
--      : [result] "=w"(i)                        // Outputs
--      : [value] "w"(x)                          // Inputs
--    );
--    return i;
-+    return x;
- 
--#elif defined(TARGET_WINDOWS)
-+#else
-+    int i;
-+#if defined(TARGET_WINDOWS)
-     const float round_towards_m_i = -0.5f;
-     __asm
-     {
-@@ -204,6 +196,7 @@
-     if (x < 0)
-       i = -i;
-     return (i);
-+#endif
-   }
- 
-   inline int64_t abs(int64_t a)
--- 
-1.9.1
-
diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
index 5e74da0..1a481ce 100644
--- a/package/kodi/kodi.mk
+++ b/package/kodi/kodi.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-KODI_VERSION = 13.2-Gotham
+KODI_VERSION = 14.0a4-Helix
 KODI_SOURCE = $(KODI_VERSION).tar.gz
 KODI_SITE = https://github.com/xbmc/xbmc/archive
 KODI_LICENSE = GPLv2
@@ -13,22 +13,13 @@ KODI_LICENSE_FILES = LICENSE.GPL
 # called TexturePacker. It is responsible to take all the images used in the
 # GUI and pack them in a blob.
 # http://wiki.xbmc.org/index.php?title=TexturePacker
-KODI_DEPENDENCIES = host-gawk host-gettext host-gperf host-infozip host-lzo host-sdl_image host-swig
-KODI_DEPENDENCIES += boost bzip2 expat flac fontconfig freetype jasper jpeg \
+KODI_DEPENDENCIES = host-gawk host-gettext host-gperf host-infozip host-lzo \
+	host-nasm host-sdl_image host-swig
+KODI_DEPENDENCIES += boost bzip2 expat ffmpeg flac fontconfig freetype jasper jpeg \
 	libass libcdio libcurl libfribidi libgcrypt libmad libmodplug libmpeg2 \
 	libogg libplist libpng libsamplerate libungif libvorbis libxml2 libxslt lzo ncurses \
 	openssl pcre python readline sqlite taglib tiff tinyxml yajl zlib
 
-# kodi@i386 depends on nasm
-KODI_DEPENDENCIES += $(if $(BR2_i386),host-nasm)
-
-# ffmpeg depends on yasm on MMX archs
-# kodi configure passes $(BR2_ARCH) to ffmpeg configure which adds
-# yasm as dependency for x86_64, even if BR2_x86_generic=y
-ifneq ($(BR2_X86_CPU_HAS_MMX)$(BR2_x86_64),)
-KODI_DEPENDENCIES += host-yasm
-endif
-
 KODI_CONF_ENV = \
 	PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)" \
 	PYTHON_LDFLAGS="-lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm" \
@@ -40,7 +31,7 @@ KODI_CONF_ENV = \
 	TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
 
 KODI_CONF_OPTS +=  \
-	--with-arch=$(BR2_ARCH) \
+	--with-ffmpeg=shared \
 	--disable-crystalhd \
 	--disable-debug \
 	--disable-dvdcss \
@@ -78,13 +69,6 @@ else
 KODI_CONF_OPTS += --disable-alsa
 endif
 
-ifeq ($(BR2_PACKAGE_LAME),y)
-KODI_DEPENDENCIES += lame
-KODI_CONF_OPTS += --enable-libmp3lame
-else
-KODI_CONF_OPTS += --disable-libmp3lame
-endif
-
 # quote from kodi/configure.in: "GLES overwrites GL if both set to yes."
 # we choose the opposite because opengl offers more features, like libva support
 ifeq ($(BR2_PACKAGE_KODI_GL),y)
-- 
1.7.10.4

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

* [Buildroot] [RFC/PATCH v2 4/4] package/kodi: Bump version to 14.0a4-Helix
  2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 4/4] package/kodi: Bump version to 14.0a4-Helix Bernd Kuhls
@ 2014-10-06 20:56   ` Yann E. MORIN
  0 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2014-10-06 20:56 UTC (permalink / raw)
  To: buildroot

Bernd, All,

On 2014-10-06 22:48 +0200, Bernd Kuhls spake thusly:
> - delete kodi-0002-mathutil.patch, committed upstream
> - add dependency to ffmpeg, xbmc does not deliver its own ffmpeg anymore
> - remove dependency to lame, audio encoders have been seperated from kodi

To be noted for the others: audio encoders are now separate plugins,
like the PVR plugins, and can be added later as new packages in
Buildroot.

Otherwise, this series looks good. I'm eager to see Kodi get out of
detox! :-)

Regards,
Yann E. MORIN.

> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/kodi/Config.in                |    3 +
>  package/kodi/kodi-0002-mathutil.patch |  213 ---------------------------------
>  package/kodi/kodi.mk                  |   26 +---
>  3 files changed, 8 insertions(+), 234 deletions(-)
>  delete mode 100644 package/kodi/kodi-0002-mathutil.patch
> 
> diff --git a/package/kodi/Config.in b/package/kodi/Config.in
> index 3f14a75..de32ec9 100644
> --- a/package/kodi/Config.in
> +++ b/package/kodi/Config.in
> @@ -35,6 +35,9 @@ menuconfig BR2_PACKAGE_KODI
>  	select BR2_PACKAGE_BOOST_THREAD
>  	select BR2_PACKAGE_BZIP2
>  	select BR2_PACKAGE_EXPAT
> +	select BR2_PACKAGE_FFMPEG
> +	select BR2_PACKAGE_FFMPEG_GPL
> +	select BR2_PACKAGE_FFMPEG_POSTPROC # postproc depends on GPL
>  	select BR2_PACKAGE_FLAC
>  	select BR2_PACKAGE_FONTCONFIG
>  	select BR2_PACKAGE_FREETYPE
> diff --git a/package/kodi/kodi-0002-mathutil.patch b/package/kodi/kodi-0002-mathutil.patch
> deleted file mode 100644
> index 33f91eb..0000000
> --- a/package/kodi/kodi-0002-mathutil.patch
> +++ /dev/null
> @@ -1,213 +0,0 @@
> -Taken from upstream PR: https://github.com/xbmc/xbmc/pull/3760
> -
> -Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> -
> -
> -From 7388e8be7cd5e78100532ebf0dba15dccb7b03f8 Mon Sep 17 00:00:00 2001
> -From: Ben Avison <bavison@riscosopen.org>
> -Date: Tue, 3 Dec 2013 15:51:39 +0000
> -Subject: [PATCH] Faster and simpler portable implementation of
> - MathUtils::round_int().
> -
> -Much as I like a bit of inline assembler, I have also removed the ARM versions
> -of MathUtils::truncate_int() and MathUtils::round_int(). The former was just
> -how any sane compiler should have assembled a cast from double to signed int
> -anyway. The latter was a much too complicated way to achieve the desired
> -effect, and was switched out in most ARM builds anyway in favour of the old
> -portable implementation that used floor().
> -
> -Verified that MathUtils::test() still passes, and that GCC is now able to
> -inline MathUtils::round_int(), where it didn't previously.
> -
> -I tested on a Raspberry Pi with the default theme, displaying the front page
> -with the RSS ticker enabled. This saturates the CPU, so I'm measuring the
> -improvement using the debug window's FPS figure. This patch improves this from
> -~50.8 FPS to ~52.6 FPS.
> ----
> - xbmc/utils/MathUtils.h | 129 +++++++++++++++++++++++--------------------------
> - 1 file changed, 61 insertions(+), 68 deletions(-)
> -
> -diff --git a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
> -index 96af9f4..0dae77d 100644
> ---- a/xbmc/utils/MathUtils.h
> -+++ b/xbmc/utils/MathUtils.h
> -@@ -34,17 +34,13 @@
> - 
> - #if defined(__ppc__) || \
> -     defined(__powerpc__) || \
> --   (defined(TARGET_DARWIN_IOS) && defined(__llvm__)) || \
> --   (defined(TARGET_ANDROID) && defined(__arm__)) || \
> --    defined(TARGET_RASPBERRY_PI)
> -+    defined(__arm__)
> -   #define DISABLE_MATHUTILS_ASM_ROUND_INT
> - #endif
> - 
> - #if defined(__ppc__) || \
> -     defined(__powerpc__) || \
> --   (defined(TARGET_DARWIN) && defined(__llvm__)) || \
> --   (defined(TARGET_ANDROID) && defined(__arm__)) || \
> --    defined(TARGET_RASPBERRY_PI)
> -+    defined(__arm__)
> -   #define DISABLE_MATHUTILS_ASM_TRUNCATE_INT
> - #endif
> - 
> -@@ -73,60 +69,63 @@
> -   {
> -     assert(x > static_cast<double>(INT_MIN / 2) - 1.0);
> -     assert(x < static_cast<double>(INT_MAX / 2) + 1.0);
> --    const float round_to_nearest = 0.5f;
> --    int i;
> - 
> - #if defined(DISABLE_MATHUTILS_ASM_ROUND_INT)
> --    i = floor(x + round_to_nearest);
> --
> --#elif defined(__arm__)
> --    // From 'ARM-v7-M Architecture Reference Manual' page A7-569:
> --    //  "The floating-point to integer operation (vcvt) [normally] uses the Round towards Zero rounding mode"
> --    // Because of this...we must use some less-than-straightforward logic to perform this operation without
> --    //  changing the rounding mode flags
> --
> --    /* The assembly below implements the following logic:
> --     if (x < 0)
> --       inc = -0.5f
> --     else
> --       inc = 0.5f
> --     int_val = trunc(x+inc);
> --     err = x - int_val;
> --     if (err == 0.5f)
> --       int_val++;
> --     return int_val;
> --    */
> -+    /* This implementation warrants some further explanation.
> -+     *
> -+     * First, a couple of notes on rounding:
> -+     * 1) C casts from float/double to integer round towards zero.
> -+     * 2) Float/double additions are rounded according to the normal rules,
> -+     *    in other words: on some architectures, it's fixed at compile-time,
> -+     *    and on others it can be set using fesetround()). The following
> -+     *    analysis assumes round-to-nearest with ties rounding to even. This
> -+     *    is a fairly sensible choice, and is the default with ARM VFP.
> -+     *
> -+     * What this function wants is round-to-nearest with ties rounding to
> -+     * +infinity. This isn't an IEEE rounding mode, even if we could guarantee
> -+     * that all architectures supported fesetround(), which they don't. Instead,
> -+     * this adds an offset of 2147483648.5 (= 0x80000000.8p0), then casts to
> -+     * an unsigned int (crucially, all possible inputs are now in a range where
> -+     * round to zero acts the same as round to -infinity) and then subtracts
> -+     * 0x80000000 in the integer domain. The 0.5 component of the offset
> -+     * converts what is effectively a round down into a round to nearest, with
> -+     * ties rounding up, as desired.
> -+     *
> -+     * There is a catch, that because there is a double rounding, there is a
> -+     * small region where the input falls just *below* a tie, where the addition
> -+     * of the offset causes a round *up* to an exact integer, due to the finite
> -+     * level of precision available in floating point. You need to be aware of
> -+     * this when calling this function, although at present it is not believed
> -+     * that XBMC ever attempts to round numbers in this window.
> -+     *
> -+     * It is worth proving the size of the affected window. Recall that double
> -+     * precision employs a mantissa of 52 bits.
> -+     * 1) For all inputs -0.5 <= x <= INT_MAX
> -+     *    Once the offset is applied, the most significant binary digit in the
> -+     *    floating-point representation is +2^31.
> -+     *    At this magnitude, the smallest step representable in double precision
> -+     *    is 2^31 / 2^52 = 0.000000476837158203125
> -+     *    So the size of the range which is rounded up due to the addition is
> -+     *    half the size of this step, or 0.0000002384185791015625
> -+     *
> -+     * 2) For all inputs INT_MIN/2 < x < -0.5
> -+     *    Once the offset is applied, the most significant binary digit in the
> -+     *    floating-point representation is +2^30.
> -+     *    At this magnitude, the smallest step representable in double precision
> -+     *    is 2^30 / 2^52 = 0.0000002384185791015625
> -+     *    So the size of the range which is rounded up due to the addition is
> -+     *    half the size of this step, or 0.00000011920928955078125
> -+     *
> -+     * 3) For all inputs INT_MIN <= x <= INT_MIN/2
> -+     *    The representation once the offset is applied has equal or greater
> -+     *    precision than the input, so the addition does not cause rounding.
> -+     */
> -+    return ((unsigned int) (x + 0x80000000.8p0)) - 0x80000000;
> - 
> --    __asm__ __volatile__ (
> --#if defined(__ARM_PCS_VFP)
> --      "fconstd d1,#%G[rnd_val]     \n\t" // Copy round_to_nearest into a working register (d1 = 0.5)
> - #else
> --      "vmov.F64 d1,%[rnd_val]      \n\t"
> --#endif
> --      "fcmpezd %P[value]           \n\t" // Check value against zero (value == 0?)
> --      "fmstat                      \n\t" // Copy the floating-point status flags into the general-purpose status flags
> --      "it mi                       \n\t"
> --      "vnegmi.F64 d1, d1           \n\t" // if N-flag is set, negate round_to_nearest (if (value < 0) d1 = -1 * d1)
> --      "vadd.F64 d1,%P[value],d1    \n\t" // Add round_to_nearest to value, store result in working register (d1 += value)
> --      "vcvt.S32.F64 s3,d1          \n\t" // Truncate(round towards zero) (s3 = (int)d1)
> --      "vmov %[result],s3           \n\t" // Store the integer result in a general-purpose register (result = s3)
> --      "vcvt.F64.S32 d1,s3          \n\t" // Convert back to floating-point (d1 = (double)s3)
> --      "vsub.F64 d1,%P[value],d1    \n\t" // Calculate the error (d1 = value - d1)
> --#if defined(__ARM_PCS_VFP)
> --      "fconstd d2,#%G[rnd_val]     \n\t" // d2 = 0.5;
> --#else
> --      "vmov.F64 d2,%[rnd_val]      \n\t"
> --#endif
> --      "fcmped d1, d2               \n\t" // (d1 == 0.5?)
> --      "fmstat                      \n\t" // Copy the floating-point status flags into the general-purpose status flags
> --      "it eq                       \n\t"
> --      "addeq %[result],#1          \n\t" // (if (d1 == d2) result++;)
> --      : [result] "=r"(i)                                  // Outputs
> --      : [rnd_val] "Dv" (round_to_nearest), [value] "w"(x) // Inputs
> --      : "d1", "d2", "s3"                                  // Clobbers
> --    );
> --
> --#elif defined(__SSE2__)
> -+    const float round_to_nearest = 0.5f;
> -+    int i;
> -+#if defined(__SSE2__)
> -     const float round_dn_to_nearest = 0.4999999f;
> -     i = (x > 0) ? _mm_cvttsd_si32(_mm_set_sd(x + round_to_nearest)) : _mm_cvttsd_si32(_mm_set_sd(x - round_dn_to_nearest));
> - 
> -@@ -150,8 +149,8 @@
> -     );
> - 
> - #endif
> --
> -     return i;
> -+#endif
> -   }
> - 
> -   /*! \brief Truncate to nearest integer.
> -@@ -165,20 +164,13 @@
> -   {
> -     assert(x > static_cast<double>(INT_MIN / 2) - 1.0);
> -     assert(x < static_cast<double>(INT_MAX / 2) + 1.0);
> --    int i;
> - 
> - #if defined(DISABLE_MATHUTILS_ASM_TRUNCATE_INT)
> --    return i = (int)x;
> --
> --#elif defined(__arm__)
> --    __asm__ __volatile__ (
> --      "vcvt.S32.F64 %[result],%P[value]   \n\t" // Truncate(round towards zero) and store the result
> --      : [result] "=w"(i)                        // Outputs
> --      : [value] "w"(x)                          // Inputs
> --    );
> --    return i;
> -+    return x;
> - 
> --#elif defined(TARGET_WINDOWS)
> -+#else
> -+    int i;
> -+#if defined(TARGET_WINDOWS)
> -     const float round_towards_m_i = -0.5f;
> -     __asm
> -     {
> -@@ -204,6 +196,7 @@
> -     if (x < 0)
> -       i = -i;
> -     return (i);
> -+#endif
> -   }
> - 
> -   inline int64_t abs(int64_t a)
> --- 
> -1.9.1
> -
> diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
> index 5e74da0..1a481ce 100644
> --- a/package/kodi/kodi.mk
> +++ b/package/kodi/kodi.mk
> @@ -4,7 +4,7 @@
>  #
>  ################################################################################
>  
> -KODI_VERSION = 13.2-Gotham
> +KODI_VERSION = 14.0a4-Helix
>  KODI_SOURCE = $(KODI_VERSION).tar.gz
>  KODI_SITE = https://github.com/xbmc/xbmc/archive
>  KODI_LICENSE = GPLv2
> @@ -13,22 +13,13 @@ KODI_LICENSE_FILES = LICENSE.GPL
>  # called TexturePacker. It is responsible to take all the images used in the
>  # GUI and pack them in a blob.
>  # http://wiki.xbmc.org/index.php?title=TexturePacker
> -KODI_DEPENDENCIES = host-gawk host-gettext host-gperf host-infozip host-lzo host-sdl_image host-swig
> -KODI_DEPENDENCIES += boost bzip2 expat flac fontconfig freetype jasper jpeg \
> +KODI_DEPENDENCIES = host-gawk host-gettext host-gperf host-infozip host-lzo \
> +	host-nasm host-sdl_image host-swig
> +KODI_DEPENDENCIES += boost bzip2 expat ffmpeg flac fontconfig freetype jasper jpeg \
>  	libass libcdio libcurl libfribidi libgcrypt libmad libmodplug libmpeg2 \
>  	libogg libplist libpng libsamplerate libungif libvorbis libxml2 libxslt lzo ncurses \
>  	openssl pcre python readline sqlite taglib tiff tinyxml yajl zlib
>  
> -# kodi at i386 depends on nasm
> -KODI_DEPENDENCIES += $(if $(BR2_i386),host-nasm)
> -
> -# ffmpeg depends on yasm on MMX archs
> -# kodi configure passes $(BR2_ARCH) to ffmpeg configure which adds
> -# yasm as dependency for x86_64, even if BR2_x86_generic=y
> -ifneq ($(BR2_X86_CPU_HAS_MMX)$(BR2_x86_64),)
> -KODI_DEPENDENCIES += host-yasm
> -endif
> -
>  KODI_CONF_ENV = \
>  	PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)" \
>  	PYTHON_LDFLAGS="-lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm" \
> @@ -40,7 +31,7 @@ KODI_CONF_ENV = \
>  	TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
>  
>  KODI_CONF_OPTS +=  \
> -	--with-arch=$(BR2_ARCH) \
> +	--with-ffmpeg=shared \
>  	--disable-crystalhd \
>  	--disable-debug \
>  	--disable-dvdcss \
> @@ -78,13 +69,6 @@ else
>  KODI_CONF_OPTS += --disable-alsa
>  endif
>  
> -ifeq ($(BR2_PACKAGE_LAME),y)
> -KODI_DEPENDENCIES += lame
> -KODI_CONF_OPTS += --enable-libmp3lame
> -else
> -KODI_CONF_OPTS += --disable-libmp3lame
> -endif
> -
>  # quote from kodi/configure.in: "GLES overwrites GL if both set to yes."
>  # we choose the opposite because opengl offers more features, like libva support
>  ifeq ($(BR2_PACKAGE_KODI_GL),y)
> -- 
> 1.7.10.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

end of thread, other threads:[~2014-10-06 20:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-06 20:47 [Buildroot] [RFC/PATCH v2 0/4] package/kodi: Bump version to 14.0a4-Helix Bernd Kuhls
2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 1/4] package/ffmpeg: Add Kodi patchset Bernd Kuhls
2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 2/4] Rename XBMC to Kodi - part I - move files Bernd Kuhls
2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 3/4] Rename XBMC to Kodi - part II - rename variables Bernd Kuhls
2014-10-06 20:48 ` [Buildroot] [RFC/PATCH v2 4/4] package/kodi: Bump version to 14.0a4-Helix Bernd Kuhls
2014-10-06 20:56   ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).