ffmpeg: Bump to release/3.1-xbmc (67171c3)

This commit is contained in:
MilhouseVH 2016-07-01 07:27:39 +01:00
parent 7fe5c2962e
commit d11b730050
6 changed files with 615 additions and 623 deletions

View File

@ -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+"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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