[FFmpeg-cvslog] h264: straighten dimensions check ff_h264_decode_seq_parameter_set

2016-06-30 Thread Benoit Fouet
ffmpeg | branch: master | Benoit Fouet  | Mon Jun 27 
13:31:21 2016 +0200| [4cc1ce4a91788a71670ea43fa0026b5a969e9e9e] | committer: 
Benoit Fouet

h264: straighten dimensions check ff_h264_decode_seq_parameter_set

The MBS only flag was not taken into account when checking macroblock 
dimensions.
Also removes the unneeded check in init_dimensions for slices.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4cc1ce4a91788a71670ea43fa0026b5a969e9e9e
---

 libavcodec/h264_ps.c|   15 ---
 libavcodec/h264_slice.c |   17 -
 2 files changed, 8 insertions(+), 24 deletions(-)

diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
index 2f166c5..76ac9f1 100644
--- a/libavcodec/h264_ps.c
+++ b/libavcodec/h264_ps.c
@@ -464,13 +464,6 @@ int ff_h264_decode_seq_parameter_set(GetBitContext *gb, 
AVCodecContext *avctx,
 sps->gaps_in_frame_num_allowed_flag = get_bits1(gb);
 sps->mb_width   = get_ue_golomb(gb) + 1;
 sps->mb_height  = get_ue_golomb(gb) + 1;
-if ((unsigned)sps->mb_width  >= INT_MAX / 16 ||
-(unsigned)sps->mb_height >= INT_MAX / 16 ||
-av_image_check_size(16 * sps->mb_width,
-16 * sps->mb_height, 0, avctx)) {
-av_log(avctx, AV_LOG_ERROR, "mb_width/height overflow\n");
-goto fail;
-}
 
 sps->frame_mbs_only_flag = get_bits1(gb);
 if (!sps->frame_mbs_only_flag)
@@ -478,6 +471,14 @@ int ff_h264_decode_seq_parameter_set(GetBitContext *gb, 
AVCodecContext *avctx,
 else
 sps->mb_aff = 0;
 
+if ((unsigned)sps->mb_width  >= INT_MAX / 16 ||
+(unsigned)sps->mb_height >= INT_MAX / (16 * (2 - 
sps->frame_mbs_only_flag)) ||
+av_image_check_size(16 * sps->mb_width,
+16 * sps->mb_height * (2 - 
sps->frame_mbs_only_flag), 0, avctx)) {
+av_log(avctx, AV_LOG_ERROR, "mb_width/height overflow\n");
+goto fail;
+}
+
 sps->direct_8x8_inference_flag = get_bits1(gb);
 
 #ifndef ALLOW_INTERLACE
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index adbd1d8..6babd66 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -889,23 +889,6 @@ static int init_dimensions(H264Context *h)
 height = h->avctx->height;
 }
 
-if (width <= 0 || height <= 0) {
-av_log(h->avctx, AV_LOG_ERROR, "Invalid cropped dimensions: %dx%d.\n",
-   width, height);
-if (h->avctx->err_recognition & AV_EF_EXPLODE)
-return AVERROR_INVALIDDATA;
-
-av_log(h->avctx, AV_LOG_WARNING, "Ignoring cropping information.\n");
-sps->crop_bottom =
-sps->crop_top=
-sps->crop_right  =
-sps->crop_left   =
-sps->crop= 0;
-
-width  = h->width;
-height = h->height;
-}
-
 h->avctx->coded_width  = h->width;
 h->avctx->coded_height = h->height;
 h->avctx->width= width;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] h264: make H264ParamSets sps const

2016-06-30 Thread Benoit Fouet
ffmpeg | branch: master | Benoit Fouet  | Tue Jun 21 
14:17:13 2016 +0200| [879330c561f4214bd81c35f46f31dd7fe906a59a] | committer: 
Benoit Fouet

h264: make H264ParamSets sps const

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=879330c561f4214bd81c35f46f31dd7fe906a59a
---

 libavcodec/h264.h|3 +--
 libavcodec/h264_parser.c |2 +-
 libavcodec/h264_ps.c |4 ++--
 libavcodec/h264_sei.c|4 ++--
 libavcodec/h264_slice.c  |4 ++--
 5 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 3512aaa..f0e4573 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -234,8 +234,7 @@ typedef struct H264ParamSets {
 AVBufferRef *sps_ref;
 /* currently active parameters sets */
 const PPS *pps;
-// FIXME this should properly be const
-SPS *sps;
+const SPS *sps;
 } H264ParamSets;
 
 /**
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index ce4bab2..7af2a8d 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -373,7 +373,7 @@ static inline int parse_nal_units(AVCodecParserContext *s,
"non-existing SPS %u referenced\n", p->ps.pps->sps_id);
 goto fail;
 }
-p->ps.sps = (SPS*)p->ps.sps_list[p->ps.pps->sps_id]->data;
+p->ps.sps = (const SPS*)p->ps.sps_list[p->ps.pps->sps_id]->data;
 
 sps = p->ps.sps;
 
diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
index 76ac9f1..1e1e793 100644
--- a/libavcodec/h264_ps.c
+++ b/libavcodec/h264_ps.c
@@ -712,7 +712,7 @@ int ff_h264_decode_picture_parameter_set(GetBitContext *gb, 
AVCodecContext *avct
  H264ParamSets *ps, int bit_length)
 {
 AVBufferRef *pps_buf;
-SPS *sps;
+const SPS *sps;
 unsigned int pps_id = get_ue_golomb(gb);
 PPS *pps;
 int qp_bd_offset;
@@ -743,7 +743,7 @@ int ff_h264_decode_picture_parameter_set(GetBitContext *gb, 
AVCodecContext *avct
 ret = AVERROR_INVALIDDATA;
 goto fail;
 }
-sps = (SPS*)ps->sps_list[pps->sps_id]->data;
+sps = (const SPS*)ps->sps_list[pps->sps_id]->data;
 if (sps->bit_depth_luma > 14) {
 av_log(avctx, AV_LOG_ERROR,
"Invalid luma bit depth=%d\n",
diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c
index 0bbd7e5..3bdbaa0 100644
--- a/libavcodec/h264_sei.c
+++ b/libavcodec/h264_sei.c
@@ -278,7 +278,7 @@ static int decode_buffering_period(H264SEIBufferingPeriod 
*h, GetBitContext *gb,
 {
 unsigned int sps_id;
 int sched_sel_idx;
-SPS *sps;
+const SPS *sps;
 
 sps_id = get_ue_golomb_31(gb);
 if (sps_id > 31 || !ps->sps_list[sps_id]) {
@@ -286,7 +286,7 @@ static int decode_buffering_period(H264SEIBufferingPeriod 
*h, GetBitContext *gb,
"non-existing SPS %d referenced in buffering period\n", sps_id);
 return sps_id > 31 ? AVERROR_INVALIDDATA : AVERROR_PS_NOT_FOUND;
 }
-sps = (SPS*)ps->sps_list[sps_id]->data;
+sps = (const SPS*)ps->sps_list[sps_id]->data;
 
 // NOTE: This is really so duplicated in the standard... See H.264, D.1.1
 if (sps->nal_hrd_parameters_present_flag) {
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 6babd66..a63c9b9 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -356,7 +356,7 @@ int ff_h264_update_thread_context(AVCodecContext *dst,
 h->ps.sps_ref = av_buffer_ref(h1->ps.sps_ref);
 if (!h->ps.sps_ref)
 return AVERROR(ENOMEM);
-h->ps.sps = (SPS*)h->ps.sps_ref->data;
+h->ps.sps = (const SPS*)h->ps.sps_ref->data;
 }
 
 if (need_reinit || !inited) {
@@ -873,7 +873,7 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, 
int force_callback)
 /* export coded and cropped frame dimensions to AVCodecContext */
 static int init_dimensions(H264Context *h)
 {
-SPS *sps = h->ps.sps;
+const SPS *sps = (const SPS*)h->ps.sps;
 int width  = h->width  - (sps->crop_right + sps->crop_left);
 int height = h->height - (sps->crop_top   + sps->crop_bottom);
 av_assert0(sps->crop_right + sps->crop_left < (unsigned)h->width);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] h264_ps: change decode_scaling_matrices so that it takes const {s, p}ps

2016-06-30 Thread Benoit Fouet
ffmpeg | branch: master | Benoit Fouet  | Mon Jun 27 
12:00:39 2016 +0200| [3e8cda1eb1a8b4058a6bf40d3a224784a0153e3d] | committer: 
Benoit Fouet

h264_ps: change decode_scaling_matrices so that it takes const {s,p}ps

In order to be able to make SPS const in H264ParamSets,
modify decode_scaling_matrices so that it returns if the scaling
matrix are present in the SPS, instead of altering the input SPS
structure.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3e8cda1eb1a8b4058a6bf40d3a224784a0153e3d
---

 libavcodec/h264_ps.c |   12 
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
index 943d953..2f166c5 100644
--- a/libavcodec/h264_ps.c
+++ b/libavcodec/h264_ps.c
@@ -265,8 +265,9 @@ static void decode_scaling_list(GetBitContext *gb, uint8_t 
*factors, int size,
 }
 }
 
