[FFmpeg-cvslog] avcodec/mjpegdec: Skip blocks which are outside the visible area

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Wed Feb 11 
03:33:53 2015 +0100| [08509c8f86626815a3e9e68d600d1aacbb8df4bf] | committer: 
Michael Niedermayer

avcodec/mjpegdec: Skip blocks which are outside the visible area

Fixes out of array accesses
Fixes: ffmpeg_mjpeg_crash.avi

Found-by: Thomas Lindroth 
Signed-off-by: Michael Niedermayer 

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

 libavcodec/mjpegdec.c |   23 +++
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 08c8033..5e86c2e 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -1248,13 +1248,18 @@ static int mjpeg_decode_scan(MJpegDecodeContext *s, int 
nb_components, int Ah,
 
 if (s->interlaced && s->bottom_field)
 block_offset += linesize[c] >> 1;
-ptr = data[c] + block_offset;
+if (   8*(h * mb_x + x) < s->width
+&& 8*(v * mb_y + y) < s->height) {
+ptr = data[c] + block_offset;
+} else
+ptr = NULL;
 if (!s->progressive) {
-if (copy_mb)
-mjpeg_copy_block(s, ptr, reference_data[c] + 
block_offset,
- linesize[c], s->avctx->lowres);
+if (copy_mb) {
+if (ptr)
+mjpeg_copy_block(s, ptr, reference_data[c] + 
block_offset,
+linesize[c], s->avctx->lowres);
 
-else {
+} else {
 s->bdsp.clear_block(s->block);
 if (decode_block(s, s->block, i,
  s->dc_index[i], s->ac_index[i],
@@ -1263,9 +1268,11 @@ static int mjpeg_decode_scan(MJpegDecodeContext *s, int 
nb_components, int Ah,
"error y=%d x=%d\n", mb_y, mb_x);
 return AVERROR_INVALIDDATA;
 }
-s->idsp.idct_put(ptr, linesize[c], s->block);
-if (s->bits & 7)
-shift_output(s, ptr, linesize[c]);
+if (ptr) {
+s->idsp.idct_put(ptr, linesize[c], s->block);
+if (s->bits & 7)
+shift_output(s, ptr, linesize[c]);
+}
 }
 } else {
 int block_idx  = s->block_stride[c] * (v * mb_y + y) +

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


[FFmpeg-cvslog] ffmpeg: Print negative times like "-00:05:01.22" instead of "00:-5:-1.-22"

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Tue Feb 10 
22:09:29 2015 +0100| [23849339855875b737aee94813b31ddde2e40f9a] | committer: 
Michael Niedermayer

ffmpeg: Print negative times like "-00:05:01.22" instead of "00:-5:-1.-22"

Signed-off-by: Michael Niedermayer 

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

 ffmpeg.c |6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index fd45afb..becd5df 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1528,8 +1528,8 @@ static void print_report(int is_last_report, int64_t 
timer_start, int64_t cur_ti
 nb_frames_drop += ost->last_droped;
 }
 
-secs = pts / AV_TIME_BASE;
-us = pts % AV_TIME_BASE;
+secs = FFABS(pts) / AV_TIME_BASE;
+us = FFABS(pts) % AV_TIME_BASE;
 mins = secs / 60;
 secs %= 60;
 hours = mins / 60;
@@ -1541,6 +1541,8 @@ static void print_report(int is_last_report, int64_t 
timer_start, int64_t cur_ti
  "size=N/A time=");
 elsesnprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
  "size=%8.0fkB time=", total_size / 1024.0);
+if (pts < 0)
+snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "-");
 snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
  "%02d:%02d:%02d.%02d ", hours, mins, secs,
  (100 * us) / AV_TIME_BASE);

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


[FFmpeg-cvslog] Changelog: mention more ported filters

2015-02-11 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Wed Feb 11 09:35:23 
2015 +| [3a8801eb8d721b2ae16d4b178985e3893aa783e8] | committer: Paul B Mahol

Changelog: mention more ported filters

Signed-off-by: Paul B Mahol 

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

 Changelog |2 ++
 1 file changed, 2 insertions(+)

diff --git a/Changelog b/Changelog
index ca5e089..49b4793 100644
--- a/Changelog
+++ b/Changelog
@@ -18,8 +18,10 @@ version :
 - showpalette filter
 - Twofish symmetric block cipher
 - Support DNx100 (960x720@8)
+- eq2 filter ported from libmpcodecs as eq filter
 - removed libmpcodecs
 - Changed default DNxHD colour range in QuickTime .mov derivatives to mpeg 
range
+- ported softpulldown filter from libmpcodecs as repeatfields filter
 
 
 version 2.5:

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


[FFmpeg-cvslog] avcodec/h264_slice: Check picture structure before setting the related fields

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Sat Feb 
 7 02:22:44 2015 +0100| [4de40be5077364c8b0e25c5fa8d3fc9afbcfe94b] | committer: 
Michael Niedermayer

avcodec/h264_slice: Check picture structure before setting the related fields

This might fix a hypothetical race condition

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

Signed-off-by: Michael Niedermayer 

Conflicts:

libavcodec/h264_slice.c

Conflicts:

libavcodec/h264.c

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

 libavcodec/h264.c |   30 --
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index dfbab66..3e62104 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -3148,7 +3148,7 @@ static int decode_slice_header(H264Context *h, 
H264Context *h0)
 int must_reinit;
 int needs_reinit = 0;
 int first_slice = h == h0 && !h0->current_slice;
-int frame_num;
+int frame_num, picture_structure, droppable;
 PPS *pps;
 
 h->me.qpel_put = h->h264qpel.put_h264_qpel_pixels_tab;
@@ -3342,37 +3342,32 @@ static int decode_slice_header(H264Context *h, 
H264Context *h0)
 return AVERROR_INVALIDDATA;
 }
 }
-h->frame_num = frame_num;
 
 h->mb_mbaff= 0;
 h->mb_aff_frame= 0;
 last_pic_structure = h0->picture_structure;
 last_pic_droppable = h0->droppable;
