mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: fifo: add FIFO API test program, and fate test fifo: add av_fifo_peek2(), and deprecate av_fifo_peek() postprocess.c: filter name needs to be double 0 terminated doxygen: fix wrong comment syntax, //< vs. ///< doxygen: drop pointless star from pointer variable names Replace deprecated av_find_stream_info() by avformat_find_stream_info(). xmv: eliminate superfluous zeroing of zero data configure: fix typo in avconv dependency list Conflicts: configure doc/APIchanges libavutil/Makefile libavutil/avutil.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
094a496818
4
configure
vendored
4
configure
vendored
@ -1529,8 +1529,8 @@ postproc_deps="gpl"
|
||||
# programs
|
||||
ffmpeg_deps="avcodec avformat swscale"
|
||||
ffmpeg_select="buffer_filter buffersink_filter"
|
||||
av_deps="avcodec avformat swscale"
|
||||
av_select="buffer_filter"
|
||||
avconv_deps="avcodec avformat swscale"
|
||||
avconv_select="buffer_filter"
|
||||
ffplay_deps="avcodec avformat swscale sdl"
|
||||
ffplay_select="buffersink_filter rdft"
|
||||
ffprobe_deps="avcodec avformat"
|
||||
|
@ -2162,7 +2162,7 @@ static int open_input_stream(HTTPContext *c, const char *info)
|
||||
}
|
||||
s->flags |= AVFMT_FLAG_GENPTS;
|
||||
c->fmt_in = s;
|
||||
if (strcmp(s->iformat->name, "ffm") && av_find_stream_info(c->fmt_in) < 0) {
|
||||
if (strcmp(s->iformat->name, "ffm") && avformat_find_stream_info(c->fmt_in, NULL) < 0) {
|
||||
http_log("Could not find stream info '%s'\n", input_filename);
|
||||
av_close_input_file(s);
|
||||
return -1;
|
||||
@ -3621,7 +3621,7 @@ static void build_file_streams(void)
|
||||
} else {
|
||||
/* find all the AVStreams inside and reference them in
|
||||
'stream' */
|
||||
if (av_find_stream_info(infile) < 0) {
|
||||
if (avformat_find_stream_info(infile, NULL) < 0) {
|
||||
http_log("Could not find codec parameters from '%s'\n",
|
||||
stream->feed_filename);
|
||||
av_close_input_file(infile);
|
||||
|
@ -104,11 +104,11 @@ enum CouplingPoint {
|
||||
* Output configuration status
|
||||
*/
|
||||
enum OCStatus {
|
||||
OC_NONE, //< Output unconfigured
|
||||
OC_TRIAL_PCE, //< Output configuration under trial specified by an inband PCE
|
||||
OC_TRIAL_FRAME, //< Output configuration under trial specified by a frame header
|
||||
OC_GLOBAL_HDR, //< Output configuration set in a global header but not yet locked
|
||||
OC_LOCKED, //< Output configuration locked in place
|
||||
OC_NONE, ///< Output unconfigured
|
||||
OC_TRIAL_PCE, ///< Output configuration under trial specified by an inband PCE
|
||||
OC_TRIAL_FRAME, ///< Output configuration under trial specified by a frame header
|
||||
OC_GLOBAL_HDR, ///< Output configuration set in a global header but not yet locked
|
||||
OC_LOCKED, ///< Output configuration locked in place
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -28,9 +28,9 @@
|
||||
#include "aacps_tablegen.h"
|
||||
#include "aacpsdata.c"
|
||||
|
||||
#define PS_BASELINE 0 //< Operate in Baseline PS mode
|
||||
//< Baseline implies 10 or 20 stereo bands,
|
||||
//< mixing mode A, and no ipd/opd
|
||||
#define PS_BASELINE 0 ///< Operate in Baseline PS mode
|
||||
///< Baseline implies 10 or 20 stereo bands,
|
||||
///< mixing mode A, and no ipd/opd
|
||||
|
||||
#define numQMFSlots 32 //numTimeSlots * RATE
|
||||
|
||||
@ -654,7 +654,7 @@ static void decorrelation(PSContext *ps, float (*out)[32][2], const float (*s)[3
|
||||
const int8_t *k_to_i = is34 ? k_to_i_34 : k_to_i_20;
|
||||
const float peak_decay_factor = 0.76592833836465f;
|
||||
const float transient_impact = 1.5f;
|
||||
const float a_smooth = 0.25f; //< Smoothing coefficient
|
||||
const float a_smooth = 0.25f; ///< Smoothing coefficient
|
||||
int i, k, m, n;
|
||||
int n0 = 0, nL = 32;
|
||||
static const int link_delay[] = { 3, 4, 5 };
|
||||
|
@ -52,11 +52,11 @@ typedef struct {
|
||||
int num_env;
|
||||
int enable_ipdopd;
|
||||
int border_position[PS_MAX_NUM_ENV+1];
|
||||
int8_t iid_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; //<Inter-channel Intensity Difference Parameters
|
||||
int8_t icc_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; //<Inter-Channel Coherence Parameters
|
||||
int8_t iid_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; ///< Inter-channel Intensity Difference Parameters
|
||||
int8_t icc_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; ///< Inter-Channel Coherence Parameters
|
||||
/* ipd/opd is iid/icc sized so that the same functions can handle both */
|
||||
int8_t ipd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; //<Inter-channel Phase Difference Parameters
|
||||
int8_t opd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; //<Overall Phase Difference Parameters
|
||||
int8_t ipd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; ///< Inter-channel Phase Difference Parameters
|
||||
int8_t opd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; ///< Overall Phase Difference Parameters
|
||||
int is34bands;
|
||||
int is34bands_old;
|
||||
|
||||
|
@ -139,7 +139,7 @@ static void ps_tableinit(void)
|
||||
}
|
||||
|
||||
for (iid = 0; iid < 46; iid++) {
|
||||
float c = iid_par_dequant[iid]; //<Linear Inter-channel Intensity Difference
|
||||
float c = iid_par_dequant[iid]; ///< Linear Inter-channel Intensity Difference
|
||||
float c1 = (float)M_SQRT2 / sqrtf(1.0f + c*c);
|
||||
float c2 = c * c1;
|
||||
for (icc = 0; icc < 8; icc++) {
|
||||
|
@ -2888,8 +2888,8 @@ typedef struct AVCodecContext {
|
||||
* - decoding: Set by user, otherwise the default is used.
|
||||
*/
|
||||
int thread_type;
|
||||
#define FF_THREAD_FRAME 1 //< Decode more than one frame at once
|
||||
#define FF_THREAD_SLICE 2 //< Decode more than one part of a single frame at once
|
||||
#define FF_THREAD_FRAME 1 ///< Decode more than one frame at once
|
||||
#define FF_THREAD_SLICE 2 ///< Decode more than one part of a single frame at once
|
||||
|
||||
/**
|
||||
* Which multithreading methods are in use by the codec.
|
||||
|
@ -31,13 +31,13 @@ typedef struct {
|
||||
int sampling_index;
|
||||
int sample_rate;
|
||||
int chan_config;
|
||||
int sbr; //< -1 implicit, 1 presence
|
||||
int sbr; ///< -1 implicit, 1 presence
|
||||
int ext_object_type;
|
||||
int ext_sampling_index;
|
||||
int ext_sample_rate;
|
||||
int ext_chan_config;
|
||||
int channels;
|
||||
int ps; //< -1 implicit, 1 presence
|
||||
int ps; ///< -1 implicit, 1 presence
|
||||
} MPEG4AudioConfig;
|
||||
|
||||
extern const int ff_mpeg4audio_sample_rates[16];
|
||||
|
@ -300,7 +300,7 @@ typedef struct MpegEncContext {
|
||||
Picture *current_picture_ptr; ///< pointer to the current picture
|
||||
int picture_count; ///< number of allocated pictures (MAX_PICTURE_COUNT * avctx->thread_count)
|
||||
int picture_range_start, picture_range_end; ///< the part of picture that this context can allocate in
|
||||
uint8_t *visualization_buffer[3]; //< temporary buffer vor MV visualization
|
||||
uint8_t *visualization_buffer[3]; ///< temporary buffer vor MV visualization
|
||||
int last_dc[3]; ///< last DC values for MPEG1
|
||||
int16_t *dc_val_base;
|
||||
int16_t *dc_val[3]; ///< used for mpeg4 DC prediction, all 3 arrays must be continuous
|
||||
|
@ -29,8 +29,8 @@
|
||||
|
||||
/**
|
||||
* Decode DXT1 encoded data to RGB32
|
||||
* @param *src source buffer, has to be aligned on a 4-byte boundary
|
||||
* @param *dst destination buffer
|
||||
* @param src source buffer, has to be aligned on a 4-byte boundary
|
||||
* @param dst destination buffer
|
||||
* @param w width of output image
|
||||
* @param h height of output image
|
||||
* @param stride line size of output image
|
||||
@ -40,8 +40,8 @@ void ff_decode_dxt1(const uint8_t *src, uint8_t *dst,
|
||||
const unsigned int stride);
|
||||
/**
|
||||
* Decode DXT3 encoded data to RGB32
|
||||
* @param *src source buffer, has to be aligned on a 4-byte boundary
|
||||
* @param *dst destination buffer
|
||||
* @param src source buffer, has to be aligned on a 4-byte boundary
|
||||
* @param dst destination buffer
|
||||
* @param w width of output image
|
||||
* @param h height of output image
|
||||
* @param stride line size of output image
|
||||
|
@ -3306,7 +3306,7 @@ static void update_last_header_values(SnowContext *s){
|
||||
|
||||
static int qscale2qlog(int qscale){
|
||||
return rint(QROOT*log(qscale / (float)FF_QP2LAMBDA)/log(2))
|
||||
+ 61*QROOT/8; //<64 >60
|
||||
+ 61*QROOT/8; ///< 64 > 60
|
||||
}
|
||||
|
||||
static int ratecontrol_1pass(SnowContext *s, AVFrame *pict)
|
||||
|
@ -33,13 +33,13 @@
|
||||
*/
|
||||
typedef struct {
|
||||
/* input data */
|
||||
int16_t vector[8]; //< input vector: 5/5/4/4/4/3/3/3
|
||||
int offset1[2]; //< 8-bit value, used in one copying offset
|
||||
int offset2[4]; //< 7-bit value, encodes offsets for copying and for two-point filter
|
||||
int pulseoff[4]; //< 4-bit offset of pulse values block
|
||||
int pulsepos[4]; //< 27-bit variable, encodes 7 pulse positions
|
||||
int pulseval[4]; //< 7x2-bit pulse values
|
||||
int flag; //< 1-bit flag, shows how to choose filters
|
||||
int16_t vector[8]; ///< input vector: 5/5/4/4/4/3/3/3
|
||||
int offset1[2]; ///< 8-bit value, used in one copying offset
|
||||
int offset2[4]; ///< 7-bit value, encodes offsets for copying and for two-point filter
|
||||
int pulseoff[4]; ///< 4-bit offset of pulse values block
|
||||
int pulsepos[4]; ///< 27-bit variable, encodes 7 pulse positions
|
||||
int pulseval[4]; ///< 7x2-bit pulse values
|
||||
int flag; ///< 1-bit flag, shows how to choose filters
|
||||
/* temporary data */
|
||||
int filtbuf[146]; // some big vector used for storing filters
|
||||
int prevfilt[8]; // filter from previous frame
|
||||
|
@ -225,7 +225,7 @@ typedef struct Vp3DecodeContext {
|
||||
|
||||
/* these arrays need to be on 16-byte boundaries since SSE2 operations
|
||||
* index into them */
|
||||
DECLARE_ALIGNED(16, int16_t, qmat)[3][2][3][64]; //<qmat[qpi][is_inter][plane]
|
||||
DECLARE_ALIGNED(16, int16_t, qmat)[3][2][3][64]; ///< qmat[qpi][is_inter][plane]
|
||||
|
||||
/* This table contains superblock_count * 16 entries. Each set of 16
|
||||
* numbers corresponds to the fragment indexes 0..15 of the superblock.
|
||||
|
@ -34,7 +34,7 @@ enum { Y, U, V, A };
|
||||
typedef struct {
|
||||
int x, y, w, h;
|
||||
unsigned char yuv_color[4];
|
||||
int vsub, hsub; //< chroma subsampling
|
||||
int vsub, hsub; ///< chroma subsampling
|
||||
} DrawBoxContext;
|
||||
|
||||
static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
|
||||
|
@ -86,7 +86,7 @@ int main(int argc, char **argv)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
ret = av_find_stream_info(ic);
|
||||
ret = avformat_find_stream_info(ic, NULL);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "%s: could not find codec parameters\n", filename);
|
||||
exit(1);
|
||||
|
@ -77,7 +77,8 @@ OBJS-$(ARCH_ARM) += arm/cpu.o
|
||||
OBJS-$(ARCH_PPC) += ppc/cpu.o
|
||||
OBJS-$(ARCH_X86) += x86/cpu.o
|
||||
|
||||
TESTPROGS = adler32 aes avstring base64 cpu crc des eval file lfg lls \
|
||||
|
||||
TESTPROGS = adler32 aes avstring base64 cpu crc des eval file fifo lfg lls \
|
||||
md5 opt pca parseutils rational sha tree
|
||||
TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
||||
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 51
|
||||
#define LIBAVUTIL_VERSION_MINOR 13
|
||||
#define LIBAVUTIL_VERSION_MINOR 14
|
||||
#define LIBAVUTIL_VERSION_MICRO 0
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
|
@ -128,3 +128,39 @@ void av_fifo_drain(AVFifoBuffer *f, int size)
|
||||
f->rptr -= f->end - f->buffer;
|
||||
f->rndx += size;
|
||||
}
|
||||
|
||||
#ifdef TEST
|
||||
|
||||
#undef printf
|
||||
|
||||
int main(void)
|
||||
{
|
||||
/* create a FIFO buffer */
|
||||
AVFifoBuffer *fifo = av_fifo_alloc(13 * sizeof(int));
|
||||
int i, j, n;
|
||||
|
||||
/* fill data */
|
||||
for (i = 0; av_fifo_space(fifo) >= sizeof(int); i++)
|
||||
av_fifo_generic_write(fifo, &i, sizeof(int), NULL);
|
||||
|
||||
/* peek at FIFO */
|
||||
n = av_fifo_size(fifo)/sizeof(int);
|
||||
for (i = -n+1; i < n; i++) {
|
||||
int *v = (int *)av_fifo_peek2(fifo, i*sizeof(int));
|
||||
printf("%d: %d\n", i, *v);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
/* read data */
|
||||
for (i = 0; av_fifo_size(fifo) >= sizeof(int); i++) {
|
||||
av_fifo_generic_read(fifo, &j, sizeof(int), NULL);
|
||||
printf("%d ", j);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
av_fifo_free(fifo);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -42,20 +42,20 @@ AVFifoBuffer *av_fifo_alloc(unsigned int size);
|
||||
|
||||
/**
|
||||
* Free an AVFifoBuffer.
|
||||
* @param *f AVFifoBuffer to free
|
||||
* @param f AVFifoBuffer to free
|
||||
*/
|
||||
void av_fifo_free(AVFifoBuffer *f);
|
||||
|
||||
/**
|
||||
* Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied.
|
||||
* @param *f AVFifoBuffer to reset
|
||||
* @param f AVFifoBuffer to reset
|
||||
*/
|
||||
void av_fifo_reset(AVFifoBuffer *f);
|
||||
|
||||
/**
|
||||
* Return the amount of data in bytes in the AVFifoBuffer, that is the
|
||||
* amount of data you can read from it.
|
||||
* @param *f AVFifoBuffer to read from
|
||||
* @param f AVFifoBuffer to read from
|
||||
* @return size
|
||||
*/
|
||||
int av_fifo_size(AVFifoBuffer *f);
|
||||
@ -63,27 +63,27 @@ int av_fifo_size(AVFifoBuffer *f);
|
||||
/**
|
||||
* Return the amount of space in bytes in the AVFifoBuffer, that is the
|
||||
* amount of data you can write into it.
|
||||
* @param *f AVFifoBuffer to write into
|
||||
* @param f AVFifoBuffer to write into
|
||||
* @return size
|
||||
*/
|
||||
int av_fifo_space(AVFifoBuffer *f);
|
||||
|
||||
/**
|
||||
* Feed data from an AVFifoBuffer to a user-supplied callback.
|
||||
* @param *f AVFifoBuffer to read from
|
||||
* @param f AVFifoBuffer to read from
|
||||
* @param buf_size number of bytes to read
|
||||
* @param *func generic read function
|
||||
* @param *dest data destination
|
||||
* @param func generic read function
|
||||
* @param dest data destination
|
||||
*/
|
||||
int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int));
|
||||
|
||||
/**
|
||||
* Feed data from a user-supplied callback to an AVFifoBuffer.
|
||||
* @param *f AVFifoBuffer to write to
|
||||
* @param *src data source; non-const since it may be used as a
|
||||
* @param f AVFifoBuffer to write to
|
||||
* @param src data source; non-const since it may be used as a
|
||||
* modifiable context by the function defined in func
|
||||
* @param size number of bytes to write
|
||||
* @param *func generic write function; the first parameter is src,
|
||||
* @param func generic write function; the first parameter is src,
|
||||
* the second is dest_buf, the third is dest_buf_size.
|
||||
* func must return the number of bytes written to dest_buf, or <= 0 to
|
||||
* indicate no more data available to write.
|
||||
@ -94,7 +94,7 @@ int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void
|
||||
|
||||
/**
|
||||
* Resize an AVFifoBuffer.
|
||||
* @param *f AVFifoBuffer to resize
|
||||
* @param f AVFifoBuffer to resize
|
||||
* @param size new AVFifoBuffer size in bytes
|
||||
* @return <0 for failure, >=0 otherwise
|
||||
*/
|
||||
@ -102,7 +102,7 @@ int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size);
|
||||
|
||||
/**
|
||||
* Read and discard the specified amount of data from an AVFifoBuffer.
|
||||
* @param *f AVFifoBuffer to read from
|
||||
* @param f AVFifoBuffer to read from
|
||||
* @param size amount of data to read in bytes
|
||||
*/
|
||||
void av_fifo_drain(AVFifoBuffer *f, int size);
|
||||
|
@ -25,6 +25,10 @@ FATE_TESTS += fate-eval
|
||||
fate-eval: libavutil/eval-test$(EXESUF)
|
||||
fate-eval: CMD = run libavutil/eval-test
|
||||
|
||||
FATE_TESTS += fate-fifo
|
||||
fate-fifo: libavutil/fifo-test$(EXESUF)
|
||||
fate-fifo: CMD = run libavutil/fifo-test
|
||||
|
||||
FATE_TESTS += fate-md5
|
||||
fate-md5: libavutil/md5-test$(EXESUF)
|
||||
fate-md5: CMD = run libavutil/md5-test
|
||||
|
27
tests/ref/fate/fifo
Normal file
27
tests/ref/fate/fifo
Normal file
@ -0,0 +1,27 @@
|
||||
-12: 1
|
||||
-11: 2
|
||||
-10: 3
|
||||
-9: 4
|
||||
-8: 5
|
||||
-7: 6
|
||||
-6: 7
|
||||
-5: 8
|
||||
-4: 9
|
||||
-3: 10
|
||||
-2: 11
|
||||
-1: 12
|
||||
0: 0
|
||||
1: 1
|
||||
2: 2
|
||||
3: 3
|
||||
4: 4
|
||||
5: 5
|
||||
6: 6
|
||||
7: 7
|
||||
8: 8
|
||||
9: 9
|
||||
10: 10
|
||||
11: 11
|
||||
12: 12
|
||||
|
||||
0 1 2 3 4 5 6 7 8 9 10 11 12
|
@ -89,9 +89,9 @@ int main(int argc, char **argv)
|
||||
return 1;
|
||||
}
|
||||
|
||||
err = av_find_stream_info(fctx);
|
||||
err = avformat_find_stream_info(fctx, NULL);
|
||||
if (err < 0) {
|
||||
fprintf(stderr, "av_find_stream_info: error %d\n", err);
|
||||
fprintf(stderr, "avformat_find_stream_info: error %d\n", err);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user