-static void decode_scaling_matrices(GetBitContext *gb, SPS *sps,
-PPS *pps, int is_sps,
+/* returns non zero if the provided SPS scaling matrix has been filled */
+static int decode_scaling_matrices(GetBitContext *gb, const SPS *sps,
+const PPS *pps, int is_sps,
 uint8_t(*scaling_matrix4)[16],
 uint8_t(*scaling_matrix8)[64])
 {
@@ -277,8 +278,9 @@ static void decode_scaling_matrices(GetBitContext *gb, SPS 
*sps,
 fallback_sps ? sps->scaling_matrix8[0] : default_scaling8[0],
 fallback_sps ? sps->scaling_matrix8[3] : default_scaling8[1]
 };
+int ret = 0;
 if (get_bits1(gb)) {
-sps->scaling_matrix_present |= is_sps;
+ret = is_sps;
 decode_scaling_list(gb, scaling_matrix4[0], 16, default_scaling4[0], 
fallback[0]);// Intra, Y
 decode_scaling_list(gb, scaling_matrix4[1], 16, default_scaling4[0], 
scaling_matrix4[0]); // Intra, Cr
 decode_scaling_list(gb, scaling_matrix4[2], 16, default_scaling4[0], 
scaling_matrix4[1]); // Intra, Cb
@@ -296,6 +298,8 @@ static void decode_scaling_matrices(GetBitContext *gb, SPS 
*sps,
 }
 }
 }
+
+return ret;
 }
 
 void ff_h264_ps_uninit(H264ParamSets *ps)
@@ -401,7 +405,7 @@ int ff_h264_decode_seq_parameter_set(GetBitContext *gb, 
AVCodecContext *avctx,
 goto fail;
 }
 sps->transform_bypass = get_bits1(gb);
-decode_scaling_matrices(gb, sps, NULL, 1,
+sps->scaling_matrix_present |= decode_scaling_matrices(gb, sps, NULL, 
1,
 sps->scaling_matrix4, sps->scaling_matrix8);
 } else {
 sps->chroma_format_idc = 1;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] h264: postpone generating the implicit MMCOs

2016-06-30 Thread Anton Khirnov
ffmpeg | branch: master | Anton Khirnov  | Mon May  9 
14:25:56 2016 +0200| [bec993381cfec72051b0d9f12ac9d9bb9c750983] | committer: 
Anton Khirnov

h264: postpone generating the implicit MMCOs

Do it right before the MMCOs are applied to the DPB. This will allow
moving the frame_start() call out of the slice header parsing, since
generating the implicit MMCOs needs to be done after frame_start().

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bec993381cfec72051b0d9f12ac9d9bb9c750983
---

 libavcodec/h264.h |6 +++---
 libavcodec/h264_picture.c |2 +-
 libavcodec/h264_refs.c|   33 -
 libavcodec/h264_slice.c   |   12 ++--
 4 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 227cdab..ee64981 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -442,6 +442,7 @@ typedef struct H264SliceContext {
 
 MMCO mmco[MAX_MMCO_COUNT];
 int  nb_mmco;
+int explicit_ref_marking;
 } H264SliceContext;
 
 /**
@@ -579,6 +580,7 @@ typedef struct H264Context {
 MMCO mmco[MAX_MMCO_COUNT];
 int  nb_mmco;
 int mmco_reset;
+int explicit_ref_marking;
 
 int long_ref_count; ///< number of actual long term references
 int short_ref_count;///< number of actual short term references
@@ -672,13 +674,11 @@ void ff_h264_remove_all_refs(H264Context *h);
 /**
  * Execute the reference picture marking (memory management control 
operations).
  */
-int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int 
mmco_count);
+int ff_h264_execute_ref_pic_marking(H264Context *h);
 
 int ff_h264_decode_ref_pic_marking(const H264Context *h, H264SliceContext *sl,
GetBitContext *gb);
 
-int ff_generate_sliding_window_mmcos(const H264Context *h, H264SliceContext 
*sl);
-
 void ff_h264_hl_decode_mb(const H264Context *h, H264SliceContext *sl);
 int ff_h264_decode_init(AVCodecContext *avctx);
 void ff_h264_decode_init_vlc(void);
diff --git a/libavcodec/h264_picture.c b/libavcodec/h264_picture.c
index b16e3c0..cd7ff82 100644
--- a/libavcodec/h264_picture.c
+++ b/libavcodec/h264_picture.c
@@ -154,7 +154,7 @@ int ff_h264_field_end(H264Context *h, H264SliceContext *sl, 
int in_setup)
 
 if (in_setup || !(avctx->active_thread_type & FF_THREAD_FRAME)) {
 if (!h->droppable) {
-err = ff_h264_execute_ref_pic_marking(h, h->mmco, h->nb_mmco);
+err = ff_h264_execute_ref_pic_marking(h);
 h->poc.prev_poc_msb = h->poc.poc_msb;
 h->poc.prev_poc_lsb = h->poc.poc_lsb;
 }
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index dae5565..c4b33af 100644
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@ -536,11 +536,10 @@ static int check_opcodes(MMCO *mmco1, MMCO *mmco2, int 
n_mmcos)
 return 0;
 }
 
-int ff_generate_sliding_window_mmcos(const H264Context *h,
- H264SliceContext *sl)
+static void generate_sliding_window_mmcos(H264Context *h)
 {
-MMCO *mmco = sl->mmco;
-int nb_mmco = 0, i = 0;
+MMCO *mmco = h->mmco;
+int nb_mmco = 0;
 
 assert(h->long_ref_count + h->short_ref_count <= 
h->ps.sps->ref_frame_count);
 
@@ -558,17 +557,21 @@ int ff_generate_sliding_window_mmcos(const H264Context *h,
 }
 }
 
-sl->nb_mmco = nb_mmco;
-
-return 0;
+h->nb_mmco = nb_mmco;
 }
 
-int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count)
+int ff_h264_execute_ref_pic_marking(H264Context *h)
 {
+MMCO *mmco = h->mmco;
+int mmco_count;
 int i, av_uninit(j);
 int current_ref_assigned = 0, err = 0;
 H264Picture *av_uninit(pic);
 
+if (!h->explicit_ref_marking)
+generate_sliding_window_mmcos(h);
+mmco_count = h->nb_mmco;
+
 if ((h->avctx->debug & FF_DEBUG_MMCO) && mmco_count == 0)
 av_log(h->avctx, AV_LOG_DEBUG, "no mmco here\n");
 
@@ -739,7 +742,7 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO 
*mmco, int mmco_count)
 int ff_h264_decode_ref_pic_marking(const H264Context *h, H264SliceContext *sl,
GetBitContext *gb)
 {
-int i, ret;
+int i;
 MMCO *mmco = sl->mmco;
 int nb_mmco = 0;
 
@@ -750,8 +753,10 @@ int ff_h264_decode_ref_pic_marking(const H264Context *h, 
H264SliceContext *sl,
 mmco[0].long_arg = 0;
 nb_mmco  = 1;
 }
+sl->explicit_ref_marking = 1;
 } else {
-if (get_bits1(gb)) { // adaptive_ref_pic_marking_mode_flag
+sl->explicit_ref_marking = get_bits1(gb);
+if (sl->explicit_ref_marking) {
 for (i = 0; i < MAX_MMCO_COUNT; i++) {
 MMCOOpcode opcode = get_ue_golomb_31(gb);
 
@@ -795,16 +800,10 @@ int ff_h264_decode_ref_pic_marking(const H264Context *h, 
H264SliceContext *sl,
 break;
 }
 nb_mmco = i;
-} else {
-re

[FFmpeg-cvslog] Merge commit '2d410ebbaa1e760d6837cb434a6d1d4c3c6f0d85'

2016-06-30 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Thu Jun 30 
10:15:51 2016 +0200| [d407e76c42d5ae79791ff88d3bd5185e10ad6047] | committer: 
Clément Bœsch

Merge commit '2d410ebbaa1e760d6837cb434a6d1d4c3c6f0d85'

* commit '2d410ebbaa1e760d6837cb434a6d1d4c3c6f0d85':
  h264: decode the MMCOs into per-slice contexts

Merged-by: Clément Bœsch 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d407e76c42d5ae79791ff88d3bd5185e10ad6047
---

 libavcodec/h264.h   |9 ++---
 libavcodec/h264_refs.c  |   44 +---
 libavcodec/h264_slice.c |   21 ++---
 3 files changed, 29 insertions(+), 45 deletions(-)

diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index f0e4573..84cf59e 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -453,6 +453,9 @@ typedef struct H264SliceContext {
 CABACContext cabac;
 uint8_t cabac_state[1024];
 int cabac_init_idc;
+
+MMCO mmco[MAX_MMCO_COUNT];
+int  nb_mmco;
 } H264SliceContext;
 
 /**
@@ -728,10 +731,10 @@ void ff_h264_remove_all_refs(H264Context *h);
  */
 int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int 
mmco_count);
 
-int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,
-   int first_slice);
+int ff_h264_decode_ref_pic_marking(const H264Context *h, H264SliceContext *sl,
+   GetBitContext *gb);
 
-int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice);
+int ff_generate_sliding_window_mmcos(const H264Context *h, H264SliceContext 
*sl);
 
 void ff_h264_hl_decode_mb(const H264Context *h, H264SliceContext *sl);
 int ff_h264_decode_init(AVCodecContext *avctx);
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index e7ae447..c710012 100644
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@ -601,9 +601,10 @@ static int check_opcodes(MMCO *mmco1, MMCO *mmco2, int 
n_mmcos)
 return 0;
 }
 
