Merge remote-tracking branch 'qatar/master'
* qatar/master: (26 commits) eac3dec: replace undefined 1<<31 with INT32_MIN in noise generation yadif: specify array size outside DECLARE_ALIGNED prores: specify array size outside DECLARE_ALIGNED brackets. WavPack demuxer: set packet duration tta: use skip_bits_long() mxfdec: Ignore the last entry in Avid's index table segments mxfdec: Sanity-check SampleRate mxfdec: Handle small EditUnitByteCount mxfdec: Consider OPAtom files that do not have exactly one EC to be OP1a mxfdec: Don't crash in mxf_packet_timestamps() if current_edit_unit overflows mxfdec: Zero nb_ptses in mxf_compute_ptses_fake_index() mxfdec: Sanity check PreviousPartition mxfdec: Never seek back in local sets and KLVs mxfdec: Move the current_partition check inside mxf_read_header() mxfdec: Fix infinite loop in mxf_packet_timestamps() mxfdec: Check eof_reached in mxf_read_local_tags() mxfdec: Check for NULL component mxfdec: Make sure mxf->nb_index_tables > 0 in mxf_packet_timestamps() mxfdec: Make sure x < index_table->nb_ptses build: Add missing directories to DIRS declarations. ... Conflicts: doc/build_system.txt doc/fate.texi libavfilter/x86/yadif_template.c libavformat/mxfdec.c libavutil/Makefile tests/fate/audio.mak tests/fate/prores.mak tests/fate/screen.mak tests/fate/video.mak tests/ref/fate/bethsoft-vid tests/ref/fate/cscd tests/ref/fate/dfa4 tests/ref/fate/nuv tests/ref/fate/vp8-sign-bias tests/ref/fate/wmv8-drm tests/ref/lavf/gxf Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
8c6ebab747
@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
|
|||||||
Ty Coon, President of Vice
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
That's all there is to it!
|
That's all there is to it!
|
||||||
|
|
||||||
|
|
||||||
|
@ -171,4 +171,4 @@ the synchronisation of the samples directory.
|
|||||||
Example:
|
Example:
|
||||||
@example
|
@example
|
||||||
make V=1 SAMPLES=/var/fate/samples THREADS=2 fate
|
make V=1 SAMPLES=/var/fate/samples THREADS=2 fate
|
||||||
@end example
|
@end example
|
@ -373,5 +373,3 @@ ACL allow 192.168.0.0 192.168.255.255
|
|||||||
<Redirect index.html>
|
<Redirect index.html>
|
||||||
URL http://www.ffmpeg.org/
|
URL http://www.ffmpeg.org/
|
||||||
</Redirect>
|
</Redirect>
|
||||||
|
|
||||||
|
|
||||||
|
@ -3365,4 +3365,3 @@ mainly useful as a template and to be employed in analysis / debugging
|
|||||||
tools.
|
tools.
|
||||||
|
|
||||||
@c man end VIDEO SINKS
|
@c man end VIDEO SINKS
|
||||||
|
|
||||||
|
@ -96,4 +96,3 @@ would benefit from it.
|
|||||||
Also, as already hinted at, initFilter() accepts an optional convolutional
|
Also, as already hinted at, initFilter() accepts an optional convolutional
|
||||||
filter as input that can be used for contrast, saturation, blur, sharpening
|
filter as input that can be used for contrast, saturation, blur, sharpening
|
||||||
shift, chroma vs. luma shift, ...
|
shift, chroma vs. luma shift, ...
|
||||||
|
|
||||||
|
@ -107,4 +107,3 @@ one with score 3)
|
|||||||
|
|
||||||
Author: Michael niedermayer
|
Author: Michael niedermayer
|
||||||
Copyright LGPL
|
Copyright LGPL
|
||||||
|
|
||||||
|
@ -747,7 +747,7 @@ HOSTPROGS = aac_tablegen aacps_tablegen cbrt_tablegen cos_tablegen \
|
|||||||
dv_tablegen motionpixels_tablegen mpegaudio_tablegen \
|
dv_tablegen motionpixels_tablegen mpegaudio_tablegen \
|
||||||
pcm_tablegen qdm2_tablegen sinewin_tablegen
|
pcm_tablegen qdm2_tablegen sinewin_tablegen
|
||||||
|
|
||||||
DIRS = alpha arm bfin ppc ps2 sh4 sparc x86
|
DIRS = alpha arm avr32 bfin ppc ps2 sh4 sparc x86
|
||||||
|
|
||||||
CLEANFILES = *_tables.c *_tables.h *_tablegen$(HOSTEXESUF)
|
CLEANFILES = *_tables.c *_tables.h *_tablegen$(HOSTEXESUF)
|
||||||
|
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#ifndef AVCODEC_ARM_VP8_H
|
#ifndef AVCODEC_ARM_VP8_H
|
||||||
#define AVCODEC_ARM_VP8_H
|
#define AVCODEC_ARM_VP8_H
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
#if HAVE_ARMV6
|
#if HAVE_ARMV6
|
||||||
#define decode_block_coeffs_internal ff_decode_block_coeffs_armv6
|
#define decode_block_coeffs_internal ff_decode_block_coeffs_armv6
|
||||||
int ff_decode_block_coeffs_armv6(VP56RangeCoder *rc, DCTELEM block[16],
|
int ff_decode_block_coeffs_armv6(VP56RangeCoder *rc, DCTELEM block[16],
|
||||||
|
@ -270,6 +270,3 @@ void dsputil_init_bfin( DSPContext* c, AVCodecContext *avctx )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -330,4 +330,3 @@ DEFUN(fdct,mL1,
|
|||||||
(r7:4,p5:3) = [sp++];
|
(r7:4,p5:3) = [sp++];
|
||||||
RTS;
|
RTS;
|
||||||
DEFUN_END(fdct)
|
DEFUN_END(fdct)
|
||||||
|
|
||||||
|
@ -302,5 +302,3 @@ DEFUN(idct,mL1,
|
|||||||
unlink;
|
unlink;
|
||||||
RTS;
|
RTS;
|
||||||
DEFUN_END(idct)
|
DEFUN_END(idct)
|
||||||
|
|
||||||
|
|
||||||
|
@ -150,4 +150,3 @@ void MPV_common_init_bfin (MpegEncContext *s)
|
|||||||
{
|
{
|
||||||
/* s->dct_quantize= dct_quantize_bfin; */
|
/* s->dct_quantize= dct_quantize_bfin; */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -737,5 +737,3 @@ DEFUN(sse16,mL1,
|
|||||||
unlink;
|
unlink;
|
||||||
rts;
|
rts;
|
||||||
DEFUN_END(sse16)
|
DEFUN_END(sse16)
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,5 +41,3 @@ void ff_bfin_vp3_idct_add (uint8_t *dest, int line_size, DCTELEM *block)
|
|||||||
ff_bfin_vp3_idct (block);
|
ff_bfin_vp3_idct (block);
|
||||||
ff_bfin_add_pixels_clamped (block, dest, line_size);
|
ff_bfin_add_pixels_clamped (block, dest, line_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -278,5 +278,3 @@ DEFUN(vp3_idct,mL1,
|
|||||||
unlink;
|
unlink;
|
||||||
RTS;
|
RTS;
|
||||||
DEFUN_END(vp3_idct)
|
DEFUN_END(vp3_idct)
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#define AVCODEC_BYTESTREAM_H
|
#define AVCODEC_BYTESTREAM_H
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "libavutil/common.h"
|
#include "libavutil/common.h"
|
||||||
#include "libavutil/intreadwrite.h"
|
#include "libavutil/intreadwrite.h"
|
||||||
|
|
||||||
@ -36,46 +37,52 @@ typedef struct {
|
|||||||
int eof;
|
int eof;
|
||||||
} PutByteContext;
|
} PutByteContext;
|
||||||
|
|
||||||
#define DEF_T(type, name, bytes, read, write) \
|
#define DEF_T(type, name, bytes, read, write) \
|
||||||
static av_always_inline type bytestream_get_ ## name(const uint8_t **b){\
|
static av_always_inline type bytestream_get_ ## name(const uint8_t **b) \
|
||||||
(*b) += bytes;\
|
{ \
|
||||||
return read(*b - bytes);\
|
(*b) += bytes; \
|
||||||
}\
|
return read(*b - bytes); \
|
||||||
static av_always_inline void bytestream_put_ ##name(uint8_t **b, const type value){\
|
} \
|
||||||
write(*b, value);\
|
static av_always_inline void bytestream_put_ ## name(uint8_t **b, \
|
||||||
(*b) += bytes;\
|
const type value) \
|
||||||
}\
|
{ \
|
||||||
static av_always_inline void bytestream2_put_ ## name ## u(PutByteContext *p, const type value)\
|
write(*b, value); \
|
||||||
{\
|
(*b) += bytes; \
|
||||||
bytestream_put_ ## name(&p->buffer, value);\
|
} \
|
||||||
}\
|
static av_always_inline void bytestream2_put_ ## name ## u(PutByteContext *p, \
|
||||||
static av_always_inline void bytestream2_put_ ## name(PutByteContext *p, const type value){\
|
const type value) \
|
||||||
if (!p->eof && (p->buffer_end - p->buffer >= bytes)) {\
|
{ \
|
||||||
write(p->buffer, value);\
|
bytestream_put_ ## name(&p->buffer, value); \
|
||||||
p->buffer += bytes;\
|
} \
|
||||||
} else\
|
static av_always_inline void bytestream2_put_ ## name(PutByteContext *p, \
|
||||||
p->eof = 1;\
|
const type value) \
|
||||||
}\
|
{ \
|
||||||
static av_always_inline type bytestream2_get_ ## name ## u(GetByteContext *g)\
|
if (!p->eof && (p->buffer_end - p->buffer >= bytes)) { \
|
||||||
{\
|
write(p->buffer, value); \
|
||||||
return bytestream_get_ ## name(&g->buffer);\
|
p->buffer += bytes; \
|
||||||
}\
|
} else \
|
||||||
static av_always_inline type bytestream2_get_ ## name(GetByteContext *g)\
|
p->eof = 1; \
|
||||||
{\
|
} \
|
||||||
if (g->buffer_end - g->buffer < bytes)\
|
static av_always_inline type bytestream2_get_ ## name ## u(GetByteContext *g) \
|
||||||
return 0;\
|
{ \
|
||||||
return bytestream2_get_ ## name ## u(g);\
|
return bytestream_get_ ## name(&g->buffer); \
|
||||||
}\
|
} \
|
||||||
static av_always_inline type bytestream2_peek_ ## name(GetByteContext *g)\
|
static av_always_inline type bytestream2_get_ ## name(GetByteContext *g) \
|
||||||
{\
|
{ \
|
||||||
if (g->buffer_end - g->buffer < bytes)\
|
if (g->buffer_end - g->buffer < bytes) \
|
||||||
return 0;\
|
return 0; \
|
||||||
return read(g->buffer);\
|
return bytestream2_get_ ## name ## u(g); \
|
||||||
|
} \
|
||||||
|
static av_always_inline type bytestream2_peek_ ## name(GetByteContext *g) \
|
||||||
|
{ \
|
||||||
|
if (g->buffer_end - g->buffer < bytes) \
|
||||||
|
return 0; \
|
||||||
|
return read(g->buffer); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEF(name, bytes, read, write) \
|
#define DEF(name, bytes, read, write) \
|
||||||
DEF_T(unsigned int, name, bytes, read, write)
|
DEF_T(unsigned int, name, bytes, read, write)
|
||||||
#define DEF64(name, bytes, read, write) \
|
#define DEF64(name, bytes, read, write) \
|
||||||
DEF_T(uint64_t, name, bytes, read, write)
|
DEF_T(uint64_t, name, bytes, read, write)
|
||||||
|
|
||||||
DEF64(le64, 8, AV_RL64, AV_WL64)
|
DEF64(le64, 8, AV_RL64, AV_WL64)
|
||||||
@ -129,15 +136,17 @@ DEF (byte, 1, AV_RB8 , AV_WB8 )
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static av_always_inline void bytestream2_init(GetByteContext *g,
|
static av_always_inline void bytestream2_init(GetByteContext *g,
|
||||||
const uint8_t *buf, int buf_size)
|
const uint8_t *buf,
|
||||||
|
int buf_size)
|
||||||
{
|
{
|
||||||
g->buffer = buf;
|
g->buffer = buf;
|
||||||
g->buffer_start = buf;
|
g->buffer_start = buf;
|
||||||
g->buffer_end = buf + buf_size;
|
g->buffer_end = buf + buf_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static av_always_inline void bytestream2_init_writer(PutByteContext *p,
|
static av_always_inline void bytestream2_init_writer(PutByteContext *p,
|
||||||
uint8_t *buf, int buf_size)
|
uint8_t *buf,
|
||||||
|
int buf_size)
|
||||||
{
|
{
|
||||||
p->buffer = buf;
|
p->buffer = buf;
|
||||||
p->buffer_start = buf;
|
p->buffer_start = buf;
|
||||||
@ -183,21 +192,22 @@ static av_always_inline int bytestream2_tell_p(PutByteContext *p)
|
|||||||
return (int)(p->buffer - p->buffer_start);
|
return (int)(p->buffer - p->buffer_start);
|
||||||
}
|
}
|
||||||
|
|
||||||
static av_always_inline int bytestream2_seek(GetByteContext *g, int offset,
|
static av_always_inline int bytestream2_seek(GetByteContext *g,
|
||||||
|
int offset,
|
||||||
int whence)
|
int whence)
|
||||||
{
|
{
|
||||||
switch (whence) {
|
switch (whence) {
|
||||||
case SEEK_CUR:
|
case SEEK_CUR:
|
||||||
offset = av_clip(offset, -(g->buffer - g->buffer_start),
|
offset = av_clip(offset, -(g->buffer - g->buffer_start),
|
||||||
g->buffer_end - g->buffer);
|
g->buffer_end - g->buffer);
|
||||||
g->buffer += offset;
|
g->buffer += offset;
|
||||||
break;
|
break;
|
||||||
case SEEK_END:
|
case SEEK_END:
|
||||||
offset = av_clip(offset, -(g->buffer_end - g->buffer_start), 0);
|
offset = av_clip(offset, -(g->buffer_end - g->buffer_start), 0);
|
||||||
g->buffer = g->buffer_end + offset;
|
g->buffer = g->buffer_end + offset;
|
||||||
break;
|
break;
|
||||||
case SEEK_SET:
|
case SEEK_SET:
|
||||||
offset = av_clip(offset, 0, g->buffer_end - g->buffer_start);
|
offset = av_clip(offset, 0, g->buffer_end - g->buffer_start);
|
||||||
g->buffer = g->buffer_start + offset;
|
g->buffer = g->buffer_start + offset;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -206,7 +216,8 @@ static av_always_inline int bytestream2_seek(GetByteContext *g, int offset,
|
|||||||
return bytestream2_tell(g);
|
return bytestream2_tell(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
static av_always_inline int bytestream2_seek_p(PutByteContext *p, int offset,
|
static av_always_inline int bytestream2_seek_p(PutByteContext *p,
|
||||||
|
int offset,
|
||||||
int whence)
|
int whence)
|
||||||
{
|
{
|
||||||
p->eof = 0;
|
p->eof = 0;
|
||||||
@ -214,20 +225,20 @@ static av_always_inline int bytestream2_seek_p(PutByteContext *p, int offset,
|
|||||||
case SEEK_CUR:
|
case SEEK_CUR:
|
||||||
if (p->buffer_end - p->buffer < offset)
|
if (p->buffer_end - p->buffer < offset)
|
||||||
p->eof = 1;
|
p->eof = 1;
|
||||||
offset = av_clip(offset, -(p->buffer - p->buffer_start),
|
offset = av_clip(offset, -(p->buffer - p->buffer_start),
|
||||||
p->buffer_end - p->buffer);
|
p->buffer_end - p->buffer);
|
||||||
p->buffer += offset;
|
p->buffer += offset;
|
||||||
break;
|
break;
|
||||||
case SEEK_END:
|
case SEEK_END:
|
||||||
if (offset > 0)
|
if (offset > 0)
|
||||||
p->eof = 1;
|
p->eof = 1;
|
||||||
offset = av_clip(offset, -(p->buffer_end - p->buffer_start), 0);
|
offset = av_clip(offset, -(p->buffer_end - p->buffer_start), 0);
|
||||||
p->buffer = p->buffer_end + offset;
|
p->buffer = p->buffer_end + offset;
|
||||||
break;
|
break;
|
||||||
case SEEK_SET:
|
case SEEK_SET:
|
||||||
if (p->buffer_end - p->buffer_start < offset)
|
if (p->buffer_end - p->buffer_start < offset)
|
||||||
p->eof = 1;
|
p->eof = 1;
|
||||||
offset = av_clip(offset, 0, p->buffer_end - p->buffer_start);
|
offset = av_clip(offset, 0, p->buffer_end - p->buffer_start);
|
||||||
p->buffer = p->buffer_start + offset;
|
p->buffer = p->buffer_start + offset;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -280,14 +291,18 @@ static av_always_inline unsigned int bytestream2_get_eof(PutByteContext *p)
|
|||||||
return p->eof;
|
return p->eof;
|
||||||
}
|
}
|
||||||
|
|
||||||
static av_always_inline unsigned int bytestream_get_buffer(const uint8_t **b, uint8_t *dst, unsigned int size)
|
static av_always_inline unsigned int bytestream_get_buffer(const uint8_t **b,
|
||||||
|
uint8_t *dst,
|
||||||
|
unsigned int size)
|
||||||
{
|
{
|
||||||
memcpy(dst, *b, size);
|
memcpy(dst, *b, size);
|
||||||
(*b) += size;
|
(*b) += size;
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static av_always_inline void bytestream_put_buffer(uint8_t **b, const uint8_t *src, unsigned int size)
|
static av_always_inline void bytestream_put_buffer(uint8_t **b,
|
||||||
|
const uint8_t *src,
|
||||||
|
unsigned int size)
|
||||||
{
|
{
|
||||||
memcpy(*b, src, size);
|
memcpy(*b, src, size);
|
||||||
(*b) += size;
|
(*b) += size;
|
||||||
|
@ -140,7 +140,7 @@ void ff_eac3_apply_spectral_extension(AC3DecodeContext *s)
|
|||||||
each band. */
|
each band. */
|
||||||
bin = s->spx_src_start_freq;
|
bin = s->spx_src_start_freq;
|
||||||
for (bnd = 0; bnd < s->num_spx_bands; bnd++) {
|
for (bnd = 0; bnd < s->num_spx_bands; bnd++) {
|
||||||
float nscale = s->spx_noise_blend[ch][bnd] * rms_energy[bnd] * (1.0f/(1<<31));
|
float nscale = s->spx_noise_blend[ch][bnd] * rms_energy[bnd] * (1.0f / INT32_MIN);
|
||||||
float sscale = s->spx_signal_blend[ch][bnd];
|
float sscale = s->spx_signal_blend[ch][bnd];
|
||||||
for (i = 0; i < s->spx_band_sizes[bnd]; i++) {
|
for (i = 0; i < s->spx_band_sizes[bnd]; i++) {
|
||||||
float noise = nscale * (int32_t)av_lfg_get(&s->dith_state);
|
float noise = nscale * (int32_t)av_lfg_get(&s->dith_state);
|
||||||
|
@ -215,4 +215,3 @@ void idct_add_altivec(uint8_t* dest, int stride, int16_t *blk)
|
|||||||
ADD (dest, vx6, perm0) dest += stride;
|
ADD (dest, vx6, perm0) dest += stride;
|
||||||
ADD (dest, vx7, perm1)
|
ADD (dest, vx7, perm1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ typedef struct {
|
|||||||
int slice_num;
|
int slice_num;
|
||||||
int x_pos, y_pos;
|
int x_pos, y_pos;
|
||||||
int slice_width;
|
int slice_width;
|
||||||
DECLARE_ALIGNED(16, DCTELEM, blocks[8 * 4 * 64]);
|
DECLARE_ALIGNED(16, DCTELEM, blocks)[8 * 4 * 64];
|
||||||
} ProresThreadData;
|
} ProresThreadData;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -57,8 +57,8 @@ typedef struct {
|
|||||||
uint8_t qmat_chroma[64]; ///< dequantization matrix for chroma
|
uint8_t qmat_chroma[64]; ///< dequantization matrix for chroma
|
||||||
int qmat_changed; ///< 1 - global quantization matrices changed
|
int qmat_changed; ///< 1 - global quantization matrices changed
|
||||||
int prev_slice_sf; ///< scalefactor of the previous decoded slice
|
int prev_slice_sf; ///< scalefactor of the previous decoded slice
|
||||||
DECLARE_ALIGNED(16, int16_t, qmat_luma_scaled[64]);
|
DECLARE_ALIGNED(16, int16_t, qmat_luma_scaled)[64];
|
||||||
DECLARE_ALIGNED(16, int16_t, qmat_chroma_scaled[64]);
|
DECLARE_ALIGNED(16, int16_t, qmat_chroma_scaled)[64];
|
||||||
int total_slices; ///< total number of slices in a picture
|
int total_slices; ///< total number of slices in a picture
|
||||||
ProresThreadData *slice_data;
|
ProresThreadData *slice_data;
|
||||||
int pic_num;
|
int pic_num;
|
||||||
|
@ -164,4 +164,3 @@ void dsputil_init_mmi(DSPContext* c, AVCodecContext *avctx)
|
|||||||
c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;
|
c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -359,4 +359,3 @@ void ff_mmi_idct_add(uint8_t *dest, int line_size, DCTELEM *block)
|
|||||||
//let savedtemp regs be saved
|
//let savedtemp regs be saved
|
||||||
__asm__ volatile(" ":::"$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23");
|
__asm__ volatile(" ":::"$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,5 +85,3 @@ void MPV_common_init_mmi(MpegEncContext *s)
|
|||||||
s->dct_unquantize_h263_intra =
|
s->dct_unquantize_h263_intra =
|
||||||
s->dct_unquantize_h263_inter = dct_unquantize_h263_mmi;
|
s->dct_unquantize_h263_inter = dct_unquantize_h263_mmi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "raw.h"
|
#include "raw.h"
|
||||||
|
#include "internal.h"
|
||||||
#include "libavutil/pixdesc.h"
|
#include "libavutil/pixdesc.h"
|
||||||
#include "libavutil/intreadwrite.h"
|
#include "libavutil/intreadwrite.h"
|
||||||
|
|
||||||
@ -40,19 +41,29 @@ static av_cold int raw_init_encoder(AVCodecContext *avctx)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int raw_encode(AVCodecContext *avctx,
|
static int raw_encode(AVCodecContext *avctx, AVPacket *pkt,
|
||||||
unsigned char *frame, int buf_size, void *data)
|
const AVFrame *frame, int *got_packet)
|
||||||
{
|
{
|
||||||
int ret = avpicture_layout((AVPicture *)data, avctx->pix_fmt, avctx->width,
|
int ret = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);
|
||||||
avctx->height, frame, buf_size);
|
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
if ((ret = ff_alloc_packet(pkt, ret)) < 0)
|
||||||
|
return ret;
|
||||||
|
if ((ret = avpicture_layout((const AVPicture *)frame, avctx->pix_fmt, avctx->width,
|
||||||
|
avctx->height, pkt->data, pkt->size)) < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
if(avctx->codec_tag == AV_RL32("yuv2") && ret > 0 &&
|
if(avctx->codec_tag == AV_RL32("yuv2") && ret > 0 &&
|
||||||
avctx->pix_fmt == PIX_FMT_YUYV422) {
|
avctx->pix_fmt == PIX_FMT_YUYV422) {
|
||||||
int x;
|
int x;
|
||||||
for(x = 1; x < avctx->height*avctx->width*2; x += 2)
|
for(x = 1; x < avctx->height*avctx->width*2; x += 2)
|
||||||
frame[x] ^= 0x80;
|
pkt->data[x] ^= 0x80;
|
||||||
}
|
}
|
||||||
return ret;
|
pkt->flags |= AV_PKT_FLAG_KEY;
|
||||||
|
*got_packet = 1;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
AVCodec ff_rawvideo_encoder = {
|
AVCodec ff_rawvideo_encoder = {
|
||||||
@ -61,6 +72,6 @@ AVCodec ff_rawvideo_encoder = {
|
|||||||
.id = CODEC_ID_RAWVIDEO,
|
.id = CODEC_ID_RAWVIDEO,
|
||||||
.priv_data_size = sizeof(AVFrame),
|
.priv_data_size = sizeof(AVFrame),
|
||||||
.init = raw_init_encoder,
|
.init = raw_init_encoder,
|
||||||
.encode = raw_encode,
|
.encode2 = raw_encode,
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("raw video"),
|
.long_name = NULL_IF_CONFIG_SMALL("raw video"),
|
||||||
};
|
};
|
||||||
|
@ -201,7 +201,6 @@ static const int64_t tta_channel_layouts[7] = {
|
|||||||
static av_cold int tta_decode_init(AVCodecContext * avctx)
|
static av_cold int tta_decode_init(AVCodecContext * avctx)
|
||||||
{
|
{
|
||||||
TTAContext *s = avctx->priv_data;
|
TTAContext *s = avctx->priv_data;
|
||||||
int i;
|
|
||||||
|
|
||||||
s->avctx = avctx;
|
s->avctx = avctx;
|
||||||
|
|
||||||
@ -213,7 +212,7 @@ static av_cold int tta_decode_init(AVCodecContext * avctx)
|
|||||||
if (show_bits_long(&s->gb, 32) == AV_RL32("TTA1"))
|
if (show_bits_long(&s->gb, 32) == AV_RL32("TTA1"))
|
||||||
{
|
{
|
||||||
/* signature */
|
/* signature */
|
||||||
skip_bits(&s->gb, 32);
|
skip_bits_long(&s->gb, 32);
|
||||||
|
|
||||||
s->format = get_bits(&s->gb, 16);
|
s->format = get_bits(&s->gb, 16);
|
||||||
if (s->format > 2) {
|
if (s->format > 2) {
|
||||||
@ -231,7 +230,7 @@ static av_cold int tta_decode_init(AVCodecContext * avctx)
|
|||||||
s->bps = (avctx->bits_per_coded_sample + 7) / 8;
|
s->bps = (avctx->bits_per_coded_sample + 7) / 8;
|
||||||
avctx->sample_rate = get_bits_long(&s->gb, 32);
|
avctx->sample_rate = get_bits_long(&s->gb, 32);
|
||||||
s->data_length = get_bits_long(&s->gb, 32);
|
s->data_length = get_bits_long(&s->gb, 32);
|
||||||
skip_bits(&s->gb, 32); // CRC32 of header
|
skip_bits_long(&s->gb, 32); // CRC32 of header
|
||||||
|
|
||||||
if (s->channels == 0) {
|
if (s->channels == 0) {
|
||||||
av_log(s->avctx, AV_LOG_ERROR, "Invalid number of channels\n");
|
av_log(s->avctx, AV_LOG_ERROR, "Invalid number of channels\n");
|
||||||
@ -272,9 +271,8 @@ static av_cold int tta_decode_init(AVCodecContext * avctx)
|
|||||||
s->data_length, s->frame_length, s->last_frame_length, s->total_frames);
|
s->data_length, s->frame_length, s->last_frame_length, s->total_frames);
|
||||||
|
|
||||||
// FIXME: seek table
|
// FIXME: seek table
|
||||||
for (i = 0; i < s->total_frames; i++)
|
skip_bits_long(&s->gb, 32 * s->total_frames);
|
||||||
skip_bits(&s->gb, 32);
|
skip_bits_long(&s->gb, 32); // CRC32 of seektable
|
||||||
skip_bits(&s->gb, 32); // CRC32 of seektable
|
|
||||||
|
|
||||||
if(s->frame_length >= UINT_MAX / (s->channels * sizeof(int32_t))){
|
if(s->frame_length >= UINT_MAX / (s->channels * sizeof(int32_t))){
|
||||||
av_log(avctx, AV_LOG_ERROR, "frame_length too large\n");
|
av_log(avctx, AV_LOG_ERROR, "frame_length too large\n");
|
||||||
@ -413,7 +411,7 @@ static int tta_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
|
|
||||||
if (get_bits_left(&s->gb) < 32)
|
if (get_bits_left(&s->gb) < 32)
|
||||||
return -1;
|
return -1;
|
||||||
skip_bits(&s->gb, 32); // frame crc
|
skip_bits_long(&s->gb, 32); // frame crc
|
||||||
|
|
||||||
// convert to output buffer
|
// convert to output buffer
|
||||||
switch(s->bps) {
|
switch(s->bps) {
|
||||||
|
@ -579,4 +579,3 @@ void ff_fdct_sse2(int16_t *block)
|
|||||||
fdct_col_sse2(block, block1, 0);
|
fdct_col_sse2(block, block1, 0);
|
||||||
fdct_row_sse2(block1, block);
|
fdct_row_sse2(block1, block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,4 +67,3 @@ av_cold void ff_dct_init_mmx(DCTContext *s)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -171,4 +171,3 @@ void ff_imdct_calc_3dn2(FFTContext *s, FFTSample *output, const FFTSample *input
|
|||||||
);
|
);
|
||||||
__asm__ volatile("femms");
|
__asm__ volatile("femms");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,4 +108,3 @@ void ff_imdct_calc_sse(FFTContext *s, FFTSample *output, const FFTSample *input)
|
|||||||
XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm7")
|
XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm7")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -626,4 +626,3 @@ declare_idct (ff_mmxext_idct, mmxext_table,
|
|||||||
|
|
||||||
declare_idct (ff_mmx_idct, mmx_table,
|
declare_idct (ff_mmx_idct, mmx_table,
|
||||||
mmx_row_head, mmx_row, mmx_row_tail, mmx_row_mid)
|
mmx_row_head, mmx_row, mmx_row_tail, mmx_row_mid)
|
||||||
|
|
||||||
|
@ -523,4 +523,3 @@ __asm__ volatile(
|
|||||||
DCT_8_INV_COL(8(%0), 8(%0))
|
DCT_8_INV_COL(8(%0), 8(%0))
|
||||||
:: "r"(block), "r"(rounder_0), "r"(tab_i_04_xmm), "r"(tg_1_16));
|
:: "r"(block), "r"(rounder_0), "r"(tab_i_04_xmm), "r"(tg_1_16));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,4 +261,3 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst,
|
|||||||
#undef CHECK1
|
#undef CHECK1
|
||||||
#undef CHECK2
|
#undef CHECK2
|
||||||
#undef FILTER
|
#undef FILTER
|
||||||
|
|
||||||
|
@ -30,4 +30,4 @@
|
|||||||
*/
|
*/
|
||||||
void ff_ape_parse_tag(AVFormatContext *s);
|
void ff_ape_parse_tag(AVFormatContext *s);
|
||||||
|
|
||||||
#endif /* AVFORMAT_ID3V2_H */
|
#endif /* AVFORMAT_APETAG_H */
|
||||||
|
@ -490,7 +490,8 @@ static int mxf_read_partition_pack(void *arg, AVIOContext *pb, int tag, int size
|
|||||||
/* sanity check PreviousPartition if set */
|
/* sanity check PreviousPartition if set */
|
||||||
if (partition->previous_partition &&
|
if (partition->previous_partition &&
|
||||||
mxf->run_in + partition->previous_partition >= klv_offset) {
|
mxf->run_in + partition->previous_partition >= klv_offset) {
|
||||||
av_log(mxf->fc, AV_LOG_ERROR, "PreviousPartition points to this partition or forward\n");
|
av_log(mxf->fc, AV_LOG_ERROR,
|
||||||
|
"PreviousPartition points to this partition or forward\n");
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1107,7 +1108,6 @@ static int mxf_compute_ptses_fake_index(MXFContext *mxf, MXFIndexTable *index_ta
|
|||||||
|
|
||||||
if (s->nb_index_entries == 2 * s->index_duration + 1) {
|
if (s->nb_index_entries == 2 * s->index_duration + 1) {
|
||||||
index_delta = 2; /* Avid index */
|
index_delta = 2; /* Avid index */
|
||||||
|
|
||||||
/* ignore the last entry - it's the size of the essence container */
|
/* ignore the last entry - it's the size of the essence container */
|
||||||
n--;
|
n--;
|
||||||
}
|
}
|
||||||
@ -1117,7 +1117,8 @@ static int mxf_compute_ptses_fake_index(MXFContext *mxf, MXFIndexTable *index_ta
|
|||||||
int index = x + offset;
|
int index = x + offset;
|
||||||
|
|
||||||
if (x >= index_table->nb_ptses) {
|
if (x >= index_table->nb_ptses) {
|
||||||
av_log(mxf->fc, AV_LOG_ERROR, "x >= nb_ptses - IndexEntryCount %i < IndexDuration %"PRId64"?\n",
|
av_log(mxf->fc, AV_LOG_ERROR,
|
||||||
|
"x >= nb_ptses - IndexEntryCount %i < IndexDuration %"PRId64"?\n",
|
||||||
s->nb_index_entries, s->index_duration);
|
s->nb_index_entries, s->index_duration);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1401,8 +1402,10 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
|
|||||||
st->codec->codec_id = container_ul->id;
|
st->codec->codec_id = container_ul->id;
|
||||||
st->codec->channels = descriptor->channels;
|
st->codec->channels = descriptor->channels;
|
||||||
st->codec->bits_per_coded_sample = descriptor->bits_per_sample;
|
st->codec->bits_per_coded_sample = descriptor->bits_per_sample;
|
||||||
|
|
||||||
if (descriptor->sample_rate.den > 0)
|
if (descriptor->sample_rate.den > 0)
|
||||||
st->codec->sample_rate = descriptor->sample_rate.num / descriptor->sample_rate.den;
|
st->codec->sample_rate = descriptor->sample_rate.num / descriptor->sample_rate.den;
|
||||||
|
|
||||||
/* TODO: implement CODEC_ID_RAWAUDIO */
|
/* TODO: implement CODEC_ID_RAWAUDIO */
|
||||||
if (st->codec->codec_id == CODEC_ID_PCM_S16LE) {
|
if (st->codec->codec_id == CODEC_ID_PCM_S16LE) {
|
||||||
if (descriptor->bits_per_sample > 16 && descriptor->bits_per_sample <= 24)
|
if (descriptor->bits_per_sample > 16 && descriptor->bits_per_sample <= 24)
|
||||||
@ -1496,14 +1499,15 @@ static int mxf_read_local_tags(MXFContext *mxf, KLVPacket *klv, MXFMetadataReadF
|
|||||||
else if ((ret = read_child(ctx, pb, tag, size, uid, -1)) < 0)
|
else if ((ret = read_child(ctx, pb, tag, size, uid, -1)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
/* accept the 64k local set limit being exceeded (Avid)
|
/* Accept the 64k local set limit being exceeded (Avid). Don't accept
|
||||||
* don't accept it extending past the end of the KLV though (zzuf5.mxf) */
|
* it extending past the end of the KLV though (zzuf5.mxf). */
|
||||||
if (avio_tell(pb) > klv_end) {
|
if (avio_tell(pb) > klv_end) {
|
||||||
av_log(mxf->fc, AV_LOG_ERROR, "local tag %#04x extends past end of local set @ %#"PRIx64"\n",
|
av_log(mxf->fc, AV_LOG_ERROR,
|
||||||
|
"local tag %#04x extends past end of local set @ %#"PRIx64"\n",
|
||||||
tag, klv->offset);
|
tag, klv->offset);
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
} else if (avio_tell(pb) <= next) /* only seek forward, else this can loop for a long time */
|
} else if (avio_tell(pb) <= next) /* only seek forward, else this can loop for a long time */
|
||||||
avio_seek(pb, next, SEEK_SET);
|
avio_seek(pb, next, SEEK_SET);
|
||||||
}
|
}
|
||||||
if (ctx_size) ctx->type = type;
|
if (ctx_size) ctx->type = type;
|
||||||
return ctx_size ? mxf_add_metadata_set(mxf, ctx) : 0;
|
return ctx_size ? mxf_add_metadata_set(mxf, ctx) : 0;
|
||||||
@ -1628,8 +1632,9 @@ static int is_pcm(enum CodecID codec_id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deals with the case where for some audio atoms EditUnitByteCount is very small (2, 4..).
|
* Deal with the case where for some audio atoms EditUnitByteCount is
|
||||||
* In those cases we should read more than one sample per call to mxf_read_packet().
|
* very small (2, 4..). In those cases we should read more than one
|
||||||
|
* sample per call to mxf_read_packet().
|
||||||
*/
|
*/
|
||||||
static void mxf_handle_small_eubc(AVFormatContext *s)
|
static void mxf_handle_small_eubc(AVFormatContext *s)
|
||||||
{
|
{
|
||||||
@ -1641,15 +1646,18 @@ static void mxf_handle_small_eubc(AVFormatContext *s)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* expect PCM with exactly one index table segment and a small (< 32) EUBC */
|
/* expect PCM with exactly one index table segment and a small (< 32) EUBC */
|
||||||
if (s->nb_streams != 1 || s->streams[0]->codec->codec_type != AVMEDIA_TYPE_AUDIO ||
|
if (s->nb_streams != 1 ||
|
||||||
!is_pcm(s->streams[0]->codec->codec_id) || mxf->nb_index_tables != 1 ||
|
s->streams[0]->codec->codec_type != AVMEDIA_TYPE_AUDIO ||
|
||||||
mxf->index_tables[0].nb_segments != 1 ||
|
!is_pcm(s->streams[0]->codec->codec_id) ||
|
||||||
|
mxf->nb_index_tables != 1 ||
|
||||||
|
mxf->index_tables[0].nb_segments != 1 ||
|
||||||
mxf->index_tables[0].segments[0]->edit_unit_byte_count >= 32)
|
mxf->index_tables[0].segments[0]->edit_unit_byte_count >= 32)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* arbitrarily default to 48 kHz PAL audio frame size */
|
/* arbitrarily default to 48 kHz PAL audio frame size */
|
||||||
/* TODO: we could compute this from the ratio between the audio and video edit rates
|
/* TODO: We could compute this from the ratio between the audio
|
||||||
* for 48 kHz NTSC we could use the 1802-1802-1802-1802-1801 pattern */
|
* and video edit rates for 48 kHz NTSC we could use the
|
||||||
|
* 1802-1802-1802-1802-1801 pattern. */
|
||||||
mxf->edit_units_per_packet = 1920;
|
mxf->edit_units_per_packet = 1920;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1799,7 +1807,8 @@ static void mxf_packet_timestamps(MXFContext *mxf, AVPacket *pkt)
|
|||||||
int64_t last_ofs = -1, next_ofs;
|
int64_t last_ofs = -1, next_ofs;
|
||||||
MXFIndexTable *t = &mxf->index_tables[0];
|
MXFIndexTable *t = &mxf->index_tables[0];
|
||||||
|
|
||||||
/* this is called from the OP1a demuxing logic, which means there may be no index tables */
|
/* this is called from the OP1a demuxing logic, which means there
|
||||||
|
* may be no index tables */
|
||||||
if (mxf->nb_index_tables <= 0)
|
if (mxf->nb_index_tables <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -1809,9 +1818,10 @@ static void mxf_packet_timestamps(MXFContext *mxf, AVPacket *pkt)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
if (next_ofs <= last_ofs) {
|
if (next_ofs <= last_ofs) {
|
||||||
/* large next_ofs didn't change or current_edit_unit wrapped around
|
/* large next_ofs didn't change or current_edit_unit wrapped
|
||||||
* this fixes the infinite loop on zzuf3.mxf */
|
* around this fixes the infinite loop on zzuf3.mxf */
|
||||||
av_log(mxf->fc, AV_LOG_ERROR, "next_ofs didn't change. not deriving packet timestamps\n");
|
av_log(mxf->fc, AV_LOG_ERROR,
|
||||||
|
"next_ofs didn't change. not deriving packet timestamps\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,6 +251,7 @@ static int wv_read_packet(AVFormatContext *s,
|
|||||||
int ret;
|
int ret;
|
||||||
int size, ver, off;
|
int size, ver, off;
|
||||||
int64_t pos;
|
int64_t pos;
|
||||||
|
uint32_t block_samples;
|
||||||
|
|
||||||
if (url_feof(s->pb))
|
if (url_feof(s->pb))
|
||||||
return AVERROR(EIO);
|
return AVERROR(EIO);
|
||||||
@ -316,6 +317,12 @@ static int wv_read_packet(AVFormatContext *s,
|
|||||||
pkt->stream_index = 0;
|
pkt->stream_index = 0;
|
||||||
wc->block_parsed = 1;
|
wc->block_parsed = 1;
|
||||||
pkt->pts = wc->soff;
|
pkt->pts = wc->soff;
|
||||||
|
block_samples = AV_RN32(wc->extra);
|
||||||
|
if (block_samples > INT32_MAX)
|
||||||
|
av_log(s, AV_LOG_WARNING, "Too many samples in block: %"PRIu32"\n", block_samples);
|
||||||
|
else
|
||||||
|
pkt->duration = block_samples;
|
||||||
|
|
||||||
av_add_index_entry(s->streams[0], pos, pkt->pts, 0, 0, AVINDEX_KEYFRAME);
|
av_add_index_entry(s->streams[0], pos, pkt->pts, 0, 0, AVINDEX_KEYFRAME);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo
|
|||||||
|
|
||||||
TOOLS = ffeval
|
TOOLS = ffeval
|
||||||
|
|
||||||
DIRS = arm bfin sh4 x86
|
DIRS = arm avr32 bfin mips ppc sh4 tomi x86
|
||||||
|
|
||||||
ARCH_HEADERS = bswap.h intmath.h intreadwrite.h timer.h
|
ARCH_HEADERS = bswap.h intmath.h intreadwrite.h timer.h
|
||||||
|
|
||||||
|
@ -24,6 +24,10 @@
|
|||||||
#ifndef SWSCALE_PPC_YUV2RGB_ALTIVEC_H
|
#ifndef SWSCALE_PPC_YUV2RGB_ALTIVEC_H
|
||||||
#define SWSCALE_PPC_YUV2RGB_ALTIVEC_H
|
#define SWSCALE_PPC_YUV2RGB_ALTIVEC_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "libswscale/swscale_internal.h"
|
||||||
|
|
||||||
#define YUV2PACKEDX_HEADER(suffix) \
|
#define YUV2PACKEDX_HEADER(suffix) \
|
||||||
void ff_yuv2 ## suffix ## _X_altivec(SwsContext *c, \
|
void ff_yuv2 ## suffix ## _X_altivec(SwsContext *c, \
|
||||||
const int16_t *lumFilter, \
|
const int16_t *lumFilter, \
|
||||||
|
@ -32,4 +32,4 @@ FATE_AUDIO += fate-ws_snd
|
|||||||
fate-ws_snd: CMD = md5 -i $(SAMPLES)/vqa/ws_snd.vqa -f s16le
|
fate-ws_snd: CMD = md5 -i $(SAMPLES)/vqa/ws_snd.vqa -f s16le
|
||||||
|
|
||||||
FATE_TESTS += $(FATE_AUDIO)
|
FATE_TESTS += $(FATE_AUDIO)
|
||||||
fate-audio: $(FATE_AUDIO)
|
fate-audio: $(FATE_AUDIO)
|
@ -12,4 +12,3 @@ fate-prores-422_hq: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequ
|
|||||||
fate-prores-422_lt: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_LT.mov -pix_fmt yuv422p10le
|
fate-prores-422_lt: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_LT.mov -pix_fmt yuv422p10le
|
||||||
fate-prores-422_proxy: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_Proxy.mov -pix_fmt yuv422p10le
|
fate-prores-422_proxy: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_Proxy.mov -pix_fmt yuv422p10le
|
||||||
fate-prores-alpha: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_with_Alpha.mov -pix_fmt yuv444p10le
|
fate-prores-alpha: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_with_Alpha.mov -pix_fmt yuv444p10le
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
# FIXME dropped frames in this test because of coarse timebase
|
||||||
FATE_SCREEN += fate-cscd
|
FATE_SCREEN += fate-cscd
|
||||||
fate-cscd: CMD = framecrc -i $(SAMPLES)/CSCD/sample_video.avi -an -pix_fmt rgb24
|
fate-cscd: CMD = framecrc -i $(SAMPLES)/CSCD/sample_video.avi -an -pix_fmt rgb24
|
||||||
|
|
||||||
|
@ -33,6 +33,8 @@ endef
|
|||||||
define FATE_VP8_FULL
|
define FATE_VP8_FULL
|
||||||
$(foreach N,$(VP8_SUITE),$(eval $(call FATE_VP8_SUITE,$(N),$(1),$(2))))
|
$(foreach N,$(VP8_SUITE),$(eval $(call FATE_VP8_SUITE,$(N),$(1),$(2))))
|
||||||
|
|
||||||
|
# FIXME this file contains two frames with identical timestamps,
|
||||||
|
# so avconv drops one of them
|
||||||
FATE_VP8 += fate-vp8-sign-bias$(1)
|
FATE_VP8 += fate-vp8-sign-bias$(1)
|
||||||
fate-vp8-sign-bias$(1): CMD = framemd5 $(2) -i $(SAMPLES)/vp8/sintel-signbias.ivf
|
fate-vp8-sign-bias$(1): CMD = framemd5 $(2) -i $(SAMPLES)/vp8/sintel-signbias.ivf
|
||||||
fate-vp8-sign-bias$(1): REF = $(SRC_PATH)/tests/ref/fate/vp8-sign-bias
|
fate-vp8-sign-bias$(1): REF = $(SRC_PATH)/tests/ref/fate/vp8-sign-bias
|
||||||
|
Loading…
x
Reference in New Issue
Block a user