Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b72c184194 | ||
![]() |
d86c5f8de8 | ||
![]() |
0752e44b1f | ||
![]() |
1d42df7292 | ||
![]() |
eaabfe8ef8 | ||
![]() |
90d29c3d04 | ||
![]() |
48211b0c0d | ||
![]() |
aa661d3672 | ||
![]() |
8cd24f8fe7 | ||
![]() |
7e853879ce | ||
![]() |
f598ca088e | ||
![]() |
2710c14a83 | ||
![]() |
1a56be9cdc |
@ -1,7 +1,7 @@
|
||||
Entries are sorted chronologically from oldest to youngest within each release,
|
||||
releases are sorted from youngest to oldest.
|
||||
|
||||
version <next>:
|
||||
version 2.8:
|
||||
- colorkey video filter
|
||||
- BFSTM/BCSTM demuxer
|
||||
- little-endian ADPCM_THP decoder
|
||||
|
15
RELEASE_NOTES
Normal file
15
RELEASE_NOTES
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
┌────────────────────────────────────────┐
|
||||
│ RELEASE NOTES for FFmpeg 2.8 "Feynman" │
|
||||
└────────────────────────────────────────┘
|
||||
|
||||
The FFmpeg Project proudly presents FFmpeg 2.8 "Feynman", about 3
|
||||
months after the release of FFmpeg 2.7.
|
||||
|
||||
A complete Changelog is available at the root of the project, and the
|
||||
complete Git history on http://source.ffmpeg.org.
|
||||
|
||||
We hope you will like this release as much as we enjoyed working on it, and
|
||||
as usual, if you have any questions about it, or any FFmpeg related topic,
|
||||
feel free to join us on the #ffmpeg IRC channel (on irc.freenode.net) or ask
|
||||
on the mailing-lists.
|
@ -15,27 +15,29 @@ libavutil: 2014-08-09
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2015-xx-xx - lavc 56.58.100 - vaapi.h
|
||||
-------- 8< --------- FFmpeg 2.8 was cut here -------- 8< ---------
|
||||
|
||||
2015-08-27 - 1dd854e1 - lavc 56.58.100 - vaapi.h
|
||||
Deprecate old VA-API context (vaapi_context) fields that were only
|
||||
set and used by libavcodec. They are all managed internally now.
|
||||
|
||||
2015-xx-xx - lavu 54.31.100 - pixfmt.h
|
||||
2015-08-19 - 9f8e57ef - lavu 54.31.100 - pixfmt.h
|
||||
Add a unique pixel format for VA-API (AV_PIX_FMT_VAAPI) that
|
||||
indicates the nature of the underlying storage: a VA surface. This
|
||||
yields the same value as AV_PIX_FMT_VAAPI_VLD.
|
||||
Deprecate old VA-API related pixel formats: AV_PIX_FMT_VAAPI_MOCO,
|
||||
AV_PIX_FMT_VAAPI_IDCT, AV_PIX_FMT_VAAPI_VLD.
|
||||
|
||||
2015-xx-xx - lavu 54.30.0
|
||||
xxxxxxx - Add av_blowfish_alloc().
|
||||
xxxxxxx - Add av_rc4_alloc().
|
||||
xxxxxxx - Add av_xtea_alloc().
|
||||
xxxxxxx - Add av_des_alloc().
|
||||
2015-08-02 - lavu 54.30.100 / 54.17.0
|
||||
9ed59f1 / 7a7df34c - Add av_blowfish_alloc().
|
||||
a130ec9 / ae365453 - Add av_rc4_alloc().
|
||||
9ca1997 / 5d8bea3b - Add av_xtea_alloc().
|
||||
3cf08e9 / d9e8b47e - Add av_des_alloc().
|
||||
|
||||
2015-xx-xx - lavc 56.35.0 - avcodec.h
|
||||
xxxxxxxxx - Rename CODEC_FLAG* defines to AV_CODEC_FLAG*.
|
||||
xxxxxxxxx - Rename CODEC_CAP_* defines to AV_CODEC_CAP_*.
|
||||
xxxxxxxxx - Rename FF_INPUT_BUFFER_PADDING_SIZE and FF_MIN_BUFFER_SIZE
|
||||
2015-07-27 - lavc 56.56.100 / 56.35.0 - avcodec.h
|
||||
94d68a4 / 7c6eb0a1 - Rename CODEC_FLAG* defines to AV_CODEC_FLAG*.
|
||||
444e987 / def97856 - Rename CODEC_CAP_* defines to AV_CODEC_CAP_*.
|
||||
29d147c / 059a9348 - Rename FF_INPUT_BUFFER_PADDING_SIZE and FF_MIN_BUFFER_SIZE
|
||||
to AV_INPUT_BUFFER_PADDING_SIZE and AV_INPUT_BUFFER_MIN_SIZE.
|
||||
|
||||
2015-07-22 - c40ecff - lavc 56.51.100 - avcodec.h
|
||||
|
@ -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 =
|
||||
PROJECT_NUMBER = 2.8
|
||||
|
||||
# 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
|
||||
|
@ -182,8 +182,6 @@ static int decode_registered_user_data_closed_caption(H264Context *h, int size)
|
||||
}
|
||||
} else {
|
||||
int i;
|
||||
avpriv_request_sample(h->avctx, "Subtitles with data type 0x%02x",
|
||||
user_data_type_code);
|
||||
for (i = 0; i < size - 1; i++)
|
||||
skip_bits(&h->gb, 8);
|
||||
}
|
||||
|
@ -49,8 +49,6 @@ static av_cold void idctdsp_init_mmi(IDCTDSPContext *c, AVCodecContext *avctx,
|
||||
(avctx->bits_per_raw_sample != 10) &&
|
||||
(avctx->bits_per_raw_sample != 12) &&
|
||||
(avctx->idct_algo == FF_IDCT_AUTO)) {
|
||||
c->idct_put = ff_simple_idct_put_mmi;
|
||||
c->idct_add = ff_simple_idct_add_mmi;
|
||||
c->idct = ff_simple_idct_mmi;
|
||||
c->perm_type = FF_IDCT_PERM_NONE;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ DECLARE_ALIGNED(8, static const int16_t, coeffs)[]= {
|
||||
C3, -C1, C3, -C1
|
||||
};
|
||||
|
||||
static void simple_idct_mmi(int16_t *block)
|
||||
void ff_simple_idct_mmi(int16_t *block)
|
||||
{
|
||||
DECLARE_ALIGNED(8, int64_t, align_tmp)[16];
|
||||
int16_t * const temp= (int16_t*)align_tmp;
|
||||
@ -814,20 +814,3 @@ static void simple_idct_mmi(int16_t *block)
|
||||
: "$10","$11"
|
||||
);
|
||||
}
|
||||
|
||||
void ff_simple_idct_mmi(int16_t *block)
|
||||
{
|
||||
simple_idct_mmi(block);
|
||||
}
|
||||
|
||||
void ff_simple_idct_put_mmi(uint8_t *dest, int32_t line_size, int16_t *block)
|
||||
{
|
||||
simple_idct_mmi(block);
|
||||
ff_put_pixels_clamped_mmi(block, dest, line_size);
|
||||
}
|
||||
|
||||
void ff_simple_idct_add_mmi(uint8_t *dest, int32_t line_size, int16_t *block)
|
||||
{
|
||||
simple_idct_mmi(block);
|
||||
ff_add_pixels_clamped_mmi(block, dest, line_size);
|
||||
}
|
||||
|
@ -20,6 +20,8 @@
|
||||
* 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
|
||||
*
|
||||
* non linear quantizers with large QPs and VBV with restrictive qmin fixes sponsored by NOA GmbH
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <libavutil/attributes.h>
|
||||
#include "libavutil/attributes.h"
|
||||
#include "version.h"
|
||||
|
||||
/**
|
||||
|
@ -205,7 +205,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
|
||||
delta = pts - s->pts - get_delay(s);
|
||||
out_size = avresample_available(s->avr);
|
||||
|
||||
if (labs(delta) > s->min_delta ||
|
||||
if (llabs(delta) > s->min_delta ||
|
||||
(s->first_frame && delta && s->first_pts != AV_NOPTS_VALUE)) {
|
||||
av_log(ctx, AV_LOG_VERBOSE, "Discontinuity - %"PRId64" samples.\n", delta);
|
||||
out_size = av_clipl_int32((int64_t)out_size + delta);
|
||||
|
@ -170,7 +170,7 @@ static int async_open(URLContext *h, const char *arg, int flags, AVDictionary **
|
||||
c->interrupt_callback = h->interrupt_callback;
|
||||
ret = ffurl_open(&c->inner, arg, flags, &interrupt_callback, options);
|
||||
if (ret != 0) {
|
||||
av_log(h, AV_LOG_ERROR, "ffurl_open failed : %s, %s\n", strerror(ret), arg);
|
||||
av_log(h, AV_LOG_ERROR, "ffurl_open failed : %s, %s\n", av_err2str(ret), arg);
|
||||
goto url_fail;
|
||||
}
|
||||
|
||||
@ -179,25 +179,25 @@ static int async_open(URLContext *h, const char *arg, int flags, AVDictionary **
|
||||
|
||||
ret = pthread_mutex_init(&c->mutex, NULL);
|
||||
if (ret != 0) {
|
||||
av_log(h, AV_LOG_ERROR, "pthread_mutex_init failed : %s\n", strerror(ret));
|
||||
av_log(h, AV_LOG_ERROR, "pthread_mutex_init failed : %s\n", av_err2str(ret));
|
||||
goto mutex_fail;
|
||||
}
|
||||
|
||||
ret = pthread_cond_init(&c->cond_wakeup_main, NULL);
|
||||
if (ret != 0) {
|
||||
av_log(h, AV_LOG_ERROR, "pthread_cond_init failed : %s\n", strerror(ret));
|
||||
av_log(h, AV_LOG_ERROR, "pthread_cond_init failed : %s\n", av_err2str(ret));
|
||||
goto cond_wakeup_main_fail;
|
||||
}
|
||||
|
||||
ret = pthread_cond_init(&c->cond_wakeup_background, NULL);
|
||||
if (ret != 0) {
|
||||
av_log(h, AV_LOG_ERROR, "pthread_cond_init failed : %s\n", strerror(ret));
|
||||
av_log(h, AV_LOG_ERROR, "pthread_cond_init failed : %s\n", av_err2str(ret));
|
||||
goto cond_wakeup_background_fail;
|
||||
}
|
||||
|
||||
ret = pthread_create(&c->async_buffer_thread, NULL, async_buffer_task, h);
|
||||
if (ret) {
|
||||
av_log(h, AV_LOG_ERROR, "pthread_create failed : %s\n", strerror(ret));
|
||||
av_log(h, AV_LOG_ERROR, "pthread_create failed : %s\n", av_err2str(ret));
|
||||
goto thread_fail;
|
||||
}
|
||||
|
||||
@ -229,7 +229,7 @@ static int async_close(URLContext *h)
|
||||
|
||||
ret = pthread_join(c->async_buffer_thread, NULL);
|
||||
if (ret != 0)
|
||||
av_log(h, AV_LOG_ERROR, "pthread_join(): %s\n", strerror(ret));
|
||||
av_log(h, AV_LOG_ERROR, "pthread_join(): %s\n", av_err2str(ret));
|
||||
|
||||
pthread_cond_destroy(&c->cond_wakeup_background);
|
||||
pthread_cond_destroy(&c->cond_wakeup_main);
|
||||
|
@ -18,6 +18,8 @@
|
||||
* 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
|
||||
*
|
||||
* signal_standard, color_siting and klv_fill_key version fixes sponsored by NOA GmbH
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -27,15 +27,6 @@
|
||||
#include "mem.h"
|
||||
#include "blowfish.h"
|
||||
|
||||
#if !FF_API_CRYPTO_CONTEXT
|
||||
#define AV_BF_ROUNDS 16
|
||||
|
||||
struct AVBlowfish {
|
||||
uint32_t p[AV_BF_ROUNDS + 2];
|
||||
uint32_t s[4][256];
|
||||
};
|
||||
#endif
|
||||
|
||||
static const uint32_t orig_p[AV_BF_ROUNDS + 2] = {
|
||||
0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
|
||||
0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
|
||||
|
@ -31,16 +31,12 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#if FF_API_CRYPTO_CONTEXT
|
||||
#define AV_BF_ROUNDS 16
|
||||
|
||||
typedef struct AVBlowfish {
|
||||
uint32_t p[AV_BF_ROUNDS + 2];
|
||||
uint32_t s[4][256];
|
||||
} AVBlowfish;
|
||||
#else
|
||||
typedef struct AVBlowfish AVBlowfish;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Allocate an AVBlowfish context.
|
||||
|
@ -25,13 +25,6 @@
|
||||
#include "mem.h"
|
||||
#include "des.h"
|
||||
|
||||
#if !FF_API_CRYPTO_CONTEXT
|
||||
struct AVDES {
|
||||
uint64_t round_keys[3][16];
|
||||
int triple_des;
|
||||
};
|
||||
#endif
|
||||
|
||||
#define T(a, b, c, d, e, f, g, h) 64-a,64-b,64-c,64-d,64-e,64-f,64-g,64-h
|
||||
static const uint8_t IP_shuffle[] = {
|
||||
T(58, 50, 42, 34, 26, 18, 10, 2),
|
||||
|
@ -30,14 +30,10 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#if FF_API_CRYPTO_CONTEXT
|
||||
typedef struct AVDES {
|
||||
uint64_t round_keys[3][16];
|
||||
int triple_des;
|
||||
} AVDES;
|
||||
#else
|
||||
typedef struct AVDES AVDES;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Allocate an AVDES context.
|
||||
|
@ -25,13 +25,6 @@
|
||||
#include "mem.h"
|
||||
#include "rc4.h"
|
||||
|
||||
#if !FF_API_CRYPTO_CONTEXT
|
||||
struct AVRC4 {
|
||||
uint8_t state[256];
|
||||
int x, y;
|
||||
};
|
||||
#endif
|
||||
|
||||
AVRC4 *av_rc4_alloc(void)
|
||||
{
|
||||
return av_mallocz(sizeof(struct AVRC4));
|
||||
|
@ -30,14 +30,10 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#if FF_API_CRYPTO_CONTEXT
|
||||
typedef struct AVRC4 {
|
||||
uint8_t state[256];
|
||||
int x, y;
|
||||
} AVRC4;
|
||||
#else
|
||||
typedef struct AVRC4 AVRC4;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Allocate an AVRC4 context.
|
||||
|
@ -129,9 +129,6 @@
|
||||
#ifndef FF_API_HMAC
|
||||
#define FF_API_HMAC (LIBAVUTIL_VERSION_MAJOR < 55)
|
||||
#endif
|
||||
#ifndef FF_API_CRYPTO_CONTEXT
|
||||
#define FF_API_CRYPTO_CONTEXT (LIBAVUTIL_VERSION_MAJOR < 56)
|
||||
#endif
|
||||
#ifndef FF_API_VAAPI
|
||||
#define FF_API_VAAPI (LIBAVUTIL_VERSION_MAJOR < 56)
|
||||
#endif
|
||||
|
@ -34,12 +34,6 @@
|
||||
#include "mem.h"
|
||||
#include "xtea.h"
|
||||
|
||||
#if !FF_API_CRYPTO_CONTEXT
|
||||
struct AVXTEA {
|
||||
uint32_t key[16];
|
||||
};
|
||||
#endif
|
||||
|
||||
AVXTEA *av_xtea_alloc(void)
|
||||
{
|
||||
return av_mallocz(sizeof(struct AVXTEA));
|
||||
|
@ -33,13 +33,9 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#if FF_API_CRYPTO_CONTEXT
|
||||
typedef struct AVXTEA {
|
||||
uint32_t key[16];
|
||||
} AVXTEA;
|
||||
#else
|
||||
typedef struct AVXTEA AVXTEA;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Allocate an AVXTEA context.
|
||||
|
@ -148,7 +148,7 @@ fate-aac-aref-encode: REF = ./tests/data/asynth-44100-2.wav
|
||||
fate-aac-aref-encode: CMP_SHIFT = -4096
|
||||
fate-aac-aref-encode: CMP_TARGET = 594
|
||||
fate-aac-aref-encode: SIZE_TOLERANCE = 2464
|
||||
fate-aac-aref-encode: FUZZ = 5
|
||||
fate-aac-aref-encode: FUZZ = 6
|
||||
|
||||
FATE_AAC_ENCODE += fate-aac-ln-encode
|
||||
fate-aac-ln-encode: CMD = enc_dec_pcm adts wav s16le $(TARGET_SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav -strict -2 -c:a aac -aac_is 0 -aac_pns 0 -b:a 512k
|
||||
|
Loading…
x
Reference in New Issue
Block a user