-int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice)
+int ff_generate_sliding_window_mmcos(const H264Context *h,
+ H264SliceContext *sl)
 {
-MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp;
+MMCO *mmco = sl->mmco;
 int nb_mmco = 0, i = 0;
 
 if (h->short_ref_count &&
@@ -620,16 +621,8 @@ int ff_generate_sliding_window_mmcos(H264Context *h, int 
first_slice)
 }
 }
 
-if (first_slice) {
-h->nb_mmco = nb_mmco;
-} else if (!first_slice && nb_mmco >= 0 &&
-   (nb_mmco != h->nb_mmco ||
-(i = check_opcodes(h->mmco, mmco_temp, nb_mmco {
-av_log(h->avctx, AV_LOG_ERROR,
-   "Inconsistent MMCO state between slices [%d, %d]\n",
-   nb_mmco, h->nb_mmco);
-return AVERROR_INVALIDDATA;
-}
+sl->nb_mmco = nb_mmco;
+
 return 0;
 }
 
@@ -842,11 +835,11 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO 
*mmco, int mmco_count)
 return (h->avctx->err_recognition & AV_EF_EXPLODE) ? err : 0;
 }
 
-int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,
-   int first_slice)
+int ff_h264_decode_ref_pic_marking(const H264Context *h, H264SliceContext *sl,
+   GetBitContext *gb)
 {
 int i, ret;
-MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = mmco_temp;
+MMCO *mmco = sl->mmco;
 int nb_mmco = 0;
 
 if (h->nal_unit_type == NAL_IDR_SLICE) { // FIXME fields
@@ -902,26 +895,15 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, 
GetBitContext *gb,
 }
 nb_mmco = i;
 } else {
-if (first_slice) {
-ret = ff_generate_sliding_window_mmcos(h, first_slice);
-if (ret < 0 && h->avctx->err_recognition & AV_EF_EXPLODE)
-return ret;
-}
+ret = ff_generate_sliding_window_mmcos(h, sl);
+if (ret < 0 && h->avctx->err_recognition & AV_EF_EXPLODE)
+return ret;
 nb_mmco = -1;
 }
 }
 
-if (first_slice && nb_mmco != -1) {
-memcpy(h->mmco, mmco_temp, sizeof(h->mmco));
-h->nb_mmco = nb_mmco;
-} else if (!first_slice && nb_mmco >= 0 &&
-   (nb_mmco != h->nb_mmco ||
-check_opcodes(h->mmco, mmco_temp, nb_mmco))) {
-av_log(h->avctx, AV_LOG_ERROR,
-   "Inconsistent MMCO state between slices [%d, %d]\n",
-   nb_mmco, h->nb_mmco);
-return AVERROR_INVALIDDATA;
-}
+if (nb_mmco != -1)
+sl->nb_mmco = nb_mmco;
 
 return 0;
 }
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index a63c9b9..cb52b77 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1421,10 +1421,12 @@ static int h264_slice_header_parse(H264Context *h, 
H264SliceContext *sl)
 h->cur_pic_ptr->invalid_gap = !sps->gaps_in_frame_num_allowed_flag;
 

[FFmpeg-cvslog] h264: decode the MMCOs into per-slice contexts

2016-06-30 Thread Anton Khirnov
ffmpeg | branch: master | Anton Khirnov  | Mon May  9 
13:48:01 2016 +0200| [2d410ebbaa1e760d6837cb434a6d1d4c3c6f0d85] | committer: 
Anton Khirnov

h264: decode the MMCOs into per-slice contexts

They are stored in the slice header, so technically they are per-slice
(though they must be the same in every slice). This will simplify the
following commits.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2d410ebbaa1e760d6837cb434a6d1d4c3c6f0d85
---

 libavcodec/h264.h   |9 ++---
 libavcodec/h264_refs.c  |   43 +--
 libavcodec/h264_slice.c |   21 ++---
 3 files changed, 29 insertions(+), 44 deletions(-)

diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index feccf3a..227cdab 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -439,6 +439,9 @@ typedef struct H264SliceContext {
 CABACContext cabac;
 uint8_t cabac_state[1024];
 int cabac_init_idc;
+
+MMCO mmco[MAX_MMCO_COUNT];
+int  nb_mmco;
 } H264SliceContext;
 
 /**
@@ -671,10 +674,10 @@ void ff_h264_remove_all_refs(H264Context *h);
  */
 int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int 
mmco_count);
 
-int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,
-   int first_slice);
+int ff_h264_decode_ref_pic_marking(const H264Context *h, H264SliceContext *sl,
+   GetBitContext *gb);
 
-int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice);
+int ff_generate_sliding_window_mmcos(const H264Context *h, H264SliceContext 
*sl);
 
 void ff_h264_hl_decode_mb(const H264Context *h, H264SliceContext *sl);
 int ff_h264_decode_init(AVCodecContext *avctx);
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index d985c5e..dae5565 100644
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@ -536,9 +536,10 @@ static int check_opcodes(MMCO *mmco1, MMCO *mmco2, int 
n_mmcos)
 return 0;
 }
 
-int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice)
+int ff_generate_sliding_window_mmcos(const H264Context *h,
+ H264SliceContext *sl)
 {
-MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp;
+MMCO *mmco = sl->mmco;
 int nb_mmco = 0, i = 0;
 
 assert(h->long_ref_count + h->short_ref_count <= 
h->ps.sps->ref_frame_count);
@@ -557,16 +558,8 @@ int ff_generate_sliding_window_mmcos(H264Context *h, int 
first_slice)
 }
 }
 
-if (first_slice) {
-h->nb_mmco = nb_mmco;
-} else if (!first_slice && nb_mmco >= 0 &&
-   (nb_mmco != h->nb_mmco ||
-(i = check_opcodes(h->mmco, mmco_temp, nb_mmco {
-av_log(h->avctx, AV_LOG_ERROR,
-   "Inconsistent MMCO state between slices [%d, %d, %d]\n",
-   nb_mmco, h->nb_mmco, i);
-return AVERROR_INVALIDDATA;
-}
+sl->nb_mmco = nb_mmco;
+
 return 0;
 }
 
@@ -743,11 +736,11 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO 
*mmco, int mmco_count)
 return (h->avctx->err_recognition & AV_EF_EXPLODE) ? err : 0;
 }
 
-int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,
-   int first_slice)
+int ff_h264_decode_ref_pic_marking(const H264Context *h, H264SliceContext *sl,
+   GetBitContext *gb)
 {
 int i, ret;
-MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp;
+MMCO *mmco = sl->mmco;
 int nb_mmco = 0;
 
 if (h->nal_unit_type == NAL_IDR_SLICE) { // FIXME fields
@@ -803,25 +796,15 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, 
GetBitContext *gb,
 }
 nb_mmco = i;
 } else {
-if (first_slice) {
-ret = ff_generate_sliding_window_mmcos(h, first_slice);
-if (ret < 0 && h->avctx->err_recognition & AV_EF_EXPLODE)
-return ret;
-}
+ret = ff_generate_sliding_window_mmcos(h, sl);
+if (ret < 0 && h->avctx->err_recognition & AV_EF_EXPLODE)
+return ret;
 nb_mmco = -1;
 }
 }
 
-if (first_slice && nb_mmco != -1) {
-h->nb_mmco = nb_mmco;
-} else if (!first_slice && nb_mmco >= 0 &&
-   (nb_mmco != h->nb_mmco ||
-check_opcodes(h->mmco, mmco_temp, nb_mmco))) {
-av_log(h->avctx, AV_LOG_ERROR,
-   "Inconsistent MMCO state between slices [%d, %d]\n",
-   nb_mmco, h->nb_mmco);
-return AVERROR_INVALIDDATA;
-}
+if (nb_mmco != -1)
+sl->nb_mmco = nb_mmco;
 
 return 0;
 }
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 634f181..6967edb 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1201,10 +1201,12 @@ static int h264_slice_header_parse(H264Context *h, 
H264SliceContext *sl)
 h->cur_pic_ptr->frame_num 

[FFmpeg-cvslog] Merge commit 'bec993381cfec72051b0d9f12ac9d9bb9c750983'

2016-06-30 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Thu Jun 30 
10:24:03 2016 +0200| [f48aea66ddfef3998ee7aaf6c6567577ae481807] | committer: 
Clément Bœsch

Merge commit 'bec993381cfec72051b0d9f12ac9d9bb9c750983'

* commit 'bec993381cfec72051b0d9f12ac9d9bb9c750983':
  h264: postpone generating the implicit MMCOs

