[Ffmpeg-devel] [PATCH] portability fixes (ILP32 vs LP64)
Dieter
freebsd
Wed Jan 18 11:17:12 CET 2006
Here are fixes for some of the compiler warnings I got
building the cvs version of ffmpeg on FreeBSD 6.0.
They should help with portability between ILP32 and LP64.
Diffs for file: libavcodec/i386/h264dsp_mmx.c
===================================================================
RCS file: RCS/h264dsp_mmx.c,v
retrieving revision 1.1
diff -u -c -r1.1 h264dsp_mmx.c
*** h264dsp_mmx.c 2006/01/18 01:15:54 1.1
--- h264dsp_mmx.c 2006/01/18 17:06:06
***************
*** 65,70 ****
--- 65,75 ----
"packuswb "#z", "#p" \n\t"\
"movd "#p", (%0) \n\t"
+
+ /* prototypes */
+ void ff_h264_idct_add_mmx2(uint8_t *, int16_t *, int);
+
+
void ff_h264_idct_add_mmx2(uint8_t *dst, int16_t *block, int stride)
{
/* Load dct coeffs */
Diffs for file: libavcodec/i386/idct_mmx_xvid.c
===================================================================
RCS file: RCS/idct_mmx_xvid.c,v
retrieving revision 1.1
diff -u -c -r1.1 idct_mmx_xvid.c
*** idct_mmx_xvid.c 2006/01/18 01:20:25 1.1
--- idct_mmx_xvid.c 2006/01/18 17:06:53
***************
*** 486,491 ****
--- 486,497 ----
// Code
//=============================================================================
+
+ /* prototypes */
+ void ff_idct_xvid_mmx(short *);
+ void ff_idct_xvid_mmx2(short *);
+
+
//-----------------------------------------------------------------------------
// void idct_mmx(uint16_t block[64]);
//-----------------------------------------------------------------------------
Diffs for file: libavcodec/i386/vp3dsp_mmx.c
===================================================================
RCS file: RCS/vp3dsp_mmx.c,v
retrieving revision 1.1
diff -u -c -r1.1 vp3dsp_mmx.c
*** vp3dsp_mmx.c 2006/01/18 01:17:34 1.1
--- vp3dsp_mmx.c 2006/01/18 17:07:32
***************
*** 257,262 ****
--- 257,268 ----
movq_r2m(r2, *I(2)); \
}
+
+ /* prototypes */
+ void ff_vp3_dsp_init_mmx(void);
+ void ff_vp3_idct_mmx(int16_t *);
+
+
void ff_vp3_dsp_init_mmx(void)
{
int j = 16;
Diffs for file: libavcodec/i386/vp3dsp_sse2.c
===================================================================
RCS file: RCS/vp3dsp_sse2.c,v
retrieving revision 1.1
diff -u -c -r1.1 vp3dsp_sse2.c
*** vp3dsp_sse2.c 2006/01/18 01:19:25 1.1
--- vp3dsp_sse2.c 2006/01/18 17:05:03
***************
*** 796,801 ****
--- 796,805 ----
} /* end of SSE2_Dequantize Macro */
+ /* prototypes */
+ void ff_vp3_idct_sse2(int16_t *);
+
+
void ff_vp3_idct_sse2(int16_t *input_data)
{
unsigned char *input_bytes = (unsigned char *)input_data;
Diffs for file: libavcodec/liba52/crc.c
===================================================================
RCS file: RCS/crc.c,v
retrieving revision 1.1
diff -u -c -r1.1 crc.c
*** crc.c 2006/01/18 17:41:51 1.1
--- crc.c 2006/01/18 17:42:38
***************
*** 61,66 ****
--- 61,71 ----
0x8213,0x0216,0x021c,0x8219,0x0208,0x820d,0x8207,0x0202
};
+
+ /* prototypes */
+ uint16_t a52_crc16_block(uint8_t *, uint32_t);
+
+
uint16_t a52_crc16_block(uint8_t *data,uint32_t num_bytes)
{
uint32_t i;
Diffs for file: libavcodec/liba52/resample.c
===================================================================
RCS file: RCS/resample.c,v
retrieving revision 1.1
diff -u -c -r1.1 resample.c
*** resample.c 2006/01/18 17:42:54 1.1
--- resample.c 2006/01/18 17:43:45
***************
*** 17,22 ****
--- 17,27 ----
#include "resample_mmx.c"
#endif
+
+ /* prototypes */
+ void* a52_resample_init(uint32_t, int, int);
+
+
void* a52_resample_init(uint32_t mm_accel,int flags,int chans){
void* tmp;
Diffs for file: libavcodec/alac.c
===================================================================
RCS file: RCS/alac.c,v
retrieving revision 1.1
diff -u -c -r1.1 alac.c
*** alac.c 2006/01/18 00:40:35 1.1
--- alac.c 2006/01/18 17:07:58
***************
*** 84,89 ****
--- 84,96 ----
alac->outputsamples_buffer_b = av_malloc(alac->setinfo_max_samples_per_frame * 4);
}
+
+ /* prototypes */
+ void alac_set_info(ALACContext *);
+ void bastardized_rice_decompress(ALACContext *, int32_t *, int, int, int, int, int, int);
+ void deinterlace_16(int32_t *, int32_t *, int16_t *, int, int, uint8_t, uint8_t);
+
+
void alac_set_info(ALACContext *alac)
{
unsigned char *ptr = alac->avctx->extradata;
Diffs for file: libavcodec/dvdsub.c
===================================================================
RCS file: RCS/dvdsub.c,v
retrieving revision 1.1
diff -u -c -r1.1 dvdsub.c
*** dvdsub.c 2006/01/18 00:45:26 1.1
--- dvdsub.c 2006/01/18 17:08:21
***************
*** 23,28 ****
--- 23,34 ----
typedef struct DVDSubContext {
} DVDSubContext;
+
+ /* prototypes */
+ uint16_t getbe16(const uint8_t *);
+ int get_nibble(const uint8_t *, int);
+
+
static int dvdsub_init_decoder(AVCodecContext *avctx)
{
return 0;
Diffs for file: libavcodec/flicvideo.c
===================================================================
RCS file: RCS/flicvideo.c,v
retrieving revision 1.1
diff -u -c -r1.1 flicvideo.c
*** flicvideo.c 2006/01/18 00:47:36 1.1
--- flicvideo.c 2006/01/18 17:08:40
***************
*** 76,81 ****
--- 76,86 ----
int fli_type; /* either 0xAF11 or 0xAF12, affects palette resolution */
} FlicDecodeContext;
+
+ /* prototypes */
+ int flic_decode_frame_15_16BPP(AVCodecContext *, void *, int *, uint8_t *, int);
+
+
static int flic_decode_init(AVCodecContext *avctx)
{
FlicDecodeContext *s = (FlicDecodeContext *)avctx->priv_data;
Diffs for file: libavcodec/h261.c
===================================================================
RCS file: RCS/h261.c,v
retrieving revision 1.1
diff -u -c -r1.1 h261.c
*** h261.c 2006/01/18 00:50:21 1.1
--- h261.c 2006/01/18 17:08:55
***************
*** 56,61 ****
--- 56,66 ----
int gob_start_code_skipped; // 1 if gob start code is already read before gob header is read
}H261Context;
+
+ /* prototypes */
+ int h261_decode_picture_header(H261Context *);
+
+
void ff_h261_loop_filter(MpegEncContext *s){
H261Context * h= (H261Context*)s;
const int linesize = s->linesize;
Diffs for file: libavcodec/h264.c
===================================================================
RCS file: RCS/h264.c,v
retrieving revision 1.1
diff -u -c -r1.1 h264.c
*** h264.c 2006/01/18 03:58:51 1.1
--- h264.c 2006/01/18 17:09:13
***************
*** 385,390 ****
--- 385,395 ----
#endif
}
+
+ /* prototypes */
+ void inline compute_mb_neighboors(H264Context *);
+
+
/**
* fill a rectangle.
* @param h height of the rectangle, should be a constant
Diffs for file: libavcodec/mem.c
===================================================================
RCS file: RCS/mem.c,v
retrieving revision 1.1
diff -u -c -r1.1 mem.c
*** mem.c 2006/01/18 00:27:51 1.1
--- mem.c 2006/01/18 00:28:39
***************
*** 46,52 ****
{
void *ptr;
#ifdef MEMALIGN_HACK
! int diff;
#endif
/* lets disallow possible ambiguous cases */
--- 46,52 ----
{
void *ptr;
#ifdef MEMALIGN_HACK
! long diff;
#endif
/* lets disallow possible ambiguous cases */
***************
*** 55,61 ****
#ifdef MEMALIGN_HACK
ptr = malloc(size+16+1);
! diff= ((-(int)ptr - 1)&15) + 1;
ptr += diff;
((char*)ptr)[-1]= diff;
#elif defined (HAVE_MEMALIGN)
--- 55,61 ----
#ifdef MEMALIGN_HACK
ptr = malloc(size+16+1);
! diff= ((-(long)ptr - 1)&15) + 1;
ptr += diff;
((char*)ptr)[-1]= diff;
#elif defined (HAVE_MEMALIGN)
Diffs for file: libavcodec/qdm2.c
===================================================================
RCS file: RCS/qdm2.c,v
retrieving revision 1.1
diff -u -c -r1.1 qdm2.c
*** qdm2.c 2006/01/18 00:52:07 1.1
--- qdm2.c 2006/01/18 17:10:04
***************
*** 230,236 ****
static MPA_INT mpa_window[512] __attribute__((aligned(16)));
! static void softclip_table_init() {
int i;
double dfl = SOFTCLIP_THRESHOLD - 32767;
float delta = 1.0 / -dfl;
--- 230,244 ----
static MPA_INT mpa_window[512] __attribute__((aligned(16)));
! /* prototypes */
! void fix_coding_method_array (int, int, sb_int8_array);
! void qdm2_init(QDM2Context *);
! static int qdm2_decode_init(AVCodecContext *);
! static void qdm2_decode_sub_packet_header (GetBitContext *, QDM2SubPacket *);
! void qdm2_decode (QDM2Context *, uint8_t *, int16_t *);
!
!
! static void softclip_table_init(void) {
int i;
double dfl = SOFTCLIP_THRESHOLD - 32767;
float delta = 1.0 / -dfl;
***************
*** 240,246 ****
// random generated table
! static void rnd_table_init() {
int i,j;
uint32_t ldw,hdw;
uint64_t tmp64_1;
--- 248,254 ----
// random generated table
! static void rnd_table_init(void) {
int i,j;
uint32_t ldw,hdw;
uint64_t tmp64_1;
***************
*** 276,282 ****
}
! static void init_noise_samples() {
int i;
int random_seed = 0;
float delta = 1.0 / 16384.0;
--- 284,290 ----
}
! static void init_noise_samples(void) {
int i;
int random_seed = 0;
float delta = 1.0 / 16384.0;
***************
*** 287,293 ****
}
! static void qdm2_init_vlc()
{
init_vlc (&vlc_tab_level, 8, 24,
vlc_tab_level_huffbits, 1, 1,
--- 295,301 ----
}
! static void qdm2_init_vlc(void)
{
init_vlc (&vlc_tab_level, 8, 24,
vlc_tab_level_huffbits, 1, 1,
Diffs for file: libavcodec/resample2.c
===================================================================
RCS file: RCS/resample2.c,v
retrieving revision 1.1
diff -u -c -r1.1 resample2.c
*** resample2.c 2006/01/18 00:37:34 1.1
--- resample2.c 2006/01/18 16:46:12
***************
*** 28,49 ****
#include "common.h"
#include "dsputil.h"
! #if 1
! #define FILTER_SHIFT 15
!
! #define FELEM int16_t
! #define FELEM2 int32_t
! #define FELEM_MAX INT16_MAX
! #define FELEM_MIN INT16_MIN
! #else
! #define FILTER_SHIFT 22
!
! #define FELEM int32_t
! #define FELEM2 int64_t
! #define FELEM_MAX INT32_MAX
! #define FELEM_MIN INT32_MIN
! #endif
!
typedef struct AVResampleContext{
FELEM *filter_bank;
--- 28,36 ----
#include "common.h"
#include "dsputil.h"
! /* FELEM and FILTER_SHIFT defines previously here
! * have been moved to libavutil/common.h
! */
typedef struct AVResampleContext{
FELEM *filter_bank;
Diffs for file: libavcodec/snow.c
===================================================================
RCS file: RCS/snow.c,v
retrieving revision 1.1
diff -u -c -r1.1 snow.c
*** snow.c 2006/01/18 01:01:24 1.1
--- snow.c 2006/01/18 16:48:35
***************
*** 492,497 ****
--- 492,504 ----
#define slice_buffer_get_line(slice_buf, line_num) ((slice_buf)->line[line_num] ? (slice_buf)->line[line_num] : slice_buffer_load_line((slice_buf), (line_num)))
//#define slice_buffer_get_line(slice_buf, line_num) (slice_buffer_load_line((slice_buf), (line_num)))
+
+ /* prototypes */
+ void ff_spatial_idwt_buffered_init(dwt_compose_t *, slice_buffer *, int, int, int, int, int);
+ void ff_spatial_idwt_init(dwt_compose_t *, DWTELEM *, int, int, int, int, int);
+ void ff_spatial_idwt_slice(dwt_compose_t *, DWTELEM *, int, int, int, int, int, int);
+ void ff_spatial_idwt_buffered_slice(dwt_compose_t *, slice_buffer *, int, int, int, int, int, int);
+ void ff_spatial_idwt(DWTELEM *, int, int, int, int, int);
static void iterative_me(SnowContext *s);
static void slice_buffer_init(slice_buffer * buf, int line_count, int max_allocated_lines, int line_width, DWTELEM * base_buffer)
***************
*** 3625,3631 ****
return 0;
}
! static void init_qexp(){
int i;
double v=128;
--- 3632,3638 ----
return 0;
}
! static void init_qexp(void){
int i;
double v=128;
Diffs for file: libavcodec/utils.c
===================================================================
RCS file: RCS/utils.c,v
retrieving revision 1.1
diff -u -c -r1.1 utils.c
*** utils.c 2006/01/18 00:26:30 1.1
--- utils.c 2006/01/18 00:27:05
***************
*** 149,157 ****
* Call av_free_static automatically before it's too late
*/
! static void do_free() __attribute__ ((destructor));
! static void do_free()
{
av_free_static();
}
--- 149,157 ----
* Call av_free_static automatically before it's too late
*/
! static void do_free(void) __attribute__ ((destructor));
! static void do_free(void)
{
av_free_static();
}
Diffs for file: libavcodec/vc9.c
===================================================================
RCS file: RCS/vc9.c,v
retrieving revision 1.1
diff -u -c -r1.1 vc9.c
*** vc9.c 2006/01/18 01:08:49 1.1
--- vc9.c 2006/01/18 17:11:15
***************
*** 330,335 ****
--- 330,345 ----
#endif
} VC9Context;
+
+ /* prototypes */
+ int alloc_bitplane(BitPlane *, int , int);
+ void free_bitplane(BitPlane *);
+ int vc9_decode_block(VC9Context *, DCTELEM [64], int, int, int);
+ int vc9_decode_i_mb(VC9Context *, DCTELEM [6][64]);
+ int vc9_decode_p_mb(VC9Context *, DCTELEM [6][64]);
+ int vc9_decode_b_mb(VC9Context *, DCTELEM [6][64]);
+
+
/**
* Get unary code of limited length
* @fixme FIXME Slow and ugly
Diffs for file: libavcodec/vorbis.c
===================================================================
RCS file: RCS/vorbis.c,v
retrieving revision 1.1
diff -u -c -r1.1 vorbis.c
*** vorbis.c 2006/01/18 01:13:19 1.1
--- vorbis.c 2006/01/18 17:11:36
***************
*** 41,46 ****
--- 41,51 ----
#undef NDEBUG
#include <assert.h>
+
+ /* prototypes */
+ unsigned int get_bits_long_le(GetBitContext *, int);
+
+
/* Helper functions */
/**
Diffs for file: libavformat/avienc.c
===================================================================
RCS file: RCS/avienc.c,v
retrieving revision 1.1
diff -u -c -r1.1 avienc.c
*** avienc.c 2006/01/18 01:58:27 1.1
--- avienc.c 2006/01/18 17:11:54
***************
*** 48,53 ****
--- 48,58 ----
AVIIndex indexes[MAX_STREAMS];
} AVIContext;
+
+ /* prototypes */
+ void ff_parse_specific_params(AVCodecContext *, int *, int *, int *);
+
+
static inline AVIIentry* avi_get_ientry(AVIIndex* idx, int ent_id)
{
int cl = ent_id / AVI_INDEX_CLUSTER_SIZE;
Diffs for file: libavformat/gif.c
===================================================================
RCS file: RCS/gif.c,v
retrieving revision 1.1
diff -u -c -r1.1 gif.c
*** gif.c 2006/01/18 01:59:48 1.1
--- gif.c 2006/01/18 17:12:11
***************
*** 99,104 ****
--- 99,110 ----
{ 0xff, 0xff, 0x00 }, { 0xff, 0xff, 0x33 }, { 0xff, 0xff, 0x66 }, { 0xff, 0xff, 0x99 }, { 0xff, 0xff, 0xcc }, { 0xff, 0xff, 0xff },
};
+
+ /* prototypes */
+ static int gif_write_header(AVFormatContext *);
+ int gif_write(ByteIOContext *, AVImageInfo *);
+
+
/* The GIF format uses reversed order for bitstreams... */
/* at least they don't use PDP_ENDIAN :) */
/* so we 'extend' PutBitContext. hmmm, OOP :) */
Diffs for file: libavformat/movenc.c
===================================================================
RCS file: RCS/movenc.c,v
retrieving revision 1.1
diff -u -c -r1.1 movenc.c
*** movenc.c 2006/01/18 02:01:31 1.1
--- movenc.c 2006/01/18 16:51:43
***************
*** 71,76 ****
--- 71,80 ----
MOVTrack tracks[MAX_STREAMS];
} MOVContext;
+
+ /* prototypes */
+ int mov_write_mdat_tag(ByteIOContext *, MOVContext*);
+ int mov_write_ftyp_tag(ByteIOContext *, AVFormatContext *);
static int mov_write_esds_tag(ByteIOContext *pb, MOVTrack* track);
/* output language code from iso639 language name */
Diffs for file: libavformat/mpegts.c
===================================================================
RCS file: RCS/mpegts.c,v
retrieving revision 1.1
diff -u -c -r1.1 mpegts.c
*** mpegts.c 2006/01/18 01:47:39 1.1
--- mpegts.c 2006/01/18 16:52:34
***************
*** 114,119 ****
--- 114,130 ----
MpegTSFilter *pids[NB_PID_MAX];
};
+
+ /* prototypes */
+ MpegTSFilter *mpegts_open_section_filter(MpegTSContext *, unsigned int, SectionCallback *, void *, int);
+ MpegTSFilter *mpegts_open_pes_filter(MpegTSContext *, unsigned int, PESCallback *, void *);
+ void mpegts_close_filter(MpegTSContext *, MpegTSFilter *);
+ void mpegts_set_service(MpegTSContext *, int, SetServiceCallback *, void *);
+ void mpegts_scan_sdt(MpegTSContext *);
+ void mpegts_scan_pat(MpegTSContext *);
+ void set_service_cb(void *, int);
+
+
static void write_section_data(AVFormatContext *s, MpegTSFilter *tss1,
const uint8_t *buf, int buf_size, int is_start)
{
Diffs for file: libavformat/mpegtsenc.c
===================================================================
RCS file: RCS/mpegtsenc.c,v
retrieving revision 1.1
diff -u -c -r1.1 mpegtsenc.c
*** mpegtsenc.c 2006/01/18 01:54:59 1.1
--- mpegtsenc.c 2006/01/18 16:53:00
***************
*** 89,94 ****
--- 89,100 ----
void *opaque;
} MpegTSSection;
+
+ /* prototypes */
+ void mpegts_write_section(MpegTSSection *, uint8_t *, int);
+ int mpegts_write_section1(MpegTSSection *, int, int, int, int, int, uint8_t *, int);
+
+
/* NOTE: 4 bytes must be left at the end for the crc32 */
void mpegts_write_section(MpegTSSection *s, uint8_t *buf, int len)
{
Diffs for file: libavutil/common.h
===================================================================
RCS file: RCS/common.h,v
retrieving revision 1.1
diff -u -c -r1.1 common.h
*** common.h 2006/01/18 00:22:47 1.1
--- common.h 2006/01/18 16:44:53
***************
*** 602,605 ****
--- 602,636 ----
#endif /* HAVE_AV_CONFIG_H */
+
+ /* moved from libavcodec/resample2.c
+ * needed here for av_build_filter() prototype below
+ */
+ #if 1
+ #define FILTER_SHIFT 15
+
+ #define FELEM int16_t
+ #define FELEM2 int32_t
+ #define FELEM_MAX INT16_MAX
+ #define FELEM_MIN INT16_MIN
+ #else
+ #define FILTER_SHIFT 22
+
+ #define FELEM int32_t
+ #define FELEM2 int64_t
+ #define FELEM_MAX INT32_MAX
+ #define FELEM_MIN INT32_MIN
+ #endif
+
+
+ /* prototypes */
+ double av_int2dbl(int64_t);
+ float av_int2flt(int32_t);
+ int64_t av_dbl2int(double);
+ int32_t av_flt2int(float);
+ double bessel(double);
+ void av_build_filter(FELEM *, double, int, int, int, int);
+ void ff_spatial_dwt(int *, int, int, int, int, int);
+ void parse_arg_file(const char *);
+
#endif /* COMMON_H */
Diffs for file: vhook/drawtext.c
===================================================================
RCS file: RCS/drawtext.c,v
retrieving revision 1.1
diff -u -c -r1.1 drawtext.c
*** drawtext.c 2006/01/18 02:17:30 1.1
--- drawtext.c 2006/01/18 16:53:37
***************
*** 109,114 ****
--- 109,120 ----
} ContextInfo;
+ /* prototypes */
+ int ParseColor(char *, unsigned char [3]);
+ inline void draw_glyph(AVPicture *, FT_Bitmap *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned char[3], unsigned char [3], int);
+ inline void draw_box(AVPicture *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned char [3]);
+
+
void Release(void *ctx)
{
if (ctx)
Diffs for file: vhook/ppm.c
===================================================================
RCS file: RCS/ppm.c,v
retrieving revision 1.1
diff -u -c -r1.1 ppm.c
*** ppm.c 2006/01/18 02:13:05 1.1
--- ppm.c 2006/01/18 16:54:04
***************
*** 37,42 ****
--- 37,52 ----
}
rwpipe;
+
+ /* prototypes */
+ rwpipe *rwpipe_open( int, char *[] );
+ FILE *rwpipe_reader( rwpipe * );
+ FILE *rwpipe_writer( rwpipe * );
+ int rwpipe_read_number( rwpipe * );
+ int rwpipe_read_ppm_header( rwpipe *, int *, int * );
+ void rwpipe_close( rwpipe * );
+
+
/** Create a bidirectional pipe for the given command.
*/
Diffs for file: ./ffmpeg.c
===================================================================
RCS file: RCS/ffmpeg.c,v
retrieving revision 1.1
diff -u -c -r1.1 ffmpeg.c
*** ffmpeg.c 2006/01/18 02:03:57 1.1
--- ffmpeg.c 2006/01/18 16:55:04
***************
*** 313,318 ****
--- 313,325 ----
/* init terminal so that we can grab keys */
static struct termios oldtty;
+
+ /* prototypes */
+ void parse_matrix_coeffs(uint16_t *, const char *);
+ void opt_inter_matrix(const char *);
+ void opt_intra_matrix(const char *);
+
+
static void term_exit(void)
{
tcsetattr (0, TCSANOW, &oldtty);
Diffs for file: ./output_example.c
===================================================================
RCS file: RCS/output_example.c,v
retrieving revision 1.1
diff -u -c -r1.1 output_example.c
*** output_example.c 2006/01/18 02:07:14 1.1
--- output_example.c 2006/01/18 16:57:27
***************
*** 48,53 ****
--- 48,68 ----
int audio_outbuf_size;
int audio_input_frame_size;
+
+ /* prototypes */
+ AVStream *add_audio_stream(AVFormatContext *, int);
+ void open_audio(AVFormatContext *, AVStream *);
+ void get_audio_frame(int16_t *, int, int);
+ void write_audio_frame(AVFormatContext *, AVStream *);
+ void close_audio(AVFormatContext *, AVStream *);
+ AVStream *add_video_stream(AVFormatContext *, int);
+ AVFrame *alloc_picture(int, int, int);
+ void open_video(AVFormatContext *, AVStream *);
+ void fill_yuv_image(AVFrame *, int, int, int);
+ void write_video_frame(AVFormatContext *, AVStream *);
+ void close_video(AVFormatContext *, AVStream *);
+
+
/*
* add an audio output stream
*/
More information about the ffmpeg-devel
mailing list