-h->droppable   = h->nal_ref_idc == 0;
+droppable  = h->nal_ref_idc == 0;
 if (h->sps.frame_mbs_only_flag) {
-h->picture_structure = PICT_FRAME;
+picture_structure = PICT_FRAME;
 } else {
 if (!h->sps.direct_8x8_inference_flag && slice_type == 
AV_PICTURE_TYPE_B) {
 av_log(h->avctx, AV_LOG_ERROR, "This stream was generated by a 
broken encoder, invalid 8x8 inference\n");
 return -1;
 }
 if (get_bits1(&h->gb)) { // field_pic_flag
-h->picture_structure = PICT_TOP_FIELD + get_bits1(&h->gb); // 
bottom_field_flag
+picture_structure = PICT_TOP_FIELD + get_bits1(&h->gb); // 
bottom_field_flag
 } else {
-h->picture_structure = PICT_FRAME;
+picture_structure = PICT_FRAME;
 h->mb_aff_frame  = h->sps.mb_aff;
 }
 }
-h->mb_field_decoding_flag = h->picture_structure != PICT_FRAME;
-
-if (h0->current_slice != 0) {
-if (last_pic_structure != h->picture_structure ||
-last_pic_droppable != h->droppable) {
+if (h0->current_slice) {
+if (last_pic_structure != picture_structure ||
+last_pic_droppable != droppable) {
 av_log(h->avctx, AV_LOG_ERROR,
"Changing field mode (%d -> %d) between slices is not 
allowed\n",
last_pic_structure, h->picture_structure);
-h->picture_structure = last_pic_structure;
-h->droppable = last_pic_droppable;
 return AVERROR_INVALIDDATA;
 } else if (!h0->cur_pic_ptr) {
 av_log(h->avctx, AV_LOG_ERROR,
@@ -3380,7 +3375,14 @@ static int decode_slice_header(H264Context *h, 
H264Context *h0)
h0->current_slice + 1);
 return AVERROR_INVALIDDATA;
 }
-} else {
+}
+
+h->picture_structure = picture_structure;
+h->droppable = droppable;
+h->frame_num = frame_num;
+h->mb_field_decoding_flag = picture_structure != PICT_FRAME;
+
+if (h0->current_slice == 0) {
 /* Shorten frame num gaps so we don't have to allocate reference
  * frames just to throw them away */
 if (h->frame_num != h->prev_frame_num) {

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


[FFmpeg-cvslog] avutil/opt: Fix type used to access AV_OPT_TYPE_SAMPLE_FMT

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Fri Feb 
 6 22:16:08 2015 +0100| [5b4a79ee02177075ca0ea8d00b9771eec0daa9ea] | committer: 
Michael Niedermayer

avutil/opt: Fix type used to access AV_OPT_TYPE_SAMPLE_FMT

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

Signed-off-by: Michael Niedermayer 

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

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

diff --git a/libavutil/opt.c b/libavutil/opt.c
index 52cc7a1..56fde73 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -75,7 +75,7 @@ static int read_number(const AVOption *o, void *dst, double 
*num, int *den, int6
 switch (o->type) {
 case AV_OPT_TYPE_FLAGS: *intnum = *(unsigned int*)dst;return 0;
 case AV_OPT_TYPE_PIXEL_FMT: *intnum = *(enum AVPixelFormat *)dst;return 0;
-case AV_OPT_TYPE_SAMPLE_FMT:
+case AV_OPT_TYPE_SAMPLE_FMT:*intnum = *(enum AVSampleFormat*)dst;return 0;
 case AV_OPT_TYPE_INT:   *intnum = *(int *)dst;return 0;
 case AV_OPT_TYPE_INT64: *intnum = *(int64_t *)dst;return 0;
 case AV_OPT_TYPE_FLOAT: *num= *(float   *)dst;return 0;
@@ -98,8 +98,8 @@ static int write_number(void *obj, const AVOption *o, void 
*dst, double num, int
 
 switch (o->type) {
 case AV_OPT_TYPE_PIXEL_FMT: *(enum AVPixelFormat *)dst = llrint(num/den) * 
intnum; break;
+case AV_OPT_TYPE_SAMPLE_FMT:*(enum AVSampleFormat*)dst = llrint(num/den) * 
intnum; break;
 case AV_OPT_TYPE_FLAGS:
-case AV_OPT_TYPE_SAMPLE_FMT:
 case AV_OPT_TYPE_INT:   *(int   *)dst= llrint(num/den)*intnum; break;
 case AV_OPT_TYPE_INT64: *(int64_t   *)dst= llrint(num/den)*intnum; break;
 case AV_OPT_TYPE_FLOAT: *(float *)dst= num*intnum/den; break;

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


[FFmpeg-cvslog] avformat/thp: Check av_get_packet() for failure not only for partial output

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Thu Feb 
 5 03:45:21 2015 +0100| [3508aa142766288c87c471af4de34c204089a800] | committer: 
Michael Niedermayer

avformat/thp: Check av_get_packet() for failure not only for partial output

Fixes null pointer dereference
Fixes: signal_sigsegv_db2c1f_3108_cov_163322880_pikmin2_opening1_partial.thp

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

Signed-off-by: Michael Niedermayer 

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

 libavformat/thp.c |2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/thp.c b/libavformat/thp.c
index 568807d..3ef9497 100644
--- a/libavformat/thp.c
+++ b/libavformat/thp.c
@@ -180,6 +180,8 @@ static int thp_read_packet(AVFormatContext *s,
 pkt->stream_index = thp->video_stream_index;
 } else {
 ret = av_get_packet(pb, pkt, thp->audiosize);
+if (ret < 0)
+return ret;
 if (ret != thp->audiosize) {
 av_free_packet(pkt);
 return AVERROR(EIO);

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


[FFmpeg-cvslog] avcodec/mjpegdec: Check number of components for JPEG-LS

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Wed Feb 
 4 20:48:30 2015 +0100| [fd6a9fcd427b86c0a249a8cdb33f746f33706725] | committer: 
Michael Niedermayer

avcodec/mjpegdec: Check number of components for JPEG-LS

Fixes out of array accesses
Fixes: asan_heap-oob_1c1a4ea_1242_cov_2274415971_TESTcmyk.jpg

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

Conflicts:

libavcodec/mjpegdec.c

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

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

diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index f04b603..fe1e5da 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -437,9 +437,12 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
 }
 if (s->ls) {
 s->upscale_h = s->upscale_v = 0;
-if (s->nb_components > 1)
+if (s->nb_components == 3) {
 s->avctx->pix_fmt = AV_PIX_FMT_RGB24;
-else if (s->bits <= 8)
+} else if (s->nb_components != 1) {
+av_log(s->avctx, AV_LOG_ERROR, "Unsupported number of components 
%d\n", s->nb_components);
+return AVERROR_PATCHWELCOME;
+} else if (s->bits <= 8)
 s->avctx->pix_fmt = AV_PIX_FMT_GRAY8;
 else
 s->avctx->pix_fmt = AV_PIX_FMT_GRAY16;

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


[FFmpeg-cvslog] avcodec/mjpegdec: Check escape sequence validity

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Wed Feb 
 4 20:13:18 2015 +0100| [20be3ea442abafbdc4d8288a549c302a306bc63c] | committer: 
Michael Niedermayer

avcodec/mjpegdec: Check escape sequence validity

Fixes assertion failure
Fixes: asan_heap-oob_1c1a4ea_1242_cov_2274415971_TESTcmyk.jpg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer 

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

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

diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index a2a93c1..f04b603 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -1631,6 +1631,10 @@ int ff_mjpeg_find_marker(MJpegDecodeContext *s,
 put_bits(&pb, 8, x);
 if (x == 0xFF) {
 x = src[b++];
+if (x & 0x80) {
+av_log(s->avctx, AV_LOG_WARNING, "Invalid escape 
sequence\n");
+x &= 0x7f;
+}
 put_bits(&pb, 7, x);
 bit_count--;
 }

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


[FFmpeg-cvslog] avcodec/h264_ps: More completely check the bit depths

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Fri Feb 
 6 04:11:56 2015 +0100| [4ef5605fc91d5e01611dde6532f8b91742af3c60] | committer: 
Michael Niedermayer

avcodec/h264_ps: More completely check the bit depths

Fixes out of array read
Fixes: asan_static-oob_30328b6_719_cov_3325483287_H264_artifacts_motion.h264

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

Conflicts:

libavcodec/h264_ps.c

Signed-off-by: Michael Niedermayer 

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

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

diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
index 8638ce2..12a16c8 100644
--- a/libavcodec/h264_ps.c
+++ b/libavcodec/h264_ps.c
@@ -379,7 +379,9 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){
 }
 sps->bit_depth_luma   = get_ue_golomb(&h->gb) + 8;
 sps->bit_depth_chroma = get_ue_golomb(&h->gb) + 8;
-if (sps->bit_depth_luma > 14U || sps->bit_depth_chroma > 14U || 
sps->bit_depth_luma != sps->bit_depth_chroma) {
+if (sps->bit_depth_luma   < 8 || sps->bit_depth_luma   > 14 ||
+sps->bit_depth_chroma < 8 || sps->bit_depth_chroma > 14 ||
+sps->bit_depth_luma != sps->bit_depth_chroma) {
 av_log(h->avctx, AV_LOG_ERROR, "illegal bit depth value (%d, 
%d)\n",
sps->bit_depth_luma, sps->bit_depth_chroma);
 goto fail;

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


[FFmpeg-cvslog] avcodec/mjpegdec: Skip blocks which are outside the visible area

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Wed Feb 
11 03:33:53 2015 +0100| [7e7772c13ad8c75786f3980ad4e118158697d4db] | committer: 
Michael Niedermayer

avcodec/mjpegdec: Skip blocks which are outside the visible area

Fixes out of array accesses
Fixes: ffmpeg_mjpeg_crash.avi

Found-by: Thomas Lindroth 
Signed-off-by: Michael Niedermayer 
(cherry picked from commit 08509c8f86626815a3e9e68d600d1aacbb8df4bf)

Conflicts:

libavcodec/mjpegdec.c
(cherry picked from commit b881a97b9977b79dfe3ce02d61542c630fe78c14)

Signed-off-by: Michael Niedermayer 

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

 libavcodec/mjpegdec.c |   19 +--
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index fe1e5da..fa5844b 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -1083,13 +1083,18 @@ static int mjpeg_decode_scan(MJpegDecodeContext *s, int 
nb_components, int Ah,
 
 if (s->interlaced && s->bottom_field)
 block_offset += linesize[c] >> 1;
-ptr = data[c] + block_offset;
+if (   8*(h * mb_x + x) < s->width
+&& 8*(v * mb_y + y) < s->height) {
+ptr = data[c] + block_offset;
+} else
+ptr = NULL;
 if (!s->progressive) {
-if (copy_mb)
-mjpeg_copy_block(s, ptr, reference_data[c] + 
block_offset,
- linesize[c], s->avctx->lowres);
+if (copy_mb) {
+if (ptr)
+mjpeg_copy_block(s, ptr, reference_data[c] + 
block_offset,
+linesize[c], s->avctx->lowres);
 
-else {
+} else {
 s->dsp.clear_block(s->block);
 if (decode_block(s, s->block, i,
  s->dc_index[i], s->ac_index[i],
@@ -1098,7 +1103,9 @@ static int mjpeg_decode_scan(MJpegDecodeContext *s, int 
nb_components, int Ah,
"error y=%d x=%d\n", mb_y, mb_x);
 return AVERROR_INVALIDDATA;
 }
-s->dsp.idct_put(ptr, linesize[c], s->block);
+if (ptr) {
+s->dsp.idct_put(ptr, linesize[c], s->block);
+}
 }
 } else {
 int block_idx  = s->block_stride[c] * (v * mb_y + y) +

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


[FFmpeg-cvslog] swscale/utils: Limit filter shifting so as not to read from prior the array

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Thu Feb 
 5 00:12:08 2015 +0100| [42d9a7010f2d24e93c12c001430186d544eea591] | committer: 
Michael Niedermayer

swscale/utils: Limit filter shifting so as not to read from prior the array

Fixes out of array read
Fixes: asan_heap-oob_1fb2f9b_3780_cov_3984375136_usf.mkv

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

Signed-off-by: Michael Niedermayer 

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

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

diff --git a/libswscale/utils.c b/libswscale/utils.c
index 69ae7d8..de40bf5 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -571,14 +571,15 @@ static int initFilter(int16_t **outFilter, int32_t 
**filterPos,
 }
 
 if ((*filterPos)[i] + filterSize > srcW) {
-int shift = (*filterPos)[i] + filterSize - srcW;
+int shift = (*filterPos)[i] + FFMIN(filterSize - srcW, 0);
+
 // move filter coefficients right to compensate for filterPos
 for (j = filterSize - 2; j >= 0; j--) {
 int right = FFMIN(j + shift, filterSize - 1);
 filter[i * filterSize + right] += filter[i * filterSize + j];
 filter[i * filterSize + j]  = 0;
 }
-(*filterPos)[i]= srcW - filterSize;
+(*filterPos)[i]-= shift;
 }
 }
 

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


[FFmpeg-cvslog] avcodec/h264_slice: ignore SAR changes in slices after the first

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Sat Feb 
 7 03:34:48 2015 +0100| [ac8ef33f9a397ed6ddfe936a2bdd6866ecb211dc] | committer: 
Michael Niedermayer

avcodec/h264_slice: ignore SAR changes in slices after the first

Fixes race condition and null pointer dereference
Fixes: signal_sigsegv_1472ac3_468_cov_2915641226_CABACI3_Sony_B.jsv

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

Signed-off-by: Michael Niedermayer 

Conflicts:

libavcodec/h264_slice.c

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

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

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 3e62104..533cb9e 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -3254,13 +3254,15 @@ static int decode_slice_header(H264Context *h, 
H264Context *h0)
  || 16*h->sps.mb_height * (2 - h->sps.frame_mbs_only_flag) 
!= h->avctx->coded_height
  || h->avctx->bits_per_raw_sample != h->sps.bit_depth_luma
  || h->cur_chroma_format_idc != h->sps.chroma_format_idc
- || av_cmp_q(h->sps.sar, h->avctx->sample_aspect_ratio)
  || h->mb_width  != h->sps.mb_width
  || h->mb_height != h->sps.mb_height * (2 - 
h->sps.frame_mbs_only_flag)
 ));
 if (non_j_pixfmt(h0->avctx->pix_fmt) != non_j_pixfmt(get_pixel_format(h0, 
0)))
 must_reinit = 1;
 
+if (first_slice && av_cmp_q(h->sps.sar, h->avctx->sample_aspect_ratio))
+must_reinit = 1;
+
 h->mb_width  = h->sps.mb_width;
 h->mb_height = h->sps.mb_height * (2 - h->sps.frame_mbs_only_flag);
 h->mb_num= h->mb_width * h->mb_height;

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


[FFmpeg-cvslog] avcodec/h264: Be more strict on rejecting pps/sps changes

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Fri Feb 
 6 15:09:54 2015 +0100| [763c7533483b332bfe2064df4de43056f3935d84] | committer: 
Michael Niedermayer

avcodec/h264: Be more strict on rejecting pps/sps changes

Fixes race condition
Fixes: signal_sigsegv_1472ac3_468_cov_2915641226_CABACI3_Sony_B.jsv

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

Conflicts:

libavcodec/h264.c

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

 libavcodec/h264.c |   19 +++
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 65e53ac..f4b19a0 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -3147,6 +3147,8 @@ static int decode_slice_header(H264Context *h, 
H264Context *h0)
 int last_pic_structure, last_pic_droppable;
 int must_reinit;
 int needs_reinit = 0;
+int first_slice = h == h0 && !h0->current_slice;
+PPS *pps;
 
 h->me.qpel_put = h->h264qpel.put_h264_qpel_pixels_tab;
 h->me.qpel_avg = h->h264qpel.avg_h264_qpel_pixels_tab;
@@ -3200,17 +3202,26 @@ static int decode_slice_header(H264Context *h, 
H264Context *h0)
pps_id);
 return -1;
 }
-h->pps = *h0->pps_buffers[pps_id];
 
-if (!h0->sps_buffers[h->pps.sps_id]) {
+pps = h0->pps_buffers[pps_id];
+
+if (!h0->sps_buffers[pps->sps_id]) {
 av_log(h->avctx, AV_LOG_ERROR,
"non-existing SPS %u referenced\n",
h->pps.sps_id);
 return -1;
 }
+if (first_slice)
+h->pps = *h0->pps_buffers[pps_id];
+
+if (pps->sps_id != h->current_sps_id ||
+h0->sps_buffers[pps->sps_id]->new) {
 
-if (h->pps.sps_id != h->current_sps_id ||
-h0->sps_buffers[h->pps.sps_id]->new) {
+if (!first_slice) {
+av_log(h->avctx, AV_LOG_ERROR,
+   "SPS changed in the middle of the frame\n");
+return AVERROR_INVALIDDATA;
+}
 h0->sps_buffers[h->pps.sps_id]->new = 0;
 
 h->current_sps_id = h->pps.sps_id;

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


[FFmpeg-cvslog] avutil/opt: Fix types used to access AV_OPT_TYPE_PIXEL_FMT

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Fri Feb 
 6 22:14:15 2015 +0100| [d9618b964b179bd4f8cb55aa95e7426f914c95fe] | committer: 
Michael Niedermayer

avutil/opt: Fix types used to access AV_OPT_TYPE_PIXEL_FMT

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

Signed-off-by: Michael Niedermayer 

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

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

diff --git a/libavutil/opt.c b/libavutil/opt.c
index 5b88b28..52cc7a1 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -74,7 +74,7 @@ static int read_number(const AVOption *o, void *dst, double 
*num, int *den, int6
 {
 switch (o->type) {
 case AV_OPT_TYPE_FLAGS: *intnum = *(unsigned int*)dst;return 0;
-case AV_OPT_TYPE_PIXEL_FMT:
+case AV_OPT_TYPE_PIXEL_FMT: *intnum = *(enum AVPixelFormat *)dst;return 0;
 case AV_OPT_TYPE_SAMPLE_FMT:
 case AV_OPT_TYPE_INT:   *intnum = *(int *)dst;return 0;
 case AV_OPT_TYPE_INT64: *intnum = *(int64_t *)dst;return 0;
@@ -97,8 +97,8 @@ static int write_number(void *obj, const AVOption *o, void 
*dst, double num, int
 }
 
 switch (o->type) {
+case AV_OPT_TYPE_PIXEL_FMT: *(enum AVPixelFormat *)dst = llrint(num/den) * 
intnum; break;
 case AV_OPT_TYPE_FLAGS:
-case AV_OPT_TYPE_PIXEL_FMT:
 case AV_OPT_TYPE_SAMPLE_FMT:
 case AV_OPT_TYPE_INT:   *(int   *)dst= llrint(num/den)*intnum; break;
 case AV_OPT_TYPE_INT64: *(int64_t   *)dst= llrint(num/den)*intnum; break;

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


[FFmpeg-cvslog] avcodec/h264_slice: Do not change frame_num after the first slice

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: release/1.2 | Michael Niedermayer  | Sat Feb 
 7 02:06:20 2015 +0100| [64e50b2f2a6830475224b2ec03bb88ff300067f8] | committer: 
Michael Niedermayer

avcodec/h264_slice: Do not change frame_num after the first slice

Fixes potential race condition
Fixes: signal_sigsegv_1472ac3_468_cov_2915641226_CABACI3_Sony_B.jsv

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

Signed-off-by: Michael Niedermayer 

Conflicts:

libavcodec/h264_slice.c

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

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

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index f4b19a0..dfbab66 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -3148,6 +3148,7 @@ static int decode_slice_header(H264Context *h, 
H264Context *h0)
 int must_reinit;
 int needs_reinit = 0;
 int first_slice = h == h0 && !h0->current_slice;
+int frame_num;
 PPS *pps;
 
 h->me.qpel_put = h->h264qpel.put_h264_qpel_pixels_tab;
@@ -,7 +3334,15 @@ static int decode_slice_header(H264Context *h, 
H264Context *h0)
 init_dequant_tables(h);
 }
 
-h->frame_num = get_bits(&h->gb, h->sps.log2_max_frame_num);
+frame_num = get_bits(&h->gb, h->sps.log2_max_frame_num);
+if (!first_slice) {
+if (h0->frame_num != frame_num) {
+av_log(h->avctx, AV_LOG_ERROR, "Frame num change from %d to %d\n",
+   h0->frame_num, frame_num);
+return AVERROR_INVALIDDATA;
+}
+}
+h->frame_num = frame_num;
 
 h->mb_mbaff= 0;
 h->mb_aff_frame= 0;

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


[FFmpeg-cvslog] avformat/isom: add X-Com Radvision fourcc

2015-02-11 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Wed Feb 11 09:46:20 
2015 +| [ac494e5a66507c8124e8ba399b3f0685a51d7a82] | committer: Paul B Mahol

avformat/isom: add X-Com Radvision fourcc

Fixes bug #4303.

Signed-off-by: Paul B Mahol 

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

 libavformat/isom.c |1 +
 1 file changed, 1 insertion(+)

diff --git a/libavformat/isom.c b/libavformat/isom.c
index 68ddd32..fcd696a 100644
--- a/libavformat/isom.c
+++ b/libavformat/isom.c
@@ -173,6 +173,7 @@ const AVCodecTag ff_codec_movvideo_tags[] = {
 { AV_CODEC_ID_H264, MKTAG('a', 'i', '1', '6') }, /* AVC-Intra 100M 1080i60 
*/
 { AV_CODEC_ID_H264, MKTAG('A', 'V', 'i', 'n') }, /* AVC-Intra with 
implicit SPS/PPS */
 { AV_CODEC_ID_H264, MKTAG('a', 'i', 'v', 'x') }, /* XAVC 4:2:2 10bit */
+{ AV_CODEC_ID_H264, MKTAG('r', 'v', '6', '4') }, /* X-Com Radvision */
 
 { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', '1', 'v', ' ') },
 { AV_CODEC_ID_MPEG1VIDEO, MKTAG('m', '1', 'v', '1') }, /* Apple MPEG-1 
Camcorder */

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


[FFmpeg-cvslog] avfilter/unsharp: OpenCL unsharpen filter optimization: substitute N^2 filter computation with 2N+C

2015-02-11 Thread Alexey Titov
ffmpeg | branch: master | Alexey Titov  | Tue Feb 10 
12:21:05 2015 -0800| [a05a7373166c3c1b2eed3db66e143e9d227e0354] | committer: 
Michael Niedermayer

avfilter/unsharp: OpenCL unsharpen filter optimization: substitute N^2 filter 
computation with 2N+C

i7-4770K luma 21% faster, chroma 18% faster A10-7850K luma 42% faster, chroma 
37% faster on 1920x1080 res

Signed-off-by: Michael Niedermayer 

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

 libavfilter/unsharp.h   |4 ++
 libavfilter/unsharp_opencl.c|   77 +++---
 libavfilter/unsharp_opencl_kernel.h |  122 +--
 3 files changed, 148 insertions(+), 55 deletions(-)

diff --git a/libavfilter/unsharp.h b/libavfilter/unsharp.h
index c2aed64..fc651c0 100644
--- a/libavfilter/unsharp.h
+++ b/libavfilter/unsharp.h
@@ -41,6 +41,10 @@ typedef struct {
 cl_kernel kernel_chroma;
 cl_mem cl_luma_mask;
 cl_mem cl_chroma_mask;
+cl_mem cl_luma_mask_x;
+cl_mem cl_chroma_mask_x;
+cl_mem cl_luma_mask_y;
+cl_mem cl_chroma_mask_y;
 int in_plane_size[8];
 int out_plane_size[8];
 int plane_num;
diff --git a/libavfilter/unsharp_opencl.c b/libavfilter/unsharp_opencl.c
index 5c6b5ef..2cc0704 100644
--- a/libavfilter/unsharp_opencl.c
+++ b/libavfilter/unsharp_opencl.c
@@ -87,11 +87,12 @@ end:
 return ret;
 }
 
-static int compute_mask_matrix(cl_mem cl_mask_matrix, int step_x, int step_y)
+static int copy_separable_masks(cl_mem cl_mask_x, cl_mem cl_mask_y, int 
step_x, int step_y)
 {
-int i, j, ret = 0;
-uint32_t *mask_matrix, *mask_x, *mask_y;
-size_t size_matrix = sizeof(uint32_t) * (2 * step_x + 1) * (2 * step_y + 
1);
+int ret = 0;
+uint32_t *mask_x, *mask_y;
+size_t size_mask_x = sizeof(uint32_t) * (2 * step_x + 1);
+size_t size_mask_y = sizeof(uint32_t) * (2 * step_y + 1);
 mask_x = av_mallocz_array(2 * step_x + 1, sizeof(uint32_t));
 if (!mask_x) {
 ret = AVERROR(ENOMEM);
@@ -102,37 +103,36 @@ static int compute_mask_matrix(cl_mem cl_mask_matrix, int 
step_x, int step_y)
 ret = AVERROR(ENOMEM);
 goto end;
 }
-mask_matrix = av_mallocz(size_matrix);
-if (!mask_matrix) {
-ret = AVERROR(ENOMEM);
-goto end;
-}
+
 ret = compute_mask(step_x, mask_x);
 if (ret < 0)
 goto end;
 ret = compute_mask(step_y, mask_y);
 if (ret < 0)
 goto end;
-for (j = 0; j < 2 * step_y + 1; j++) {
-for (i = 0; i < 2 * step_x + 1; i++) {
-mask_matrix[i + j * (2 * step_x + 1)] = mask_y[j] * mask_x[i];
-}
-}
-ret = av_opencl_buffer_write(cl_mask_matrix, (uint8_t *)mask_matrix, 
size_matrix);
+
+ret = av_opencl_buffer_write(cl_mask_x, (uint8_t *)mask_x, size_mask_x);
+ret = av_opencl_buffer_write(cl_mask_y, (uint8_t *)mask_y, size_mask_y);
 end:
 av_freep(&mask_x);
 av_freep(&mask_y);
-av_freep(&mask_matrix);
+
 return ret;
 }
 
 static int generate_mask(AVFilterContext *ctx)
 {
-UnsharpContext *unsharp = ctx->priv;
-int i, ret = 0, step_x[2], step_y[2];
+cl_mem masks[4];
 cl_mem mask_matrix[2];
+int i, ret = 0, step_x[2], step_y[2];
+
+UnsharpContext *unsharp = ctx->priv;
 mask_matrix[0] = unsharp->opencl_ctx.cl_luma_mask;
 mask_matrix[1] = unsharp->opencl_ctx.cl_chroma_mask;
+masks[0] = unsharp->opencl_ctx.cl_luma_mask_x;
+masks[1] = unsharp->opencl_ctx.cl_luma_mask_y;
+masks[2] = unsharp->opencl_ctx.cl_chroma_mask_x;
+masks[3] = unsharp->opencl_ctx.cl_chroma_mask_y;
 step_x[0] = unsharp->luma.steps_x;
 step_x[1] = unsharp->chroma.steps_x;
 step_y[0] = unsharp->luma.steps_y;
@@ -144,12 +144,16 @@ static int generate_mask(AVFilterContext *ctx)
 else
 unsharp->opencl_ctx.use_fast_kernels = 1;
 
+if (!masks[0] || !masks[1] || !masks[2] || !masks[3]) {
+av_log(ctx, AV_LOG_ERROR, "Luma mask and chroma mask should not be 
NULL\n");
+return AVERROR(EINVAL);
+}
 if (!mask_matrix[0] || !mask_matrix[1]) {
 av_log(ctx, AV_LOG_ERROR, "Luma mask and chroma mask should not be 
NULL\n");
 return AVERROR(EINVAL);
 }
 for (i = 0; i < 2; i++) {
-ret = compute_mask_matrix(mask_matrix[i], step_x[i], step_y[i]);
+ret = copy_separable_masks(masks[2*i], masks[2*i+1], step_x[i], 
step_y[i]);
 if (ret < 0)
 return ret;
 }
@@ -184,7 +188,8 @@ int ff_opencl_apply_unsharp(AVFilterContext *ctx, AVFrame 
*in, AVFrame *out)
 ret = avpriv_opencl_set_parameter(&kernel1,
   
FF_OPENCL_PARAM_INFO(unsharp->opencl_ctx.cl_inbuf),
   
FF_OPENCL_PARAM_INFO(unsharp->opencl_ctx.cl_outbuf),
-  
FF_OPENCL_PARAM_INFO(unsharp->opencl_ctx.cl_luma_mask),
+  
FF_OPENCL_PARAM_INFO(unsharp->

[FFmpeg-cvslog] avfilter: add dcshift filter

2015-02-11 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Wed Jan 28 15:46:58 
2015 +| [edf217ebb7d518be3030184d03b5534033e82d0f] | committer: Paul B Mahol

avfilter: add dcshift filter

Signed-off-by: Paul B Mahol 

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

 Changelog|1 +
 doc/filters.texi |   19 ++
 libavfilter/Makefile |1 +
 libavfilter/af_dcshift.c |  164 ++
 libavfilter/allfilters.c |1 +
 libavfilter/version.h|4 +-
 6 files changed, 188 insertions(+), 2 deletions(-)

diff --git a/Changelog b/Changelog
index 49b4793..c663d5e 100644
--- a/Changelog
+++ b/Changelog
@@ -22,6 +22,7 @@ version :
 - removed libmpcodecs
 - Changed default DNxHD colour range in QuickTime .mov derivatives to mpeg 
range
 - ported softpulldown filter from libmpcodecs as repeatfields filter
+- dcshift filter
 
 
 version 2.5:
diff --git a/doc/filters.texi b/doc/filters.texi
index 2f29c46..8069554 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -917,6 +917,7 @@ audio, the data is treated as if all the planes were 
concatenated.
 A list of Adler-32 checksums for each data plane.
 @end table
 
+@anchor{astats}
 @section astats
 
 Display time domain statistical information about the audio channels.
@@ -1394,6 +1395,24 @@ 
compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
 @end example
 @end itemize
 
+@section dcshift
+Apply a DC shift to the audio.
+
+This can be useful to remove a DC offset (caused perhaps by a hardware problem
+in the recording chain) from the audio. The effect of a DC offset is reduced
+headroom and hence volume. The @ref{astats} filter can be used to determine if
+a signal has a DC offset.
+
+@table @option
+@item shift
+Set the DC shift, allowed range is [-1, 1]. It indicates the amount to shift
+the audio.
+
+@item limitergain
+Optional. It should have a value much less than 1 (e.g. 0.05 or 0.02) and is
+used to prevent clipping.
+@end table
+
 @section earwax
 
 Make audio easier to listen to on headphones.
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 21a3fbe..7d1ea91 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -65,6 +65,7 @@ OBJS-$(CONFIG_BS2B_FILTER)   += af_bs2b.o
 OBJS-$(CONFIG_CHANNELMAP_FILTER) += af_channelmap.o
 OBJS-$(CONFIG_CHANNELSPLIT_FILTER)   += af_channelsplit.o
 OBJS-$(CONFIG_COMPAND_FILTER)+= af_compand.o
+OBJS-$(CONFIG_DCSHIFT_FILTER)+= af_dcshift.o
 OBJS-$(CONFIG_EARWAX_FILTER) += af_earwax.o
 OBJS-$(CONFIG_EBUR128_FILTER)+= f_ebur128.o
 OBJS-$(CONFIG_EQUALIZER_FILTER)  += af_biquads.o
diff --git a/libavfilter/af_dcshift.c b/libavfilter/af_dcshift.c
new file mode 100644
index 000..c1abb3c
--- /dev/null
+++ b/libavfilter/af_dcshift.c
@@ -0,0 +1,164 @@
+/*
+ * Copyright (c) 2000 Chris Ausbrooks 
+ * Copyright (c) 2000 Fabien COELHO 
+ *
+ * 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 "libavutil/opt.h"
+#include "libavutil/samplefmt.h"
+#include "avfilter.h"
+#include "audio.h"
+#include "internal.h"
+
+typedef struct DCShiftContext {
+const AVClass *class;
+double dcshift;
+double limiterthreshhold;
+double limitergain;
+} DCShiftContext;
+
+#define OFFSET(x) offsetof(DCShiftContext, x)
+#define A AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
+
+static const AVOption dcshift_options[] = {
+{ "shift",   "set DC shift", OFFSET(dcshift),   
AV_OPT_TYPE_DOUBLE, {.dbl=0}, -1, 1, A },
+{ "limitergain", "set limiter gain", OFFSET(limitergain), 
AV_OPT_TYPE_DOUBLE, {.dbl=0}, 0, 1, A },
+{ NULL }
+};
+
+AVFILTER_DEFINE_CLASS(dcshift);
+
+static av_cold int init(AVFilterContext *ctx)
+{
+DCShiftContext *s = ctx->priv;
+
+s->limiterthreshhold = INT32_MAX * (1.0 - (fabs(s->dcshift) - 
s->limitergain));
+
+return 0;
+}
+
+static int query_formats(AVFilterContext *ctx)
+{
+AVFilterChannelLayouts *layouts;
+AVFilterFormats *formats;
+static const enum AVSampleFormat sample_fmts[] = {
+AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE
+};
+
+layouts = ff_all_channel_layouts();
+if (!layou

[FFmpeg-cvslog] cmdutils: fix success path

2015-02-11 Thread Jean Delvare
ffmpeg | branch: master | Jean Delvare  | Wed Feb 11 14:18:27 
2015 +0100| [194165aed8629257b73e53ba951586ed4754cee3] | committer: Michael 
Niedermayer

cmdutils: fix success path

Since commit 934f2d2f5c16df8aad9f401a9fd842b5d9a78b11,
cmdutils_read_file() prints a confusing message on success:

IO error: Success

This is because the error message is printed on the success path as
well. Add the missing condition so that it is only printed on error.

Signed-off-by: Jean Delvare 
Cc: Michael Niedermayer 
Signed-off-by: Michael Niedermayer 

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

 cmdutils.c |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/cmdutils.c b/cmdutils.c
index 6c40df9..46d0b4b 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -1912,7 +1912,8 @@ int cmdutils_read_file(const char *filename, char 
**bufptr, size_t *size)
 }
 
 out:
-av_log(NULL, AV_LOG_ERROR, "IO error: %s\n", av_err2str(ret));
+if (ret < 0)
+av_log(NULL, AV_LOG_ERROR, "IO error: %s\n", av_err2str(ret));
 fclose(f);
 return ret;
 }

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


[FFmpeg-cvslog] avcodec/mjpegenc: support trellis quantization

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Wed Feb 11 
00:47:15 2015 +0100| [7cac568b39703934b6ee62411dfe949816f7f840] | committer: 
Michael Niedermayer

avcodec/mjpegenc: support trellis quantization

Signed-off-by: Michael Niedermayer 

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

 libavcodec/mjpegenc.c  |   36 
 libavcodec/mpegvideo_enc.c |6 +-
 2 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index 14701e2..001833c 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -38,6 +38,35 @@
 #include "mjpeg.h"
 #include "mjpegenc.h"
 
+static uint8_t uni_ac_vlc_len[64 * 64 * 2];
+static uint8_t uni_chroma_ac_vlc_len[64 * 64 * 2];
+
+static av_cold void init_uni_ac_vlc(const uint8_t huff_size_ac[256], uint8_t 
*uni_ac_vlc_len)
+{
+int i;
+
+for (i = 0; i < 128; i++) {
+int level = i - 64;
+int run;
+if (!level)
+continue;
+for (run = 0; run < 64; run++) {
+int len, code, nbits;
+int alevel = FFABS(level);
+
+len = (run >> 4) * huff_size_ac[0xf0];
+
+nbits= av_log2_16bit(alevel) + 1;
+code = ((15&run) << 4) | nbits;
+
+len += huff_size_ac[code] + nbits;
+
+uni_ac_vlc_len[UNI_AC_ENC_INDEX(run, i)] = len;
+// We ignore EOB as its just a constant which does not change 
generally
+}
+}
+}
+
 av_cold int ff_mjpeg_encode_init(MpegEncContext *s)
 {
 MJpegContext *m;
@@ -72,6 +101,13 @@ av_cold int ff_mjpeg_encode_init(MpegEncContext *s)
  avpriv_mjpeg_bits_ac_chrominance,
  avpriv_mjpeg_val_ac_chrominance);
 
+init_uni_ac_vlc(m->huff_size_ac_luminance,   uni_ac_vlc_len);
+init_uni_ac_vlc(m->huff_size_ac_chrominance, uni_chroma_ac_vlc_len);
+s->intra_ac_vlc_length  =
+s->intra_ac_vlc_last_length = uni_ac_vlc_len;
+s->intra_chroma_ac_vlc_length  =
+s->intra_chroma_ac_vlc_last_length = uni_chroma_ac_vlc_len;
+
 s->mjpeg_ctx = m;
 return 0;
 }
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index f17c6b3..811fbe8 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -3811,8 +3811,9 @@ static int dct_quantize_trellis_c(MpegEncContext *s,
 start_i = 1;
 last_non_zero = 0;
 qmat = n < 4 ? s->q_intra_matrix[qscale] : 
s->q_chroma_intra_matrix[qscale];
-if(s->mpeg_quant || s->out_format == FMT_MPEG1)
+if(s->mpeg_quant || s->out_format == FMT_MPEG1 || s->out_format == 
FMT_MJPEG)
 bias= 1<<(QMAT_SHIFT-1);
+
 if (n > 3 && s->intra_chroma_ac_vlc_length) {
 length = s->intra_chroma_ac_vlc_length;
 last_length= s->intra_chroma_ac_vlc_last_length;
@@ -3899,6 +3900,9 @@ static int dct_quantize_trellis_c(MpegEncContext *s,
 
 if(s->out_format == FMT_H263 || s->out_format == FMT_H261){
 unquant_coeff= alevel*qmul + qadd;
+} else if(s->out_format == FMT_MJPEG) {
+j = s->idsp.idct_permutation[scantable[i]];
+unquant_coeff = alevel * s->intra_matrix[j] * 8;
 }else{ //MPEG1
 j = s->idsp.idct_permutation[scantable[i]]; // FIXME: optimize
 if(s->mb_intra){

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


[FFmpeg-cvslog] fate: mjpeg trellis test

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Wed Feb 11 
01:28:12 2015 +0100| [7d24ccaf002b65f3073338b4dcd81e2a609fa267] | committer: 
Michael Niedermayer

fate: mjpeg trellis test

Signed-off-by: Michael Niedermayer 

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

 tests/fate/vcodec.mak|3 ++-
 tests/ref/vsynth/vsynth1-mjpeg-trell |4 
 tests/ref/vsynth/vsynth2-mjpeg-trell |4 
 tests/ref/vsynth/vsynth3-mjpeg-trell |4 
 tests/ref/vsynth/vsynth_lena-mjpeg-trell |4 
 5 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/tests/fate/vcodec.mak b/tests/fate/vcodec.mak
index 6363117..0aba87b 100644
--- a/tests/fate/vcodec.mak
+++ b/tests/fate/vcodec.mak
@@ -118,10 +118,11 @@ fate-vsynth%-jpeg2000-97: DECINOPTS = -vcodec 
jpeg2000
 FATE_VCODEC-$(call ENCDEC, LJPEG MJPEG, AVI) += ljpeg
 fate-vsynth%-ljpeg:  ENCOPTS = -strict -1
 
-FATE_VCODEC-$(call ENCDEC, MJPEG, AVI)  += mjpeg mjpeg-422 mjpeg-444
+FATE_VCODEC-$(call ENCDEC, MJPEG, AVI)  += mjpeg mjpeg-422 mjpeg-444 
mjpeg-trell
 fate-vsynth%-mjpeg:  ENCOPTS = -qscale 9 -pix_fmt yuvj420p
 fate-vsynth%-mjpeg-422:  ENCOPTS = -qscale 9 -pix_fmt yuvj422p
 fate-vsynth%-mjpeg-444:  ENCOPTS = -qscale 9 -pix_fmt yuvj444p
+fate-vsynth%-mjpeg-trell:ENCOPTS = -qscale 9 -pix_fmt yuvj420p 
-trellis 1
 
 FATE_VCODEC-$(call ENCDEC, MPEG1VIDEO, MPEG1VIDEO MPEGVIDEO) += mpeg1 mpeg1b
 fate-vsynth%-mpeg1:  FMT = mpeg1video
diff --git a/tests/ref/vsynth/vsynth1-mjpeg-trell 
b/tests/ref/vsynth/vsynth1-mjpeg-trell
new file mode 100644
index 000..8146677
--- /dev/null
+++ b/tests/ref/vsynth/vsynth1-mjpeg-trell
@@ -0,0 +1,4 @@
+9efc0311c1e7a0ae55e3117a41c40e5b *tests/data/fate/vsynth1-mjpeg-trell.avi
+1454304 tests/data/fate/vsynth1-mjpeg-trell.avi
+218d4dc8086fdef15d5382e6ba97df0b 
*tests/data/fate/vsynth1-mjpeg-trell.out.rawvideo
+stddev:7.71 PSNR: 30.39 MAXDIFF:   62 bytes:  7603200/  7603200
diff --git a/tests/ref/vsynth/vsynth2-mjpeg-trell 
b/tests/ref/vsynth/vsynth2-mjpeg-trell
new file mode 100644
index 000..e94a5b6
--- /dev/null
+++ b/tests/ref/vsynth/vsynth2-mjpeg-trell
@@ -0,0 +1,4 @@
+ff1b7f482f6bc2eed5ffa07a8d09aedb *tests/data/fate/vsynth2-mjpeg-trell.avi
+765624 tests/data/fate/vsynth2-mjpeg-trell.avi
+ce145393bece26d49076b26cf1a2e52e 
*tests/data/fate/vsynth2-mjpeg-trell.out.rawvideo
+stddev:5.03 PSNR: 34.09 MAXDIFF:   67 bytes:  7603200/  7603200
diff --git a/tests/ref/vsynth/vsynth3-mjpeg-trell 
b/tests/ref/vsynth/vsynth3-mjpeg-trell
new file mode 100644
index 000..8b46a80
--- /dev/null
+++ b/tests/ref/vsynth/vsynth3-mjpeg-trell
@@ -0,0 +1,4 @@
+56228a157453db7c9fd20ffcd49e3d6b *tests/data/fate/vsynth3-mjpeg-trell.avi
+63990 tests/data/fate/vsynth3-mjpeg-trell.avi
+4fed1e12c80df7b67df292b153c3cf16 
*tests/data/fate/vsynth3-mjpeg-trell.out.rawvideo
+stddev:8.27 PSNR: 29.77 MAXDIFF:   61 bytes:86700/86700
diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-trell 
b/tests/ref/vsynth/vsynth_lena-mjpeg-trell
new file mode 100644
index 000..4d21f59
--- /dev/null
+++ b/tests/ref/vsynth/vsynth_lena-mjpeg-trell
@@ -0,0 +1,4 @@
+2bf49df3e74d059bfe5636c27b2eb43e *tests/data/fate/vsynth_lena-mjpeg-trell.avi
+613608 tests/data/fate/vsynth_lena-mjpeg-trell.avi
+ee4999fcc0913e01e69fe689b4229cbe 
*tests/data/fate/vsynth_lena-mjpeg-trell.out.rawvideo
+stddev:4.51 PSNR: 35.03 MAXDIFF:   60 bytes:  7603200/  7603200

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


[FFmpeg-cvslog] avcodec/mpegvideo_enc: Add intra_chroma_ac_vlc_length, it will be needed for mjpeg

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Wed Feb 11 
00:34:02 2015 +0100| [7366bb38f10e5955be4280e11b7dbe15d2c0edb8] | committer: 
Michael Niedermayer

avcodec/mpegvideo_enc: Add intra_chroma_ac_vlc_length, it will be needed for 
mjpeg

Signed-off-by: Michael Niedermayer 

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

 libavcodec/mpegvideo.h |2 ++
 libavcodec/mpegvideo_enc.c |   18 ++
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index 81f412b..6215d23 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -443,6 +443,8 @@ typedef struct MpegEncContext {
 int ac_esc_length;   ///< num of bits needed to encode the longest esc
 uint8_t *intra_ac_vlc_length;
 uint8_t *intra_ac_vlc_last_length;
+uint8_t *intra_chroma_ac_vlc_length;
+uint8_t *intra_chroma_ac_vlc_last_length;
 uint8_t *inter_ac_vlc_length;
 uint8_t *inter_ac_vlc_last_length;
 uint8_t *luma_dc_vlc_length;
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index af75df6..f17c6b3 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -3813,8 +3813,13 @@ static int dct_quantize_trellis_c(MpegEncContext *s,
 qmat = n < 4 ? s->q_intra_matrix[qscale] : 
s->q_chroma_intra_matrix[qscale];
 if(s->mpeg_quant || s->out_format == FMT_MPEG1)
 bias= 1<<(QMAT_SHIFT-1);
-length = s->intra_ac_vlc_length;
-last_length= s->intra_ac_vlc_last_length;
+if (n > 3 && s->intra_chroma_ac_vlc_length) {
+length = s->intra_chroma_ac_vlc_length;
+last_length= s->intra_chroma_ac_vlc_last_length;
+} else {
+length = s->intra_ac_vlc_length;
+last_length= s->intra_ac_vlc_last_length;
+}
 } else {
 start_i = 0;
 last_non_zero = -1;
@@ -4123,8 +4128,13 @@ static int messed_sign=0;
 start_i = 1;
 //if(s->mpeg_quant || s->out_format == FMT_MPEG1)
 //bias= 1<<(QMAT_SHIFT-1);
-length = s->intra_ac_vlc_length;
-last_length= s->intra_ac_vlc_last_length;
+if (n > 3 && s->intra_chroma_ac_vlc_length) {
+length = s->intra_chroma_ac_vlc_length;
+last_length= s->intra_chroma_ac_vlc_last_length;
+} else {
+length = s->intra_ac_vlc_length;
+last_length= s->intra_ac_vlc_last_length;
+}
 } else {
 dc= 0;
 start_i = 0;

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


[FFmpeg-cvslog] avcodec/mpegvideo_enc: Consider chroma_intra_matrix in dct_quantize_trellis_c()

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Wed Feb 11 
23:55:30 2015 +0100| [0bcb040a2ec9138a8da2ea67170e9f738259423f] | committer: 
Michael Niedermayer

avcodec/mpegvideo_enc: Consider chroma_intra_matrix in dct_quantize_trellis_c()

Signed-off-by: Michael Niedermayer 

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

 libavcodec/mpegvideo_enc.c |   11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index 811fbe8..cb6ac28 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -3763,6 +3763,7 @@ static int dct_quantize_trellis_c(MpegEncContext *s,
   int16_t *block, int n,
   int qscale, int *overflow){
 const int *qmat;
+const uint16_t *matrix;
 const uint8_t *scantable= s->intra_scantable.scantable;
 const uint8_t *perm_scantable= s->intra_scantable.permutated;
 int max=0;
@@ -3811,6 +3812,7 @@ static int dct_quantize_trellis_c(MpegEncContext *s,
 start_i = 1;
 last_non_zero = 0;
 qmat = n < 4 ? s->q_intra_matrix[qscale] : 
s->q_chroma_intra_matrix[qscale];
+matrix = n < 4 ? s->intra_matrix : s->chroma_intra_matrix;
 if(s->mpeg_quant || s->out_format == FMT_MPEG1 || s->out_format == 
FMT_MJPEG)
 bias= 1<<(QMAT_SHIFT-1);
 
@@ -3825,6 +3827,7 @@ static int dct_quantize_trellis_c(MpegEncContext *s,
 start_i = 0;
 last_non_zero = -1;
 qmat = s->q_inter_matrix[qscale];
+matrix = s->inter_matrix;
 length = s->inter_ac_vlc_length;
 last_length= s->inter_ac_vlc_last_length;
 }
@@ -3902,14 +3905,14 @@ static int dct_quantize_trellis_c(MpegEncContext *s,
 unquant_coeff= alevel*qmul + qadd;
 } else if(s->out_format == FMT_MJPEG) {
 j = s->idsp.idct_permutation[scantable[i]];
-unquant_coeff = alevel * s->intra_matrix[j] * 8;
+unquant_coeff = alevel * matrix[j] * 8;
 }else{ //MPEG1
 j = s->idsp.idct_permutation[scantable[i]]; // FIXME: optimize
 if(s->mb_intra){
-unquant_coeff = (int)(  alevel  * qscale * 
s->intra_matrix[j]) >> 3;
+unquant_coeff = (int)(  alevel  * qscale * matrix[j]) 
>> 3;
 unquant_coeff =   (unquant_coeff - 1) | 1;
 }else{
-unquant_coeff = (((  alevel  << 1) + 1) * qscale * 
((int) s->inter_matrix[j])) >> 4;
+unquant_coeff = (((  alevel  << 1) + 1) * qscale * 
((int) matrix[j])) >> 4;
 unquant_coeff =   (unquant_coeff - 1) | 1;
 }
 unquant_coeff<<= 3;
@@ -4025,7 +4028,7 @@ static int dct_quantize_trellis_c(MpegEncContext *s,
 if(s->out_format == FMT_H263 || s->out_format == FMT_H261){
 unquant_coeff= (alevel*qmul + qadd)>>3;
 }else{ //MPEG1
-unquant_coeff = (((  alevel  << 1) + 1) * qscale * ((int) 
s->inter_matrix[0])) >> 4;
+unquant_coeff = (((  alevel  << 1) + 1) * qscale * ((int) 
matrix[0])) >> 4;
 unquant_coeff =   (unquant_coeff - 1) | 1;
 }
 unquant_coeff = (unquant_coeff + 4) >> 3;

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


[FFmpeg-cvslog] avcodec/mpegvideo_enc: correctly initialize chroma_intra_matrix for MPEG1/ 2

2015-02-11 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Thu Feb 12 
00:18:59 2015 +0100| [98437465704ddd2145cb9b41f683a36d3cefede6] | committer: 
Michael Niedermayer

avcodec/mpegvideo_enc: correctly initialize chroma_intra_matrix for MPEG1/2

Signed-off-by: Michael Niedermayer 

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

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

diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index cb6ac28..16f88aa 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -907,6 +907,7 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
 s->inter_matrix[j] = ff_mpeg1_default_non_intra_matrix[i];
 } else {
 /* mpeg1/2 */
+s->chroma_intra_matrix[j] =
 s->intra_matrix[j] = ff_mpeg1_default_intra_matrix[i];
 s->inter_matrix[j] = ff_mpeg1_default_non_intra_matrix[i];
 }

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


[FFmpeg-cvslog] LICENSE.md: Formatting updates

2015-02-11 Thread Robert Xiao
ffmpeg | branch: master | Robert Xiao  | Wed Feb 11 
19:38:55 2015 -0500| [60bb893386d451f768c8d659c0561a84d4c1623e] | committer: 
Michael Niedermayer

LICENSE.md: Formatting updates

Put filenames and configuration options in code for clarity, and fix some list 
formatting.

Reviewed-by: Timothy Gu 
Signed-off-by: Michael Niedermayer 

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

 LICENSE.md |  113 ++--
 1 file changed, 57 insertions(+), 56 deletions(-)

diff --git a/LICENSE.md b/LICENSE.md
index 4fbe137..42c6b9c 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,73 +1,73 @@
 #FFmpeg:
 
 Most files in FFmpeg are under the GNU Lesser General Public License version 
2.1
-or later (LGPL v2.1+). Read the file COPYING.LGPLv2.1 for details. Some other
+or later (LGPL v2.1+). Read the file `COPYING.LGPLv2.1` for details. Some other
 files have MIT/X11/BSD-style licenses. In combination the LGPL v2.1+ applies to
 FFmpeg.
 
 Some optional parts of FFmpeg are licensed under the GNU General Public License
-version 2 or later (GPL v2+). See the file COPYING.GPLv2 for details. None of
-these parts are used by default, you have to explicitly pass --enable-gpl to
+version 2 or later (GPL v2+). See the file `COPYING.GPLv2` for details. None of
+these parts are used by default, you have to explicitly pass `--enable-gpl` to
 configure to activate them. In this case, FFmpeg's license changes to GPL v2+.
 
 Specifically, the GPL parts of FFmpeg are:
 
 - libpostproc
 - optional x86 optimizations in the files
-  libavcodec/x86/flac_dsp_gpl.asm
-  libavcodec/x86/idct_mmx.c
+  - `libavcodec/x86/flac_dsp_gpl.asm`
+  - `libavcodec/x86/idct_mmx.c`
 - libutvideo encoding/decoding wrappers in
-  libavcodec/libutvideo*.cpp
-- the X11 grabber in libavdevice/x11grab.c
+  `libavcodec/libutvideo*.cpp`
+- the X11 grabber in `libavdevice/x11grab.c`
 - the swresample test app in
-  libswresample/swresample-test.c
-- the texi2pod.pl tool
+  `libswresample/swresample-test.c`
+- the `texi2pod.pl` tool
 - the following filters in libavfilter:
-- f_ebur128.c
-- vf_blackframe.c
-- vf_boxblur.c
-- vf_colormatrix.c
-- vf_cropdetect.c
-- vf_delogo.c
-- vf_eq.c
-- vf_fspp.c
-- vf_geq.c
-- vf_histeq.c
-- vf_hqdn3d.c
-- vf_interlace.c
-- vf_kerndeint.c
-- vf_mcdeint.c
-- vf_mpdecimate.c
-- vf_owdenoise.c
-- vf_perspective.c
-- vf_phase.c
-- vf_pp.c
-- vf_pp7.c
-- vf_pullup.c
-- vf_sab.c
-- vf_smartblur.c
-- vf_repeatfields.c
-- vf_spp.c
-- vf_stereo3d.c
-- vf_super2xsai.c
-- vf_tinterlace.c
-- vf_uspp.c
-- vsrc_mptestsrc.c
+- `f_ebur128.c`
+- `vf_blackframe.c`
+- `vf_boxblur.c`
+- `vf_colormatrix.c`
+- `vf_cropdetect.c`
+- `vf_delogo.c`
+- `vf_eq.c`
+- `vf_fspp.c`
+- `vf_geq.c`
+- `vf_histeq.c`
+- `vf_hqdn3d.c`
+- `vf_interlace.c`
+- `vf_kerndeint.c`
+- `vf_mcdeint.c`
+- `vf_mpdecimate.c`
+- `vf_owdenoise.c`
+- `vf_perspective.c`
+- `vf_phase.c`
+- `vf_pp.c`
+- `vf_pp7.c`
+- `vf_pullup.c`
+- `vf_sab.c`
+- `vf_smartblur.c`
+- `vf_repeatfields.c`
+- `vf_spp.c`
+- `vf_stereo3d.c`
+- `vf_super2xsai.c`
+- `vf_tinterlace.c`
+- `vf_uspp.c`
+- `vsrc_mptestsrc.c`
 
 Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
-the configure parameter --enable-version3 will activate this licensing option
-for you. Read the file COPYING.LGPLv3 or, if you have enabled GPL parts,
-COPYING.GPLv3 to learn the exact legal terms that apply in this case.
+the configure parameter `--enable-version3` will activate this licensing option
+for you. Read the file `COPYING.LGPLv3` or, if you have enabled GPL parts,
+`COPYING.GPLv3` to learn the exact legal terms that apply in this case.
 
 There are a handful of files under other licensing terms, namely:
 
-* The files libavcodec/jfdctfst.c, libavcodec/jfdctint_template.c and
-  libavcodec/jrevdct.c are taken from libjpeg, see the top of the files for
+* The files `libavcodec/jfdctfst.c`, `libavcodec/jfdctint_template.c` and
+  `libavcodec/jrevdct.c` are taken from libjpeg, see the top of the files for
   licensing details. Specifically note that you must credit the IJG in the
   documentation accompanying your program if you only distribute executables.
   You must also indicate any changes including additions and deletions to
   those three files in the documentation.
-  tests/reference.pnm is under the expat license
+* `tests/reference.pnm` is under the expat license.
 
 
 external libraries
@@ -80,21 +80,22 @@ compatible libraries
 
 
 The following libraries are under GPL:
-- frei0r
-- libcdio
-- libutvideo
-- libvidstab
-- libx264
-- libx265
-- libxavs
-- libxvid
+- frei0r
+- libcdio
+- libutvideo
+- libvids