Merged-by: Clément Bœsch 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f48aea66ddfef3998ee7aaf6c6567577ae481807
---

 libavcodec/h264.h |6 +++---
 libavcodec/h264_picture.c |2 +-
 libavcodec/h264_refs.c|   33 -
 libavcodec/h264_slice.c   |   12 ++--
 4 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 84cf59e..efca5ab 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -456,6 +456,7 @@ typedef struct H264SliceContext {
 
 MMCO mmco[MAX_MMCO_COUNT];
 int  nb_mmco;
+int explicit_ref_marking;
 } H264SliceContext;
 
 /**
@@ -603,6 +604,7 @@ typedef struct H264Context {
 MMCO mmco[MAX_MMCO_COUNT];
 int  nb_mmco;
 int mmco_reset;
+int explicit_ref_marking;
 
 int long_ref_count; ///< number of actual long term references
 int short_ref_count;///< number of actual short term references
@@ -729,13 +731,11 @@ void ff_h264_remove_all_refs(H264Context *h);
 /**
  * Execute the reference picture marking (memory management control 
operations).
  */
-int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int 
mmco_count);
+int ff_h264_execute_ref_pic_marking(H264Context *h);
 
 int ff_h264_decode_ref_pic_marking(const H264Context *h, H264SliceContext *sl,
GetBitContext *gb);
 
-int ff_generate_sliding_window_mmcos(const H264Context *h, H264SliceContext 
*sl);
-
 void ff_h264_hl_decode_mb(const H264Context *h, H264SliceContext *sl);
 int ff_h264_decode_init(AVCodecContext *avctx);
 void ff_h264_decode_init_vlc(void);
diff --git a/libavcodec/h264_picture.c b/libavcodec/h264_picture.c
index 320bb0c..6426b54 100644
--- a/libavcodec/h264_picture.c
+++ b/libavcodec/h264_picture.c
@@ -164,7 +164,7 @@ int ff_h264_field_end(H264Context *h, H264SliceContext *sl, 
int in_setup)
 
 if (in_setup || !(avctx->active_thread_type & FF_THREAD_FRAME)) {
 if (!h->droppable) {
-err = ff_h264_execute_ref_pic_marking(h, h->mmco, h->nb_mmco);
+err = ff_h264_execute_ref_pic_marking(h);
 h->poc.prev_poc_msb = h->poc.poc_msb;
 h->poc.prev_poc_lsb = h->poc.poc_lsb;
 }
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index c710012..5905276 100644
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@ -601,11 +601,10 @@ static int check_opcodes(MMCO *mmco1, MMCO *mmco2, int 
n_mmcos)
 return 0;
 }
 
-int ff_generate_sliding_window_mmcos(const H264Context *h,
- H264SliceContext *sl)
+static void generate_sliding_window_mmcos(H264Context *h)
 {
-MMCO *mmco = sl->mmco;
-int nb_mmco = 0, i = 0;
+MMCO *mmco = h->mmco;
+int nb_mmco = 0;
 
 if (h->short_ref_count &&
 h->long_ref_count + h->short_ref_count >= h->ps.sps->ref_frame_count &&
@@ -621,18 +620,22 @@ int ff_generate_sliding_window_mmcos(const H264Context *h,
 }
 }
 
-sl->nb_mmco = nb_mmco;
-
-return 0;
+h->nb_mmco = nb_mmco;
 }
 
