ffmpeg: update kodi patch

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2015-11-18 11:11:50 +01:00
parent b1cee411e4
commit 358440e98d

View File

@ -1,7 +1,7 @@
From beecab7dbe5f2c3c8b1c01d10656505b073b7c10 Mon Sep 17 00:00:00 2001 From 0e110e0dba8a22ea481fa5615ebcef6c15a96463 Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@ecce.se> From: Joakim Plate <elupus@ecce.se>
Date: Sun, 11 Sep 2011 19:04:51 +0200 Date: Sun, 11 Sep 2011 19:04:51 +0200
Subject: [PATCH 01/12] Support raw dvdsub palette as stored on normal dvd's Subject: [PATCH 01/13] Support raw dvdsub palette as stored on normal dvd's
This is how the palette is stored on dvd's. Currently This is how the palette is stored on dvd's. Currently
only xbmc passes the palette information to libavcodec only xbmc passes the palette information to libavcodec
@ -53,10 +53,10 @@ index 7120f10..4440f00 100644
int i; int i;
av_log(avctx, AV_LOG_DEBUG, "palette:"); av_log(avctx, AV_LOG_DEBUG, "palette:");
From 612990b5e41df5b52ad6463e6b804945d37dd3e2 Mon Sep 17 00:00:00 2001 From 748abb8aa4837e3e6808d75c508dbc233ce5e9df Mon Sep 17 00:00:00 2001
From: Cory Fields <theuni-nospam-@xbmc.org> From: Cory Fields <theuni-nospam-@xbmc.org>
Date: Mon, 28 Jun 2010 01:55:31 -0400 Date: Mon, 28 Jun 2010 01:55:31 -0400
Subject: [PATCH 02/12] if av_read_packet returns AVERROR_IO, we are done. Subject: [PATCH 02/13] if av_read_packet returns AVERROR_IO, we are done.
ffmpeg's codecs might or might not handle returning any completed demuxed ffmpeg's codecs might or might not handle returning any completed demuxed
packets correctly packets correctly
@ -78,10 +78,10 @@ index e67147c..88c51fd 100644
for (i = 0; i < s->nb_streams; i++) { for (i = 0; i < s->nb_streams; i++) {
st = s->streams[i]; st = s->streams[i];
From b0576542dafb1bea44f752a6aea59dce5162959b Mon Sep 17 00:00:00 2001 From 0b8ae9da4f78a4681dee2a6a3f3deeef059d1eac Mon Sep 17 00:00:00 2001
From: Cory Fields <theuni-nospam-@xbmc.org> From: Cory Fields <theuni-nospam-@xbmc.org>
Date: Mon, 28 Jun 2010 02:10:50 -0400 Date: Mon, 28 Jun 2010 02:10:50 -0400
Subject: [PATCH 03/12] added: Ticket #7187, TV Teletext support for DVB EBU Subject: [PATCH 03/13] added: Ticket #7187, TV Teletext support for DVB EBU
Teletext streams Teletext streams
--- ---
@ -105,7 +105,7 @@ index 9d38b59..bc1b1b9 100644
AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs. AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs.
AV_CODEC_ID_TTF = 0x18000, AV_CODEC_ID_TTF = 0x18000,
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index ed0a86b..b285f2b 100644 index 65824dd..338861e 100644
--- a/libavformat/mpegts.c --- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c +++ b/libavformat/mpegts.c
@@ -756,6 +756,8 @@ static const StreamType DESC_types[] = { @@ -756,6 +756,8 @@ static const StreamType DESC_types[] = {
@ -118,17 +118,17 @@ index ed0a86b..b285f2b 100644
}; };
From e1ba26f0389b1033341a3dea7fe600c93be790fe Mon Sep 17 00:00:00 2001 From 173b882438900514f8c2793f2bc49cd6722cbd6a Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@ecce.se> From: Joakim Plate <elupus@ecce.se>
Date: Sun, 18 Sep 2011 19:16:34 +0200 Date: Sun, 18 Sep 2011 19:16:34 +0200
Subject: [PATCH 04/12] Don't accept mpegts PMT that isn't current Subject: [PATCH 04/13] Don't accept mpegts PMT that isn't current
--- ---
libavformat/mpegts.c | 4 ++++ libavformat/mpegts.c | 4 ++++
1 file changed, 4 insertions(+) 1 file changed, 4 insertions(+)
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index b285f2b..0643bc7 100644 index 338861e..d4168c8 100644
--- a/libavformat/mpegts.c --- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c +++ b/libavformat/mpegts.c
@@ -585,6 +585,7 @@ typedef struct SectionHeader { @@ -585,6 +585,7 @@ typedef struct SectionHeader {
@ -147,7 +147,7 @@ index b285f2b..0643bc7 100644
h->version = (val >> 1) & 0x1f; h->version = (val >> 1) & 0x1f;
val = get8(pp, p_end); val = get8(pp, p_end);
if (val < 0) if (val < 0)
@@ -2019,6 +2021,8 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len @@ -2020,6 +2022,8 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
return; return;
if (ts->skip_changes) if (ts->skip_changes)
return; return;
@ -157,17 +157,17 @@ index b285f2b..0643bc7 100644
if (skip_identical(h, tssf)) if (skip_identical(h, tssf))
return; return;
From 262670f195f933c553f446f1283911854ed4f05c Mon Sep 17 00:00:00 2001 From 3abc23ee058c91b24b1fb81303dcee508a1de49d Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@ecce.se> From: Joakim Plate <elupus@ecce.se>
Date: Sun, 18 Sep 2011 19:17:23 +0200 Date: Sun, 18 Sep 2011 19:17:23 +0200
Subject: [PATCH 05/12] Don't reparse PMT unless it's version has changed Subject: [PATCH 05/13] Don't reparse PMT unless it's version has changed
--- ---
libavformat/mpegts.c | 6 ++++++ libavformat/mpegts.c | 6 ++++++
1 file changed, 6 insertions(+) 1 file changed, 6 insertions(+)
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 0643bc7..ea7d335 100644 index d4168c8..9c6f6dc 100644
--- a/libavformat/mpegts.c --- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c +++ b/libavformat/mpegts.c
@@ -91,6 +91,7 @@ struct MpegTSFilter { @@ -91,6 +91,7 @@ struct MpegTSFilter {
@ -186,7 +186,7 @@ index 0643bc7..ea7d335 100644
return filter; return filter;
} }
@@ -2023,6 +2025,10 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len @@ -2024,6 +2026,10 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
return; return;
if (!h->current) if (!h->current)
return; return;
@ -198,10 +198,10 @@ index 0643bc7..ea7d335 100644
if (skip_identical(h, tssf)) if (skip_identical(h, tssf))
return; return;
From aedee74aa7ec24958938a9baa0bff1d12004d305 Mon Sep 17 00:00:00 2001 From ed09c6ad8d86980207dd0ea56fdfb79e227adbb6 Mon Sep 17 00:00:00 2001
From: Cory Fields <theuni-nospam-@xbmc.org> From: Cory Fields <theuni-nospam-@xbmc.org>
Date: Fri, 9 Jul 2010 16:43:31 -0400 Date: Fri, 9 Jul 2010 16:43:31 -0400
Subject: [PATCH 06/12] Read PID timestamps as well as PCR timestamps to find Subject: [PATCH 06/13] Read PID timestamps as well as PCR timestamps to find
location in mpegts stream location in mpegts stream
--- ---
@ -209,10 +209,10 @@ Subject: [PATCH 06/12] Read PID timestamps as well as PCR timestamps to find
1 file changed, 46 insertions(+), 2 deletions(-) 1 file changed, 46 insertions(+), 2 deletions(-)
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index ea7d335..b46f875 100644 index 9c6f6dc..a4db558 100644
--- a/libavformat/mpegts.c --- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c +++ b/libavformat/mpegts.c
@@ -2518,6 +2518,44 @@ static void seek_back(AVFormatContext *s, AVIOContext *pb, int64_t pos) { @@ -2519,6 +2519,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"); av_log(s, pb->seekable ? AV_LOG_ERROR : AV_LOG_INFO, "Unable to seek back to the start\n");
} }
@ -257,7 +257,7 @@ index ea7d335..b46f875 100644
static int mpegts_read_header(AVFormatContext *s) static int mpegts_read_header(AVFormatContext *s)
{ {
MpegTSContext *ts = s->priv_data; MpegTSContext *ts = s->priv_data;
@@ -2723,6 +2761,7 @@ static av_unused int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index, @@ -2724,6 +2762,7 @@ static av_unused int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index,
uint8_t buf[TS_PACKET_SIZE]; uint8_t buf[TS_PACKET_SIZE];
int pcr_l, pcr_pid = int pcr_l, pcr_pid =
((PESContext *)s->streams[stream_index]->priv_data)->pcr_pid; ((PESContext *)s->streams[stream_index]->priv_data)->pcr_pid;
@ -265,7 +265,7 @@ index ea7d335..b46f875 100644
int pos47 = ts->pos47_full % ts->raw_packet_size; int pos47 = ts->pos47_full % ts->raw_packet_size;
pos = pos =
((*ppos + ts->raw_packet_size - 1 - pos47) / ts->raw_packet_size) * ((*ppos + ts->raw_packet_size - 1 - pos47) / ts->raw_packet_size) *
@@ -2744,6 +2783,11 @@ static av_unused int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index, @@ -2745,6 +2784,11 @@ static av_unused int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index,
*ppos = pos; *ppos = pos;
return timestamp; return timestamp;
} }
@ -277,7 +277,7 @@ index ea7d335..b46f875 100644
pos += ts->raw_packet_size; pos += ts->raw_packet_size;
} }
@@ -2843,7 +2887,7 @@ AVInputFormat ff_mpegts_demuxer = { @@ -2844,7 +2888,7 @@ AVInputFormat ff_mpegts_demuxer = {
.read_header = mpegts_read_header, .read_header = mpegts_read_header,
.read_packet = mpegts_read_packet, .read_packet = mpegts_read_packet,
.read_close = mpegts_read_close, .read_close = mpegts_read_close,
@ -286,7 +286,7 @@ index ea7d335..b46f875 100644
.flags = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT, .flags = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,
.priv_class = &mpegts_class, .priv_class = &mpegts_class,
}; };
@@ -2855,7 +2899,7 @@ AVInputFormat ff_mpegtsraw_demuxer = { @@ -2856,7 +2900,7 @@ AVInputFormat ff_mpegtsraw_demuxer = {
.read_header = mpegts_read_header, .read_header = mpegts_read_header,
.read_packet = mpegts_raw_read_packet, .read_packet = mpegts_raw_read_packet,
.read_close = mpegts_read_close, .read_close = mpegts_read_close,
@ -296,10 +296,10 @@ index ea7d335..b46f875 100644
.priv_class = &mpegtsraw_class, .priv_class = &mpegtsraw_class,
}; };
From e4bdfe863c6db2180d948ba04cd6c702307b510a Mon Sep 17 00:00:00 2001 From ce8186048f2ac760582c6860cfb176bd4d427f98 Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@ecce.se> From: Joakim Plate <elupus@ecce.se>
Date: Sat, 22 Oct 2011 19:01:38 +0200 Date: Sat, 22 Oct 2011 19:01:38 +0200
Subject: [PATCH 07/12] Get stream durations using read_timestamp Subject: [PATCH 07/13] Get stream durations using read_timestamp
--- ---
libavformat/utils.c | 39 +++++++++++++++++++++++++++++++++++++++ libavformat/utils.c | 39 +++++++++++++++++++++++++++++++++++++++
@ -363,10 +363,10 @@ index 88c51fd..966f4d2 100644
/* less precise: use bitrate info */ /* less precise: use bitrate info */
estimate_timings_from_bit_rate(ic); estimate_timings_from_bit_rate(ic);
From 97bc03588a385a50743fdb1e49863c0ef133fc75 Mon Sep 17 00:00:00 2001 From b9cb8fe46a30ba867c6f50ac228f3c25762be73b Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@ecce.se> From: Joakim Plate <elupus@ecce.se>
Date: Wed, 8 Dec 2010 14:03:43 +0000 Date: Wed, 8 Dec 2010 14:03:43 +0000
Subject: [PATCH 08/12] changed: allow 4 second skew between streams in mov Subject: [PATCH 08/13] changed: allow 4 second skew between streams in mov
before attempting to seek before attempting to seek
--- ---
@ -374,10 +374,10 @@ Subject: [PATCH 08/12] changed: allow 4 second skew between streams in mov
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavformat/mov.c b/libavformat/mov.c diff --git a/libavformat/mov.c b/libavformat/mov.c
index a8d72b4..8523806 100644 index 735e956..d4e0748 100644
--- a/libavformat/mov.c --- a/libavformat/mov.c
+++ b/libavformat/mov.c +++ b/libavformat/mov.c
@@ -4511,8 +4511,8 @@ static AVIndexEntry *mov_find_next_sample(AVFormatContext *s, AVStream **st) @@ -4611,8 +4611,8 @@ static AVIndexEntry *mov_find_next_sample(AVFormatContext *s, AVStream **st)
if (!sample || (!s->pb->seekable && current_sample->pos < sample->pos) || if (!sample || (!s->pb->seekable && current_sample->pos < sample->pos) ||
(s->pb->seekable && (s->pb->seekable &&
((msc->pb != s->pb && dts < best_dts) || (msc->pb == s->pb && ((msc->pb != s->pb && dts < best_dts) || (msc->pb == s->pb &&
@ -389,10 +389,10 @@ index a8d72b4..8523806 100644
best_dts = dts; best_dts = dts;
*st = avst; *st = avst;
From ad0ab7047a2041b6c152468de1a739644064c6e8 Mon Sep 17 00:00:00 2001 From feea0da005cea0e0b2580f17395e394d81e1c427 Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@ecce.se> From: Joakim Plate <elupus@ecce.se>
Date: Fri, 26 Nov 2010 20:56:48 +0000 Date: Fri, 26 Nov 2010 20:56:48 +0000
Subject: [PATCH 09/12] fixed: memleak in mpegts demuxer on some malformed (??) Subject: [PATCH 09/13] fixed: memleak in mpegts demuxer on some malformed (??)
mpegts files with too large pes packets mpegts files with too large pes packets
at-visions sample file brokenStream.mpg at-visions sample file brokenStream.mpg
@ -401,10 +401,10 @@ at-visions sample file brokenStream.mpg
1 file changed, 6 insertions(+) 1 file changed, 6 insertions(+)
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index b46f875..3f6c9e1 100644 index a4db558..492d9c7 100644
--- a/libavformat/mpegts.c --- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c +++ b/libavformat/mpegts.c
@@ -867,6 +867,10 @@ static void reset_pes_packet_state(PESContext *pes) @@ -868,6 +868,10 @@ static void reset_pes_packet_state(PESContext *pes)
static void new_pes_packet(PESContext *pes, AVPacket *pkt) static void new_pes_packet(PESContext *pes, AVPacket *pkt)
{ {
@ -415,7 +415,7 @@ index b46f875..3f6c9e1 100644
av_init_packet(pkt); av_init_packet(pkt);
pkt->buf = pes->buffer; pkt->buf = pes->buffer;
@@ -2714,6 +2718,8 @@ static int mpegts_read_packet(AVFormatContext *s, AVPacket *pkt) @@ -2715,6 +2719,8 @@ static int mpegts_read_packet(AVFormatContext *s, AVPacket *pkt)
pkt->size = -1; pkt->size = -1;
ts->pkt = pkt; ts->pkt = pkt;
@ -425,20 +425,20 @@ index b46f875..3f6c9e1 100644
if (ret < 0) { if (ret < 0) {
av_free_packet(ts->pkt); av_free_packet(ts->pkt);
From 43f9a7b6c3b2343cb71c8c691773abd38e0a3af0 Mon Sep 17 00:00:00 2001 From b86ed91dab824a9d2bd137662a810e1c4c5a1367 Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@ecce.se> From: Joakim Plate <elupus@ecce.se>
Date: Mon, 28 Jun 2010 21:26:54 +0000 Date: Mon, 28 Jun 2010 21:26:54 +0000
Subject: [PATCH 10/12] Speed up mpegts av_find_stream_info Subject: [PATCH 10/13] Speed up mpegts av_find_stream_info
--- ---
libavformat/mpegts.c | 2 +- libavformat/mpegts.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 3f6c9e1..8112d89 100644 index 492d9c7..29d58eb 100644
--- a/libavformat/mpegts.c --- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c +++ b/libavformat/mpegts.c
@@ -1029,7 +1029,7 @@ static int mpegts_push_data(MpegTSFilter *filter, @@ -1030,7 +1030,7 @@ static int mpegts_push_data(MpegTSFilter *filter,
goto skip; goto skip;
/* stream not present in PMT */ /* stream not present in PMT */
@ -448,10 +448,10 @@ index 3f6c9e1..8112d89 100644
goto skip; goto skip;
From 3132f9576db57c6773cb156a450a65ad185a282f Mon Sep 17 00:00:00 2001 From 37ab1b368a42dcce9acc229689e063a866df90cb Mon Sep 17 00:00:00 2001
From: marc <mhocking@ubuntu-desktop.(none)> From: marc <mhocking@ubuntu-desktop.(none)>
Date: Mon, 18 Feb 2013 17:18:18 +0000 Date: Mon, 18 Feb 2013 17:18:18 +0000
Subject: [PATCH 11/12] dxva-h264 Fix dxva playback of streams that don't start Subject: [PATCH 11/13] dxva-h264 Fix dxva playback of streams that don't start
with an I-Frame (adjusted to 2.7) with an I-Frame (adjusted to 2.7)
--- ---
@ -506,7 +506,7 @@ index 7356288..907ee5e 100644
int sei_buffering_period_present; ///< Buffering period SEI flag int sei_buffering_period_present; ///< Buffering period SEI flag
int initial_cpb_removal_delay[32]; ///< Initial timestamps for CPBs int initial_cpb_removal_delay[32]; ///< Initial timestamps for CPBs
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index a346ccb..17e693f 100644 index 9642dc5..cd9b73a 100644
--- a/libavcodec/h264_slice.c --- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c
@@ -1043,6 +1043,7 @@ static int h264_slice_header_init(H264Context *h) @@ -1043,6 +1043,7 @@ static int h264_slice_header_init(H264Context *h)
@ -518,10 +518,10 @@ index a346ccb..17e693f 100644
init_scan_tables(h); init_scan_tables(h);
ret = ff_h264_alloc_tables(h); ret = ff_h264_alloc_tables(h);
From 89edc04503a9c8512c464f70d1def6a0a009e051 Mon Sep 17 00:00:00 2001 From 20ee469d2beb6a2963f53adc780eb7e3c2adcdfb Mon Sep 17 00:00:00 2001
From: wsnipex <wsnipex@a1.net> From: wsnipex <wsnipex@a1.net>
Date: Mon, 16 Feb 2015 09:58:28 +0100 Date: Mon, 16 Feb 2015 09:58:28 +0100
Subject: [PATCH 12/12] only check for a git rev if the src tree is in a git Subject: [PATCH 12/13] only check for a git rev if the src tree is in a git
repo repo
fixes the version string when building from the kodi depends src tree fixes the version string when building from the kodi depends src tree
@ -583,3 +583,31 @@ index f9754eb..cc23f80 100755
fi fi
# no revision number found # no revision number found
From 24687d508d112358b515ce927b5e16b0369dab2f Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Sun, 15 Nov 2015 13:58:50 +0100
Subject: [PATCH 13/13] avformat/utils: estimate_timings_from_pts - increase
retry counter, fixes invalid duration for ts files with hevc codec
Fixes a mpegts file with hevc that fails estimating duration. Increasing number of
retries fixes the issue.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
libavformat/utils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 966f4d2..3f26633 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2453,7 +2453,7 @@ static void estimate_timings_from_bit_rate(AVFormatContext *ic)
}
#define DURATION_MAX_READ_SIZE 250000LL
-#define DURATION_MAX_RETRY 4
+#define DURATION_MAX_RETRY 6
static void av_estimate_timings_from_pts2(AVFormatContext *ic, int64_t old_offset)
{