mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
ffmpeg: Bump to release/3.1-xbmc (67171c3)
This commit is contained in:
parent
7fe5c2962e
commit
d11b730050
@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="ffmpeg"
|
||||
# Current branch is: release/3.0-xbmc
|
||||
PKG_VERSION="c44bf39"
|
||||
# Current branch is: release/3.1-xbmc
|
||||
PKG_VERSION="67171c3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPLv2.1+"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
From ccb1eff2e6dd1259c6a8ca262076553875c5abe2 Mon Sep 17 00:00:00 2001
|
||||
From d08594462136274636c1f2f476a6410ff92a9e16 Mon Sep 17 00:00:00 2001
|
||||
From: John Cox <jc@kynesim.co.uk>
|
||||
Date: Wed, 13 Jan 2016 16:13:33 +0000
|
||||
Subject: [PATCH] H.265 residual decode rework (v2)
|
||||
@ -13,8 +13,8 @@ Simplify the code flow and variable usage where possible
|
||||
libavcodec/arm/hevcdsp_deblock_neon.S | 13 +-
|
||||
libavcodec/arm/hevcdsp_epel_neon.S | 9 +-
|
||||
libavcodec/cabac.h | 9 +-
|
||||
libavcodec/hevc_cabac.c | 1098 +++++++++++++++++++++++++--------
|
||||
6 files changed, 1510 insertions(+), 265 deletions(-)
|
||||
libavcodec/hevc_cabac.c | 1096 +++++++++++++++++++++++++--------
|
||||
6 files changed, 1509 insertions(+), 264 deletions(-)
|
||||
create mode 100644 libavcodec/arm/hevc_cabac.h
|
||||
|
||||
diff --git a/libavcodec/arm/cabac.h b/libavcodec/arm/cabac.h
|
||||
@ -801,7 +801,7 @@ index 1bf1c62..ccfa991 100644
|
||||
const uint8_t *bytestream;
|
||||
const uint8_t *bytestream_end;
|
||||
diff --git a/libavcodec/hevc_cabac.c b/libavcodec/hevc_cabac.c
|
||||
index 271e17a..4caf720 100644
|
||||
index 8656917..4caf720 100644
|
||||
--- a/libavcodec/hevc_cabac.c
|
||||
+++ b/libavcodec/hevc_cabac.c
|
||||
@@ -21,14 +21,72 @@
|
||||
@ -1502,9 +1502,8 @@ index 271e17a..4caf720 100644
|
||||
int trafo_size = 1 << log2_trafo_size;
|
||||
int i;
|
||||
- int qp,shift,add,scale,scale_m;
|
||||
- const uint8_t level_scale[] = { 40, 45, 51, 57, 64, 72 };
|
||||
+ int qp,shift,scale;
|
||||
+ static const uint8_t level_scale[] = { 40, 45, 51, 57, 64, 72 };
|
||||
static const uint8_t level_scale[] = { 40, 45, 51, 57, 64, 72 };
|
||||
const uint8_t *scale_matrix = NULL;
|
||||
uint8_t dc_scale;
|
||||
int pred_mode_intra = (c_idx == 0) ? lc->tu.intra_pred_mode :
|
||||
@ -2176,6 +2175,6 @@ index 271e17a..4caf720 100644
|
||||
log2_trafo_size == 2 &&
|
||||
lc->cu.pred_mode == MODE_INTRA;
|
||||
--
|
||||
2.5.0
|
||||
2.7.4
|
||||
|
||||
|
||||
|
@ -1,30 +1,28 @@
|
||||
From f2e011c656b3579b6ede184bb5c56a7b97fad0f3 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Leppkes <h.leppkes@gmail.com>
|
||||
Date: Sat, 9 Jan 2016 15:34:09 +0100
|
||||
From 4060f15e2d29e268110032d4366382e370e088d0 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Sun, 26 Jun 2016 20:09:18 +0100
|
||||
Subject: [PATCH] avcodec: add h264_mvc codec id and profiles
|
||||
|
||||
avcodec: add h264_mvc codec id and profiles
|
||||
---
|
||||
libavcodec/avcodec.h | 5 +++++
|
||||
libavcodec/codec_desc.c | 7 +++++++
|
||||
libavcodec/profiles.c | 3 +++
|
||||
libavformat/mpegts.c | 2 +-
|
||||
4 files changed, 16 insertions(+), 1 deletion(-)
|
||||
3 files changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
|
||||
index f365775..8498921 100644
|
||||
index a1ba217..abd2e91 100644
|
||||
--- a/libavcodec/avcodec.h
|
||||
+++ b/libavcodec/avcodec.h
|
||||
@@ -316,6 +316,8 @@ enum AVCodecID {
|
||||
AV_CODEC_ID_APNG,
|
||||
AV_CODEC_ID_DAALA,
|
||||
@@ -410,6 +410,8 @@ enum AVCodecID {
|
||||
AV_CODEC_ID_SHEERVIDEO,
|
||||
AV_CODEC_ID_YLC,
|
||||
|
||||
+ AV_CODEC_ID_H264_MVC,
|
||||
+
|
||||
/* various PCM "codecs" */
|
||||
AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
|
||||
AV_CODEC_ID_PCM_S16LE = 0x10000,
|
||||
@@ -3086,6 +3088,9 @@ typedef struct AVCodecContext {
|
||||
@@ -3195,6 +3197,9 @@ typedef struct AVCodecContext {
|
||||
#define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244
|
||||
#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA)
|
||||
#define FF_PROFILE_H264_CAVLC_444 44
|
||||
@ -35,12 +33,12 @@ index f365775..8498921 100644
|
||||
#define FF_PROFILE_VC1_SIMPLE 0
|
||||
#define FF_PROFILE_VC1_MAIN 1
|
||||
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
|
||||
index 5fbe624..9431bd8 100644
|
||||
index 9d94b72..535ebf0 100644
|
||||
--- a/libavcodec/codec_desc.c
|
||||
+++ b/libavcodec/codec_desc.c
|
||||
@@ -1521,6 +1521,13 @@ static const AVCodecDescriptor codec_descriptors[] = {
|
||||
.props = AV_CODEC_PROP_LOSSLESS,
|
||||
.mime_types= MT("image/png"),
|
||||
@@ -1563,6 +1563,13 @@ static const AVCodecDescriptor codec_descriptors[] = {
|
||||
.long_name = NULL_IF_CONFIG_SMALL("YUY2 Lossless Codec"),
|
||||
.props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
|
||||
},
|
||||
+ {
|
||||
+ .id = AV_CODEC_ID_H264_MVC,
|
||||
@ -53,16 +51,19 @@ index 5fbe624..9431bd8 100644
|
||||
/* various PCM "codecs" */
|
||||
{
|
||||
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
|
||||
index 22874e6..34b6987 100644
|
||||
index b31d233..2767306 100644
|
||||
--- a/libavformat/mpegts.c
|
||||
+++ b/libavformat/mpegts.c
|
||||
@@ -698,7 +698,7 @@ static const StreamType ISO_types[] = {
|
||||
{ 0x11, AVMEDIA_TYPE_AUDIO, AV_CODEC_ID_AAC_LATM }, /* LATM syntax */
|
||||
@@ -701,7 +701,7 @@ static const StreamType ISO_types[] = {
|
||||
#endif
|
||||
{ 0x1b, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_H264 },
|
||||
{ 0x1c, AVMEDIA_TYPE_AUDIO, AV_CODEC_ID_AAC },
|
||||
- { 0x20, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_H264 },
|
||||
+ { 0x20, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_H264_MVC },
|
||||
{ 0x21, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_JPEG2000 },
|
||||
{ 0x24, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_HEVC },
|
||||
{ 0x42, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_CAVS },
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
From 0b857974bc3f2f48800526efbe02b9e72fdeb266 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Leppkes <h.leppkes@gmail.com>
|
||||
Date: Sat, 9 Jan 2016 16:34:40 +0100
|
||||
From 23dd20678a05e1764e5d8d30481cb354a51b6c8b Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Sun, 26 Jun 2016 20:16:03 +0100
|
||||
Subject: [PATCH] h264_parser: add support for parsing h264 mvc NALUs
|
||||
|
||||
---
|
||||
@ -10,10 +10,10 @@ Subject: [PATCH] h264_parser: add support for parsing h264 mvc NALUs
|
||||
3 files changed, 33 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
|
||||
index 2097db0..66eb571 100644
|
||||
index 54efaad..02a89c3 100644
|
||||
--- a/libavcodec/allcodecs.c
|
||||
+++ b/libavcodec/allcodecs.c
|
||||
@@ -633,6 +633,7 @@ void avcodec_register_all(void)
|
||||
@@ -667,6 +667,7 @@ void avcodec_register_all(void)
|
||||
REGISTER_PARSER(H261, h261);
|
||||
REGISTER_PARSER(H263, h263);
|
||||
REGISTER_PARSER(H264, h264);
|
||||
@ -22,10 +22,10 @@ index 2097db0..66eb571 100644
|
||||
REGISTER_PARSER(MJPEG, mjpeg);
|
||||
REGISTER_PARSER(MLP, mlp);
|
||||
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
|
||||
index 78f4eed..9e1d377 100644
|
||||
index efe3555..16358aa 100644
|
||||
--- a/libavcodec/h264.h
|
||||
+++ b/libavcodec/h264.h
|
||||
@@ -123,7 +123,9 @@ enum {
|
||||
@@ -126,7 +126,9 @@ enum {
|
||||
NAL_END_STREAM = 11,
|
||||
NAL_FILLER_DATA = 12,
|
||||
NAL_SPS_EXT = 13,
|
||||
@ -36,18 +36,18 @@ index 78f4eed..9e1d377 100644
|
||||
};
|
||||
|
||||
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
|
||||
index 12d6397..4337c8c 100644
|
||||
index ce4bab2..082ac17 100644
|
||||
--- a/libavcodec/h264_parser.c
|
||||
+++ b/libavcodec/h264_parser.c
|
||||
@@ -38,6 +38,7 @@ typedef struct H264ParseContext {
|
||||
H264Context h;
|
||||
ParseContext pc;
|
||||
int got_first;
|
||||
@@ -58,6 +58,7 @@ typedef struct H264ParseContext {
|
||||
uint8_t parse_history[6];
|
||||
int parse_history_count;
|
||||
int parse_last_mb;
|
||||
+ int is_mvc;
|
||||
} H264ParseContext;
|
||||
|
||||
|
||||
@@ -86,14 +87,18 @@ static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf,
|
||||
@@ -105,14 +106,18 @@ static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf,
|
||||
} else if (state <= 5) {
|
||||
int nalu_type = buf[i] & 0x1F;
|
||||
if (nalu_type == NAL_SEI || nalu_type == NAL_SPS ||
|
||||
@ -68,7 +68,7 @@ index 12d6397..4337c8c 100644
|
||||
continue;
|
||||
}
|
||||
state = 7;
|
||||
@@ -532,7 +537,8 @@ static int h264_parse(AVCodecParserContext *s,
|
||||
@@ -585,7 +590,8 @@ static int h264_parse(AVCodecParserContext *s,
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,7 +78,7 @@ index 12d6397..4337c8c 100644
|
||||
|
||||
if (avctx->framerate.num)
|
||||
avctx->time_base = av_inv_q(av_mul_q(avctx->framerate, (AVRational){avctx->ticks_per_frame, 1}));
|
||||
@@ -569,7 +575,7 @@ static int h264_split(AVCodecContext *avctx,
|
||||
@@ -622,7 +628,7 @@ static int h264_split(AVCodecContext *avctx,
|
||||
if ((state & 0xFFFFFF00) != 0x100)
|
||||
break;
|
||||
nalu_type = state & 0x1F;
|
||||
@ -87,7 +87,7 @@ index 12d6397..4337c8c 100644
|
||||
has_sps = 1;
|
||||
} else if (nalu_type == NAL_PPS)
|
||||
has_pps = 1;
|
||||
@@ -625,3 +631,23 @@ AVCodecParser ff_h264_parser = {
|
||||
@@ -672,3 +678,23 @@ AVCodecParser ff_h264_parser = {
|
||||
.parser_close = h264_close,
|
||||
.split = h264_split,
|
||||
};
|
||||
@ -111,4 +111,7 @@ index 12d6397..4337c8c 100644
|
||||
+ .parser_close = h264_close,
|
||||
+ .split = h264_split,
|
||||
+};
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
||||
|
@ -1,39 +1,25 @@
|
||||
From fd627f6435db524f3e1fd8df6f64a17dcda5c8b9 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Leppkes <h.leppkes@gmail.com>
|
||||
Date: Fri, 26 Feb 2016 00:23:53 +0100
|
||||
From 12d99a92469e5916de3bc787dce4c13abfdd5e09 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Sun, 26 Jun 2016 20:20:04 +0100
|
||||
Subject: [PATCH] h264_parser: fix parsing of mvc slices in some corner cases
|
||||
|
||||
---
|
||||
libavcodec/h264.h | 2 +-
|
||||
libavcodec/h264_parser.c | 10 +++++-----
|
||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
|
||||
index 9e1d377..846e4dc 100644
|
||||
--- a/libavcodec/h264.h
|
||||
+++ b/libavcodec/h264.h
|
||||
@@ -828,7 +828,7 @@ typedef struct H264Context {
|
||||
int cur_bit_depth_luma;
|
||||
int16_t slice_row[MAX_SLICES]; ///< to detect when MAX_SLICES is too low
|
||||
|
||||
- uint8_t parse_history[6];
|
||||
+ uint8_t parse_history[9];
|
||||
int parse_history_count;
|
||||
int parse_last_mb;
|
||||
|
||||
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
|
||||
index 4337c8c..2fd3f2b 100644
|
||||
index 082ac17..b9b0c78 100644
|
||||
--- a/libavcodec/h264_parser.c
|
||||
+++ b/libavcodec/h264_parser.c
|
||||
@@ -39,6 +39,7 @@ typedef struct H264ParseContext {
|
||||
ParseContext pc;
|
||||
int got_first;
|
||||
@@ -59,6 +59,7 @@ typedef struct H264ParseContext {
|
||||
int parse_history_count;
|
||||
int parse_last_mb;
|
||||
int is_mvc;
|
||||
+ int slice_ext;
|
||||
} H264ParseContext;
|
||||
|
||||
|
||||
@@ -97,18 +98,17 @@ static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf,
|
||||
@@ -116,18 +117,17 @@ static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf,
|
||||
nalu_type == NAL_IDR_SLICE || (p->is_mvc && nalu_type == NAL_SLICE_EXT)) {
|
||||
state += 8;
|
||||
|
||||
@ -44,24 +30,27 @@ index 4337c8c..2fd3f2b 100644
|
||||
}
|
||||
state = 7;
|
||||
} else {
|
||||
h->parse_history[h->parse_history_count++]= buf[i];
|
||||
- if (h->parse_history_count>5) {
|
||||
+ if (h->parse_history_count>8) {
|
||||
unsigned int mb, last_mb= h->parse_last_mb;
|
||||
p->parse_history[p->parse_history_count++] = buf[i];
|
||||
- if (p->parse_history_count > 5) {
|
||||
+ if (p->parse_history_count > 8) {
|
||||
unsigned int mb, last_mb = p->parse_last_mb;
|
||||
GetBitContext gb;
|
||||
|
||||
- init_get_bits(&gb, h->parse_history, 8*h->parse_history_count);
|
||||
+ init_get_bits8(&gb, h->parse_history + 3*p->slice_ext, h->parse_history_count - 3*p->slice_ext);
|
||||
h->parse_history_count=0;
|
||||
- init_get_bits(&gb, p->parse_history, 8*p->parse_history_count);
|
||||
+ init_get_bits8(&gb, p->parse_history + 3*p->slice_ext, p->parse_history_count - 3*p->slice_ext);
|
||||
p->parse_history_count = 0;
|
||||
mb= get_ue_golomb_long(&gb);
|
||||
h->parse_last_mb= mb;
|
||||
@@ -131,7 +131,7 @@ static int h264_find_frame_end(H264ParseContext *p, const uint8_t *buf,
|
||||
p->parse_last_mb = mb;
|
||||
@@ -150,7 +150,7 @@ found:
|
||||
pc->frame_start_found = 0;
|
||||
if (h->is_avc)
|
||||
if (p->is_avc)
|
||||
return next_avc;
|
||||
- return i - (state & 5) - 5 * (state > 7);
|
||||
+ return i - (state & 5) - 8 * (state > 7);
|
||||
}
|
||||
|
||||
static int scan_mmco_reset(AVCodecParserContext *s)
|
||||
static int scan_mmco_reset(AVCodecParserContext *s, GetBitContext *gb,
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user