[FFmpeg-cvslog] [ffmpeg-web] branch master updated. 4a5d318 web/index: add news entry for ffmpeg 3.1.1

2016-07-02 Thread ffmpeg-git
The branch, master has been updated
   via  4a5d31833833ec1c8b976afeb4d0a3e7bb0b4d9e (commit)
  from  463f56ef561f4990038eb43f63f40fc98337fc30 (commit)


- Log -
commit 4a5d31833833ec1c8b976afeb4d0a3e7bb0b4d9e
Author: James Almer 
AuthorDate: Sat Jul 2 13:35:20 2016 -0300
Commit: Lou Logan 
CommitDate: Sat Jul 2 09:52:07 2016 -0800

web/index: add news entry for ffmpeg 3.1.1

Signed-off-by: James Almer 

diff --git a/src/index b/src/index
index eb66060..4cdd94b 100644
--- a/src/index
+++ b/src/index
@@ -37,6 +37,16 @@
 News
   
 
+  July 1st, 2016, FFmpeg 3.1.1 "Laplace"
+  
+FFmpeg 3.1.1, a new point release 
from the 3.1 release branch, is now available!
+It mainly deals with a few ABI issues introduced in the previous release.
+  
+  
+We strongly recommend users, distributors, and system integrators, 
especially those who experienced issues upgrading from 3.0, to
+upgrade unless they use current git master.
+  
+
   June 27th, 2016, FFmpeg 3.1 "Laplace"
   
 FFmpeg 3.1 "Laplace", a new

---

Summary of changes:
 src/index | 10 ++
 1 file changed, 10 insertions(+)


hooks/post-receive
-- 

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


[FFmpeg-cvslog] tests/fate: Add test for ticket 3386 ([H264] [Regression] illegal short term buffer state detected)

2016-07-02 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Fri 
Jul  1 19:23:27 2016 +0200| [07f5e75a47bfa20204bc75d6090aae74046f2dde] | 
committer: Michael Niedermayer

tests/fate: Add test for ticket 3386 ([H264] [Regression] illegal short term 
buffer state detected)

Signed-off-by: Michael Niedermayer 

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

 tests/fate/h264.mak  |2 ++
 tests/ref/fate/h264-3386 |   52 ++
 2 files changed, 54 insertions(+)

diff --git a/tests/fate/h264.mak b/tests/fate/h264.mak
index 9b388bb..472895f 100644
--- a/tests/fate/h264.mak
+++ b/tests/fate/h264.mak
@@ -192,6 +192,7 @@ FATE_H264  := $(FATE_H264:%=fate-h264-conformance-%)
\
   $(FATE_H264_REINIT_TESTS:%=fate-h264-reinit-%)\
   fate-h264-extreme-plane-pred  \
   fate-h264-lossless\
+  fate-h264-3386\
 
 FATE_H264-$(call DEMDEC, H264, H264) += $(FATE_H264)
 FATE_H264-$(call DEMDEC,  MOV, H264) += fate-h264-crop-to-container
@@ -417,6 +418,7 @@ fate-h264-skip-nokey: CMD = 
framecrc -skip_frame nok
 fate-h264-skip-nointra:   CMD = framecrc -skip_frame 
nointra -i $(TARGET_SAMPLES)/h264/h264_intra_first-small.ts
 fate-h264-invalid-ref-mod:CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/h264refframeregression.mp4 -an -frames 10 -pix_fmt 
yuv420p10le
 fate-h264-unescaped-extradata:CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/unescaped_extradata.mp4 -an -frames 10
+fate-h264-3386:   CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/bbc2.sample.h264
 
 fate-h264-reinit-%:   CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/$(@:fate-h264-%=%).h264 -vf 
format=yuv444p10le,scale=w=352:h=288
 
