[FFmpeg-cvslog] fate: add a fate-filter-framepack rule

2014-12-30 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Tue Dec 30 
14:28:54 2014 +0100| [0c10cf6ab1aa9ee05b7c9a6074376a33d0c89206] | committer: 
Clément Bœsch

fate: add a fate-filter-framepack rule

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

 tests/fate/filter-video.mak |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak
index 601a0d8..1df3b63 100644
--- a/tests/fate/filter-video.mak
+++ b/tests/fate/filter-video.mak
@@ -55,12 +55,14 @@ FATE_FILTER_VSYNTH-$(call ALLYES, INTERLACE_FILTER 
FIELDORDER_FILTER) += fate-fi
 fate-filter-fieldorder: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf 
interlace=tff,fieldorder=bff -sws_flags +accurate_rnd+bitexact
 
 define FATE_FPFILTER_SUITE
-FATE_FILTER_VSYNTH-$(CONFIG_FRAMEPACK_FILTER) += fate-filter-framepack-$(1)
+FATE_FILTER_FRAMEPACK += fate-filter-framepack-$(1)
 fate-filter-framepack-$(1): CMD = framecrc -c:v pgmyuv -i 
$(TARGET_PATH)/tests/vsynth1/%02d.pgm -c:v pgmyuv -i 
$(TARGET_PATH)/tests/vsynth1/%02d.pgm -filter_complex framepack=$(1) -frames 15
 endef
 
 FPMODES = columns frameseq lines sbs tab
 $(foreach MODE,$(FPMODES),$(eval $(call FATE_FPFILTER_SUITE,$(MODE
+FATE_FILTER_VSYNTH-$(CONFIG_FRAMEPACK_FILTER) += $(FATE_FILTER_FRAMEPACK)
+fate-filter-framepack: $(FATE_FILTER_FRAMEPACK)
 
 FATE_FILTER_VSYNTH-$(CONFIG_GRADFUN_FILTER) += fate-filter-gradfun
 fate-filter-gradfun: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf gradfun

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


[FFmpeg-cvslog] avfilter/framepack: use FF_CEIL_RSHIFT()

2014-12-30 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Tue Dec 30 
14:25:41 2014 +0100| [39e18b1f406376b824b258889fd96ff77fa4ac9a] | committer: 
Clément Bœsch

avfilter/framepack: use FF_CEIL_RSHIFT()

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

 libavfilter/vf_framepack.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavfilter/vf_framepack.c b/libavfilter/vf_framepack.c
index 8a7d4e8..5087673 100644
--- a/libavfilter/vf_framepack.c
+++ b/libavfilter/vf_framepack.c
@@ -144,8 +144,8 @@ static void horizontal_frame_pack(FramepackContext *s,
 uint8_t *dstp = dst->data[plane];
 
 if (plane == 1 || plane == 2) {
-length = -(-(dst->width / 2) >> s->pix_desc->log2_chroma_w);
-lines  = -(-(dst->height)>> s->pix_desc->log2_chroma_h);
+length = FF_CEIL_RSHIFT(dst->width / 2, 
s->pix_desc->log2_chroma_w);
+lines  = FF_CEIL_RSHIFT(dst->height,
s->pix_desc->log2_chroma_h);
 }
 
 if (interleaved) {

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


[FFmpeg-cvslog] swscale/x86/rgb2rgb_template: fix crash with tiny size and nv12 output

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Wed Dec 
 3 20:21:56 2014 +0100| [56c5e009a184f1575a9477343c7a4a1387cfaeb1] | committer: 
Michael Niedermayer

swscale/x86/rgb2rgb_template: fix crash with tiny size and nv12 output

Fixes Ticket4151

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

Signed-off-by: Michael Niedermayer 

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

 libswscale/x86/rgb2rgb_template.c |1 +
 1 file changed, 1 insertion(+)

diff --git a/libswscale/x86/rgb2rgb_template.c 
b/libswscale/x86/rgb2rgb_template.c
index 004621a..80e5670 100644
--- a/libswscale/x86/rgb2rgb_template.c
+++ b/libswscale/x86/rgb2rgb_template.c
@@ -1874,6 +1874,7 @@ static void RENAME(interleaveBytes)(const uint8_t *src1, 
const uint8_t *src2, ui
 for (h=0; h < height; h++) {
 int w;
 
+if (width >= 16)
 #if COMPILE_TEMPLATE_SSE2
 __asm__(
 "xor  %%"REG_a", %%"REG_a"  \n\t"

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


[FFmpeg-cvslog] avcodec/motion_est: use 2x8x8 for interlaced qpel

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Mon Dec 
 1 13:23:24 2014 +0100| [8240fa5701aacdbf63c1512f3cf54341be42733f] | committer: 
Michael Niedermayer

avcodec/motion_est: use 2x8x8 for interlaced qpel

Fixes out of array read
Fixes Ticket4121

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

Signed-off-by: Michael Niedermayer 

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

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

diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index f4d217b..02aeb2e 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -189,7 +189,13 @@ static av_always_inline int cmp_inline(MpegEncContext *s, 
const int x, const int
 int uvdxy;  /* no, it might not be used uninitialized */
 if(dxy){
 if(qpel){
-c->qpel_put[size][dxy](c->temp, ref[0] + x + y*stride, 
stride); //FIXME prototype (add h)
+if (h << size == 16) {
+c->qpel_put[size][dxy](c->temp, ref[0] + x + y*stride, 
stride); //FIXME prototype (add h)
+} else if (size == 0 && h == 8) {
+c->qpel_put[1][dxy](c->temp, ref[0] + x + y*stride
, stride);
+c->qpel_put[1][dxy](c->temp + 8, ref[0] + x + y*stride + 
8, stride);
+} else
+av_assert2(0);
 if(chroma){
 int cx= hx/2;
 int cy= hy/2;

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


[FFmpeg-cvslog] avformat/rmdec: Check codec_data_size

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Wed Dec 
 3 20:01:18 2014 +0100| [80ba4b5d45368bb9f18c0a327b1a929f64b55784] | committer: 
Michael Niedermayer

avformat/rmdec: Check codec_data_size

Fixes infinite loop
Fixes Ticket4154

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

Signed-off-by: Michael Niedermayer 

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

 libavformat/rmdec.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index 73c9d0d..235ff13 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -308,6 +308,9 @@ ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext 
*pb,
 int64_t codec_pos;
 int ret;
 
+if (codec_data_size < 0)
+return AVERROR_INVALIDDATA;
+
 avpriv_set_pts_info(st, 64, 1, 1000);
 codec_pos = avio_tell(pb);
 v = avio_rb32(pb);

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


[FFmpeg-cvslog] fix Makefile objects for pulseaudio support

2014-12-30 Thread Michael Stypa
ffmpeg | branch: release/2.1 | Michael Stypa  | Fri Nov 28 
15:54:50 2014 +0100| [bf5df31b4f922666c1e8d3533dafdf53744f89a9] | committer: 
Michael Niedermayer

fix Makefile objects for pulseaudio support

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

Signed-off-by: Michael Niedermayer 

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

 libavdevice/Makefile |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavdevice/Makefile b/libavdevice/Makefile
index 21ca954..bc7cb83 100644
--- a/libavdevice/Makefile
+++ b/libavdevice/Makefile
@@ -34,7 +34,7 @@ OBJS-$(CONFIG_OPENAL_INDEV)  += openal-dec.o
 OBJS-$(CONFIG_OSS_INDEV) += oss_audio.o
 OBJS-$(CONFIG_OSS_OUTDEV)+= oss_audio.o
 OBJS-$(CONFIG_PULSE_INDEV)   += pulse_audio_dec.o \
-pulse_audio_common.o
+pulse_audio_common.o timefilter.o
 OBJS-$(CONFIG_PULSE_OUTDEV)  += pulse_audio_enc.o \
 pulse_audio_common.o
 OBJS-$(CONFIG_SDL_OUTDEV)+= sdl.o

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


[FFmpeg-cvslog] avcodec/h264: Clear delayed_pic on deallocation

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Wed Dec 
17 21:27:37 2014 +0100| [84bc2cea237725de468f53dbba6d53140fae21c5] | committer: 
Michael Niedermayer

avcodec/h264: Clear delayed_pic on deallocation

Fixes use of freed memory

Fixes: case5_av_frame_copy_props.mp4
Found-by: Michal Zalewski 
Signed-off-by: Michael Niedermayer 
(cherry picked from commit e8714f6f93d1a32f4e4655209960afcf4c185214)

Conflicts:

libavcodec/h264.c

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

 libavcodec/h264.c |1 +
 1 file changed, 1 insertion(+)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 7ea833f..1194fd9 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -1231,6 +1231,7 @@ static void free_tables(H264Context *h, int free_rbsp)
 av_buffer_pool_uninit(&h->ref_index_pool);
 
 if (free_rbsp && h->DPB) {
+memset(h->delayed_pic, 0, sizeof(h->delayed_pic));
 for (i = 0; i < MAX_PICTURE_COUNT; i++)
 unref_picture(h, &h->DPB[i]);
 av_freep(&h->DPB);

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


[FFmpeg-cvslog] lavu/frame: fix malloc error path in av_frame_copy_props()

2014-12-30 Thread wm4
ffmpeg | branch: release/2.1 | wm4  | Mon Dec 15 
04:32:58 2014 +0100| [df1ea139b4fbf98351ebb23dad748e8f74002616] | committer: 
Michael Niedermayer

lavu/frame: fix malloc error path in av_frame_copy_props()

The error path frees all side data, but forgets to reset the side data
count. This can blow up later in av_frame_unref() and free_side_data().

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

Signed-off-by: Michael Niedermayer 

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

 libavutil/frame.c |1 +
 1 file changed, 1 insertion(+)

diff --git a/libavutil/frame.c b/libavutil/frame.c
index 654f174..774413f 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -489,6 +489,7 @@ int av_frame_copy_props(AVFrame *dst, const AVFrame *src)
 av_dict_free(&dst->side_data[i]->metadata);
 }
 av_freep(&dst->side_data);
+dst->nb_side_data = 0;
 return AVERROR(ENOMEM);
 }
 memcpy(sd_dst->data, sd_src->data, sd_src->size);

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


[FFmpeg-cvslog] lavf/segment: remove duplicated and inconsistent cleanup code in seg_write_packet()

2014-12-30 Thread Stefano Sabatini
ffmpeg | branch: release/2.1 | Stefano Sabatini  | Tue Jan 
21 19:58:41 2014 +0100| [67e2394cc68eea02c3789c8a097c5e2906bac5d2] | committer: 
Michael Niedermayer

lavf/segment: remove duplicated and inconsistent cleanup code in 
seg_write_packet()

In particular, avoid to leave around the seg->avf pointer to freed
structure, and fix crash with:
ffmpeg -f lavfi -i testsrc -c:v h264 -map 0 -f segment foo-%d.ts
(cherry picked from commit 169065fbfb3da1ab776379c333aebc54bb1f1bc4)

Found-by: Qinghao Tang
Signed-off-by: Michael Niedermayer 

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

 libavformat/segment.c |6 --
 1 file changed, 6 deletions(-)

diff --git a/libavformat/segment.c b/libavformat/segment.c
index dca7822..ce4af8b 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -710,12 +710,6 @@ fail:
 if (pkt->stream_index == seg->reference_stream_index)
 seg->frame_count++;
 
-if (ret < 0) {
-if (seg->list)
-avio_close(seg->list_pb);
-avformat_free_context(oc);
-}
-
 return ret;
 }
 

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


[FFmpeg-cvslog] avformat/aviobuf: Check that avio_seek() target is non negative

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Sun Dec 
14 17:26:11 2014 +0100| [844f7f78aa523fb452c0271cb7dc6742039b9d3c] | committer: 
Michael Niedermayer

avformat/aviobuf: Check that avio_seek() target is non negative

Fixes out of array access

Suggested-by: Andrew Scherkus 
Signed-off-by: Michael Niedermayer 
(cherry picked from commit ed86dbd05d61363dc1c0d33f3267e2177c985fdd)

Signed-off-by: Michael Niedermayer 

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

 libavformat/aviobuf.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index 8218078..87ad388 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -217,6 +217,9 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int 
whence)
 return offset1;
 offset += offset1;
 }
+if (offset < 0)
+return AVERROR(EINVAL);
+
 offset1 = offset - pos;
 if (!s->must_flush && (!s->direct || !s->seek) &&
 offset1 >= 0 && offset1 <= (s->buf_end - s->buffer)) {

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


[FFmpeg-cvslog] avcodec/hevc_ps: Check diff_cu_qp_delta_depth

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Thu Dec 
18 02:09:23 2014 +0100| [7bd8ea83a0ba91c9b637536df3438487db001b17] | committer: 
Michael Niedermayer

avcodec/hevc_ps: Check diff_cu_qp_delta_depth

Fixes undefined behavior
Fixes: asan_static-oob_17aa046_582_cov_1577759978_DBLK_G_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 3281fa892599d71b4dc298a426af8296419cd90e)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/hevc_ps.c |8 
 1 file changed, 8 insertions(+)

diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c
index ff881ea..461bf34 100644
--- a/libavcodec/hevc_ps.c
+++ b/libavcodec/hevc_ps.c
@@ -1049,6 +1049,14 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
 if (pps->cu_qp_delta_enabled_flag)
 pps->diff_cu_qp_delta_depth = get_ue_golomb_long(gb);
 
+if (pps->diff_cu_qp_delta_depth < 0 ||
+pps->diff_cu_qp_delta_depth > 
sps->log2_diff_max_min_coding_block_size) {
+av_log(s->avctx, AV_LOG_ERROR, "diff_cu_qp_delta_depth %d is 
invalid\n",
+   pps->diff_cu_qp_delta_depth);
+ret = AVERROR_INVALIDDATA;
+goto err;
+}
+
 pps->cb_qp_offset = get_se_golomb(gb);
 if (pps->cb_qp_offset < -12 || pps->cb_qp_offset > 12) {
 av_log(s->avctx, AV_LOG_ERROR, "pps_cb_qp_offset out of range: %d\n",

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


[FFmpeg-cvslog] jvdec: check frame dimensions

2014-12-30 Thread Anton Khirnov
ffmpeg | branch: release/2.1 | Anton Khirnov  | Sun Dec 14 
21:01:59 2014 +0100| [01c83f4cb197ba9e2317ea4e4ade4cf46e138113] | committer: 
Michael Niedermayer

jvdec: check frame dimensions

The frame size must be set by the caller and each dimension must be a
multiple of 8.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
See: 105654e376a736d243aef4a1d121abebce912e6b
These should be redundant, but are backported for saftey anyway
(cherry picked from commit e012cb8dea7969c7b3927dbf846ef2742cd4a7ab)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/jvdec.c |7 +++
 1 file changed, 7 insertions(+)

diff --git a/libavcodec/jvdec.c b/libavcodec/jvdec.c
index cad0532..7c0a42b 100644
--- a/libavcodec/jvdec.c
+++ b/libavcodec/jvdec.c
@@ -42,6 +42,13 @@ static av_cold int decode_init(AVCodecContext *avctx)
 {
 JvContext *s = avctx->priv_data;
 
+if (!avctx->width || !avctx->height ||
+(avctx->width & 7) || (avctx->height & 7)) {
+av_log(avctx, AV_LOG_ERROR, "Invalid video dimensions: %dx%d\n",
+   avctx->width, avctx->height);
+return AVERROR(EINVAL);
+}
+
 s->frame = av_frame_alloc();
 if (!s->frame)
 return AVERROR(ENOMEM);

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


[FFmpeg-cvslog] avcodec/indeo3: ensure offsets are non negative

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Thu Dec 
18 18:57:27 2014 +0100| [d3853ad11f216cb57edf7b1f2bfbc49449fb8f65] | committer: 
Michael Niedermayer

avcodec/indeo3: ensure offsets are non negative

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

Signed-off-by: Michael Niedermayer 

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

 libavcodec/indeo3.c |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavcodec/indeo3.c b/libavcodec/indeo3.c
index ea8e4d8..b6633f8 100644
--- a/libavcodec/indeo3.c
+++ b/libavcodec/indeo3.c
@@ -981,7 +981,8 @@ static int decode_frame_headers(Indeo3DecodeContext *ctx, 
AVCodecContext *avctx,
 ctx->y_data_size = ends[0] - starts[0];
 ctx->v_data_size = ends[1] - starts[1];
 ctx->u_data_size = ends[2] - starts[2];
-if (FFMAX3(y_offset, v_offset, u_offset) >= ctx->data_size - 16 ||
+if (FFMIN3(y_offset, v_offset, u_offset) < 0 ||
+FFMAX3(y_offset, v_offset, u_offset) >= ctx->data_size - 16 ||
 FFMIN3(y_offset, v_offset, u_offset) < gb.buffer - bs_hdr + 16 ||
 FFMIN3(ctx->y_data_size, ctx->v_data_size, ctx->u_data_size) <= 0) {
 av_log(avctx, AV_LOG_ERROR, "One of the y/u/v offsets is invalid\n");

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


[FFmpeg-cvslog] avformat/mov: Fix memleaks for duplicate STCO/CO64/STSC atoms

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Wed Nov 
26 18:16:15 2014 +0100| [a736171b69b0a05acbb463fdbbc6114305c7c99b] | committer: 
Michael Niedermayer

avformat/mov: Fix memleaks for duplicate STCO/CO64/STSC atoms

Also see [FFmpeg-devel] [PATCH] avformat/mov: strengthen some table allocations
which contains more fixes but is unfinished

Fixes: signal_sigabrt_76ac7bb9_3484_cov_183177_starfox2.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 1b5d11240692025f036e945bc37968735679320a)

Signed-off-by: Michael Niedermayer 

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

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

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 407c590..b089372 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -1193,6 +1193,10 @@ static int mov_read_stco(MOVContext *c, AVIOContext *pb, 
MOVAtom atom)
 if (entries >= UINT_MAX/sizeof(int64_t))
 return AVERROR_INVALIDDATA;
 
+if (sc->chunk_offsets)
+av_log(c->fc, AV_LOG_WARNING, "Duplicate STCO atom\n");
+av_free(sc->chunk_offsets);
+sc->chunk_count = 0;
 sc->chunk_offsets = av_malloc(entries * sizeof(int64_t));
 if (!sc->chunk_offsets)
 return AVERROR(ENOMEM);
@@ -1709,6 +1713,10 @@ static int mov_read_stsc(MOVContext *c, AVIOContext *pb, 
MOVAtom atom)
 return 0;
 if (entries >= UINT_MAX / sizeof(*sc->stsc_data))
 return AVERROR_INVALIDDATA;
+if (sc->stsc_data)
+av_log(c->fc, AV_LOG_WARNING, "Duplicate STSC atom\n");
+av_free(sc->stsc_data);
+sc->stsc_count = 0;
 sc->stsc_data = av_malloc(entries * sizeof(*sc->stsc_data));
 if (!sc->stsc_data)
 return AVERROR(ENOMEM);

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


[FFmpeg-cvslog] mmvideo: check frame dimensions

2014-12-30 Thread Anton Khirnov
ffmpeg | branch: release/2.1 | Anton Khirnov  | Sun Dec 14 
21:01:59 2014 +0100| [823a9177a3ea14bbce2cb6ae97435918953e2d3b] | committer: 
Michael Niedermayer

mmvideo: check frame dimensions

The frame size must be set by the caller and each dimension must be a
multiple of 2.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
See: 8b0e96e1f21b761ca15dbb470cd619a1ebf86c3e
These should be redundant, but are backported for saftey anyway
(cherry picked from commit b0273232d8fffdc8a977ccdad460b8071a0e353c)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/mmvideo.c |7 +++
 1 file changed, 7 insertions(+)

diff --git a/libavcodec/mmvideo.c b/libavcodec/mmvideo.c
index 1150485..2225126 100644
--- a/libavcodec/mmvideo.c
+++ b/libavcodec/mmvideo.c
@@ -61,6 +61,13 @@ static av_cold int mm_decode_init(AVCodecContext *avctx)
 
 avctx->pix_fmt = AV_PIX_FMT_PAL8;
 
+if (!avctx->width || !avctx->height ||
+(avctx->width & 1) || (avctx->height & 1)) {
+av_log(avctx, AV_LOG_ERROR, "Invalid video dimensions: %dx%d\n",
+   avctx->width, avctx->height);
+return AVERROR(EINVAL);
+}
+
 s->frame = av_frame_alloc();
 if (!s->frame)
 return AVERROR(ENOMEM);

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


[FFmpeg-cvslog] configure: create the tests directory like the doc directory

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Mon Dec 
15 04:32:23 2014 +0100| [b4c4f9dba613b654cd19630d7a846b81844f8778] | committer: 
Michael Niedermayer

configure: create the tests directory like the doc directory

This fixes an issue where the tests directory is not created for out of tree
builds before its needed

Tested-by: Dave Yeo 
Signed-off-by: Michael Niedermayer 
(cherry picked from commit e631872f13b6be0583603d45a11e53319754bc8d)

Signed-off-by: Michael Niedermayer 

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

 configure |1 +
 1 file changed, 1 insertion(+)

diff --git a/configure b/configure
index 08777a7..54a1065 100755
--- a/configure
+++ b/configure
@@ -4938,6 +4938,7 @@ enabled getenv || echo "#define getenv(x) NULL" >> $TMPH
 
 
 mkdir -p doc
+mkdir -p tests
 echo "@c auto-generated by configure" > doc/config.texi
 
 print_config ARCH_   "$config_files" $ARCH_LIST

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


[FFmpeg-cvslog] swresample/soxr_resample: fix error handling

2014-12-30 Thread Rob Sykes
ffmpeg | branch: release/2.1 | Rob Sykes  | Sat Dec 13 
21:12:56 2014 +0100| [059762d9da0830176ea2cbfabf49cadeb28b61c8] | committer: 
Michael Niedermayer

swresample/soxr_resample: fix error handling

Fixes CID1257659

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

Signed-off-by: Michael Niedermayer 

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

 libswresample/soxr_resample.c |8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libswresample/soxr_resample.c b/libswresample/soxr_resample.c
index 4c000db..7467f8d 100644
--- a/libswresample/soxr_resample.c
+++ b/libswresample/soxr_resample.c
@@ -76,8 +76,12 @@ static int process(
 AudioData *src, int src_size, int *consumed){
 size_t idone, odone;
 soxr_error_t error = soxr_set_error((soxr_t)c, 
soxr_set_num_channels((soxr_t)c, src->ch_count));
-error = soxr_process((soxr_t)c, src->ch, (size_t)src_size,
-&idone, dst->ch, (size_t)dst_size, &odone);
+if (!error)
+error = soxr_process((soxr_t)c, src->ch, (size_t)src_size,
+ &idone, dst->ch, (size_t)dst_size, &odone);
+else
+idone = 0;
+
 *consumed = (int)idone;
 return error? -1 : odone;
 }

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


[FFmpeg-cvslog] avcodec/vmdvideo: Check len before using it in method 3

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Tue Dec 
16 16:24:55 2014 +0100| [96981b092c0971ac4c572692141cda87f5371989] | committer: 
Michael Niedermayer

avcodec/vmdvideo: Check len before using it in method 3

Fixes out of array access
Fixes: asan_heap-oob_4d23ba_91_cov_3853393937_128.vmd

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 3030fb7e0d41836f8add6399e9a7c7b740b48bfd)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/vmdav.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavcodec/vmdav.c b/libavcodec/vmdav.c
index 36d60ee..8710f33 100644
--- a/libavcodec/vmdav.c
+++ b/libavcodec/vmdav.c
@@ -348,6 +348,9 @@ static int vmd_decode(VmdVideoContext *s, AVFrame *frame)
 ofs += slen;
 bytestream2_skip(&gb, len);
 } else {
+if (ofs + len > frame_width ||
+bytestream2_get_bytes_left(&gb) < len)
+return AVERROR_INVALIDDATA;
 bytestream2_get_buffer(&gb, &dp[ofs], len);
 ofs += len;
 }

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


[FFmpeg-cvslog] avformat/mov: check atom nesting depth

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Tue Dec 
16 21:14:40 2014 +0100| [07a37001a32339a72a8e45ff4f65072b3e506a2c] | committer: 
Michael Niedermayer

avformat/mov: check atom nesting depth

Fixes call stack overflow
Fixes: case1_call_stack_overflow.mp4
Found-by: Michal Zalewski 
Signed-off-by: Michael Niedermayer 
(cherry picked from commit caa7a3914f499f74b3ee346f26d598ebdc0ec210)

Conflicts:

libavformat/isom.h

Conflicts:

libavformat/isom.h

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

 libavformat/isom.h |1 +
 libavformat/mov.c  |   13 -
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/libavformat/isom.h b/libavformat/isom.h
index 828e500..9fc30d4 100644
--- a/libavformat/isom.h
+++ b/libavformat/isom.h
@@ -164,6 +164,7 @@ typedef struct MOVContext {
 int64_t next_root_atom; ///< offset of the next root atom
 int *bitrates;  ///< bitrates read before streams creation
 int bitrates_count;
+int atom_depth;
 } MOVContext;
 
 int ff_mp4_read_descr_len(AVIOContext *pb);
diff --git a/libavformat/mov.c b/libavformat/mov.c
index d19aa16..407c590 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2984,6 +2984,12 @@ static int mov_read_default(MOVContext *c, AVIOContext 
*pb, MOVAtom atom)
 MOVAtom a;
 int i;
 
+if (c->atom_depth > 10) {
+av_log(c->fc, AV_LOG_ERROR, "Atoms too deeply nested\n");
+return AVERROR_INVALIDDATA;
+}
+c->atom_depth ++;
+
 if (atom.size < 0)
 atom.size = INT64_MAX;
 while (total_size + 8 <= atom.size && !url_feof(pb)) {
@@ -3000,6 +3006,7 @@ static int mov_read_default(MOVContext *c, AVIOContext 
*pb, MOVAtom atom)
 {
 av_log(c->fc, AV_LOG_ERROR, "Broken file, trak/mdat not at 
top-level\n");
 avio_skip(pb, -8);
+c->atom_depth --;
 return 0;
 }
 }
@@ -3036,13 +3043,16 @@ static int mov_read_default(MOVContext *c, AVIOContext 
*pb, MOVAtom atom)
 int64_t start_pos = avio_tell(pb);
 int64_t left;
 int err = parse(c, pb, a);
-if (err < 0)
+if (err < 0) {
+c->atom_depth --;
 return err;
+}
 if (c->found_moov && c->found_mdat &&
 ((!pb->seekable || c->fc->flags & AVFMT_FLAG_IGNIDX) ||
  start_pos + a.size == avio_size(pb))) {
 if (!pb->seekable || c->fc->flags & AVFMT_FLAG_IGNIDX)
 c->next_root_atom = start_pos + a.size;
+c->atom_depth --;
 return 0;
 }
 left = a.size - avio_tell(pb) + start_pos;
@@ -3062,6 +3072,7 @@ static int mov_read_default(MOVContext *c, AVIOContext 
*pb, MOVAtom atom)
 if (total_size < atom.size && atom.size < 0x7)
 avio_skip(pb, atom.size - total_size);
 
+c->atom_depth --;
 return 0;
 }
 

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


[FFmpeg-cvslog] avcodec/h264: make the first field of H264Context an AVClass

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Wed Dec 
17 01:31:48 2014 +0100| [ac499d8142f38f0f82aa06a4cf425498ee19c32f] | committer: 
Michael Niedermayer

avcodec/h264: make the first field of H264Context an AVClass

Fixes use of freed memory
Fixes: asan_heap-uaf_3660f67_757_cov_1257014655_Hi422FR1_SONY_A.jsv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
(cherry picked from commit f3b5b139ad853b6f69c6a0b036815a60e7b3f261)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/h264.h |1 +
 1 file changed, 1 insertion(+)

diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 872d09d..bc7db9f 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -284,6 +284,7 @@ typedef struct MMCO {
  * H264Context
  */
 typedef struct H264Context {
+AVClass *av_class;
 AVCodecContext *avctx;
 VideoDSPContext vdsp;
 H264DSPContext h264dsp;

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


[FFmpeg-cvslog] avcodec/indeo3: use signed variables to avoid underflow

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Wed Dec 
17 03:14:21 2014 +0100| [35819400e7821a8acbd11cb5c537cd84601e077b] | committer: 
Michael Niedermayer

avcodec/indeo3: use signed variables to avoid underflow

Fixes out of array read
Fixes: signal_sigsegv_1b0a4da_1865_cov_2167818389_computer_anger.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 3305acdc92fa37869f160a11a87741c8a0de0454)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/indeo3.c |5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavcodec/indeo3.c b/libavcodec/indeo3.c
index b882763..ea8e4d8 100644
--- a/libavcodec/indeo3.c
+++ b/libavcodec/indeo3.c
@@ -94,7 +94,7 @@ typedef struct Indeo3DecodeContext {
 
 int16_t width, height;
 uint32_tframe_num;  ///< current frame number (zero-based)
-uint32_tdata_size;  ///< size of the frame data in bytes
+int data_size;  ///< size of the frame data in bytes
 uint16_tframe_flags;///< frame properties
 uint8_t cb_offset;  ///< needed for selecting VQ tables
 uint8_t buf_sel;///< active frame buffer: 0 - primary, 1 
-secondary
@@ -899,7 +899,8 @@ static int decode_frame_headers(Indeo3DecodeContext *ctx, 
AVCodecContext *avctx,
 GetByteContext gb;
 const uint8_t   *bs_hdr;
 uint32_tframe_num, word2, check_sum, data_size;
-uint32_ty_offset, u_offset, v_offset, starts[3], ends[3];
+int y_offset, u_offset, v_offset;
+uint32_tstarts[3], ends[3];
 uint16_theight, width;
 int i, j;
 

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


[FFmpeg-cvslog] swscale: increase yuv2rgb table headroom

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Tue Dec 
16 22:21:21 2014 +0100| [9354c47d2ec9133cbb7fd82dc049f6eba07fc154] | committer: 
Michael Niedermayer

swscale: increase yuv2rgb table headroom

Fixes out of array access
Fixes: case2_bad_read_yuv2rgbx32.mp4
Found-by: Michal Zalewski 
Signed-off-by: Michael Niedermayer 

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

 libswscale/swscale_internal.h |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index 33fdfc2..c9f6a06 100644
--- a/libswscale/swscale_internal.h
+++ b/libswscale/swscale_internal.h
@@ -37,7 +37,7 @@
 
 #define STR(s) AV_TOSTRING(s) // AV_STRINGIFY is too long
 
-#define YUVRGB_TABLE_HEADROOM 128
+#define YUVRGB_TABLE_HEADROOM 256
 
 #define MAX_FILTER_SIZE 256
 

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


[FFmpeg-cvslog] avcodec/hevc: clear filter_slice_edges() on allocation

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Wed Dec 
17 19:42:57 2014 +0100| [9dc6a7f13a23110c04568e890ef340f014c23303] | committer: 
Michael Niedermayer

avcodec/hevc: clear filter_slice_edges() on allocation

This avoids use of uninitialized memory
Fixes: asan_static-oob_17aa046_582_cov_212287884_DBLK_G_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 8aa8d12554868c32436750f881954193087219c8)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/hevc.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index 9633511..bdfc131 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -115,7 +115,7 @@ static int pic_arrays_init(HEVCContext *s)
 if (!s->tab_ipm || !s->cbf_luma || !s->is_pcm)
 goto fail;
 
-s->filter_slice_edges = av_malloc(ctb_count);
+s->filter_slice_edges = av_mallocz(ctb_count);
 s->tab_slice_address  = av_malloc_array(pic_size_in_ctb,
   sizeof(*s->tab_slice_address));
 s->qp_y_tab   = av_malloc_array(pic_size_in_ctb,

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


[FFmpeg-cvslog] avcodec/utvideodec: Fix handling of slice_height=0

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Tue Dec 
16 20:45:31 2014 +0100| [ba99e90357c97f7845f1d463f73d9a4a7e77d78a] | committer: 
Michael Niedermayer

avcodec/utvideodec: Fix handling of slice_height=0

Fixes out of array accesses
Fixes: asan_heap-oob_25bcd7e_3783_cov_3553517262_utvideo_rgba_median.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 3881606240953b9275a247a1c98a567f3c44890f)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/utvideodec.c |4 
 1 file changed, 4 insertions(+)

diff --git a/libavcodec/utvideodec.c b/libavcodec/utvideodec.c
index ff69a25..05db962 100644
--- a/libavcodec/utvideodec.c
+++ b/libavcodec/utvideodec.c
@@ -212,6 +212,8 @@ static void restore_median(uint8_t *src, int step, int 
stride,
 slice_height = slice + 1) * height) / slices) & cmask) -
slice_start;
 
+if (!slice_height)
+continue;
 bsrc = src + slice_start * stride;
 
 // first line - left neighbour prediction
@@ -267,6 +269,8 @@ static void restore_median_il(uint8_t *src, int step, int 
stride,
 slice_height   = slice + 1) * height) / slices) & cmask) -
  slice_start;
 slice_height >>= 1;
+if (!slice_height)
+continue;
 
 bsrc = src + slice_start * stride;
 

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


[FFmpeg-cvslog] avcodec/h264: Check *log2_weight_denom

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Thu Dec 
18 03:16:39 2014 +0100| [b188ff5e183de064eb1eeb95fd88a0a74a747a8c] | committer: 
Michael Niedermayer

avcodec/h264: Check *log2_weight_denom

Fixes undefined behavior
Fixes: 
signal_sigsegv_14768d2_2248_cov_3629497219_h264_h264___pi_20070614T182942.h264
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 61296d41e2de3b41304339e4631dd44c2e15f805)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/h264.c |   10 ++
 1 file changed, 10 insertions(+)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 1194fd9..450aa36 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2641,6 +2641,16 @@ int ff_pred_weight_table(H264Context *h)
 h->luma_log2_weight_denom = get_ue_golomb(&h->gb);
 if (h->sps.chroma_format_idc)
 h->chroma_log2_weight_denom = get_ue_golomb(&h->gb);
+
+if (h->luma_log2_weight_denom > 7U) {
+av_log(h->avctx, AV_LOG_ERROR, "luma_log2_weight_denom %d is out of 
range\n", h->luma_log2_weight_denom);
+h->luma_log2_weight_denom = 0;
+}
+if (h->chroma_log2_weight_denom > 7U) {
+av_log(h->avctx, AV_LOG_ERROR, "chroma_log2_weight_denom %d is out of 
range\n", h->chroma_log2_weight_denom);
+h->chroma_log2_weight_denom = 0;
+}
+
 luma_def   = 1 << h->luma_log2_weight_denom;
 chroma_def = 1 << h->chroma_log2_weight_denom;
 

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


[FFmpeg-cvslog] avformat/matroskadec: fix handling of recursive SeekHead elements

2014-12-30 Thread wm4
ffmpeg | branch: release/2.1 | wm4  | Sat Dec  6 
16:53:30 2014 +0100| [68b6a5efbfd530e705a4b1e91da38f1350406264] | committer: 
Michael Niedermayer

avformat/matroskadec: fix handling of recursive SeekHead elements

When matroska_execute_seekhead() is called, it goes through the list of
seekhead entries and attempts to read elements not read yet. When doing
this, the parser can find further SeekHead elements, and will extend the
matroska->seekhead list. This can lead to a (practically) infinite loop
with certain broken files. (Maybe it can happen even with valid files.
The demuxer doesn't seem to check correctly whether an element has
already been read.)

Fix this by ignoring elements that were added to the seekhead field
during executing seekhead entries.

This does not fix the possible situation when multiple SeekHead elements
after the file header (i.e. occur after the "before_pos" file position)
point to the same elements. These elements will probably be parsed
multiple times, likely leading to bugs.

Fixes ticket #4162.

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

Signed-off-by: Michael Niedermayer 

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

 libavformat/matroskadec.c |6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 6552efe..884960b 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1425,13 +1425,17 @@ static void 
matroska_execute_seekhead(MatroskaDemuxContext *matroska)
 EbmlList *seekhead_list = &matroska->seekhead;
 int64_t before_pos = avio_tell(matroska->ctx->pb);
 int i;
+int nb_elem;
 
 // we should not do any seeking in the streaming case
 if (!matroska->ctx->pb->seekable ||
 (matroska->ctx->flags & AVFMT_FLAG_IGNIDX))
 return;
 
-for (i = 0; i < seekhead_list->nb_elem; i++) {
+// do not read entries that are added while parsing seekhead entries
+nb_elem = seekhead_list->nb_elem;
+
+for (i = 0; i < nb_elem; i++) {
 MatroskaSeekhead *seekhead = seekhead_list->elem;
 if (seekhead[i].pos <= before_pos)
 continue;

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


[FFmpeg-cvslog] Update for 2.1.7

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: release/2.1 | Michael Niedermayer  | Tue Dec 
30 16:16:23 2014 +0100| [c27539cd1eaaab1327383cfcbb9ee44b1f9ddaab] | committer: 
Michael Niedermayer

Update for 2.1.7

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

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

diff --git a/RELEASE b/RELEASE
index 399088b..04b10b4 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1 +1 @@
-2.1.6
+2.1.7
diff --git a/VERSION b/VERSION
index 399088b..04b10b4 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.1.6
+2.1.7
diff --git a/doc/Doxyfile b/doc/Doxyfile
index ae45600..3747d7a 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 = 2.1.6
+PROJECT_NUMBER = 2.1.7
 
 # 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] avfilter/vf_uspp: clear AVPacket to not leave uninitialized memory

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Tue Dec 30 
15:07:14 2014 +0100| [eb465b8c56d455fddf0f4f9f2625e2fe3ff7ea06] | committer: 
Michael Niedermayer

avfilter/vf_uspp: clear AVPacket to not leave uninitialized memory

Fixes CID1260707

Signed-off-by: Michael Niedermayer 

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

 libavfilter/vf_uspp.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavfilter/vf_uspp.c b/libavfilter/vf_uspp.c
index ffd340a..2974ebe 100644
--- a/libavfilter/vf_uspp.c
+++ b/libavfilter/vf_uspp.c
@@ -250,7 +250,7 @@ static void filter(USPPContext *p, uint8_t *dst[3], uint8_t 
*src[3],
 const int y1c = y1 >> p->vsub;
 const int BLOCKc = BLOCK >> p->hsub;
 int offset;
-AVPacket pkt;
+AVPacket pkt = {0};
 int got_pkt_ptr;
 
 av_init_packet(&pkt);

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


[FFmpeg-cvslog] ffprobe: Support extracting the number of reference frames

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Mon Dec 29 
12:23:02 2014 +0100| [eee9b7a673de597b04de5df9ef837815e879938c] | committer: 
Michael Niedermayer

ffprobe: Support extracting the number of reference frames

Fixes Ticket3141

Reviewed-by: Stefano Sabatini 
Signed-off-by: Michael Niedermayer 

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

 doc/ffprobe.xsd|1 +
 ffprobe.c  |1 +
 tests/ref/fate/ffprobe_compact |4 ++--
 tests/ref/fate/ffprobe_csv |4 ++--
 tests/ref/fate/ffprobe_default |2 ++
 tests/ref/fate/ffprobe_flat|2 ++
 tests/ref/fate/ffprobe_ini |2 ++
 tests/ref/fate/ffprobe_json|2 ++
 tests/ref/fate/ffprobe_xml |4 ++--
 9 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index c2cab37..226169e 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -182,6 +182,7 @@
   
   
   
+  
 
   
   
diff --git a/ffprobe.c b/ffprobe.c
index 24ecafd..faddc16 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -2141,6 +2141,7 @@ static int show_stream(WriterContext *w, AVFormatContext 
*fmt_ctx, int stream_id
 } else {
 print_str_opt("timecode", "N/A");
 }
+print_int("refs", dec_ctx->refs);
 break;
 
 case AVMEDIA_TYPE_AUDIO:
diff --git a/tests/ref/fate/ffprobe_compact b/tests/ref/fate/ffprobe_compact
index b7526f4..84d9667 100644
--- a/tests/ref/fate/ffprobe_compact
+++ b/tests/ref/fate/ffprobe_compact
@@ -27,6 +27,6 @@ 
frame|media_type=video|key_frame=1|pkt_pts=6144|pkt_pts_time=0.12|pkt_dts=61
 
packet|codec_type=video|stream_index=2|pts=6144|pts_time=0.12|dts=6144|dts_time=0.12|duration=2048|duration_time=0.04|convergence_duration=N/A|convergence_duration_time=N/A|size=3|pos=1024801|flags=K
 
frame|media_type=video|key_frame=1|pkt_pts=6144|pkt_pts_time=0.12|pkt_dts=6144|pkt_dts_time=0.12|best_effort_timestamp=6144|best_effort_timestamp_time=0.12|pkt_duration=2048|pkt_duration_time=0.04|pkt_pos=1024801|pkt_size=3|width=100|height=100|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0
 
stream|index=0|codec_name=pcm_s16le|profile=unknown|codec_type=audio|codec_time_base=1/44100|codec_tag_string=PSD[16]|codec_tag=0x10445350|sample_fmt=s16|sample_rate=44100|channels=1|channel_layout=unknown|bits_per_sample=16|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/44100|start_pts=0|start_time=0.00|duration_ts=N/A|duration=N/A|bit_rate=705600|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=6|nb_read_packets=6|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|tag:E=mc²|tag:encoder=Lavc
 pcm_s16le
-stream|index=1|codec_name=rawvideo|profile=unknown|codec_type=video|codec_time_base=1/51200|codec_tag_string=RGB[24]|codec_tag=0x18424752|width=320|height=240|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=4:3|pix_fmt=rgb24|level=-99|color_range=N/A|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|timecode=N/A|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.00|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|tag:title=foobar|tag:duration_ts=field-and-tags-conflict-attempt|tag:encoder=Lavc
 rawvideo
-stream|index=2|codec_name=rawvideo|profile=unknown|codec_type=video|codec_time_base=1/51200|codec_tag_string=RGB[24]|codec_tag=0x18424752|width=100|height=100|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=1:1|pix_fmt=rgb24|level=-99|color_range=N/A|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|timecode=N/A|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.00|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|tag:encoder=Lavc
 rawvideo
+stream|index=1|codec_name=rawvideo|profile=unknow

[FFmpeg-cvslog] avfilter/vf_yadif: add >8bit planar rgb formats

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Tue Dec 30 
22:52:45 2014 +0100| [081567397e3c585b39c5815e1ed6b45760a42f15] | committer: 
Michael Niedermayer

avfilter/vf_yadif: add >8bit planar rgb formats

Signed-off-by: Michael Niedermayer 

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

 libavfilter/vf_yadif.c |5 +
 1 file changed, 5 insertions(+)

diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c
index da6ee70..8b951a4 100644
--- a/libavfilter/vf_yadif.c
+++ b/libavfilter/vf_yadif.c
@@ -448,6 +448,11 @@ static int query_formats(AVFilterContext *ctx)
 AV_PIX_FMT_YUVA422P,
 AV_PIX_FMT_YUVA444P,
 AV_PIX_FMT_GBRP,
+AV_PIX_FMT_GBRP9,
+AV_PIX_FMT_GBRP10,
+AV_PIX_FMT_GBRP12,
+AV_PIX_FMT_GBRP14,
+AV_PIX_FMT_GBRP16,
 AV_PIX_FMT_GBRAP,
 AV_PIX_FMT_NONE
 };

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


[FFmpeg-cvslog] avfilter/vf_cropdetect: adjust Default threshold based on bit depth

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Tue Dec 30 
21:02:34 2014 +0100| [a288d08d84f66c74984ebc9cc9f2b9f930ef3fdd] | committer: 
Michael Niedermayer

avfilter/vf_cropdetect: adjust Default threshold based on bit depth

Also allow specifying thresholds that are bit depth independant

Previous version reviewed by: Reimar Döffinger 
Signed-off-by: Michael Niedermayer 

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

 libavfilter/vf_cropdetect.c |   16 ++--
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/libavfilter/vf_cropdetect.c b/libavfilter/vf_cropdetect.c
index dd237ef..e8492cd 100644
--- a/libavfilter/vf_cropdetect.c
+++ b/libavfilter/vf_cropdetect.c
@@ -35,7 +35,7 @@
 typedef struct CropDetectContext {
 const AVClass *class;
 int x1, y1, x2, y2;
-int limit;
+float limit;
 int round;
 int reset_count;
 int frame_nb;
@@ -127,7 +127,7 @@ static av_cold int init(AVFilterContext *ctx)
 
 s->frame_nb = -2;
 
-av_log(ctx, AV_LOG_VERBOSE, "limit:%d round:%d reset_count:%d\n",
+av_log(ctx, AV_LOG_VERBOSE, "limit:%f round:%d reset_count:%d\n",
s->limit, s->round, s->reset_count);
 
 return 0;
@@ -137,9 +137,12 @@ static int config_input(AVFilterLink *inlink)
 {
 AVFilterContext *ctx = inlink->dst;
 CropDetectContext *s = ctx->priv;
+const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format);
 
-av_image_fill_max_pixsteps(s->max_pixsteps, NULL,
-   av_pix_fmt_desc_get(inlink->format));
+av_image_fill_max_pixsteps(s->max_pixsteps, NULL, desc);
+
+if (s->limit < 1.0)
+s->limit *= (1 << (desc->comp[0].depth_minus1 + 1)) - 1;
 
 s->x1 = inlink->w - 1;
 s->y1 = inlink->h - 1;
@@ -160,6 +163,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame 
*frame)
 int w, h, x, y, shrink_by;
 AVDictionary **metadata;
 int outliers, last_y;
+int limit = round(s->limit);
 
 // ignore first 2 frames - they may be empty
 if (++s->frame_nb > 0) {
@@ -177,7 +181,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame 
*frame)
 #define FIND(DST, FROM, NOEND, INC, STEP0, STEP1, LEN) \
 outliers = 0;\
 for (last_y = y = FROM; NOEND; y = y INC) {\
-if (checkline(ctx, frame->data[0] + STEP0 * y, STEP1, LEN, bpp) > 
s->limit) {\
+if (checkline(ctx, frame->data[0] + STEP0 * y, STEP1, LEN, bpp) > 
limit) {\
 if (++outliers > s->max_outliers) { \
 DST = last_y;\
 break;\
@@ -238,7 +242,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame 
*frame)
 #define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
 
 static const AVOption cropdetect_options[] = {
-{ "limit", "Threshold below which the pixel is considered black", 
OFFSET(limit),   AV_OPT_TYPE_INT, { .i64 = 24 }, 0, 65535, FLAGS },
+{ "limit", "Threshold below which the pixel is considered black", 
OFFSET(limit),   AV_OPT_TYPE_FLOAT, { .dbl = 24.0/255 }, 0, 65535, FLAGS },
 { "round", "Value by which the width/height should be divisible", 
OFFSET(round),   AV_OPT_TYPE_INT, { .i64 = 16 }, 0, INT_MAX, FLAGS },
 { "reset", "Recalculate the crop area after this many frames",
OFFSET(reset_count), AV_OPT_TYPE_INT, { .i64 = 0 },  0, INT_MAX, FLAGS },
 { "reset_count", "Recalculate the crop area after this many 
frames",OFFSET(reset_count),AV_OPT_TYPE_INT,{ .i64 = 0 },  0, INT_MAX, FLAGS },

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


[FFmpeg-cvslog] x86/swr: add SSE2/AVX pack_8ch functions

2014-12-30 Thread James Almer
ffmpeg | branch: master | James Almer  | Tue Dec 30 18:16:37 
2014 -0300| [37b35feb64e4e0382cd5e4502dbf0f7ff9aa0b5f] | committer: James Almer

x86/swr: add SSE2/AVX pack_8ch functions

Reviewed-by: Michael Niedermayer 
Reviewed-by: Ronald S. Bultje 
Signed-off-by: James Almer 

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

 libavcodec/x86/flacdsp.asm |   13 ---
 libavutil/x86/x86util.asm  |   37 
 libswresample/x86/audio_convert.asm|  145 
 libswresample/x86/audio_convert_init.c |   17 
 4 files changed, 199 insertions(+), 13 deletions(-)

diff --git a/libavcodec/x86/flacdsp.asm b/libavcodec/x86/flacdsp.asm
index d60a6e4..43a2f01 100644
--- a/libavcodec/x86/flacdsp.asm
+++ b/libavcodec/x86/flacdsp.asm
@@ -175,19 +175,6 @@ FLAC_DECORRELATE_32 ms, 2, 0, 1, add
 ;void ff_flac_decorrelate_indep__(uint8_t **out, int32_t **in, 
int channels,
 ;int len, int shift);
 
;-
-%macro TRANSPOSE8x4D 9
-SBUTTERFLY dq,  %1, %2, %9
-SBUTTERFLY dq,  %3, %4, %9
-SBUTTERFLY dq,  %5, %6, %9
-SBUTTERFLY dq,  %7, %8, %9
-SBUTTERFLY qdq, %1, %3, %9
-SBUTTERFLY qdq, %2, %4, %9
-SBUTTERFLY qdq, %5, %7, %9
-SBUTTERFLY qdq, %6, %8, %9
-SWAP %2, %5
-SWAP %4, %7
-%endmacro
-
 ;%1 = bps
 ;%2 = channels
 ;%3 = last xmm reg used
diff --git a/libavutil/x86/x86util.asm b/libavutil/x86/x86util.asm
index 2d02f75..d6702c1 100644
--- a/libavutil/x86/x86util.asm
+++ b/libavutil/x86/x86util.asm
@@ -107,6 +107,43 @@
 SWAP %5, %2, %3
 %endmacro
 
+%macro TRANSPOSE8x4D 9-11
+%if ARCH_X86_64
+SBUTTERFLY dq,  %1, %2, %9
+SBUTTERFLY dq,  %3, %4, %9
+SBUTTERFLY dq,  %5, %6, %9
+SBUTTERFLY dq,  %7, %8, %9
+SBUTTERFLY qdq, %1, %3, %9
+SBUTTERFLY qdq, %2, %4, %9
+SBUTTERFLY qdq, %5, %7, %9
+SBUTTERFLY qdq, %6, %8, %9
+SWAP %2, %5
+SWAP %4, %7
+%else
+; in:  m0..m7
+; out: m0..m7, unless %11 in which case m2 is in %9
+; spills into %9 and %10
+movdqa %9, m%7
+SBUTTERFLY dq,  %1, %2, %7
+movdqa %10, m%2
+movdqa m%7, %9
+SBUTTERFLY dq,  %3, %4, %2
+SBUTTERFLY dq,  %5, %6, %2
+SBUTTERFLY dq,  %7, %8, %2
+SBUTTERFLY qdq, %1, %3, %2
+movdqa %9, m%3
+movdqa m%2, %10
+SBUTTERFLY qdq, %2, %4, %3
+SBUTTERFLY qdq, %5, %7, %3
+SBUTTERFLY qdq, %6, %8, %3
+SWAP %2, %5
+SWAP %4, %7
+%if %0<11
+movdqa m%3, %9
+%endif
+%endif
+%endmacro
+
 %macro TRANSPOSE8x8W 9-11
 %if ARCH_X86_64
 SBUTTERFLY wd,  %1, %2, %9
diff --git a/libswresample/x86/audio_convert.asm 
b/libswresample/x86/audio_convert.asm
index 57d3a89..3706432 100644
--- a/libswresample/x86/audio_convert.asm
+++ b/libswresample/x86/audio_convert.asm
@@ -303,6 +303,135 @@ pack_6ch_%2_to_%1_u_int %+ SUFFIX
 %endif
 %endmacro
 
+%macro PACK_8CH 5-7
+cglobal pack_8ch_%2_to_%1_%3, 2,10,10, ARCH_X86_32*32, dst, src, len, src1, 
src2, src3, src4, src5, src6, src7
+mov dstq, [dstq]
+%if ARCH_X86_32
+DEFINE_ARGS dst, src, src2, src3, src4, src5, src6
+%define lend dword r2m
+%define src1q r0q
+%define src1m r1mp
+%define src7q r0q
+%define src7m r3mp
+mov dstm, dstq
+%endif
+movsrc7q, [srcq+7*gprsize]
+movsrc6q, [srcq+6*gprsize]
+movsrc5q, [srcq+5*gprsize]
+movsrc4q, [srcq+4*gprsize]
+%if ARCH_X86_32
+mov src7m, src7q
+%endif
+movsrc3q, [srcq+3*gprsize]
+movsrc2q, [srcq+2*gprsize]
+movsrc1q, [srcq+1*gprsize]
+mov srcq, [srcq]
+%ifidn %3, a
+%if ARCH_X86_32
+test dstmp, mmsize-1
+%else
+test dstq, mmsize-1
+%endif
+jne pack_8ch_%2_to_%1_u_int %+ SUFFIX
+test srcq, mmsize-1
+jne pack_8ch_%2_to_%1_u_int %+ SUFFIX
+test src1q, mmsize-1
+jne pack_8ch_%2_to_%1_u_int %+ SUFFIX
+test src2q, mmsize-1
+jne pack_8ch_%2_to_%1_u_int %+ SUFFIX
+test src3q, mmsize-1
+jne pack_8ch_%2_to_%1_u_int %+ SUFFIX
+test src4q, mmsize-1
+jne pack_8ch_%2_to_%1_u_int %+ SUFFIX
+test src5q, mmsize-1
+jne pack_8ch_%2_to_%1_u_int %+ SUFFIX
+test src6q, mmsize-1
+jne pack_8ch_%2_to_%1_u_int %+ SUFFIX
+%if ARCH_X86_32
+test src7m, mmsize-1
+%else
+test src7q, mmsize-1
+%endif
+jne pack_8ch_%2_to_%1_u_int %+ SUFFIX
+%else
+pack_8ch_%2_to_%1_u_int %+ SUFFIX
+%endif
+subsrc1q, srcq
+subsrc2q, srcq
+subsrc3q, srcq
+subsrc4q, srcq
+subsrc5q, srcq
+subsrc6q, srcq
+%if ARCH_X86_64
+subsrc7q, srcq
+%else
+mov src1m, src1q
+sub src7m, srcq
+%endif
+
+%if ARCH_X86_64
+%7 x,x,x,x,m9,x
+%elifidn %1, int32
+%define m9 [flt2p31]
+%else
+%define m9 [flt2pm31]
+%endif
+
+.loop:
+mov%3 m0, [srcq  ]
+mov%3 m1, [srcq+src1q]
+mov%3 m2, [srcq+src2q

[FFmpeg-cvslog] doc/filters: document bit-depth independent cropdetect limit

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Wed Dec 31 
03:01:19 2014 +0100| [037b527d62500cfde89d3bda5d4ac04ce8b8d959] | committer: 
Michael Niedermayer

doc/filters: document bit-depth independent cropdetect limit

Signed-off-by: Michael Niedermayer 

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

 doc/filters.texi |6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index 261fd24..1e2567e 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -3303,8 +3303,10 @@ It accepts the following parameters:
 
 @item limit
 Set higher black value threshold, which can be optionally specified
-from nothing (0) to everything (255). An intensity value greater
-to the set value is considered non-black. It defaults to 24.
+from nothing (0) to everything (255 for 8bit based formats). An intensity
+value greater to the set value is considered non-black. It defaults to 24.
+You can also specify a value between 0.0 and 1.0 which will be scaled depending
+on the bitdepth of the pixel format.
 
 @item round
 The value which the width/height should be divisible by. It defaults to

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


[FFmpeg-cvslog] avcodec/loco: Support LOCO reference encoder with odd width

2014-12-30 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Wed Dec 31 
02:41:01 2014 +0100| [d97b94f1af43c280c03e7d16830913911c67e94e] | committer: 
Michael Niedermayer

avcodec/loco: Support LOCO reference encoder with odd width

Fixes Ticket1221

Signed-off-by: Michael Niedermayer 

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

 libavcodec/loco.c |   19 +++
 1 file changed, 19 insertions(+)

diff --git a/libavcodec/loco.c b/libavcodec/loco.c
index bf52c49..88c66d9 100644
--- a/libavcodec/loco.c
+++ b/libavcodec/loco.c
@@ -168,6 +168,23 @@ static int loco_decode_plane(LOCOContext *l, uint8_t 
*data, int width, int heigh
 return (get_bits_count(&rc.gb) + 7) >> 3;
 }
 
+static void rotate_faulty_loco(uint8_t *data, int width, int height, int 
stride, int step)
+{
+int y;
+
+for (y=1; y=y) {
+memmove(data + y*stride,
+data + y*(stride + step),
+step*(width-y));
+if (y+1 < height)
+memmove(data + y*stride + step*(width-y),
+data + (y+1)*stride,
+step*y);
+}
+}
+}
+
 static int decode_frame(AVCodecContext *avctx,
 void *data, int *got_frame,
 AVPacket *avpkt)
@@ -216,6 +233,8 @@ static int decode_frame(AVCodecContext *avctx,
 ADVANCE_BY_DECODED;
 decoded = loco_decode_plane(l, p->data[0] + 
p->linesize[0]*(avctx->height-1) + 2, avctx->width, avctx->height,
 -p->linesize[0], buf, buf_size, 3);
+if (avctx->width & 1)
+rotate_faulty_loco(p->data[0] + p->linesize[0]*(avctx->height-1), 
avctx->width, avctx->height, -p->linesize[0], 3);
 break;
 case LOCO_CRGBA:
 case LOCO_RGBA:

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