-int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count)
+int ff_h264_execute_ref_pic_marking(H264Context *h)
 {
+MMCO *mmco = h->mmco;
+int mmco_count;
 int i, av_uninit(j);
 int pps_ref_count[2] = {0};
 int current_ref_assigned = 0, err = 0;
 H264Picture *av_uninit(pic);
 
+if (!h->explicit_ref_marking)
+generate_sliding_window_mmcos(h);
+mmco_count = h->nb_mmco;
+
 if ((h->avctx->debug & FF_DEBUG_MMCO) && mmco_count == 0)
 av_log(h->avctx, AV_LOG_DEBUG, "no mmco here\n");
 
@@ -838,7 +841,7 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO 
*mmco, int mmco_count)
 int ff_h264_decode_ref_pic_marking(const H264Context *h, H264SliceContext *sl,
GetBitContext *gb)
 {
-int i, ret;
+int i;
 MMCO *mmco = sl->mmco;
 int nb_mmco = 0;
 
@@ -849,8 +852,10 @@ int ff_h264_decode_ref_pic_marking(const H264Context *h, 
H264SliceContext *sl,
 mmco[0].long_arg = 0;
 nb_mmco  = 1;
 }
+sl->explicit_ref_marking = 1;
 } else {
-if (get_bits1(gb)) { // adaptive_ref_pic_marking_mode_flag
+sl->explicit_ref_marking = get_bits1(gb);
+if (sl->explicit_ref_marking) {
 for (i = 0; i < MAX_MMCO_COUNT; i++) {
 MMCOOpcode opcode = get_ue_golomb_31(gb);
 
@@ -894,16 +899,10 @@ int ff_h264_decode_ref_pic_marking(const H264Context *h, 
H264SliceContext *sl,
 break;
 }
 nb_mmco = i;
-} else {
-ret = ff_ge

[FFmpeg-cvslog] avformat/mov: Check sample size

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: release/3.1 | Michael Niedermayer  | 
Tue Jun 28 23:49:36 2016 +0200| [3e730278f5a8e5ec3f9593700488a940f38dfac1] | 
committer: Michael Niedermayer

avformat/mov: Check sample size

Fixes integer overflow
Fixes: poc.mp4

Found-by: ajax secure 
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 8a3221cc67a516dfc1700bdae3566ec52c7ee823)

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3e730278f5a8e5ec3f9593700488a940f38dfac1
---

 libavformat/mov.c |   11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index c7caf80..33ee799 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2843,7 +2843,12 @@ static void mov_build_index(MOVContext *mov, AVStream 
*st)
 sample_size = sc->stsz_sample_size > 0 ? sc->stsz_sample_size 
: sc->sample_sizes[current_sample];
 if (sc->pseudo_stream_id == -1 ||
sc->stsc_data[stsc_index].id - 1 == sc->pseudo_stream_id) {
-AVIndexEntry *e = 
&st->index_entries[st->nb_index_entries++];
+AVIndexEntry *e;
+if (sample_size > 0x3FFF) {
+av_log(mov->fc, AV_LOG_ERROR, "Sample size %u is too 
large\n", sample_size);
+return;
+}
+e = &st->index_entries[st->nb_index_entries++];
 e->pos = current_offset;
 e->timestamp = current_dts;
 e->size = sample_size;
@@ -2968,6 +2973,10 @@ static void mov_build_index(MOVContext *mov, AVStream 
*st)
 av_log(mov->fc, AV_LOG_ERROR, "wrong chunk count %d\n", 
total);
 return;
 }
+if (size > 0x3FFF) {
+av_log(mov->fc, AV_LOG_ERROR, "Sample size %u is too 
large\n", size);
+return;
+}
 e = &st->index_entries[st->nb_index_entries++];
 e->pos = current_offset;
 e->timestamp = current_dts;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] PPC64: Add versions of functions in libswscale/ input.c optimized for POWER8 VSX SIMD.

2016-06-30 Thread Dan Parrot
ffmpeg | branch: master | Dan Parrot  | Wed Jun 29 
16:15:12 2016 +| [1df908f33f658979b32599489ca6f1a39821013c] | committer: 
Michael Niedermayer

PPC64: Add versions of functions in libswscale/input.c optimized for POWER8 VSX 
SIMD.

This patch addresses Trac ticket #5570. The optimized functions are in file
libswscale/ppc/input_vsx.c. Each optimized function name is a concatenation of 
the
corresponding name in libswscale/input.c with suffix _vsx.

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1df908f33f658979b32599489ca6f1a39821013c
---

 libswscale/ppc/Makefile   |1 +
 libswscale/ppc/input_vsx.c|  437 +
 libswscale/swscale.c  |3 +
 libswscale/swscale_internal.h |1 +
 4 files changed, 442 insertions(+)

diff --git a/libswscale/ppc/Makefile b/libswscale/ppc/Makefile
index d1b596e..2482893 100644
--- a/libswscale/ppc/Makefile
+++ b/libswscale/ppc/Makefile
@@ -1,3 +1,4 @@
 OBJS += ppc/swscale_altivec.o   \
+ppc/input_vsx.o \
 ppc/yuv2rgb_altivec.o   \
 ppc/yuv2yuv_altivec.o   \
diff --git a/libswscale/ppc/input_vsx.c b/libswscale/ppc/input_vsx.c
new file mode 100644
index 000..d977a32
--- /dev/null
+++ b/libswscale/ppc/input_vsx.c
@@ -0,0 +1,437 @@
+/*
+ * Copyright (C) 2016 Dan Parrot 
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include 
+#include 
+#include 
+#include 
+
+#include "libavutil/avutil.h"
+#include "libavutil/bswap.h"
+#include "libavutil/cpu.h"
+#include "libavutil/intreadwrite.h"
+#include "libavutil/mathematics.h"
+#include "libavutil/pixdesc.h"
+#include "libavutil/avassert.h"
+#include "config.h"
+#include "libswscale/rgb2rgb.h"
+#include "libswscale/swscale.h"
+#include "libswscale/swscale_internal.h"
+
+#if HAVE_VSX
+
+static void abgrToA_c_vsx(uint8_t *_dst, const uint8_t *src, const uint8_t 
*unused1, const uint8_t *unused2,
+  int width, uint32_t *unused)
+{
+int16_t *dst = (int16_t *)_dst;
+int i, width_adj, frag_len;
+
+uintptr_t src_addr = (uintptr_t)src;
+uintptr_t dst_addr = (uintptr_t)dst;
+
+// compute integral number of vector-length items and length of final 
fragment
+width_adj = width >> 3;
+width_adj = width_adj << 3;
+frag_len = width - width_adj;
+
+for ( i = 0; i < width_adj; i += 8) {
+vector int v_rd0 = vec_vsx_ld(0, (int *)src_addr);
+vector int v_rd1 = vec_vsx_ld(0, (int *)(src_addr + 16));
+
+v_rd0 = vec_and(v_rd0, vec_splats(0x0ff));
+v_rd1 = vec_and(v_rd1, vec_splats(0x0ff));
+
+v_rd0 = vec_sl(v_rd0, vec_splats((unsigned)6));
+v_rd1 = vec_sl(v_rd1, vec_splats((unsigned)6));
+
+vector int v_dst = vec_perm(v_rd0, v_rd1, ((vector unsigned char)
+   {0, 1, 4, 5, 8, 9, 12, 13, 
16, 17, 20, 21, 24, 25, 28, 29}));
+vec_vsx_st((vector unsigned char)v_dst, 0, (unsigned char *)dst_addr);
+
+src_addr += 32;
+dst_addr += 16;
+}
+
+for (i=width_adj; i< width_adj + frag_len; i++) {
+dst[i]= src[4*i]<<6;
+}
+}
+
+static void rgbaToA_c_vsx(uint8_t *_dst, const uint8_t *src, const uint8_t 
*unused1, const uint8_t *unused2,
+  int width, uint32_t *unused)
+{
+int16_t *dst = (int16_t *)_dst;
+int i, width_adj, frag_len;
+
+uintptr_t src_addr = (uintptr_t)src;
+uintptr_t dst_addr = (uintptr_t)dst;
+
+// compute integral number of vector-length items and length of final 
fragment
+width_adj = width >> 3;
+width_adj = width_adj << 3;
+frag_len = width - width_adj;
+
+for ( i = 0; i < width_adj; i += 8) {
+vector int v_rd0 = vec_vsx_ld(0, (int *)src_addr);
+vector int v_rd1 = vec_vsx_ld(0, (int *)(src_addr + 16));
+
+v_rd0 = vec_sld(v_rd0, v_rd0, 13);
+v_rd1 = vec_sld(v_rd1, v_rd1, 13);
+
+v_rd0 = vec_and(v_rd0, vec_splats(0x0ff));
+v_rd1 = vec_and(v_rd1, vec_splats(0x0ff));
+
+v_rd0 = vec_sl(v_rd0, vec_splats((unsigned)6));
+

[FFmpeg-cvslog] avformat/mov: Skip non-key frames if AVDISCARD_NONKEY is set.

2016-06-30 Thread Vadim Kalinsky
ffmpeg | branch: master | Vadim Kalinsky  | Tue Jun 28 
14:09:46 2016 -0400| [e370aad67ddb15033f656f6b1120c030c759f30b] | committer: 
Michael Niedermayer

avformat/mov: Skip non-key frames if AVDISCARD_NONKEY is set.

Github: Closes #222

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e370aad67ddb15033f656f6b1120c030c759f30b
---

 libavformat/mov.c |6 ++
 1 file changed, 6 insertions(+)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index a929f74..485bb0b 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -5224,6 +5224,12 @@ static int mov_read_packet(AVFormatContext *s, AVPacket 
*pkt)
 sc->current_sample -= should_retry(sc->pb, ret64);
 return AVERROR_INVALIDDATA;
 }
+
+if( st->discard == AVDISCARD_NONKEY && 0==(sample->flags & 
AVINDEX_KEYFRAME) ) {
+av_log(mov->fc, AV_LOG_DEBUG, "Nonkey frame from stream %d 
discarded due to AVDISCARD_NONKEY\n", sc->ffindex);
+goto retry;
+}
+
 ret = av_get_packet(sc->pb, pkt, sample->size);
 if (ret < 0) {
 sc->current_sample -= should_retry(sc->pb, ret);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] libavcodec/exr : fix decoding piz float file.

2016-06-30 Thread Martin Vignali
ffmpeg | branch: master | Martin Vignali  | Tue Jun 
28 13:23:43 2016 +0200| [d9e1e08133234dc4501413f0e3211f3a268049bc] | committer: 
Michael Niedermayer

libavcodec/exr : fix decoding piz float file.

fix ticket #5674

the size of data to process in piz_uncompress, is now calc
using the pixel type of each channel.

the data reorganization, alos take care about the size of
each channel

Reviewed-by: Paul B Mahol 
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d9e1e08133234dc4501413f0e3211f3a268049bc
---

 libavcodec/exr.c |   37 +++--
 1 file changed, 27 insertions(+), 10 deletions(-)

diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index c87187c..cabe329 100644
--- a/libavcodec/exr.c
+++ b/libavcodec/exr.c
@@ -749,6 +749,9 @@ static int piz_uncompress(EXRContext *s, const uint8_t 
*src, int ssize,
 uint16_t *tmp = (uint16_t *)td->tmp;
 uint8_t *out;
 int ret, i, j;
+int pixel_half_size;/* 1 for half, 2 for float and uint32 */
+EXRChannel *channel;
+int tmp_offset;
 
 if (!td->bitmap)
 td->bitmap = av_malloc(BITMAP_SIZE);
@@ -781,24 +784,38 @@ static int piz_uncompress(EXRContext *s, const uint8_t 
*src, int ssize,
 
 ptr = tmp;
 for (i = 0; i < s->nb_channels; i++) {
-EXRChannel *channel = &s->channels[i];
-int size = channel->pixel_type;
+channel = &s->channels[i];
 
-for (j = 0; j < size; j++)
-wav_decode(ptr + j, td->xsize, size, td->ysize,
-   td->xsize * size, maxval);
-ptr += td->xsize * td->ysize * size;
+if (channel->pixel_type == EXR_HALF)
+pixel_half_size = 1;
+else
+pixel_half_size = 2;
+
+for (j = 0; j < pixel_half_size; j++)
+wav_decode(ptr + j, td->xsize, pixel_half_size, td->ysize,
+   td->xsize * pixel_half_size, maxval);
+ptr += td->xsize * td->ysize * pixel_half_size;
 }
 
 apply_lut(td->lut, tmp, dsize / sizeof(uint16_t));
 
 out = td->uncompressed_data;
-for (i = 0; i < td->ysize; i++)
+for (i = 0; i < td->ysize; i++) {
+tmp_offset = 0;
 for (j = 0; j < s->nb_channels; j++) {
-uint16_t *in = tmp + j * td->xsize * td->ysize + i * td->xsize;
-memcpy(out, in, td->xsize * 2);
-out += td->xsize * 2;
+uint16_t *in;
+EXRChannel *channel = &s->channels[j];
+if (channel->pixel_type == EXR_HALF)
+pixel_half_size = 1;
+else
+pixel_half_size = 2;
+
+in = tmp + tmp_offset * td->xsize * td->ysize + i * td->xsize * 
pixel_half_size;
+tmp_offset += pixel_half_size;
+memcpy(out, in, td->xsize * 2 * pixel_half_size);
+out += td->xsize * 2 * pixel_half_size;
 }
+}
 
 return 0;
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avformat/avformat: Move new field to the end of AVStream

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Thu 
Jun 30 14:02:26 2016 +0200| [c1c7e0abb0c513a5f35b29126175b99fc9ca0254] | 
committer: Michael Niedermayer

avformat/avformat: Move new field to the end of AVStream

This fixes part of Ticket5676
This fixes kodi, mpv, chromium and ffplay build against 3.0 and linked to 3.1

This is a similar ABI fix to 1eb43af1a0e542ad83dcbf327197785d815fc42d

Approved-by: BBB
Approved-by: jamrial
Approved-by: BtbN
Approved-by: nevcairiel
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c1c7e0abb0c513a5f35b29126175b99fc9ca0254
---

 libavformat/avformat.h |   22 +++---
 libavformat/version.h  |4 ++--
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 876f1e3..818184e 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -985,17 +985,6 @@ typedef struct AVStream {
 int event_flags;
 #define AVSTREAM_EVENT_FLAG_METADATA_UPDATED 0x0001 ///< The call resulted in 
updated metadata.
 
-/*
- * Codec parameters associated with this stream. Allocated and freed by
- * libavformat in avformat_new_stream() and avformat_free_context()
- * respectively.
- *
- * - demuxing: filled by libavformat on stream creation or in
- * avformat_find_stream_info()
- * - muxing: filled by the caller before avformat_write_header()
- */
-AVCodecParameters *codecpar;
-
 /*
  * All fields below this line are not part of the public API. They
  * may not be used outside of libavformat and can be changed and
@@ -1217,6 +1206,17 @@ typedef struct AVStream {
  * Must not be accessed in any way by callers.
  */
 AVStreamInternal *internal;
+
+/*
+ * Codec parameters associated with this stream. Allocated and freed by
+ * libavformat in avformat_new_stream() and avformat_free_context()
+ * respectively.
+ *
+ * - demuxing: filled by libavformat on stream creation or in
+ * avformat_find_stream_info()
+ * - muxing: filled by the caller before avformat_write_header()
+ */
+AVCodecParameters *codecpar;
 } AVStream;
 
 AVRational av_stream_get_r_frame_rate(const AVStream *s);
diff --git a/libavformat/version.h b/libavformat/version.h
index 544d436..47a8afb 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -32,8 +32,8 @@
 // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
 // Also please add any ticket numbers that you belive might be affected here
 #define LIBAVFORMAT_VERSION_MAJOR  57
-#define LIBAVFORMAT_VERSION_MINOR  40
-#define LIBAVFORMAT_VERSION_MICRO 101
+#define LIBAVFORMAT_VERSION_MINOR  41
+#define LIBAVFORMAT_VERSION_MICRO 100
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avformat/utils: update deprecated AVStream-> codec when the context is updated

2016-06-30 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Thu Jun 30 
14:10:42 2016 +0200| [c2e13d2ecd388bab28e743c34ed146c5ed213fc9] | committer: 
Michael Niedermayer

avformat/utils: update deprecated AVStream->codec when the context is updated

This ensures the AVStream->codec entry is kept in sync when new streams are
discovered mid-playback or changes to the context occur from other sources.

Fixes trac 5678.

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c2e13d2ecd388bab28e743c34ed146c5ed213fc9
---

 libavformat/utils.c |9 +
 1 file changed, 9 insertions(+)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 6f343f2..d2a709c 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1483,6 +1483,15 @@ static int read_frame_internal(AVFormatContext *s, 
AVPacket *pkt)
 if (ret < 0)
 return ret;
 
+#if FF_API_LAVF_AVCTX
+FF_DISABLE_DEPRECATION_WARNINGS
+/* update deprecated public codec context */
+ret = avcodec_parameters_to_context(st->codec, st->codecpar);
+if (ret < 0)
+return ret;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
+
 st->internal->need_context_update = 0;
 }
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avutil/frame: Move new field to the end of AVFrame

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Thu 
Jun 30 14:02:27 2016 +0200| [042fb69deb5303d147b21ab1061387fb6e0c7afc] | 
committer: Michael Niedermayer

avutil/frame: Move new field to the end of AVFrame

This fixes part of Ticket5676
This fixes kodi, mpv, chromium and ffplay build against 3.0 and linked to 3.1

This is a similar ABI fix to 1eb43af1a0e542ad83dcbf327197785d815fc42d

Approved-by: BBB
Approved-by: jamrial
Approved-by: BtbN
Approved-by: nevcairiel
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=042fb69deb5303d147b21ab1061387fb6e0c7afc
---

 libavutil/frame.h   |   11 +--
 libavutil/version.h |2 +-
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/libavutil/frame.h b/libavutil/frame.h
index 44adec4..2b5c332 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -428,12 +428,6 @@ typedef struct AVFrame {
 enum AVChromaLocation chroma_location;
 
 /**
- * For hwaccel-format frames, this should be a reference to the
- * AVHWFramesContext describing the frame.
- */
-AVBufferRef *hw_frames_ctx;
-
-/**
  * frame timestamp estimated using various heuristics, in stream time base
  * Code outside libavutil should access this field using:
  * av_frame_get_best_effort_timestamp(frame)
@@ -524,6 +518,11 @@ typedef struct AVFrame {
  */
 AVBufferRef *qp_table_buf;
 #endif
+/**
+ * For hwaccel-format frames, this should be a reference to the
+ * AVHWFramesContext describing the frame.
+ */
+AVBufferRef *hw_frames_ctx;
 } AVFrame;
 
 /**
diff --git a/libavutil/version.h b/libavutil/version.h
index aa10622..07618fc 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -64,7 +64,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  55
-#define LIBAVUTIL_VERSION_MINOR  27
+#define LIBAVUTIL_VERSION_MINOR  28
 #define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avutil/frame: Move new field to the end of AVFrame

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: release/3.1 | Michael Niedermayer  | 
Thu Jun 30 14:02:27 2016 +0200| [77473002898f1dce18761c8a9bca48a8fe888d2e] | 
committer: Michael Niedermayer

avutil/frame: Move new field to the end of AVFrame

This fixes part of Ticket5676
This fixes kodi, mpv, chromium and ffplay build against 3.0 and linked to 3.1

This is a similar ABI fix to 1eb43af1a0e542ad83dcbf327197785d815fc42d

Approved-by: BBB
Approved-by: jamrial
Approved-by: BtbN
Approved-by: nevcairiel
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 042fb69deb5303d147b21ab1061387fb6e0c7afc)

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=77473002898f1dce18761c8a9bca48a8fe888d2e
---

 libavutil/frame.h   |   11 +--
 libavutil/version.h |2 +-
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/libavutil/frame.h b/libavutil/frame.h
index 44adec4..2b5c332 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -428,12 +428,6 @@ typedef struct AVFrame {
 enum AVChromaLocation chroma_location;
 
 /**
- * For hwaccel-format frames, this should be a reference to the
- * AVHWFramesContext describing the frame.
- */
-AVBufferRef *hw_frames_ctx;
-
-/**
  * frame timestamp estimated using various heuristics, in stream time base
  * Code outside libavutil should access this field using:
  * av_frame_get_best_effort_timestamp(frame)
@@ -524,6 +518,11 @@ typedef struct AVFrame {
  */
 AVBufferRef *qp_table_buf;
 #endif
+/**
+ * For hwaccel-format frames, this should be a reference to the
+ * AVHWFramesContext describing the frame.
+ */
+AVBufferRef *hw_frames_ctx;
 } AVFrame;
 
 /**
diff --git a/libavutil/version.h b/libavutil/version.h
index aa10622..07618fc 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -64,7 +64,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  55
-#define LIBAVUTIL_VERSION_MINOR  27
+#define LIBAVUTIL_VERSION_MINOR  28
 #define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avformat/avformat: Move new field to the end of AVStream

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: release/3.1 | Michael Niedermayer  | 
Thu Jun 30 14:02:26 2016 +0200| [f617b94c233fb070810c03478968c3e036787564] | 
committer: Michael Niedermayer

avformat/avformat: Move new field to the end of AVStream

This fixes part of Ticket5676
This fixes kodi, mpv, chromium and ffplay build against 3.0 and linked to 3.1

This is a similar ABI fix to 1eb43af1a0e542ad83dcbf327197785d815fc42d

Approved-by: BBB
Approved-by: jamrial
Approved-by: BtbN
Approved-by: nevcairiel
Signed-off-by: Michael Niedermayer 
(cherry picked from commit c1c7e0abb0c513a5f35b29126175b99fc9ca0254)

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f617b94c233fb070810c03478968c3e036787564
---

 libavformat/avformat.h |   22 +++---
 libavformat/version.h  |4 ++--
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 876f1e3..818184e 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -985,17 +985,6 @@ typedef struct AVStream {
 int event_flags;
 #define AVSTREAM_EVENT_FLAG_METADATA_UPDATED 0x0001 ///< The call resulted in 
updated metadata.
 
-/*
- * Codec parameters associated with this stream. Allocated and freed by
- * libavformat in avformat_new_stream() and avformat_free_context()
- * respectively.
- *
- * - demuxing: filled by libavformat on stream creation or in
- * avformat_find_stream_info()
- * - muxing: filled by the caller before avformat_write_header()
- */
-AVCodecParameters *codecpar;
-
 /*
  * All fields below this line are not part of the public API. They
  * may not be used outside of libavformat and can be changed and
@@ -1217,6 +1206,17 @@ typedef struct AVStream {
  * Must not be accessed in any way by callers.
  */
 AVStreamInternal *internal;
+
+/*
+ * Codec parameters associated with this stream. Allocated and freed by
+ * libavformat in avformat_new_stream() and avformat_free_context()
+ * respectively.
+ *
+ * - demuxing: filled by libavformat on stream creation or in
+ * avformat_find_stream_info()
+ * - muxing: filled by the caller before avformat_write_header()
+ */
+AVCodecParameters *codecpar;
 } AVStream;
 
 AVRational av_stream_get_r_frame_rate(const AVStream *s);
diff --git a/libavformat/version.h b/libavformat/version.h
index 544d436..47a8afb 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -32,8 +32,8 @@
 // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
 // Also please add any ticket numbers that you belive might be affected here
 #define LIBAVFORMAT_VERSION_MAJOR  57
-#define LIBAVFORMAT_VERSION_MINOR  40
-#define LIBAVFORMAT_VERSION_MICRO 101
+#define LIBAVFORMAT_VERSION_MINOR  41
+#define LIBAVFORMAT_VERSION_MICRO 100
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] libavcodec/exr : fix decoding piz float file.

2016-06-30 Thread Martin Vignali
ffmpeg | branch: release/3.1 | Martin Vignali  | Tue 
Jun 28 13:23:43 2016 +0200| [37c83b53730aed3205dab3055aefffa642763ea4] | 
committer: Michael Niedermayer

libavcodec/exr : fix decoding piz float file.

fix ticket #5674

the size of data to process in piz_uncompress, is now calc
using the pixel type of each channel.

the data reorganization, alos take care about the size of
each channel

Reviewed-by: Paul B Mahol 
Signed-off-by: Michael Niedermayer 
(cherry picked from commit d9e1e08133234dc4501413f0e3211f3a268049bc)

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=37c83b53730aed3205dab3055aefffa642763ea4
---

 libavcodec/exr.c |   37 +++--
 1 file changed, 27 insertions(+), 10 deletions(-)

diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index c87187c..cabe329 100644
--- a/libavcodec/exr.c
+++ b/libavcodec/exr.c
@@ -749,6 +749,9 @@ static int piz_uncompress(EXRContext *s, const uint8_t 
*src, int ssize,
 uint16_t *tmp = (uint16_t *)td->tmp;
 uint8_t *out;
 int ret, i, j;
+int pixel_half_size;/* 1 for half, 2 for float and uint32 */
+EXRChannel *channel;
+int tmp_offset;
 
 if (!td->bitmap)
 td->bitmap = av_malloc(BITMAP_SIZE);
@@ -781,24 +784,38 @@ static int piz_uncompress(EXRContext *s, const uint8_t 
*src, int ssize,
 
 ptr = tmp;
 for (i = 0; i < s->nb_channels; i++) {
-EXRChannel *channel = &s->channels[i];
-int size = channel->pixel_type;
+channel = &s->channels[i];
 
-for (j = 0; j < size; j++)
-wav_decode(ptr + j, td->xsize, size, td->ysize,
-   td->xsize * size, maxval);
-ptr += td->xsize * td->ysize * size;
+if (channel->pixel_type == EXR_HALF)
+pixel_half_size = 1;
+else
+pixel_half_size = 2;
+
+for (j = 0; j < pixel_half_size; j++)
+wav_decode(ptr + j, td->xsize, pixel_half_size, td->ysize,
+   td->xsize * pixel_half_size, maxval);
+ptr += td->xsize * td->ysize * pixel_half_size;
 }
 
 apply_lut(td->lut, tmp, dsize / sizeof(uint16_t));
 
 out = td->uncompressed_data;
-for (i = 0; i < td->ysize; i++)
+for (i = 0; i < td->ysize; i++) {
+tmp_offset = 0;
 for (j = 0; j < s->nb_channels; j++) {
-uint16_t *in = tmp + j * td->xsize * td->ysize + i * td->xsize;
-memcpy(out, in, td->xsize * 2);
-out += td->xsize * 2;
+uint16_t *in;
+EXRChannel *channel = &s->channels[j];
+if (channel->pixel_type == EXR_HALF)
+pixel_half_size = 1;
+else
+pixel_half_size = 2;
+
+in = tmp + tmp_offset * td->xsize * td->ysize + i * td->xsize * 
pixel_half_size;
+tmp_offset += pixel_half_size;
+memcpy(out, in, td->xsize * 2 * pixel_half_size);
+out += td->xsize * 2 * pixel_half_size;
 }
+}
 
 return 0;
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avformat/utils: update deprecated AVStream-> codec when the context is updated

2016-06-30 Thread Hendrik Leppkes
ffmpeg | branch: release/3.1 | Hendrik Leppkes  | Thu Jun 
30 14:10:42 2016 +0200| [79af094b9304676a2bd83a5172fac97f0d964c1a] | committer: 
Michael Niedermayer

avformat/utils: update deprecated AVStream->codec when the context is updated

This ensures the AVStream->codec entry is kept in sync when new streams are
discovered mid-playback or changes to the context occur from other sources.

Fixes trac 5678.

Signed-off-by: Michael Niedermayer 
(cherry picked from commit c2e13d2ecd388bab28e743c34ed146c5ed213fc9)

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=79af094b9304676a2bd83a5172fac97f0d964c1a
---

 libavformat/utils.c |9 +
 1 file changed, 9 insertions(+)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 6f343f2..d2a709c 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1483,6 +1483,15 @@ static int read_frame_internal(AVFormatContext *s, 
AVPacket *pkt)
 if (ret < 0)
 return ret;
 
+#if FF_API_LAVF_AVCTX
+FF_DISABLE_DEPRECATION_WARNINGS
+/* update deprecated public codec context */
+ret = avcodec_parameters_to_context(st->codec, st->codecpar);
+if (ret < 0)
+return ret;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
+
 st->internal->need_context_update = 0;
 }
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc/APIchanges: document the lavu/lavf field moves

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Thu 
Jun 30 18:12:41 2016 +0200| [86fec7a7e861f0ad3c95cb27271267ec143ff754] | 
committer: Michael Niedermayer

doc/APIchanges: document the lavu/lavf field moves

Based-on: patch by James Almer
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=86fec7a7e861f0ad3c95cb27271267ec143ff754
---

 doc/APIchanges |8 
 1 file changed, 8 insertions(+)

diff --git a/doc/APIchanges b/doc/APIchanges
index 47106c2..bca8992 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,14 @@ libavutil: 2015-08-28
 
 API changes, most recent first:
 
+2016-06-30 - c1c7e0ab - lavf 57.41.100 - avformat.h
+  Moved codecpar field from AVStream to the end of the struct, so that
+  the following private fields are in the same location as in FFmpeg 3.0 (lavf 
57.25.100).
+
+2016-06-30 - 042fb69d - lavu 55.28.100 - frame.h
+  Moved hw_frames_ctx field from AVFrame to the end of the struct, so that
+  the following private fields are in the same location as in FFmpeg 3.0 (lavu 
55.17.103).
+
 2016-06-29 - xxx - lavfi 6.47.100 - avfilter.h
   Fix accidental ABI breakage in AVFilterContext.
   ABI was broken in 8688d3a, lavfi 6.42.100 and released as ffmpeg 3.1.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] Update for 3.1.1

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: release/3.1 | Michael Niedermayer  | 
Fri Jul  1 02:13:51 2016 +0200| [fc25481d17bec3c7191d933fcc25e87c0a20a3a1] | 
committer: Michael Niedermayer

Update for 3.1.1

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fc25481d17bec3c7191d933fcc25e87c0a20a3a1
---

 Changelog|   14 ++
 RELEASE  |2 +-
 doc/Doxyfile |2 +-
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/Changelog b/Changelog
index 99cdb80..2a87916 100644
--- a/Changelog
+++ b/Changelog
@@ -4,6 +4,20 @@ releases are sorted from youngest to oldest.
 version :
 
 
+version 3.1.1:
+- doc/APIchanges: document the lavu/lavf field moves
+- avformat/avformat: Move new field to the end of AVStream
+- avformat/utils: update deprecated AVStream->codec when the context is updated
+- avutil/frame: Move new field to the end of AVFrame
+- libavcodec/exr : fix decoding piz float file.
+- avformat/mov: Check sample size
+- lavfi: Move new field to the end of AVFilterContext
+- lavfi: Move new field to the end of AVFilterLink
+- ffplay: Fix usage of private lavfi API
+- lavc/mediacodecdec_h264: add missing NAL headers to SPS/PPS buffers
+- lavc/pnm_parser: disable parsing for text based PNMs
+
+
 version 3.1:
 - DXVA2-accelerated HEVC Main10 decoding
 - fieldhint filter
diff --git a/RELEASE b/RELEASE
index 8c50098..94ff29c 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1 +1 @@
-3.1
+3.1.1
diff --git a/doc/Doxyfile b/doc/Doxyfile
index 53f9b25..68c0679 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -31,7 +31,7 @@ PROJECT_NAME   = FFmpeg
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.
 
-PROJECT_NUMBER = 3.1
+PROJECT_NUMBER = 3.1.1
 
 # With the PROJECT_LOGO tag one can specify a logo or icon that is included
 # in the documentation. The maximum height of the logo should not exceed 55

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc/APIchanges: document the lavu/lavf field moves

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: release/3.1 | Michael Niedermayer  | 
Thu Jun 30 18:12:41 2016 +0200| [5c695ce90386e7871fabba2219d4076e70a78d01] | 
committer: Michael Niedermayer

doc/APIchanges: document the lavu/lavf field moves

Based-on: patch by James Almer
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 86fec7a7e861f0ad3c95cb27271267ec143ff754)

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5c695ce90386e7871fabba2219d4076e70a78d01
---

 doc/APIchanges |8 
 1 file changed, 8 insertions(+)