diff --git a/tests/ref/fate/h264-3386 b/tests/ref/fate/h264-3386
new file mode 100644
index 000..421581f
--- /dev/null
+++ b/tests/ref/fate/h264-3386
@@ -0,0 +1,52 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1440x1080
+#sar 0: 4/3
+0,  3,  3,1,  2332800, 0xa9dcb2ac
+0,  4,  4,1,  2332800, 0x9b17af27
+0,  5,  5,1,  2332800, 0x02da3196
+0,  6,  6,1,  2332800, 0x9c78ed62
+0,  7,  7,1,  2332800, 0xa6e926a0
+0,  8,  8,1,  2332800, 0x324e51d2
+0,  9,  9,1,  2332800, 0xd8289620
+0, 10, 10,1,  2332800, 0xfc3619f9
+0, 11, 11,1,  2332800, 0x6b8d2560
+0, 12, 12,1,  2332800, 0x5714dca0
+0, 13, 13,1,  2332800, 0x246e2842
+0, 14, 14,1,  2332800, 0x59bc0b2e
+0, 15, 15,1,  2332800, 0x24fe5cfa
+0, 16, 16,1,  2332800, 0xb9607c3e
+0, 17, 17,1,  2332800, 0x663669c9
+0, 19, 19,1,  2332800, 0xd37fd62f
+0, 20, 20,1,  2332800, 0x2d7db904
+0, 21, 21,1,  2332800, 0x79a53eba
+0, 22, 22,1,  2332800, 0x3b0c7e19
+0, 23, 23,1,  2332800, 0xd12f64c5
+0, 24, 24,1,  2332800, 0xacdb407f
+0, 25, 25,1,  2332800, 0x829d7e61
+0, 26, 26,1,  2332800, 0x7932b82f
+0, 27, 27,1,  2332800, 0x61f81627
+0, 28, 28,1,  2332800, 0xa1a2e000
+0, 29, 29,1,  2332800, 0x93aad5e9
+0, 30, 30,1,  2332800, 0x9993b5b5
+0, 31, 31,1,  2332800, 0x6ac48232
+0, 32, 32,1,  2332800, 0x5738f9c0
+0, 33, 33,1,  2332800, 0x82a59d01
+0, 34, 34,1,  2332800, 0xc4664862
+0, 35, 35,1,  2332800, 0xf0e6222d
+0, 36, 36,1,  2332800, 0xd29e7100
+0, 37, 37,1,  2332800, 0xe093ef85
+0, 38, 38,1,  2332800, 0x28c68a65
+0, 39, 39,1,  2332800, 0x49a6b21e
+0, 40, 40,1,  2332800, 0xfb28a097
+0, 41, 41,1,  2332800, 0xade1e336
+0, 42, 42,1,  2332800, 0xe5118412
+0, 43, 43,1,  2332800, 0x58750176
+0, 44, 44,1,  2332800, 0xacb99939
+0, 45, 45,1,  2332800, 0x80b968d3
+0, 46, 46,1,  2332800, 0xa45f4e6f
+0, 47, 47,1,  2332800, 0xe0fcbade
+0, 48, 48,1,  2332800, 0x19568f4d
+0, 49, 49,1,  2332800, 0x33c53f59

[FFmpeg-cvslog] tests/checkasm/pixblockdsp: Test 8 byte aligned positions

2016-07-02 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Mon 
Jun 27 22:03:14 2016 +0200| [fb6b6b5166cb8345caa4e7423dd7d9b97b430501] | 
committer: Michael Niedermayer

tests/checkasm/pixblockdsp: Test 8 byte aligned positions

The code is documented as to require 8byte alignment

Signed-off-by: Michael Niedermayer 

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

 tests/checkasm/pixblockdsp.c |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/checkasm/pixblockdsp.c b/tests/checkasm/pixblockdsp.c
index 66bfdb7..2b88e7d 100644
--- a/tests/checkasm/pixblockdsp.c
+++ b/tests/checkasm/pixblockdsp.c
@@ -26,7 +26,7 @@
 #include "libavutil/intreadwrite.h"
 
 #define BUF_UNITS 8
