Commit 094a4968 authored by Michael Niedermayer's avatar Michael Niedermayer

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: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 0a1cf662 1717ba0c
...@@ -1529,8 +1529,8 @@ postproc_deps="gpl" ...@@ -1529,8 +1529,8 @@ postproc_deps="gpl"
# programs # programs
ffmpeg_deps="avcodec avformat swscale" ffmpeg_deps="avcodec avformat swscale"
ffmpeg_select="buffer_filter buffersink_filter" ffmpeg_select="buffer_filter buffersink_filter"
av_deps="avcodec avformat swscale" avconv_deps="avcodec avformat swscale"
av_select="buffer_filter" avconv_select="buffer_filter"
ffplay_deps="avcodec avformat swscale sdl" ffplay_deps="avcodec avformat swscale sdl"
ffplay_select="buffersink_filter rdft" ffplay_select="buffersink_filter rdft"
ffprobe_deps="avcodec avformat" ffprobe_deps="avcodec avformat"
......
...@@ -2162,7 +2162,7 @@ static int open_input_stream(HTTPContext *c, const char *info) ...@@ -2162,7 +2162,7 @@ static int open_input_stream(HTTPContext *c, const char *info)
} }
s->flags |= AVFMT_FLAG_GENPTS; s->flags |= AVFMT_FLAG_GENPTS;
c->fmt_in = s; 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); http_log("Could not find stream info '%s'\n", input_filename);
av_close_input_file(s); av_close_input_file(s);
return -1; return -1;
...@@ -3621,7 +3621,7 @@ static void build_file_streams(void) ...@@ -3621,7 +3621,7 @@ static void build_file_streams(void)
} else { } else {
/* find all the AVStreams inside and reference them in /* find all the AVStreams inside and reference them in
'stream' */ '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", http_log("Could not find codec parameters from '%s'\n",
stream->feed_filename); stream->feed_filename);
av_close_input_file(infile); av_close_input_file(infile);
......
...@@ -104,11 +104,11 @@ enum CouplingPoint { ...@@ -104,11 +104,11 @@ enum CouplingPoint {
* Output configuration status * Output configuration status
*/ */
enum OCStatus { enum OCStatus {
OC_NONE, //< Output unconfigured OC_NONE, ///< Output unconfigured
OC_TRIAL_PCE, //< Output configuration under trial specified by an inband PCE 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_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_GLOBAL_HDR, ///< Output configuration set in a global header but not yet locked
OC_LOCKED, //< Output configuration locked in place OC_LOCKED, ///< Output configuration locked in place
}; };
/** /**
......
...@@ -28,9 +28,9 @@ ...@@ -28,9 +28,9 @@
#include "aacps_tablegen.h" #include "aacps_tablegen.h"
#include "aacpsdata.c" #include "aacpsdata.c"
#define PS_BASELINE 0 //< Operate in Baseline PS mode #define PS_BASELINE 0 ///< Operate in Baseline PS mode
//< Baseline implies 10 or 20 stereo bands, ///< Baseline implies 10 or 20 stereo bands,
//< mixing mode A, and no ipd/opd ///< mixing mode A, and no ipd/opd
#define numQMFSlots 32 //numTimeSlots * RATE #define numQMFSlots 32 //numTimeSlots * RATE
...@@ -654,7 +654,7 @@ static void decorrelation(PSContext *ps, float (*out)[32][2], const float (*s)[3 ...@@ -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 int8_t *k_to_i = is34 ? k_to_i_34 : k_to_i_20;
const float peak_decay_factor = 0.76592833836465f; const float peak_decay_factor = 0.76592833836465f;
const float transient_impact = 1.5f; 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 i, k, m, n;
int n0 = 0, nL = 32; int n0 = 0, nL = 32;
static const int link_delay[] = { 3, 4, 5 }; static const int link_delay[] = { 3, 4, 5 };
......
...@@ -52,11 +52,11 @@ typedef struct { ...@@ -52,11 +52,11 @@ typedef struct {
int num_env; int num_env;
int enable_ipdopd; int enable_ipdopd;
int border_position[PS_MAX_NUM_ENV+1]; 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 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 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 */ /* 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 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 opd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; ///< Overall Phase Difference Parameters
int is34bands; int is34bands;
int is34bands_old; int is34bands_old;
......
...@@ -139,7 +139,7 @@ static void ps_tableinit(void) ...@@ -139,7 +139,7 @@ static void ps_tableinit(void)
} }
for (iid = 0; iid < 46; iid++) { 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 c1 = (float)M_SQRT2 / sqrtf(1.0f + c*c);
float c2 = c * c1; float c2 = c * c1;
for (icc = 0; icc < 8; icc++) { for (icc = 0; icc < 8; icc++) {
......
...@@ -2888,8 +2888,8 @@ typedef struct AVCodecContext { ...@@ -2888,8 +2888,8 @@ typedef struct AVCodecContext {
* - decoding: Set by user, otherwise the default is used. * - decoding: Set by user, otherwise the default is used.
*/ */
int thread_type; int thread_type;
#define FF_THREAD_FRAME 1 //< Decode more than one 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 #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. * Which multithreading methods are in use by the codec.
......
...@@ -31,13 +31,13 @@ typedef struct { ...@@ -31,13 +31,13 @@ typedef struct {
int sampling_index; int sampling_index;
int sample_rate; int sample_rate;
int chan_config; int chan_config;
int sbr; //< -1 implicit, 1 presence int sbr; ///< -1 implicit, 1 presence
int ext_object_type; int ext_object_type;
int ext_sampling_index; int ext_sampling_index;
int ext_sample_rate; int ext_sample_rate;
int ext_chan_config; int ext_chan_config;
int channels; int channels;
int ps; //< -1 implicit, 1 presence int ps; ///< -1 implicit, 1 presence
} MPEG4AudioConfig; } MPEG4AudioConfig;
extern const int ff_mpeg4audio_sample_rates[16]; extern const int ff_mpeg4audio_sample_rates[16];
......
...@@ -300,7 +300,7 @@ typedef struct MpegEncContext { ...@@ -300,7 +300,7 @@ typedef struct MpegEncContext {
Picture *current_picture_ptr; ///< pointer to the current picture Picture *current_picture_ptr; ///< pointer to the current picture
int picture_count; ///< number of allocated pictures (MAX_PICTURE_COUNT * avctx->thread_count) 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 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 int last_dc[3]; ///< last DC values for MPEG1
int16_t *dc_val_base; int16_t *dc_val_base;
int16_t *dc_val[3]; ///< used for mpeg4 DC prediction, all 3 arrays must be continuous int16_t *dc_val[3]; ///< used for mpeg4 DC prediction, all 3 arrays must be continuous
......
...@@ -29,8 +29,8 @@ ...@@ -29,8 +29,8 @@
/** /**
* Decode DXT1 encoded data to RGB32 * Decode DXT1 encoded data to RGB32
* @param *src source buffer, has to be aligned on a 4-byte boundary * @param src source buffer, has to be aligned on a 4-byte boundary
* @param *dst destination buffer * @param dst destination buffer
* @param w width of output image * @param w width of output image
* @param h height of output image * @param h height of output image
* @param stride line size 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, ...@@ -40,8 +40,8 @@ void ff_decode_dxt1(const uint8_t *src, uint8_t *dst,
const unsigned int stride); const unsigned int stride);
/** /**
* Decode DXT3 encoded data to RGB32 * Decode DXT3 encoded data to RGB32
* @param *src source buffer, has to be aligned on a 4-byte boundary * @param src source buffer, has to be aligned on a 4-byte boundary
* @param *dst destination buffer * @param dst destination buffer
* @param w width of output image * @param w width of output image
* @param h height of output image * @param h height of output image
* @param stride line size of output image * @param stride line size of output image
......
...@@ -3306,7 +3306,7 @@ static void update_last_header_values(SnowContext *s){ ...@@ -3306,7 +3306,7 @@ static void update_last_header_values(SnowContext *s){
static int qscale2qlog(int qscale){ static int qscale2qlog(int qscale){
return rint(QROOT*log(qscale / (float)FF_QP2LAMBDA)/log(2)) 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) static int ratecontrol_1pass(SnowContext *s, AVFrame *pict)
......
...@@ -33,13 +33,13 @@ ...@@ -33,13 +33,13 @@
*/ */
typedef struct { typedef struct {
/* input data */ /* input data */
int16_t vector[8]; //< input vector: 5/5/4/4/4/3/3/3 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 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 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 pulseoff[4]; ///< 4-bit offset of pulse values block
int pulsepos[4]; //< 27-bit variable, encodes 7 pulse positions int pulsepos[4]; ///< 27-bit variable, encodes 7 pulse positions
int pulseval[4]; //< 7x2-bit pulse values int pulseval[4]; ///< 7x2-bit pulse values
int flag; //< 1-bit flag, shows how to choose filters int flag; ///< 1-bit flag, shows how to choose filters
/* temporary data */ /* temporary data */
int filtbuf[146]; // some big vector used for storing filters int filtbuf[146]; // some big vector used for storing filters
int prevfilt[8]; // filter from previous frame int prevfilt[8]; // filter from previous frame
......
...@@ -225,7 +225,7 @@ typedef struct Vp3DecodeContext { ...@@ -225,7 +225,7 @@ typedef struct Vp3DecodeContext {
/* these arrays need to be on 16-byte boundaries since SSE2 operations /* these arrays need to be on 16-byte boundaries since SSE2 operations
* index into them */ * 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 /* This table contains superblock_count * 16 entries. Each set of 16
* numbers corresponds to the fragment indexes 0..15 of the superblock. * numbers corresponds to the fragment indexes 0..15 of the superblock.
......
...@@ -34,7 +34,7 @@ enum { Y, U, V, A }; ...@@ -34,7 +34,7 @@ enum { Y, U, V, A };
typedef struct { typedef struct {
int x, y, w, h; int x, y, w, h;
unsigned char yuv_color[4]; unsigned char yuv_color[4];
int vsub, hsub; //< chroma subsampling int vsub, hsub; ///< chroma subsampling
} DrawBoxContext; } DrawBoxContext;
static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
......
...@@ -86,7 +86,7 @@ int main(int argc, char **argv) ...@@ -86,7 +86,7 @@ int main(int argc, char **argv)
exit(1); exit(1);
} }
ret = av_find_stream_info(ic); ret = avformat_find_stream_info(ic, NULL);
if (ret < 0) { if (ret < 0) {
fprintf(stderr, "%s: could not find codec parameters\n", filename); fprintf(stderr, "%s: could not find codec parameters\n", filename);
exit(1); exit(1);
......
...@@ -77,7 +77,8 @@ OBJS-$(ARCH_ARM) += arm/cpu.o ...@@ -77,7 +77,8 @@ OBJS-$(ARCH_ARM) += arm/cpu.o
OBJS-$(ARCH_PPC) += ppc/cpu.o OBJS-$(ARCH_PPC) += ppc/cpu.o
OBJS-$(ARCH_X86) += x86/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 md5 opt pca parseutils rational sha tree
TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
#define LIBAVUTIL_VERSION_MAJOR 51 #define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 13 #define LIBAVUTIL_VERSION_MINOR 14
#define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
......
...@@ -128,3 +128,39 @@ void av_fifo_drain(AVFifoBuffer *f, int size) ...@@ -128,3 +128,39 @@ void av_fifo_drain(AVFifoBuffer *f, int size)
f->rptr -= f->end - f->buffer; f->rptr -= f->end - f->buffer;
f->rndx += size; 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); ...@@ -42,20 +42,20 @@ AVFifoBuffer *av_fifo_alloc(unsigned int size);
/** /**
* Free an AVFifoBuffer. * Free an AVFifoBuffer.
* @param *f AVFifoBuffer to free * @param f AVFifoBuffer to free
*/ */
void av_fifo_free(AVFifoBuffer *f); void av_fifo_free(AVFifoBuffer *f);
/** /**
* Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied. * 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); void av_fifo_reset(AVFifoBuffer *f);
/** /**
* Return the amount of data in bytes in the AVFifoBuffer, that is the * Return the amount of data in bytes in the AVFifoBuffer, that is the
* amount of data you can read from it. * amount of data you can read from it.
* @param *f AVFifoBuffer to read from * @param f AVFifoBuffer to read from
* @return size * @return size
*/ */
int av_fifo_size(AVFifoBuffer *f); int av_fifo_size(AVFifoBuffer *f);
...@@ -63,27 +63,27 @@ 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 * Return the amount of space in bytes in the AVFifoBuffer, that is the
* amount of data you can write into it. * amount of data you can write into it.
* @param *f AVFifoBuffer to write into * @param f AVFifoBuffer to write into
* @return size * @return size
*/ */
int av_fifo_space(AVFifoBuffer *f); int av_fifo_space(AVFifoBuffer *f);
/** /**
* Feed data from an AVFifoBuffer to a user-supplied callback. * 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 buf_size number of bytes to read
* @param *func generic read function * @param func generic read function
* @param *dest data destination * @param dest data destination
*/ */
int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int)); 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. * Feed data from a user-supplied callback to an AVFifoBuffer.
* @param *f AVFifoBuffer to write to * @param f AVFifoBuffer to write to
* @param *src data source; non-const since it may be used as a * @param src data source; non-const since it may be used as a
* modifiable context by the function defined in func * modifiable context by the function defined in func
* @param size number of bytes to write * @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. * 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 * func must return the number of bytes written to dest_buf, or <= 0 to
* indicate no more data available to write. * 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 ...@@ -94,7 +94,7 @@ int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void
/** /**
* Resize an AVFifoBuffer. * Resize an AVFifoBuffer.
* @param *f AVFifoBuffer to resize * @param f AVFifoBuffer to resize
* @param size new AVFifoBuffer size in bytes * @param size new AVFifoBuffer size in bytes
* @return <0 for failure, >=0 otherwise * @return <0 for failure, >=0 otherwise
*/ */
...@@ -102,7 +102,7 @@ int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size); ...@@ -102,7 +102,7 @@ int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size);
/** /**
* Read and discard the specified amount of data from an AVFifoBuffer. * 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 * @param size amount of data to read in bytes
*/ */
void av_fifo_drain(AVFifoBuffer *f, int size); void av_fifo_drain(AVFifoBuffer *f, int size);
......
...@@ -25,6 +25,10 @@ FATE_TESTS += fate-eval ...@@ -25,6 +25,10 @@ FATE_TESTS += fate-eval
fate-eval: libavutil/eval-test$(EXESUF) fate-eval: libavutil/eval-test$(EXESUF)
fate-eval: CMD = run libavutil/eval-test 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_TESTS += fate-md5
fate-md5: libavutil/md5-test$(EXESUF) fate-md5: libavutil/md5-test$(EXESUF)
fate-md5: CMD = run libavutil/md5-test fate-md5: CMD = run libavutil/md5-test
......
-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) ...@@ -89,9 +89,9 @@ int main(int argc, char **argv)
return 1; return 1;
} }
err = av_find_stream_info(fctx); err = avformat_find_stream_info(fctx, NULL);
if (err < 0) { 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; return 1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment