Merge remote-tracking branch 'qatar/release/0.7' into release/0.8
* qatar/release/0.7: (73 commits) Update Changelog for 0.7.2 release Update RELEASE file for 0.7.2 lavf: do not set codec_tag for rawvideo fate: allow testing with libavfilter disabled fate: separate lavf-mxf_d10 test from lavf-mxf Fix memory (re)allocation in matroskadec.c, related to MSVR-11-0080. movenc: fix NULL reference in mov_write_tkhd_tag movenc: create an alternate group for each media type flvdec: Check for overflow before allocating arrays ppc: fix some pointer to integer casts ppc: fix 32-bit PIC build rv34: Check for invalid slice offsets rv34: Fix potential overreads rv34: Avoid NULL dereference on corrupted bitstream rv10: Reject slices that does not have the same type as the first one lavf: Fix context pointer in av_open_input_stream when avformat_open_input fails oggdec: fix out of bound write in the ogg demuxer Fixed size given to init_get_bits(). smacker: fix a few off by 1 errors Check for invalid VLC value in smacker decoder. ... Conflicts: RELEASE libavcodec/avs.c libavcodec/ppc/asm.S libavcodec/rv34.c libavcodec/xan.c libavdevice/alsa-audio.h libavformat/flvdec.c libavformat/gxf.c libavformat/utils.c libswscale/x86/swscale_template.c tests/ref/lavf/mov tests/ref/lavf/mxf Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
b0804f3705
43
Changelog
43
Changelog
@ -1,6 +1,48 @@
|
||||
Entries are sorted chronologically from oldest to youngest within each release,
|
||||
releases are sorted from youngest to oldest.
|
||||
|
||||
version 0.7.2:
|
||||
|
||||
- check buffer and input values in various parts of the code:
|
||||
H.264, VC-1, APE, FLV, Indeo 2, XAN, Ogg, MXF, wavpack, ffv1, MOV,
|
||||
cavs (OCERT-2011-002, CVE-2011-3362), Smacker, cpu detection, lavf,
|
||||
Matroska (CVE-2011-3504), RV10, RV30/RV40
|
||||
- memory leaks: vf_scale, eval
|
||||
|
||||
- ARM: workaround for bug in GNU assembler
|
||||
- AVOptions: fix av_set_string3() doxy to match reality. (Bug #28)
|
||||
- Reintroduce AVInputStream.nb_streams to avoid crashes
|
||||
- aac: Only output configure if audio was found
|
||||
- aac: Remove some suspicious illegal memcpy()s from LTP
|
||||
- aacps: skip some memcpy() if src and dst would be equal
|
||||
- adts: fix PCE copying
|
||||
- alsa: fallback to buffer_size/4 for period_size
|
||||
- alsa: limit buffer_size to 32768 frames
|
||||
- cljr, indeo2: init_get_bits size in bits instead of bytes
|
||||
- configure: add missing CFLAGS to fix building on the HURD
|
||||
- dca: set AVCodecContext frame_size for DTS audio
|
||||
- fate: allow testing with libavfilter disabled
|
||||
- gxf: fix 25 fps DV material in GXF being misdetected as 50 fps
|
||||
- h264: correct implicit weight table computation for long ref pics
|
||||
- h264: correct the check for invalid long term frame index in MMCO decode
|
||||
- h264: fix PCM intra-coded blocks in monochrome case
|
||||
- jpegdec: actually search for and parse RSTn
|
||||
- lavc: fix type for thread_type option
|
||||
- lavf: fix context pointer in av_open_input_stream when avformat_open_input fails
|
||||
- lavf: do not set codec_tag for rawvideo
|
||||
- libx264: do not set pic quality if no frame is output
|
||||
- movenc: create an alternate group for each media type
|
||||
- mpegts: fix Continuity Counter error detection
|
||||
- mxfenc: fix ignored drop flag in binary timecode representation
|
||||
- fix crashes in 32-bit PIC builds (cf e.g. http://bugs.debian.org/639948)
|
||||
- ppc64: fix cast related random failures
|
||||
- riff: Add mpgv MPEG-2 fourcc
|
||||
- swscale: don't use planar output functions to write to NV12/21
|
||||
- vc1: properly zero coded_block[] edges on new slice entry
|
||||
- vp3/theora: flush after seek
|
||||
|
||||
- various bug other fixes
|
||||
|
||||
|
||||
version 0.7.1:
|
||||
|
||||
@ -16,6 +58,7 @@ version 0.7.1:
|
||||
- ffmpeg: fix operation with --disable-avfilter
|
||||
- fixed integer underflow in matroska decoder
|
||||
|
||||
|
||||
version 0.7:
|
||||
|
||||
- many many things we forgot because we rather write code than changelogs
|
||||
|
7
Makefile
7
Makefile
@ -258,9 +258,12 @@ FATE_SEEK = $(SEEK_TESTS:seek_%=fate-seek-%)
|
||||
FATE = $(FATE_ACODEC) \
|
||||
$(FATE_VCODEC) \
|
||||
$(FATE_LAVF) \
|
||||
$(FATE_LAVFI) \
|
||||
$(FATE_SEEK) \
|
||||
|
||||
FATE-$(CONFIG_AVFILTER) += $(FATE_LAVFI)
|
||||
|
||||
FATE += $(FATE-yes)
|
||||
|
||||
$(filter-out %-aref,$(FATE_ACODEC)): $(AREF)
|
||||
$(filter-out %-vref,$(FATE_VCODEC)): $(VREF)
|
||||
$(FATE_LAVF): $(REFS)
|
||||
@ -282,7 +285,7 @@ fate-lavfi: $(FATE_LAVFI)
|
||||
fate-seek: $(FATE_SEEK)
|
||||
|
||||
ifdef SAMPLES
|
||||
FATE += $(FATE_TESTS)
|
||||
FATE += $(FATE_TESTS) $(FATE_TESTS-yes)
|
||||
fate-rsync:
|
||||
rsync -vaLW rsync://fate-suite.libav.org/fate-suite/ $(SAMPLES)
|
||||
else
|
||||
|
7
configure
vendored
7
configure
vendored
@ -1536,7 +1536,7 @@ test_deps(){
|
||||
dep=${v%=*}
|
||||
tests=${v#*=}
|
||||
for name in ${tests}; do
|
||||
eval ${name}_test_deps="'${dep}$suf1 ${dep}$suf2'"
|
||||
append ${name}_test_deps ${dep}$suf1 ${dep}$suf2
|
||||
done
|
||||
done
|
||||
}
|
||||
@ -1546,6 +1546,9 @@ set_ne_test_deps(){
|
||||
eval ${1}_le_test_deps="!bigendian"
|
||||
}
|
||||
|
||||
mxf_d10_test_deps="avfilter"
|
||||
seek_lavf_mxf_d10_test_deps="mxf_d10_test"
|
||||
|
||||
test_deps _encoder _decoder \
|
||||
adpcm_g726=g726 \
|
||||
adpcm_ima_qt \
|
||||
@ -1608,7 +1611,7 @@ test_deps _muxer _demuxer \
|
||||
mmf \
|
||||
mov \
|
||||
pcm_mulaw=mulaw \
|
||||
mxf \
|
||||
mxf="mxf mxf_d10" \
|
||||
nut \
|
||||
ogg \
|
||||
rawvideo=pixfmt \
|
||||
|
@ -44,10 +44,13 @@ X(\name):
|
||||
L(\name):
|
||||
.endm
|
||||
|
||||
.macro movrel rd, sym
|
||||
.macro movrel rd, sym, gp
|
||||
ld \rd, \sym@got(r2)
|
||||
.endm
|
||||
|
||||
.macro get_got rd
|
||||
.endm
|
||||
|
||||
#else /* ARCH_PPC64 */
|
||||
|
||||
#define PTR .int
|
||||
@ -65,19 +68,25 @@ X(\name):
|
||||
\name:
|
||||
.endm
|
||||
|
||||
.macro movrel rd, sym
|
||||
.macro movrel rd, sym, gp
|
||||
#if CONFIG_PIC
|
||||
bcl 20, 31, lab_pic_\@
|
||||
lab_pic_\@:
|
||||
mflr \rd
|
||||
addis \rd, \rd, (\sym - lab_pic_\@)@ha
|
||||
addi \rd, \rd, (\sym - lab_pic_\@)@l
|
||||
lwz \rd, \sym@got(\gp)
|
||||
#else
|
||||
lis \rd, \sym@ha
|
||||
la \rd, \sym@l(\rd)
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.macro get_got rd
|
||||
#if CONFIG_PIC
|
||||
bcl 20, 31, .Lgot\@
|
||||
.Lgot\@:
|
||||
mflr \rd
|
||||
addis \rd, \rd, _GLOBAL_OFFSET_TABLE_ - .Lgot\@@ha
|
||||
addi \rd, \rd, _GLOBAL_OFFSET_TABLE_ - .Lgot\@@l
|
||||
#endif
|
||||
.endm
|
||||
|
||||
#endif /* ARCH_PPC64 */
|
||||
|
||||
#if HAVE_IBM_ASM
|
||||
|
@ -353,6 +353,7 @@ extfunc ff_fft_calc\interleave\()_altivec
|
||||
mflr r0
|
||||
stp r0, 2*PS(r1)
|
||||
stpu r1, -(160+16*PS)(r1)
|
||||
get_got r11
|
||||
addi r6, r1, 16*PS
|
||||
stvm r6, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29
|
||||
mfvrsave r0
|
||||
@ -360,14 +361,14 @@ extfunc ff_fft_calc\interleave\()_altivec
|
||||
li r6, 0xfffffffc
|
||||
mtvrsave r6
|
||||
|
||||
movrel r6, fft_data
|
||||
movrel r6, fft_data, r11
|
||||
lvm r6, v14, v15, v16, v17, v18, v19, v20, v21
|
||||
lvm r6, v22, v23, v24, v25, v26, v27, v28, v29
|
||||
|
||||
li r9, 16
|
||||
movrel r12, X(ff_cos_tabs)
|
||||
movrel r12, X(ff_cos_tabs), r11
|
||||
|
||||
movrel r6, fft_dispatch_tab\interleave\()_altivec
|
||||
movrel r6, fft_dispatch_tab\interleave\()_altivec, r11
|
||||
lwz r3, 0(r3)
|
||||
subi r3, r3, 2
|
||||
slwi r3, r3, 2+ARCH_PPC64
|
||||
|
@ -964,6 +964,7 @@ static int matroska_decode_buffer(uint8_t** buf, int* buf_size,
|
||||
uint8_t* data = *buf;
|
||||
int isize = *buf_size;
|
||||
uint8_t* pkt_data = NULL;
|
||||
uint8_t* newpktdata;
|
||||
int pkt_size = isize;
|
||||
int result = 0;
|
||||
int olen;
|
||||
@ -993,7 +994,12 @@ static int matroska_decode_buffer(uint8_t** buf, int* buf_size,
|
||||
zstream.avail_in = isize;
|
||||
do {
|
||||
pkt_size *= 3;
|
||||
pkt_data = av_realloc(pkt_data, pkt_size);
|
||||
newpktdata = av_realloc(pkt_data, pkt_size);
|
||||
if (!newpktdata) {
|
||||
inflateEnd(&zstream);
|
||||
goto failed;
|
||||
}
|
||||
pkt_data = newpktdata;
|
||||
zstream.avail_out = pkt_size - zstream.total_out;
|
||||
zstream.next_out = pkt_data + zstream.total_out;
|
||||
if (pkt_data) {
|
||||
@ -1017,7 +1023,12 @@ static int matroska_decode_buffer(uint8_t** buf, int* buf_size,
|
||||
bzstream.avail_in = isize;
|
||||
do {
|
||||
pkt_size *= 3;
|
||||
pkt_data = av_realloc(pkt_data, pkt_size);
|
||||
newpktdata = av_realloc(pkt_data, pkt_size);
|
||||
if (!newpktdata) {
|
||||
BZ2_bzDecompressEnd(&bzstream);
|
||||
goto failed;
|
||||
}
|
||||
pkt_data = newpktdata;
|
||||
bzstream.avail_out = pkt_size - bzstream.total_out_lo32;
|
||||
bzstream.next_out = pkt_data + bzstream.total_out_lo32;
|
||||
if (pkt_data) {
|
||||
|
@ -1223,7 +1223,8 @@ static int mov_write_tkhd_tag(AVIOContext *pb, MOVTrack *track, AVStream *st)
|
||||
|
||||
avio_wb32(pb, 0); /* reserved */
|
||||
avio_wb32(pb, 0); /* reserved */
|
||||
avio_wb32(pb, 0x0); /* reserved (Layer & Alternate group) */
|
||||
avio_wb16(pb, 0); /* layer */
|
||||
avio_wb16(pb, st ? st->codec->codec_type : 0); /* alternate group) */
|
||||
/* Volume, only for audio */
|
||||
if(track->enc->codec_type == AVMEDIA_TYPE_AUDIO)
|
||||
avio_wb16(pb, 0x0100);
|
||||
|
@ -251,7 +251,7 @@ static void hScale_altivec_real(int16_t *dst, int dstW,
|
||||
vector unsigned char src_v1, src_vF;
|
||||
vector signed short src_v, filter_v;
|
||||
vector signed int val_vEven, val_s;
|
||||
if ((((int)src + srcPos)% 16) > 12) {
|
||||
if ((((uintptr_t)src + srcPos) % 16) > 12) {
|
||||
src_v1 = vec_ld(srcPos + 16, src);
|
||||
}
|
||||
src_vF = vec_perm(src_v0, src_v1, vec_lvsl(srcPos, src));
|
||||
@ -290,7 +290,7 @@ static void hScale_altivec_real(int16_t *dst, int dstW,
|
||||
vector unsigned char src_v1, src_vF;
|
||||
vector signed short src_v, filter_v;
|
||||
vector signed int val_v, val_s;
|
||||
if ((((int)src + srcPos)% 16) > 8) {
|
||||
if ((((uintptr_t)src + srcPos) % 16) > 8) {
|
||||
src_v1 = vec_ld(srcPos + 16, src);
|
||||
}
|
||||
src_vF = vec_perm(src_v0, src_v1, vec_lvsl(srcPos, src));
|
||||
@ -376,7 +376,7 @@ static void hScale_altivec_real(int16_t *dst, int dstW,
|
||||
//vector unsigned char src_v0 = vec_ld(srcPos + j, src);
|
||||
vector unsigned char src_v1, src_vF;
|
||||
vector signed short src_v, filter_v1R, filter_v;
|
||||
if ((((int)src + srcPos)% 16) > 8) {
|
||||
if ((((uintptr_t)src + srcPos) % 16) > 8) {
|
||||
src_v1 = vec_ld(srcPos + j + 16, src);
|
||||
}
|
||||
src_vF = vec_perm(src_v0, src_v1, permS);
|
||||
|
@ -128,7 +128,7 @@ FATE_TESTS += fate-id-cin-video
|
||||
fate-id-cin-video: CMD = framecrc -i $(SAMPLES)/idcin/idlog-2MB.cin -pix_fmt rgb24
|
||||
FATE_TESTS += fate-idroq-video-dpcm
|
||||
fate-idroq-video-dpcm: CMD = framecrc -i $(SAMPLES)/idroq/idlogo.roq
|
||||
FATE_TESTS += fate-idroq-video-encode
|
||||
FATE_TESTS-$(CONFIG_AVFILTER) += fate-idroq-video-encode
|
||||
fate-idroq-video-encode: CMD = md5 -t 0.2 -f image2 -vcodec pgmyuv -i $(SAMPLES)/ffmpeg-synthetic/vsynth1/%02d.pgm -sws_flags +bitexact -vf pad=512:512:80:112 -f RoQ
|
||||
FATE_TESTS += fate-iff-byterun1
|
||||
fate-iff-byterun1: CMD = framecrc -i $(SAMPLES)/iff/ASH.LBM -pix_fmt rgb24
|
||||
|
@ -66,6 +66,9 @@ fi
|
||||
|
||||
if [ -n "$do_mxf" ] ; then
|
||||
do_lavf mxf "-ar 48000 -bf 2 -timecode_frame_start 264363"
|
||||
fi
|
||||
|
||||
if [ -n "$do_mxf_d10" ]; then
|
||||
do_lavf mxf_d10 "-ar 48000 -ac 2 -r 25 -s 720x576 -vf pad=720:608:0:32 -vcodec mpeg2video -intra -flags +ildct+low_delay -dc 10 -flags2 +ivlc+non_linear_q -qscale 1 -ps 1 -qmin 1 -rc_max_vbv_use 1 -rc_min_vbv_use 1 -pix_fmt yuv422p -minrate 30000k -maxrate 30000k -b 30000k -bufsize 1200000 -top 1 -rc_init_occupancy 1200000 -qmax 12 -f mxf_d10"
|
||||
fi
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
c68f649777ab8e7c9a0f1f221451d3ad *./tests/data/acodec/alac.m4a
|
||||
b25bcc7ec3f5c19cdfc01a6bbd32edb8 *./tests/data/acodec/alac.m4a
|
||||
389386 ./tests/data/acodec/alac.m4a
|
||||
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/alac.acodec.out.wav
|
||||
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
|
||||
|
@ -6,7 +6,7 @@ f443a8eeb1647ec1eeb8370c939e52d4 *./tests/data/acodec/pcm_mulaw.wav
|
||||
529256 ./tests/data/acodec/pcm_mulaw.wav
|
||||
1c3eeaa8814ebd4916780dff80ed6dc5 *./tests/data/pcm.acodec.out.wav
|
||||
stddev: 103.38 PSNR: 56.04 MAXDIFF: 644 bytes: 1058400/ 1058400
|
||||
b7936d7170e0efefb379349d81aed360 *./tests/data/acodec/pcm_s8.mov
|
||||
760f85fb9f4e8aba326fb44ae84c9507 *./tests/data/acodec/pcm_s8.mov
|
||||
530837 ./tests/data/acodec/pcm_s8.mov
|
||||
652edf30f35ad89bf27bcc9d2f9c7b53 *./tests/data/pcm.acodec.out.wav
|
||||
stddev: 147.89 PSNR: 52.93 MAXDIFF: 255 bytes: 1058400/ 1058400
|
||||
@ -14,7 +14,7 @@ stddev: 147.89 PSNR: 52.93 MAXDIFF: 255 bytes: 1058400/ 1058400
|
||||
529244 ./tests/data/acodec/pcm_u8.wav
|
||||
652edf30f35ad89bf27bcc9d2f9c7b53 *./tests/data/pcm.acodec.out.wav
|
||||
stddev: 147.89 PSNR: 52.93 MAXDIFF: 255 bytes: 1058400/ 1058400
|
||||
c42b9c04305455250366c84e17c1023f *./tests/data/acodec/pcm_s16be.mov
|
||||
a4e18d1ca9ef5b8132a84d43625ddc47 *./tests/data/acodec/pcm_s16be.mov
|
||||
1060037 ./tests/data/acodec/pcm_s16be.mov
|
||||
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
|
||||
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
|
||||
@ -30,7 +30,7 @@ c4f51bf32fad2f7af8ea5beedb56168b *./tests/data/acodec/pcm_s16le.mkv
|
||||
1060638 ./tests/data/acodec/pcm_s16le.mkv
|
||||
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
|
||||
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
|
||||
07ffe7ffb78f3648b6524debdde5aec1 *./tests/data/acodec/pcm_s24be.mov
|
||||
971d2d2633e41a0326fe2d04a2d0350f *./tests/data/acodec/pcm_s24be.mov
|
||||
1589237 ./tests/data/acodec/pcm_s24be.mov
|
||||
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
|
||||
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
|
||||
@ -38,7 +38,7 @@ a85380fb79b0d4fff38e24ac1e34bb94 *./tests/data/acodec/pcm_s24le.wav
|
||||
1587668 ./tests/data/acodec/pcm_s24le.wav
|
||||
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
|
||||
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
|
||||
d7792f0343cd66fda8b50b569e2bcc48 *./tests/data/acodec/pcm_s32be.mov
|
||||
fc4f4e3e195bbde037ed31021d229f12 *./tests/data/acodec/pcm_s32be.mov
|
||||
2118437 ./tests/data/acodec/pcm_s32be.mov
|
||||
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
|
||||
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
|
||||
|
@ -1,3 +1,3 @@
|
||||
a901cd05609080e8f5c09ca5da7290f0 *./tests/data/lavf/lavf.mov
|
||||
2e2529d01dbe42e4dd63580a351898f5 *./tests/data/lavf/lavf.mov
|
||||
357681 ./tests/data/lavf/lavf.mov
|
||||
./tests/data/lavf/lavf.mov CRC=0x2f6a9b26
|
||||
|
@ -1,6 +1,3 @@
|
||||
785e38ddd2466046f30aa36399b8f8fa *./tests/data/lavf/lavf.mxf
|
||||
525881 ./tests/data/lavf/lavf.mxf
|
||||
./tests/data/lavf/lavf.mxf CRC=0x4ace0849
|
||||
b3174e2db508564c1cce0b5e3c1bc1bd *./tests/data/lavf/lavf.mxf_d10
|
||||
5330989 ./tests/data/lavf/lavf.mxf_d10
|
||||
./tests/data/lavf/lavf.mxf_d10 CRC=0xc3f4f92e
|
||||
|
3
tests/ref/lavf/mxf_d10
Normal file
3
tests/ref/lavf/mxf_d10
Normal file
@ -0,0 +1,3 @@
|
||||
b3174e2db508564c1cce0b5e3c1bc1bd *./tests/data/lavf/lavf.mxf_d10
|
||||
5330989 ./tests/data/lavf/lavf.mxf_d10
|
||||
./tests/data/lavf/lavf.mxf_d10 CRC=0xc3f4f92e
|
Loading…
x
Reference in New Issue
Block a user