-#define BUF_SIZE (BUF_UNITS * 128 + BUF_UNITS)
+#define BUF_SIZE (BUF_UNITS * 128 + 8 * BUF_UNITS)
 
 #define randomize_buffers() \
 do {\
@@ -50,7 +50,7 @@
 declare_func_emms(AV_CPU_FLAG_MMX, void, int16_t *block, const uint8_t 
*pixels, ptrdiff_t line_size);\

\
 for (i = 0; i < BUF_UNITS; i++) {  
\
-int src_offset = i * 64 * sizeof(type) + i; /* Test various 
alignments */  \
+int src_offset = i * 64 * sizeof(type) + 8 * i; /* Test various 
alignments */  \
 int dst_offset = i * 64; /* dst must be aligned */ 
\
 randomize_buffers();   
\
 call_ref(dst0 + dst_offset, src10 + src_offset, 8);
\
@@ -67,7 +67,7 @@
 declare_func_emms(AV_CPU_FLAG_MMX, void, int16_t *av_restrict block, 
const uint8_t *s1, const uint8_t *s2, int stride); \

\
 for (i = 0; i < BUF_UNITS; i++) {  
\
-int src_offset = i * 64 * sizeof(type) + i; /* Test various 
alignments */  \
+int src_offset = i * 64 * sizeof(type) + 8 * i; /* Test various 
alignments */  \
 int dst_offset = i * 64; /* dst must be aligned */ 
\
 randomize_buffers();   
\
 call_ref(dst0 + dst_offset, src10 + src_offset, src20 + 
src_offset, 8);\

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


[FFmpeg-cvslog] libopusenc: Add channel mapping family argument

2016-07-02 Thread Michael Graczyk
ffmpeg | branch: master | Michael Graczyk  | Tue Jun 14 
18:33:15 2016 -0700| [37941878f193a2316c514bd5ba55bfe9d2dfdfcf] | committer: 
Michael Niedermayer

libopusenc: Add channel mapping family argument

The default value of -1 indicates that ffmpeg should determine the channel
mapping automatically, which was the behavior before this commit.

Unless the -mapping_family argument is provided, behavior is unchanged.

Signed-off-by: Michael Niedermayer 

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

 doc/encoders.texi   |   11 
 libavcodec/libopusenc.c |  165 +++
 2 files changed, 150 insertions(+), 26 deletions(-)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index f38cad3..d0caa77 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -1184,6 +1184,17 @@ following: 4000, 6000, 8000, 12000, or 2, 
corresponding to
 narrowband, mediumband, wideband, super wideband, and fullband
 respectively. The default is 0 (cutoff disabled).
 
+@item mapping_family (@emph{mapping_family})
+Set channel mapping family to be used by the encoder. The default value of -1
+uses mapping family 0 for mono and stereo inputs, and mapping family 1
+otherwise. The default also disables the surround masking and LFE bandwidth
+optimzations in libopus, and requires that the input contains 8 channels or
+fewer.
+
+Other values include 0 for mono and stereo, 1 for surround sound with masking
+and LFE bandwidth optimizations, and 255 for independent streams with an
+unspecified channel layout.
+
 @end table
 
 @section libvorbis
diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
index c9b96ce..c40fcde 100644
--- a/libavcodec/libopusenc.c
+++ b/libavcodec/libopusenc.c
@@ -38,6 +38,7 @@ typedef struct LibopusEncOpts {
 float frame_duration;
 int packet_size;
 int max_bandwidth;
+int mapping_family;
 } LibopusEncOpts;
 
 typedef struct LibopusEncContext {
@@ -47,6 +48,7 @@ typedef struct LibopusEncContext {
 uint8_t *samples;
 LibopusEncOpts opts;
 AudioFrameQueue afq;
+const uint8_t *encoder_channel_map;
 } LibopusEncContext;
 
 static const uint8_t opus_coupled_streams[8] = {
@@ -93,13 +95,11 @@ static void libopus_write_header(AVCodecContext *avctx, int 
stream_count,
 bytestream_put_le16(&p, 0); /* Gain of 0dB is recommended. */
 
 /* Channel mapping */
-if (channels > 2) {
-bytestream_put_byte(&p, mapping_family);
+bytestream_put_byte(&p, mapping_family);
+if (mapping_family != 0) {
 bytestream_put_byte(&p, stream_count);
 bytestream_put_byte(&p, coupled_stream_count);
 bytestream_put_buffer(&p, channel_mapping, channels);
-} else {
-bytestream_put_byte(&p, 0);
 }
 }
 
@@ -157,13 +157,92 @@ static int libopus_configure_encoder(AVCodecContext 
*avctx, OpusMSEncoder *enc,
 return OPUS_OK;
 }
 
+static int libopus_check_max_channels(AVCodecContext *avctx,
+  int max_channels) {
+if (avctx->channels > max_channels) {
+av_log(avctx, AV_LOG_ERROR, "Opus mapping family undefined for %d 
channels.\n",
+   avctx->channels);
+return AVERROR(EINVAL);
+}
+
+return 0;
+}
+
+static int libopus_check_vorbis_layout(AVCodecContext *avctx, int 
mapping_family) {
+av_assert2(avctx->channels < FF_ARRAY_ELEMS(ff_vorbis_channel_layouts));
+
+if (!avctx->channel_layout) {
+av_log(avctx, AV_LOG_WARNING,
+   "No channel layout specified. Opus encoder will use Vorbis "
+   "channel layout for %d channels.\n", avctx->channels);
+} else if (avctx->channel_layout != 
ff_vorbis_channel_layouts[avctx->channels - 1]) {
+char name[32];
+av_get_channel_layout_string(name, sizeof(name), avctx->channels,
+ avctx->channel_layout);
+av_log(avctx, AV_LOG_ERROR,
+   "Invalid channel layout %s for specified mapping family %d.\n",
+   name, mapping_family);
+
+return AVERROR(EINVAL);
+}
+
+return 0;
+}
+
+static int libopus_validate_layout_and_get_channel_map(
+AVCodecContext *avctx,
+int mapping_family,
+const uint8_t ** channel_map_result)
+{
+const uint8_t * channel_map = NULL;
+int ret;
+
+switch (mapping_family) {
+case -1:
+ret = libopus_check_max_channels(avctx, 8);
+if (ret == 0) {
+ret = libopus_check_vorbis_layout(avctx, mapping_family);
+/* Channels do not need to be reordered. */
+}
+
+break;
+case 0:
+ret = libopus_check_max_channels(avctx, 2);
+if (ret == 0) {
+ret = libopus_check_vorbis_layout(avctx, mapping_family);
+}
+break;
+case 1:
+/* Opus expects channels to be in Vorbis order. */
+ret = libopus_check_max_channels(avctx, 8);
+if (ret ==

[FFmpeg-cvslog] libopusenc: Refactor to simplify forthcoming mapping_family parameter

2016-07-02 Thread Michael Graczyk
ffmpeg | branch: master | Michael Graczyk  | Tue Jun 14 
18:30:36 2016 -0700| [a1e3c7cf0fd982d4d82146c4cbe78f6255ae9ca2] | committer: 
Michael Niedermayer

libopusenc: Refactor to simplify forthcoming mapping_family parameter

Signed-off-by: Michael Niedermayer 

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

 libavcodec/libopusenc.c |   79 ++-
 1 file changed, 43 insertions(+), 36 deletions(-)

diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
index 3f3e80d..c9b96ce 100644
--- a/libavcodec/libopusenc.c
+++ b/libavcodec/libopusenc.c
@@ -79,6 +79,7 @@ static const uint8_t libavcodec_libopus_channel_map[8][8] = {
 
 static void libopus_write_header(AVCodecContext *avctx, int stream_count,
  int coupled_stream_count,
+ int mapping_family,
  const uint8_t *channel_mapping)
 {
 uint8_t *p   = avctx->extradata;
@@ -93,7 +94,7 @@ static void libopus_write_header(AVCodecContext *avctx, int 
stream_count,
 
 /* Channel mapping */
 if (channels > 2) {
-bytestream_put_byte(&p, channels <= 8 ? 1 : 255);
+bytestream_put_byte(&p, mapping_family);
 bytestream_put_byte(&p, stream_count);
 bytestream_put_byte(&p, coupled_stream_count);
 bytestream_put_buffer(&p, channel_mapping, channels);
@@ -159,37 +160,11 @@ static int libopus_configure_encoder(AVCodecContext 
*avctx, OpusMSEncoder *enc,
 static av_cold int libopus_encode_init(AVCodecContext *avctx)
 {
 LibopusEncContext *opus = avctx->priv_data;
-const uint8_t *channel_mapping;
 OpusMSEncoder *enc;
+uint8_t libopus_channel_mapping[255];
 int ret = OPUS_OK;
 int coupled_stream_count, header_size, frame_size;
 
-coupled_stream_count = opus_coupled_streams[avctx->channels - 1];
-opus->stream_count   = avctx->channels - coupled_stream_count;
-channel_mapping  = libavcodec_libopus_channel_map[avctx->channels - 1];
-
-/* FIXME: Opus can handle up to 255 channels. However, the mapping for
- * anything greater than 8 is undefined. */
-if (avctx->channels > 8) {
-av_log(avctx, AV_LOG_ERROR,
-   "Channel layout undefined for %d channels.\n", avctx->channels);
-return AVERROR_PATCHWELCOME;
-}
-if (!avctx->bit_rate) {
-/* Sane default copied from opusenc */
-avctx->bit_rate = 64000 * opus->stream_count +
-  32000 * coupled_stream_count;
-av_log(avctx, AV_LOG_WARNING,
-   "No bit rate set. Defaulting to %"PRId64" bps.\n", 
(int64_t)avctx->bit_rate);
-}
-
-if (avctx->bit_rate < 500 || avctx->bit_rate > 256000 * avctx->channels) {
-av_log(avctx, AV_LOG_ERROR, "The bit rate %"PRId64" bps is 
unsupported. "
-   "Please choose a value between 500 and %d.\n", 
(int64_t)avctx->bit_rate,
-   256000 * avctx->channels);
-return AVERROR(EINVAL);
-}
-
 frame_size = opus->opts.frame_duration * 48000 / 1000;
 switch (frame_size) {
 case 120:
@@ -251,17 +226,49 @@ static av_cold int libopus_encode_init(AVCodecContext 
*avctx)
 }
 }
 
-enc = opus_multistream_encoder_create(avctx->sample_rate, avctx->channels,
-  opus->stream_count,
-  coupled_stream_count,
-  channel_mapping,
-  opus->opts.application, &ret);
+/* FIXME: Opus can handle up to 255 channels. However, the mapping for
+ * anything greater than 8 is undefined. */
+if (avctx->channels > 8) {
+av_log(avctx, AV_LOG_ERROR,
+   "Channel layout undefined for %d channels.\n", avctx->channels);
+return AVERROR_PATCHWELCOME;
+}
+
+coupled_stream_count = opus_coupled_streams[avctx->channels - 1];
+opus->stream_count   = avctx->channels - coupled_stream_count;
+
+memcpy(libopus_channel_mapping,
+   opus_vorbis_channel_map[avctx->channels - 1],
+   avctx->channels * sizeof(*libopus_channel_mapping));
+
+enc = opus_multistream_encoder_create(
+avctx->sample_rate, avctx->channels, opus->stream_count,
+coupled_stream_count,
+libavcodec_libopus_channel_map[avctx->channels - 1],
+opus->opts.application, &ret);
+
 if (ret != OPUS_OK) {
 av_log(avctx, AV_LOG_ERROR,
"Failed to create encoder: %s\n", opus_strerror(ret));
 return ff_opus_error_to_averror(ret);
 }
 
+if (!avctx->bit_rate) {
+/* Sane default copied from opusenc */
+avctx->bit_rate = 64000 * opus->stream_count +
+  32000 * coupled_stream_count;
+av_log(avctx, AV_LOG_WARNING,
+   "No bit rate set. Defaulting to %"PRId64" bps.\n", 
(int64_t)avctx->b

[FFmpeg-cvslog] lavf/aiffdec: Support QDMC demuxing.

2016-07-02 Thread Carl Eugen Hoyos
ffmpeg | branch: master | Carl Eugen Hoyos  | Sun Jul  3 
04:37:48 2016 +0200| [d5edb6c0483b04b0f91c011c4c4753bd440fec9b] | committer: 
Carl Eugen Hoyos

lavf/aiffdec: Support QDMC demuxing.

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

 libavformat/aiff.h|1 +
 libavformat/aiffdec.c |3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavformat/aiff.h b/libavformat/aiff.h
index 2a87d6e..0ed10a2 100644
--- a/libavformat/aiff.h
+++ b/libavformat/aiff.h
@@ -50,6 +50,7 @@ static const AVCodecTag ff_codec_aiff_tags[] = {
 { AV_CODEC_ID_PCM_S16BE,MKTAG('t','w','o','s') },
 { AV_CODEC_ID_PCM_S16LE,MKTAG('s','o','w','t') },
 { AV_CODEC_ID_ADPCM_IMA_QT, MKTAG('i','m','a','4') },
+{ AV_CODEC_ID_QDMC, MKTAG('Q','D','M','C') },
 { AV_CODEC_ID_QDM2, MKTAG('Q','D','M','2') },
 { AV_CODEC_ID_QCELP,MKTAG('Q','c','l','p') },
 { AV_CODEC_ID_SDX2_DPCM,MKTAG('S','D','X','2') },
diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c
index d191bc4..9bff565 100644
--- a/libavformat/aiffdec.c
+++ b/libavformat/aiffdec.c
@@ -301,7 +301,8 @@ static int aiff_read_header(AVFormatContext *s)
 return -1;
 if (ff_get_extradata(s, st->codecpar, pb, size) < 0)
 return AVERROR(ENOMEM);
-if (st->codecpar->codec_id == AV_CODEC_ID_QDM2 && size>=12*4 && 
!st->codecpar->block_align) {
+if (   (st->codecpar->codec_id == AV_CODEC_ID_QDMC || 
st->codecpar->codec_id == AV_CODEC_ID_QDM2)
+&& size>=12*4 && !st->codecpar->block_align) {
 st->codecpar->block_align = 
AV_RB32(st->codecpar->extradata+11*4);
 aiff->block_duration = AV_RB32(st->codecpar->extradata+9*4);
 } else if (st->codecpar->codec_id == AV_CODEC_ID_QCELP) {

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