diff --git a/doc/APIchanges b/doc/APIchanges
index 47106c2..bca8992 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,14 @@ libavutil: 2015-08-28
 
 API changes, most recent first:
 
+2016-06-30 - c1c7e0ab - lavf 57.41.100 - avformat.h
+  Moved codecpar field from AVStream to the end of the struct, so that
+  the following private fields are in the same location as in FFmpeg 3.0 (lavf 
57.25.100).
+
+2016-06-30 - 042fb69d - lavu 55.28.100 - frame.h
+  Moved hw_frames_ctx field from AVFrame to the end of the struct, so that
+  the following private fields are in the same location as in FFmpeg 3.0 (lavu 
55.17.103).
+
 2016-06-29 - xxx - lavfi 6.47.100 - avfilter.h
   Fix accidental ABI breakage in AVFilterContext.
   ABI was broken in 8688d3a, lavfi 6.42.100 and released as ffmpeg 3.1.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc/APIchanges: fill in missing git hash

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: release/3.1 | Michael Niedermayer  | 
Fri Jul  1 02:42:03 2016 +0200| [ce36e74e75751c721185fbebaa4ee8714b44c5a5] | 
committer: Michael Niedermayer

doc/APIchanges: fill in missing git hash

Signed-off-by: Michael Niedermayer 
(cherry picked from commit 2a8dadb38f6b458ffe3ac2037bace7c3892cb282)

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ce36e74e75751c721185fbebaa4ee8714b44c5a5
---

 doc/APIchanges |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index bca8992..52cd48c 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -23,7 +23,7 @@ API changes, most recent first:
   Moved hw_frames_ctx field from AVFrame to the end of the struct, so that
   the following private fields are in the same location as in FFmpeg 3.0 (lavu 
55.17.103).
 
-2016-06-29 - xxx - lavfi 6.47.100 - avfilter.h
+2016-06-29 - 1a751455 - lavfi 6.47.100 - avfilter.h
   Fix accidental ABI breakage in AVFilterContext.
   ABI was broken in 8688d3a, lavfi 6.42.100 and released as ffmpeg 3.1.
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc/APIchanges: fill in missing git hash

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Fri 
Jul  1 02:42:03 2016 +0200| [2a8dadb38f6b458ffe3ac2037bace7c3892cb282] | 
committer: Michael Niedermayer

doc/APIchanges: fill in missing git hash

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2a8dadb38f6b458ffe3ac2037bace7c3892cb282
---

 doc/APIchanges |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index bca8992..52cd48c 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -23,7 +23,7 @@ API changes, most recent first:
   Moved hw_frames_ctx field from AVFrame to the end of the struct, so that
   the following private fields are in the same location as in FFmpeg 3.0 (lavu 
55.17.103).
 
-2016-06-29 - xxx - lavfi 6.47.100 - avfilter.h
+2016-06-29 - 1a751455 - lavfi 6.47.100 - avfilter.h
   Fix accidental ABI breakage in AVFilterContext.
   ABI was broken in 8688d3a, lavfi 6.42.100 and released as ffmpeg 3.1.
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] Tag n3.1.1 : FFmpeg 3.1.1 release

2016-06-30 Thread git
[ffmpeg] [branch: refs/tags/n3.1.1]
Tag:4a3ff02f0fa0a710802712dbd07828918df53a3a
> http://git.videolan.org/gitweb.cgi/ffmpeg.git?a=tag;h=4a3ff02f0fa0a710802712dbd07828918df53a3a

Tagger: Michael Niedermayer 
Date:   Fri Jul  1 02:59:17 2016 +0200

FFmpeg 3.1.1 release
___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] [ffmpeg-web] branch master updated. 463f56e web/download: add 3.1.1

2016-06-30 Thread ffmpeg-git
The branch, master has been updated
   via  463f56ef561f4990038eb43f63f40fc98337fc30 (commit)
  from  9d7d01121da362f02a4edb6ceddecad383e8f655 (commit)


- Log -
commit 463f56ef561f4990038eb43f63f40fc98337fc30
Author: Michael Niedermayer 
AuthorDate: Fri Jul 1 03:47:38 2016 +0200
Commit: Michael Niedermayer 
CommitDate: Fri Jul 1 03:47:38 2016 +0200

web/download: add 3.1.1

diff --git a/src/download b/src/download
index ceeb2f9..82c8843 100644
--- a/src/download
+++ b/src/download
@@ -1,10 +1,10 @@
 
 
   
-http://ffmpeg.org/releases/ffmpeg-3.1.tar.bz2"; class="btn 
btn-success">
+http://ffmpeg.org/releases/ffmpeg-3.1.1.tar.bz2"; class="btn 
btn-success">
   
   Download
-  ffmpeg-3.1.tar.bz2
+  ffmpeg-3.1.1.tar.bz2
 
 
 More releases
@@ -270,20 +270,20 @@
   
 
 
-  FFmpeg 3.1 "Laplace"
+  FFmpeg 3.1.1 "Laplace"
 
   
-3.1 was released on 2016-06-27. It is the latest stable FFmpeg release
+3.1.1 was released on 2016-07-01. It is the latest stable FFmpeg release
 from the 3.1 release branch, which was cut from master on 2016-06-26.
   
   It includes the following library versions:
   
   
-libavutil  55. 27.100
+libavutil  55. 28.100
 libavcodec 57. 48.101
-libavformat57. 40.101
+libavformat57. 41.100
 libavdevice57.  0.101
-libavfilter 6. 46.102
+libavfilter 6. 47.100
 libavresample   3.  0.  0
 libswscale  4.  1.100
 libswresample   2.  1.100
@@ -291,19 +291,19 @@ libpostproc54.  0.100
 
   
 
-  Download xz 
tarball
-  PGP signature
+  Download 
xz tarball
+  PGP 
signature
  
 
-  Download 
bzip2 tarball
-  PGP 
signature
+  Download 
bzip2 tarball
+  PGP 
signature
  
 
-  Download 
gzip tarball
-  PGP signature
+  Download 
gzip tarball
+  PGP 
signature
  
 
-  https://git.ffmpeg.org/gitweb/ffmpeg.git/shortlog/n3.1";>Changelog
+  https://git.ffmpeg.org/gitweb/ffmpeg.git/shortlog/n3.1.1";>Changelog
   https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/release/3.1:/RELEASE_NOTES";>Release
 Notes
  


---

Summary of changes:
 src/download | 28 ++--
 1 file changed, 14 insertions(+), 14 deletions(-)


hooks/post-receive
-- 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avcodec/libopenjpegenc: Set numresolutions by default to a value that is not too large

2016-06-30 Thread Michael Niedermayer
ffmpeg | branch: release/3.0 | Michael Niedermayer  | 
Sun Jun 26 17:34:37 2016 +0200| [96f5019bde0f6719133a36433fec465b8538df25] | 
committer: James Almer

avcodec/libopenjpegenc: Set numresolutions by default to a value that is not 
too large

Fixes issues with libopenjpeg 2.1

Signed-off-by: Michael Niedermayer 
(cherry picked from commit e9394ca63dab3434bc8e869de019ecd86cb604ac)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=96f5019bde0f6719133a36433fec465b8538df25
---

 libavcodec/libopenjpegenc.c |8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c
index b67c320..058ca36 100644
--- a/libavcodec/libopenjpegenc.c
+++ b/libavcodec/libopenjpegenc.c
@@ -352,6 +352,12 @@ static av_cold int libopenjpeg_encode_init(AVCodecContext 
*avctx)
 ctx->enc_params.cp_cinema = ctx->cinema_mode;
 #endif
 
+if (!ctx->numresolution) {
+ctx->numresolution = 6;
+while (FFMIN(avctx->width, avctx->height) >> ctx->numresolution < 1)
+ctx->numresolution --;
+}
+
 ctx->enc_params.mode = !!avctx->global_quality;
 ctx->enc_params.prog_order = ctx->prog_order;
 ctx->enc_params.numresolution = ctx->numresolution;
@@ -814,7 +820,7 @@ static const AVOption options[] = {
 { "rpcl",  NULL,0, 
AV_OPT_TYPE_CONST, { .i64 = OPJ(RPCL)}, 0, 0,   VE, 
"prog_order"  },
 { "pcrl",  NULL,0, 
AV_OPT_TYPE_CONST, { .i64 = OPJ(PCRL)}, 0, 0,   VE, 
"prog_order"  },
 { "cprl",  NULL,0, 
AV_OPT_TYPE_CONST, { .i64 = OPJ(CPRL)}, 0, 0,   VE, 
"prog_order"  },
-{ "numresolution", NULL,OFFSET(numresolution), 
AV_OPT_TYPE_INT,   { .i64 = 6   }, 1, INT_MAX, VE   
 },
+{ "numresolution", NULL,OFFSET(numresolution), 
AV_OPT_TYPE_INT,   { .i64 = 0   }, 0, INT_MAX, VE   
 },
 { "numlayers", NULL,OFFSET(numlayers), 
AV_OPT_TYPE_INT,   { .i64 = 1   }, 1, 10,  VE   
 },
 { "disto_alloc",   NULL,OFFSET(disto_alloc),   
AV_OPT_TYPE_INT,   { .i64 = 1   }, 0, 1,   VE   
 },
 { "fixed_alloc",   NULL,OFFSET(fixed_alloc),   
AV_OPT_TYPE_INT,   { .i64 = 0   }, 0, 1,   VE   
 },

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog