aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-09-24 22:37:24 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-09-24 22:39:52 +0200
commiteae3cf06a5410cf6d06235de4ceea28e33e53be3 (patch)
tree126512350cc96249cd1d157969a87a0018f6ab53
parent0f2297a9b958b8598b17f139e7ec2d7e593a0a7c (diff)
parent2b4e49d4281690db67073ba644ad2ffc17767cdf (diff)
downloadffmpeg-eae3cf06a5410cf6d06235de4ceea28e33e53be3.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: flvdec: Fix invalid pointer deferences when parsing index configure: disable hardware capabilities ELF section with suncc on Solaris x86 Use explicit struct initializers for AVCodec declarations. Use explicit struct initializers for AVOutputFormat/AVInputFormat declarations. adpcmenc: Set bits_per_coded_sample adpcmenc: fix QT IMA ADPCM encoder adpcmdec: Fix QT IMA ADPCM decoder permit decoding of multichannel ADPCM_EA_XAS Fix input buffer size check in adpcm_ea decoder. fft: avoid a signed overflow mpegps: Handle buffer exhaustion when reading packets. Conflicts: libavcodec/adpcm.c libavcodec/adpcmenc.c libavdevice/alsa-audio-enc.c libavformat/flvdec.c libavformat/mpeg.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rwxr-xr-xconfigure6
-rw-r--r--libavcodec/adpcm.c32
-rw-r--r--libavcodec/adpcmenc.c25
-rw-r--r--libavcodec/dpcm.c20
-rw-r--r--libavcodec/jpeglsenc.c17
-rw-r--r--libavcodec/libopenjpeg.c23
-rw-r--r--libavcodec/libvorbis.c24
-rw-r--r--libavcodec/ljpegenc.c16
-rw-r--r--libavcodec/mpegaudiodec.c114
-rw-r--r--libavcodec/mpegaudiodec_float.c114
-rw-r--r--libavcodec/ra144dec.c19
-rw-r--r--libavcodec/ra144enc.c19
-rw-r--r--libavcodec/ra288.c19
-rw-r--r--libavcodec/roqvideoenc.c21
-rw-r--r--libavcodec/twinvq.c20
-rw-r--r--libavcodec/utils.c2
-rw-r--r--libavcodec/wmadec.c44
-rw-r--r--libavcodec/wmaenc.c42
-rw-r--r--libavcodec/x86/fft_3dn2.c4
-rw-r--r--libavcodec/x86/fft_sse.c4
-rw-r--r--libavdevice/alsa-audio-dec.c17
-rw-r--r--libavdevice/alsa-audio-enc.c20
-rw-r--r--libavdevice/bktr.c17
-rw-r--r--libavdevice/jack_audio.c17
-rw-r--r--libavdevice/oss_audio.c37
-rw-r--r--libavdevice/v4l.c17
-rw-r--r--libavdevice/v4l2.c17
-rw-r--r--libavdevice/vfwcap.c17
-rw-r--r--libavdevice/x11grab.c20
-rw-r--r--libavformat/daud.c21
-rw-r--r--libavformat/idroqenc.c19
-rw-r--r--libavformat/mpeg.c12
-rw-r--r--libavformat/pcmdec.c38
-rw-r--r--libavformat/pcmenc.c21
-rw-r--r--libavformat/txd.c14
35 files changed, 417 insertions, 472 deletions
diff --git a/configure b/configure
index e807209dda..7c1a54ed5a 100755
--- a/configure
+++ b/configure
@@ -2494,6 +2494,12 @@ case $target_os in
enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS"
network_extralibs="-lsocket -lnsl"
add_cppflags -D__EXTENSIONS__
+ # When using suncc to build, the Solaris linker will mark
+ # an executable with each instruction set encountered by
+ # the Solaris assembler. As our libraries contain their own
+ # guards for processor-specific code, instead suppress
+ # generation of the HWCAPS ELF section on Solaris x86 only.
+ enabled_all suncc x86 && echo "hwcap_1 = OVERRIDE;" > mapfile && add_ldflags -Wl,-M,mapfile
nm_opts='-P -g'
;;
netbsd)
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index 77e1ef63b2..3cb62e31ed 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -666,11 +666,17 @@ static int adpcm_decode_frame(AVCodecContext *avctx,
}
break;
case CODEC_ID_ADPCM_EA:
- if (buf_size < 12 || AV_RL32(src) > (buf_size - 12)/30*28) {
- src += buf_size;
- break;
+ /* Each EA ADPCM frame has a 12-byte header followed by 30-byte pieces,
+ each coding 28 stereo samples. */
+ if (buf_size < 12) {
+ av_log(avctx, AV_LOG_ERROR, "frame too small\n");
+ return AVERROR(EINVAL);
}
samples_in_chunk = AV_RL32(src);
+ if (samples_in_chunk / 28 > (buf_size - 12) / 30) {
+ av_log(avctx, AV_LOG_ERROR, "invalid frame\n");
+ return AVERROR(EINVAL);
+ }
src += 4;
current_left_sample = (int16_t)bytestream_get_le16(&src);
previous_left_sample = (int16_t)bytestream_get_le16(&src);
@@ -1080,17 +1086,15 @@ static int adpcm_decode_frame(AVCodecContext *avctx,
}
-#define ADPCM_DECODER(id,name,long_name_) \
-AVCodec ff_ ## name ## _decoder = { \
- #name, \
- AVMEDIA_TYPE_AUDIO, \
- id, \
- sizeof(ADPCMDecodeContext), \
- adpcm_decode_init, \
- NULL, \
- NULL, \
- adpcm_decode_frame, \
- .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
+#define ADPCM_DECODER(id_, name_, long_name_) \
+AVCodec ff_ ## name_ ## _decoder = { \
+ .name = #name_, \
+ .type = AVMEDIA_TYPE_AUDIO, \
+ .id = id_, \
+ .priv_data_size = sizeof(ADPCMDecodeContext), \
+ .init = adpcm_decode_init, \
+ .decode = adpcm_decode_frame, \
+ .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
}
/* Note: Do not forget to add new entries to the Makefile as well. */
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index c39bab8edb..14978f0218 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc.c
@@ -86,6 +86,8 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
FF_ALLOC_OR_GOTO(avctx, s->trellis_hash, 65536 * sizeof(*s->trellis_hash), error);
}
+ avctx->bits_per_coded_sample = av_get_bits_per_sample(avctx->codec->id);
+
switch(avctx->codec->id) {
case CODEC_ID_ADPCM_IMA_WAV:
avctx->frame_size = (BLKSIZE - 4 * avctx->channels) * 8 / (4 * avctx->channels) + 1; /* each 16 bits sample gives one nibble */
@@ -670,18 +672,17 @@ static int adpcm_encode_frame(AVCodecContext *avctx,
}
-#define ADPCM_ENCODER(id,name,long_name_) \
-AVCodec ff_ ## name ## _encoder = { \
- #name, \
- AVMEDIA_TYPE_AUDIO, \
- id, \
- sizeof(ADPCMEncodeContext), \
- adpcm_encode_init, \
- adpcm_encode_frame, \
- adpcm_encode_close, \
- NULL, \
- .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE}, \
- .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
+#define ADPCM_ENCODER(id_, name_, long_name_) \
+AVCodec ff_ ## name_ ## _encoder = { \
+ .name = #name_, \
+ .type = AVMEDIA_TYPE_AUDIO, \
+ .id = id_, \
+ .priv_data_size = sizeof(ADPCMEncodeContext), \
+ .init = adpcm_encode_init, \
+ .encode = adpcm_encode_frame, \
+ .close = adpcm_encode_close, \
+ .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE}, \
+ .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
}
ADPCM_ENCODER(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt, "ADPCM IMA QuickTime");
diff --git a/libavcodec/dpcm.c b/libavcodec/dpcm.c
index ee8eb6a722..d9c15246e9 100644
--- a/libavcodec/dpcm.c
+++ b/libavcodec/dpcm.c
@@ -298,17 +298,15 @@ static int dpcm_decode_frame(AVCodecContext *avctx,
return buf_size;
}
-#define DPCM_DECODER(id, name, long_name_) \
-AVCodec ff_ ## name ## _decoder = { \
- #name, \
- AVMEDIA_TYPE_AUDIO, \
- id, \
- sizeof(DPCMContext), \
- dpcm_decode_init, \
- NULL, \
- NULL, \
- dpcm_decode_frame, \
- .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
+#define DPCM_DECODER(id_, name_, long_name_) \
+AVCodec ff_ ## name_ ## _decoder = { \
+ .name = #name_, \
+ .type = AVMEDIA_TYPE_AUDIO, \
+ .id = id_, \
+ .priv_data_size = sizeof(DPCMContext), \
+ .init = dpcm_decode_init, \
+ .decode = dpcm_decode_frame, \
+ .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
}
DPCM_DECODER(CODEC_ID_INTERPLAY_DPCM, interplay_dpcm, "DPCM Interplay");
diff --git a/libavcodec/jpeglsenc.c b/libavcodec/jpeglsenc.c
index fef06815ac..06f365a223 100644
--- a/libavcodec/jpeglsenc.c
+++ b/libavcodec/jpeglsenc.c
@@ -383,13 +383,12 @@ static av_cold int encode_init_ls(AVCodecContext *ctx) {
}
AVCodec ff_jpegls_encoder = { //FIXME avoid MPV_* lossless JPEG should not need them
- "jpegls",
- AVMEDIA_TYPE_VIDEO,
- CODEC_ID_JPEGLS,
- sizeof(JpeglsContext),
- encode_init_ls,
- encode_picture_ls,
- NULL,
- .pix_fmts= (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_RGB24, PIX_FMT_GRAY8, PIX_FMT_GRAY16, PIX_FMT_NONE},
- .long_name= NULL_IF_CONFIG_SMALL("JPEG-LS"),
+ .name = "jpegls",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = CODEC_ID_JPEGLS,
+ .priv_data_size = sizeof(JpeglsContext),
+ .init = encode_init_ls,
+ .encode = encode_picture_ls,
+ .pix_fmts = (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_RGB24, PIX_FMT_GRAY8, PIX_FMT_GRAY16, PIX_FMT_NONE},
+ .long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"),
};
diff --git a/libavcodec/libopenjpeg.c b/libavcodec/libopenjpeg.c
index 67201a2594..b780303904 100644
--- a/libavcodec/libopenjpeg.c
+++ b/libavcodec/libopenjpeg.c
@@ -186,15 +186,14 @@ static av_cold int libopenjpeg_decode_close(AVCodecContext *avctx)
AVCodec ff_libopenjpeg_decoder = {
- "libopenjpeg",
- AVMEDIA_TYPE_VIDEO,
- CODEC_ID_JPEG2000,
- sizeof(LibOpenJPEGContext),
- libopenjpeg_decode_init,
- NULL,
- libopenjpeg_decode_close,
- libopenjpeg_decode_frame,
- CODEC_CAP_DR1,
- .max_lowres = 5,
- .long_name = NULL_IF_CONFIG_SMALL("OpenJPEG based JPEG 2000 decoder"),
-} ;
+ .name = "libopenjpeg",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = CODEC_ID_JPEG2000,
+ .priv_data_size = sizeof(LibOpenJPEGContext),
+ .init = libopenjpeg_decode_init,
+ .close = libopenjpeg_decode_close,
+ .decode = libopenjpeg_decode_frame,
+ .capabilities = CODEC_CAP_DR1,
+ .max_lowres = 5,
+ .long_name = NULL_IF_CONFIG_SMALL("OpenJPEG based JPEG 2000 decoder"),
+};
diff --git a/libavcodec/libvorbis.c b/libavcodec/libvorbis.c
index 4e05268439..daa6ac9b7f 100644
--- a/libavcodec/libvorbis.c
+++ b/libavcodec/libvorbis.c
@@ -274,15 +274,15 @@ static av_cold int oggvorbis_encode_close(AVCodecContext *avccontext) {
AVCodec ff_libvorbis_encoder = {
- "libvorbis",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_VORBIS,
- sizeof(OggVorbisContext),
- oggvorbis_encode_init,
- oggvorbis_encode_frame,
- oggvorbis_encode_close,
- .capabilities= CODEC_CAP_DELAY,
- .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
- .long_name= NULL_IF_CONFIG_SMALL("libvorbis Vorbis"),
- .priv_class= &class,
-} ;
+ .name = "libvorbis",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_VORBIS,
+ .priv_data_size = sizeof(OggVorbisContext),
+ .init = oggvorbis_encode_init,
+ .encode = oggvorbis_encode_frame,
+ .close = oggvorbis_encode_close,
+ .capabilities = CODEC_CAP_DELAY,
+ .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
+ .long_name = NULL_IF_CONFIG_SMALL("libvorbis Vorbis"),
+ .priv_class = &class,
+};
diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c
index e5d19fcaaa..f8178d5adb 100644
--- a/libavcodec/ljpegenc.c
+++ b/libavcodec/ljpegenc.c
@@ -187,12 +187,12 @@ static int encode_picture_lossless(AVCodecContext *avctx, unsigned char *buf, in
AVCodec ff_ljpeg_encoder = { //FIXME avoid MPV_* lossless JPEG should not need them
- "ljpeg",
- AVMEDIA_TYPE_VIDEO,
- CODEC_ID_LJPEG,
- sizeof(MpegEncContext),
- MPV_encode_init,
- encode_picture_lossless,
- MPV_encode_end,
- .long_name = NULL_IF_CONFIG_SMALL("Lossless JPEG"),
+ .name = "ljpeg",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = CODEC_ID_LJPEG,
+ .priv_data_size = sizeof(MpegEncContext),
+ .init = MPV_encode_init,
+ .encode = encode_picture_lossless,
+ .close = MPV_encode_end,
+ .long_name = NULL_IF_CONFIG_SMALL("Lossless JPEG"),
};
diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
index 9fbae0c316..7c98cde587 100644
--- a/libavcodec/mpegaudiodec.c
+++ b/libavcodec/mpegaudiodec.c
@@ -2050,82 +2050,68 @@ static int decode_frame_mp3on4(AVCodecContext * avctx,
#if !CONFIG_FLOAT
#if CONFIG_MP1_DECODER
-AVCodec ff_mp1_decoder =
-{
- "mp1",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP1,
- sizeof(MPADecodeContext),
- decode_init,
- NULL,
- NULL,
- decode_frame,
- CODEC_CAP_PARSE_ONLY,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("MP1 (MPEG audio layer 1)"),
+AVCodec ff_mp1_decoder = {
+ .name = "mp1",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP1,
+ .priv_data_size = sizeof(MPADecodeContext),
+ .init = decode_init,
+ .decode = decode_frame,
+ .capabilities = CODEC_CAP_PARSE_ONLY,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("MP1 (MPEG audio layer 1)"),
};
#endif
#if CONFIG_MP2_DECODER
-AVCodec ff_mp2_decoder =
-{
- "mp2",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP2,
- sizeof(MPADecodeContext),
- decode_init,
- NULL,
- NULL,
- decode_frame,
- CODEC_CAP_PARSE_ONLY,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
+AVCodec ff_mp2_decoder = {
+ .name = "mp2",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP2,
+ .priv_data_size = sizeof(MPADecodeContext),
+ .init = decode_init,
+ .decode = decode_frame,
+ .capabilities = CODEC_CAP_PARSE_ONLY,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
};
#endif
#if CONFIG_MP3_DECODER
-AVCodec ff_mp3_decoder =
-{
- "mp3",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP3,
- sizeof(MPADecodeContext),
- decode_init,
- NULL,
- NULL,
- decode_frame,
- CODEC_CAP_PARSE_ONLY,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),
+AVCodec ff_mp3_decoder = {
+ .name = "mp3",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP3,
+ .priv_data_size = sizeof(MPADecodeContext),
+ .init = decode_init,
+ .decode = decode_frame,
+ .capabilities = CODEC_CAP_PARSE_ONLY,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),
};
#endif
#if CONFIG_MP3ADU_DECODER
-AVCodec ff_mp3adu_decoder =
-{
- "mp3adu",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP3ADU,
- sizeof(MPADecodeContext),
- decode_init,
- NULL,
- NULL,
- decode_frame_adu,
- CODEC_CAP_PARSE_ONLY,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("ADU (Application Data Unit) MP3 (MPEG audio layer 3)"),
+AVCodec ff_mp3adu_decoder = {
+ .name = "mp3adu",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP3ADU,
+ .priv_data_size = sizeof(MPADecodeContext),
+ .init = decode_init,
+ .decode = decode_frame_adu,
+ .capabilities = CODEC_CAP_PARSE_ONLY,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("ADU (Application Data Unit) MP3 (MPEG audio layer 3)"),
};
#endif
#if CONFIG_MP3ON4_DECODER
-AVCodec ff_mp3on4_decoder =
-{
- "mp3on4",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP3ON4,
- sizeof(MP3On4DecodeContext),
- decode_init_mp3on4,
- NULL,
- decode_close_mp3on4,
- decode_frame_mp3on4,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("MP3onMP4"),
+AVCodec ff_mp3on4_decoder = {
+ .name = "mp3on4",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP3ON4,
+ .priv_data_size = sizeof(MP3On4DecodeContext),
+ .init = decode_init_mp3on4,
+ .close = decode_close_mp3on4,
+ .decode = decode_frame_mp3on4,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("MP3onMP4"),
};
#endif
#endif
diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c
index 44b38b66d9..2fde46a5cd 100644
--- a/libavcodec/mpegaudiodec_float.c
+++ b/libavcodec/mpegaudiodec_float.c
@@ -23,81 +23,67 @@
#include "mpegaudiodec.c"
#if CONFIG_MP1FLOAT_DECODER
-AVCodec ff_mp1float_decoder =
-{
- "mp1float",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP1,
- sizeof(MPADecodeContext),
- decode_init,
- NULL,
- .close = NULL,
- decode_frame,
- CODEC_CAP_PARSE_ONLY,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("MP1 (MPEG audio layer 1)"),
+AVCodec ff_mp1float_decoder = {
+ .name = "mp1float",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP1,
+ .priv_data_size = sizeof(MPADecodeContext),
+ .init = decode_init,
+ .decode = decode_frame,
+ .capabilities = CODEC_CAP_PARSE_ONLY,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("MP1 (MPEG audio layer 1)"),
};
#endif
#if CONFIG_MP2FLOAT_DECODER
-AVCodec ff_mp2float_decoder =
-{
- "mp2float",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP2,
- sizeof(MPADecodeContext),
- decode_init,
- NULL,
- .close = NULL,
- decode_frame,
- CODEC_CAP_PARSE_ONLY,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
+AVCodec ff_mp2float_decoder = {
+ .name = "mp2float",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP2,
+ .priv_data_size = sizeof(MPADecodeContext),
+ .init = decode_init,
+ .decode = decode_frame,
+ .capabilities = CODEC_CAP_PARSE_ONLY,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
};
#endif
#if CONFIG_MP3FLOAT_DECODER
-AVCodec ff_mp3float_decoder =
-{
- "mp3float",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP3,
- sizeof(MPADecodeContext),
- decode_init,
- NULL,
- .close = NULL,
- decode_frame,
- CODEC_CAP_PARSE_ONLY,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),
+AVCodec ff_mp3float_decoder = {
+ .name = "mp3float",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP3,
+ .priv_data_size = sizeof(MPADecodeContext),
+ .init = decode_init,
+ .decode = decode_frame,
+ .capabilities = CODEC_CAP_PARSE_ONLY,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),
};
#endif
#if CONFIG_MP3ADUFLOAT_DECODER
-AVCodec ff_mp3adufloat_decoder =
-{
- "mp3adufloat",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP3ADU,
- sizeof(MPADecodeContext),
- decode_init,
- NULL,
- .close = NULL,
- decode_frame_adu,
- CODEC_CAP_PARSE_ONLY,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("ADU (Application Data Unit) MP3 (MPEG audio layer 3)"),
+AVCodec ff_mp3adufloat_decoder = {
+ .name = "mp3adufloat",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP3ADU,
+ .priv_data_size = sizeof(MPADecodeContext),
+ .init = decode_init,
+ .decode = decode_frame_adu,
+ .capabilities = CODEC_CAP_PARSE_ONLY,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("ADU (Application Data Unit) MP3 (MPEG audio layer 3)"),
};
#endif
#if CONFIG_MP3ON4FLOAT_DECODER
-AVCodec ff_mp3on4float_decoder =
-{
- "mp3on4float",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MP3ON4,
- sizeof(MP3On4DecodeContext),
- decode_init_mp3on4,
- NULL,
- decode_close_mp3on4,
- decode_frame_mp3on4,
- .flush= flush,
- .long_name= NULL_IF_CONFIG_SMALL("MP3onMP4"),
+AVCodec ff_mp3on4float_decoder = {
+ .name = "mp3on4float",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MP3ON4,
+ .priv_data_size = sizeof(MP3On4DecodeContext),
+ .init = decode_init_mp3on4,
+ .close = decode_close_mp3on4,
+ .decode = decode_frame_mp3on4,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("MP3onMP4"),
};
#endif
diff --git a/libavcodec/ra144dec.c b/libavcodec/ra144dec.c
index 53f529d6b4..fffcf02de0 100644
--- a/libavcodec/ra144dec.c
+++ b/libavcodec/ra144dec.c
@@ -114,15 +114,12 @@ static int ra144_decode_frame(AVCodecContext * avctx, void *vdata,
return 20;
}
-AVCodec ff_ra_144_decoder =
-{
- "real_144",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_RA_144,
- sizeof(RA144Context),
- ra144_decode_init,
- NULL,
- NULL,
- ra144_decode_frame,
- .long_name = NULL_IF_CONFIG_SMALL("RealAudio 1.0 (14.4K)"),
+AVCodec ff_ra_144_decoder = {
+ .name = "real_144",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_RA_144,
+ .priv_data_size = sizeof(RA144Context),
+ .init = ra144_decode_init,
+ .decode = ra144_decode_frame,
+ .long_name = NULL_IF_CONFIG_SMALL("RealAudio 1.0 (14.4K)"),
};
diff --git a/libavcodec/ra144enc.c b/libavcodec/ra144enc.c
index 351ba9e871..5a64a5ec74 100644
--- a/libavcodec/ra144enc.c
+++ b/libavcodec/ra144enc.c
@@ -508,14 +508,13 @@ static int ra144_encode_frame(AVCodecContext *avctx, uint8_t *frame,
}
-AVCodec ff_ra_144_encoder =
-{
- "real_144",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_RA_144,
- sizeof(RA144Context),
- ra144_encode_init,
- ra144_encode_frame,
- ra144_encode_close,
- .long_name = NULL_IF_CONFIG_SMALL("RealAudio 1.0 (14.4K) encoder"),
+AVCodec ff_ra_144_encoder = {
+ .name = "real_144",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_RA_144,
+ .priv_data_size = sizeof(RA144Context),
+ .init = ra144_encode_init,
+ .encode = ra144_encode_frame,
+ .close = ra144_encode_close,
+ .long_name = NULL_IF_CONFIG_SMALL("RealAudio 1.0 (14.4K) encoder"),
};
diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c
index f2b97cca97..c2fba5a74c 100644
--- a/libavcodec/ra288.c
+++ b/libavcodec/ra288.c
@@ -203,15 +203,12 @@ static int ra288_decode_frame(AVCodecContext * avctx, void *data,
return avctx->block_align;
}
-AVCodec ff_ra_288_decoder =
-{
- "real_288",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_RA_288,
- sizeof(RA288Context),
- ra288_decode_init,
- NULL,
- NULL,
- ra288_decode_frame,
- .long_name = NULL_IF_CONFIG_SMALL("RealAudio 2.0 (28.8K)"),
+AVCodec ff_ra_288_decoder = {
+ .name = "real_288",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_RA_288,
+ .priv_data_size = sizeof(RA288Context),
+ .init = ra288_decode_init,
+ .decode = ra288_decode_frame,
+ .long_name = NULL_IF_CONFIG_SMALL("RealAudio 2.0 (28.8K)"),
};
diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c
index 9030affb31..88d6224eac 100644
--- a/libavcodec/roqvideoenc.c
+++ b/libavcodec/roqvideoenc.c
@@ -1065,16 +1065,15 @@ static int roq_encode_end(AVCodecContext *avctx)
return 0;
}
-AVCodec ff_roq_encoder =
-{
- "roqvideo",
- AVMEDIA_TYPE_VIDEO,
- CODEC_ID_ROQ,
- sizeof(RoqContext),
- roq_encode_init,
- roq_encode_frame,
- roq_encode_end,
+AVCodec ff_roq_encoder = {
+ .name = "roqvideo",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = CODEC_ID_ROQ,
+ .priv_data_size = sizeof(RoqContext),
+ .init = roq_encode_init,
+ .encode = roq_encode_frame,
+ .close = roq_encode_end,
.supported_framerates = (const AVRational[]){{30,1}, {0,0}},
- .pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV444P, PIX_FMT_NONE},
- .long_name = NULL_IF_CONFIG_SMALL("id RoQ video"),
+ .pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV444P, PIX_FMT_NONE},
+ .long_name = NULL_IF_CONFIG_SMALL("id RoQ video"),
};
diff --git a/libavcodec/twinvq.c b/libavcodec/twinvq.c
index e7aceebd5b..17c268dad1 100644
--- a/libavcodec/twinvq.c
+++ b/libavcodec/twinvq.c
@@ -1120,15 +1120,13 @@ static av_cold int twin_decode_close(AVCodecContext *avctx)
return 0;
}
-AVCodec ff_twinvq_decoder =
-{
- "twinvq",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_TWINVQ,
- sizeof(TwinContext),
- twin_decode_init,
- NULL,
- twin_decode_close,
- twin_decode_frame,
- .long_name = NULL_IF_CONFIG_SMALL("VQF TwinVQ"),
+AVCodec ff_twinvq_decoder = {
+ .name = "twinvq",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_TWINVQ,
+ .priv_data_size = sizeof(TwinContext),
+ .init = twin_decode_init,
+ .close = twin_decode_close,
+ .decode = twin_decode_frame,
+ .long_name = NULL_IF_CONFIG_SMALL("VQF TwinVQ"),
};
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index a7bf93db81..95fb65ad43 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1200,6 +1200,8 @@ int av_get_bits_per_sample(enum CodecID codec_id){
case CODEC_ID_ADPCM_SBPRO_4:
case CODEC_ID_ADPCM_CT:
case CODEC_ID_ADPCM_IMA_WAV:
+ case CODEC_ID_ADPCM_IMA_QT:
+ case CODEC_ID_ADPCM_SWF:
case CODEC_ID_ADPCM_MS:
case CODEC_ID_ADPCM_YAMAHA:
return 4;
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index 9eaf230b01..b4a4c800af 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -928,30 +928,26 @@ static av_cold void flush(AVCodecContext *avctx)
s->last_superframe_len= 0;
}
-AVCodec ff_wmav1_decoder =
-{
- "wmav1",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_WMAV1,
- sizeof(WMACodecContext),
- wma_decode_init,
- NULL,
- ff_wma_end,
- wma_decode_superframe,
- .flush=flush,
- .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 1"),
+AVCodec ff_wmav1_decoder = {
+ .name = "wmav1",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_WMAV1,
+ .priv_data_size = sizeof(WMACodecContext),
+ .init = wma_decode_init,
+ .close = ff_wma_end,
+ .decode = wma_decode_superframe,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 1"),
};
-AVCodec ff_wmav2_decoder =
-{
- "wmav2",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_WMAV2,
- sizeof(WMACodecContext),
- wma_decode_init,
- NULL,
- ff_wma_end,
- wma_decode_superframe,
- .flush=flush,
- .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 2"),
+AVCodec ff_wmav2_decoder = {
+ .name = "wmav2",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_WMAV2,
+ .priv_data_size = sizeof(WMACodecContext),
+ .init = wma_decode_init,
+ .close = ff_wma_end,
+ .decode = wma_decode_superframe,
+ .flush = flush,
+ .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 2"),
};
diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c
index 0bafe1a64d..ae41054f1c 100644
--- a/libavcodec/wmaenc.c
+++ b/libavcodec/wmaenc.c
@@ -390,28 +390,26 @@ static int encode_superframe(AVCodecContext *avctx,
return put_bits_ptr(&s->pb) - s->pb.buf;
}
-AVCodec ff_wmav1_encoder =
-{
- "wmav1",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_WMAV1,
- sizeof(WMACodecContext),
- encode_init,
- encode_superframe,
- ff_wma_end,
- .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
- .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 1"),
+AVCodec ff_wmav1_encoder = {
+ .name = "wmav1",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_WMAV1,
+ .priv_data_size = sizeof(WMACodecContext),
+ .init = encode_init,
+ .encode = encode_superframe,
+ .close = ff_wma_end,
+ .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
+ .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 1"),
};
-AVCodec ff_wmav2_encoder =
-{
- "wmav2",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_WMAV2,
- sizeof(WMACodecContext),
- encode_init,
- encode_superframe,
- ff_wma_end,
- .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
- .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 2"),
+AVCodec ff_wmav2_encoder = {
+ .name = "wmav2",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_WMAV2,
+ .priv_data_size = sizeof(WMACodecContext),
+ .init = encode_init,
+ .encode = encode_superframe,
+ .close = ff_wma_end,
+ .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
+ .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 2"),
};
diff --git a/libavcodec/x86/fft_3dn2.c b/libavcodec/x86/fft_3dn2.c
index 2abb8cfbd7..7a6cac14c4 100644
--- a/libavcodec/x86/fft_3dn2.c
+++ b/libavcodec/x86/fft_3dn2.c
@@ -23,7 +23,7 @@
#include "libavcodec/dsputil.h"
#include "fft.h"
-DECLARE_ALIGNED(8, static const int, m1m1)[2] = { 1<<31, 1<<31 };
+DECLARE_ALIGNED(8, static const unsigned int, m1m1)[2] = { 1U<<31, 1U<<31 };
#ifdef EMULATE_3DNOWEXT
#define PSWAPD(s,d)\
@@ -70,7 +70,7 @@ void ff_imdct_half_3dn2(FFTContext *s, FFTSample *output, const FFTSample *input
in1 = input;
in2 = input + n2 - 1;
#ifdef EMULATE_3DNOWEXT
- __asm__ volatile("movd %0, %%mm7" ::"r"(1<<31));
+ __asm__ volatile("movd %0, %%mm7" ::"r"(1U<<31));
#endif
for(k = 0; k < n4; k++) {
// FIXME a single block is faster, but gcc 2.95 and 3.4.x on 32bit can't compile it
diff --git a/libavcodec/x86/fft_sse.c b/libavcodec/x86/fft_sse.c
index 26b933c810..43f19fff3b 100644
--- a/libavcodec/x86/fft_sse.c
+++ b/libavcodec/x86/fft_sse.c
@@ -24,8 +24,8 @@
#include "fft.h"
#include "config.h"
-DECLARE_ASM_CONST(16, int, ff_m1m1m1m1)[4] =
- { 1 << 31, 1 << 31, 1 << 31, 1 << 31 };
+DECLARE_ASM_CONST(16, unsigned int, ff_m1m1m1m1)[4] =
+ { 1U << 31, 1U << 31, 1U << 31, 1U << 31 };
void ff_fft_dispatch_sse(FFTComplex *z, int nbits);
void ff_fft_dispatch_interleave_sse(FFTComplex *z, int nbits);
diff --git a/libavdevice/alsa-audio-dec.c b/libavdevice/alsa-audio-dec.c
index 11c6e92928..ac3840acbc 100644
--- a/libavdevice/alsa-audio-dec.c
+++ b/libavdevice/alsa-audio-dec.c
@@ -145,13 +145,12 @@ static const AVClass alsa_demuxer_class = {
};
AVInputFormat ff_alsa_demuxer = {
- "alsa",
- NULL_IF_CONFIG_SMALL("ALSA audio input"),
- sizeof(AlsaData),
- NULL,
- audio_read_header,
- audio_read_packet,
- ff_alsa_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &alsa_demuxer_class,
+ .name = "alsa",
+ .long_name = NULL_IF_CONFIG_SMALL("ALSA audio input"),
+ .priv_data_size = sizeof(AlsaData),
+ .read_header = audio_read_header,
+ .read_packet = audio_read_packet,
+ .read_close = ff_alsa_close,
+ .flags = AVFMT_NOFILE,
+ .priv_class = &alsa_demuxer_class,
};
diff --git a/libavdevice/alsa-audio-enc.c b/libavdevice/alsa-audio-enc.c
index 0da22bb070..446d7a24e5 100644
--- a/libavdevice/alsa-audio-enc.c
+++ b/libavdevice/alsa-audio-enc.c
@@ -114,16 +114,14 @@ audio_get_output_timestamp(AVFormatContext *s1, int stream,
}
AVOutputFormat ff_alsa_muxer = {
- "alsa",
- NULL_IF_CONFIG_SMALL("ALSA audio output"),
- "",
- "",
- sizeof(AlsaData),
- DEFAULT_CODEC_ID,
- CODEC_ID_NONE,
- audio_write_header,
- audio_write_packet,
- ff_alsa_close,
+ .name = "alsa",
+ .long_name = NULL_IF_CONFIG_SMALL("ALSA audio output"),
+ .priv_data_size = sizeof(AlsaData),
+ .audio_codec = DEFAULT_CODEC_ID,
+ .video_codec = CODEC_ID_NONE,
+ .write_header = audio_write_header,
+ .write_packet = audio_write_packet,
+ .write_trailer = ff_alsa_close,
.get_output_timestamp = audio_get_output_timestamp,
- .flags = AVFMT_NOFILE,
+ .flags = AVFMT_NOFILE,
};
diff --git a/libavdevice/bktr.c b/libavdevice/bktr.c
index 2792fcf07f..3de3c8b653 100644
--- a/libavdevice/bktr.c
+++ b/libavdevice/bktr.c
@@ -345,13 +345,12 @@ static const AVClass bktr_class = {
};
AVInputFormat ff_bktr_demuxer = {
- "bktr",
- NULL_IF_CONFIG_SMALL("video grab"),
- sizeof(VideoData),
- NULL,
- grab_read_header,
- grab_read_packet,
- grab_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &bktr_class,
+ .name = "bktr",
+ .long_name = NULL_IF_CONFIG_SMALL("video grab"),
+ .priv_data_size = sizeof(VideoData),
+ .read_header = grab_read_header,
+ .read_packet = grab_read_packet,
+ .read_close = grab_read_close,
+ .flags = AVFMT_NOFILE,
+ .priv_class = &bktr_class,
};
diff --git a/libavdevice/jack_audio.c b/libavdevice/jack_audio.c
index bdf5eb8f9e..9a6b4865bd 100644
--- a/libavdevice/jack_audio.c
+++ b/libavdevice/jack_audio.c
@@ -326,13 +326,12 @@ static const AVClass jack_indev_class = {
};
AVInputFormat ff_jack_demuxer = {
- "jack",
- NULL_IF_CONFIG_SMALL("JACK Audio Connection Kit"),
- sizeof(JackData),
- NULL,
- audio_read_header,
- audio_read_packet,
- audio_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &jack_indev_class,
+ .name = "jack",
+ .long_name = NULL_IF_CONFIG_SMALL("JACK Audio Connection Kit"),
+ .priv_data_size = sizeof(JackData),
+ .read_header = audio_read_header,
+ .read_packet = audio_read_packet,
+ .read_close = audio_read_close,
+ .flags = AVFMT_NOFILE,
+ .priv_class = &jack_indev_class,
};
diff --git a/libavdevice/oss_audio.c b/libavdevice/oss_audio.c
index 73cb575bb9..ab666e8703 100644
--- a/libavdevice/oss_audio.c
+++ b/libavdevice/oss_audio.c
@@ -295,33 +295,30 @@ static const AVClass oss_demuxer_class = {
};
AVInputFormat ff_oss_demuxer = {
- "oss",
- NULL_IF_CONFIG_SMALL("Open Sound System capture"),
- sizeof(AudioData),
- NULL,
- audio_read_header,
- audio_read_packet,
- audio_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &oss_demuxer_class,
+ .name = "oss",
+ .long_name = NULL_IF_CONFIG_SMALL("Open Sound System capture"),
+ .priv_data_size = sizeof(AudioData),
+ .read_header = audio_read_header,
+ .read_packet = audio_read_packet,
+ .read_close = audio_read_close,
+ .flags = AVFMT_NOFILE,
+ .priv_class = &oss_demuxer_class,
};
#endif
#if CONFIG_OSS_OUTDEV
AVOutputFormat ff_oss_muxer = {
- "oss",
- NULL_IF_CONFIG_SMALL("Open Sound System playback"),
- "",
- "",
- sizeof(AudioData),
+ .name = "oss",
+ .long_name = NULL_IF_CONFIG_SMALL("Open Sound System playback"),
+ .priv_data_size = sizeof(AudioData),
/* XXX: we make the assumption that the soundcard accepts this format */
/* XXX: find better solution with "preinit" method, needed also in
other formats */
- AV_NE(CODEC_ID_PCM_S16BE, CODEC_ID_PCM_S16LE),
- CODEC_ID_NONE,
- audio_write_header,
- audio_write_packet,
- audio_write_trailer,
- .flags = AVFMT_NOFILE,
+ .audio_codec = AV_NE(CODEC_ID_PCM_S16BE, CODEC_ID_PCM_S16LE),
+ .video_codec = CODEC_ID_NONE,
+ .write_header = audio_write_header,
+ .write_packet = audio_write_packet,
+ .write_trailer = audio_write_trailer,
+ .flags = AVFMT_NOFILE,
};
#endif
diff --git a/libavdevice/v4l.c b/libavdevice/v4l.c
index 39504741d1..f110f4439e 100644
--- a/libavdevice/v4l.c
+++ b/libavdevice/v4l.c
@@ -354,14 +354,13 @@ static const AVClass v4l_class = {
};
AVInputFormat ff_v4l_demuxer = {
- "video4linux",
- NULL_IF_CONFIG_SMALL("Video4Linux device grab"),
- sizeof(VideoData),
- NULL,
- grab_read_header,
- grab_read_packet,
- grab_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &v4l_class,
+ .name = "video4linux",
+ .long_name = NULL_IF_CONFIG_SMALL("Video4Linux device grab"),
+ .priv_data_size = sizeof(VideoData),
+ .read_header = grab_read_header,
+ .read_packet = grab_read_packet,
+ .read_close = grab_read_close,
+ .flags = AVFMT_NOFILE,
+ .priv_class = &v4l_class,
};
#endif /* FF_API_V4L */
diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 9682d21151..fef02b3ed7 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -705,13 +705,12 @@ static const AVClass v4l2_class = {
};
AVInputFormat ff_v4l2_demuxer = {
- "video4linux2",
- NULL_IF_CONFIG_SMALL("Video4Linux2 device grab"),
- sizeof(struct video_data),
- NULL,
- v4l2_read_header,
- v4l2_read_packet,
- v4l2_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &v4l2_class,
+ .name = "video4linux2",
+ .long_name = NULL_IF_CONFIG_SMALL("Video4Linux2 device grab"),
+ .priv_data_size = sizeof(struct video_data),
+ .read_header = v4l2_read_header,
+ .read_packet = v4l2_read_packet,
+ .read_close = v4l2_read_close,
+ .flags = AVFMT_NOFILE,
+ .priv_class = &v4l2_class,
};
diff --git a/libavdevice/vfwcap.c b/libavdevice/vfwcap.c
index e5ecf84c24..53e11f306f 100644
--- a/libavdevice/vfwcap.c
+++ b/libavdevice/vfwcap.c
@@ -471,13 +471,12 @@ static const AVClass vfw_class = {
};
AVInputFormat ff_vfwcap_demuxer = {
- "vfwcap",
- NULL_IF_CONFIG_SMALL("VFW video capture"),
- sizeof(struct vfw_ctx),
- NULL,
- vfw_read_header,
- vfw_read_packet,
- vfw_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &vfw_class,
+ .name = "vfwcap",
+ .long_name = NULL_IF_CONFIG_SMALL("VfW video capture"),
+ .priv_data_size = sizeof(struct vfw_ctx),
+ .read_header = vfw_read_header,
+ .read_packet = vfw_read_packet,
+ .read_close = vfw_read_close,
+ .flags = AVFMT_NOFILE,
+ .priv_class = &vfw_class,
};
diff --git a/libavdevice/x11grab.c b/libavdevice/x11grab.c
index 7debe9dcbb..75d307543d 100644
--- a/libavdevice/x11grab.c
+++ b/libavdevice/x11grab.c
@@ -599,15 +599,13 @@ static const AVClass x11_class = {
};
/** x11 grabber device demuxer declaration */
-AVInputFormat ff_x11_grab_device_demuxer =
-{
- "x11grab",
- NULL_IF_CONFIG_SMALL("X11grab"),
- sizeof(struct x11_grab),
- NULL,
- x11grab_read_header,
- x11grab_read_packet,
- x11grab_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &x11_class,
+AVInputFormat ff_x11_grab_device_demuxer = {
+ .name = "x11grab",
+ .long_name = NULL_IF_CONFIG_SMALL("X11grab"),
+ .priv_data_size = sizeof(struct x11_grab),
+ .read_header = x11grab_read_header,
+ .read_packet = x11grab_read_packet,
+ .read_close = x11grab_read_close,
+ .flags = AVFMT_NOFILE,
+ .priv_class = &x11_class,
};
diff --git a/libavformat/daud.c b/libavformat/daud.c
index 66a20c347f..34262e010c 100644
--- a/libavformat/daud.c
+++ b/libavformat/daud.c
@@ -80,17 +80,14 @@ AVInputFormat ff_daud_demuxer = {
#endif
#if CONFIG_DAUD_MUXER
-AVOutputFormat ff_daud_muxer =
-{
- "daud",
- NULL_IF_CONFIG_SMALL("D-Cinema audio format"),
- NULL,
- "302",
- 0,
- CODEC_ID_PCM_S24DAUD,
- CODEC_ID_NONE,
- daud_write_header,
- daud_write_packet,
- .flags= AVFMT_NOTIMESTAMPS,
+AVOutputFormat ff_daud_muxer = {
+ .name = "daud",
+ .long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio format"),
+ .extensions = "302",
+ .audio_codec = CODEC_ID_PCM_S24DAUD,
+ .video_codec = CODEC_ID_NONE,
+ .write_header = daud_write_header,
+ .write_packet = daud_write_packet,
+ .flags = AVFMT_NOTIMESTAMPS,
};
#endif
diff --git a/libavformat/idroqenc.c b/libavformat/idroqenc.c
index 3e8f179846..b8305261fd 100644
--- a/libavformat/idroqenc.c
+++ b/libavformat/idroqenc.c
@@ -35,15 +35,12 @@ static int roq_write_header(struct AVFormatContext *s)
return 0;
}
-AVOutputFormat ff_roq_muxer =
-{
- "RoQ",
- NULL_IF_CONFIG_SMALL("raw id RoQ format"),
- NULL,
- "roq",
- 0,
- CODEC_ID_ROQ_DPCM,
- CODEC_ID_ROQ,
- roq_write_header,
- ff_raw_write_packet,
+AVOutputFormat ff_roq_muxer = {
+ .name = "RoQ",
+ .long_name = NULL_IF_CONFIG_SMALL("raw id RoQ format"),
+ .extensions = "roq",
+ .audio_codec = CODEC_ID_ROQ_DPCM,
+ .video_codec = CODEC_ID_ROQ,
+ .write_header = roq_write_header,
+ .write_packet = ff_raw_write_packet,
};
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index c58e07268a..ad2358124e 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -423,7 +423,7 @@ static int mpegps_read_packet(AVFormatContext *s,
{
MpegDemuxContext *m = s->priv_data;
AVStream *st;
- int len, startcode, i, es_type;
+ int len, startcode, i, es_type, ret;
int request_probe= 0;
enum CodecID codec_id = CODEC_ID_NONE;
enum AVMediaType type;
@@ -569,7 +569,13 @@ static int mpegps_read_packet(AVFormatContext *s,
return AVERROR(EINVAL);
}
av_new_packet(pkt, len);
- avio_read(s->pb, pkt->data, pkt->size);
+ ret = avio_read(s->pb, pkt->data, pkt->size);
+ if (ret < 0) {
+ pkt->size = 0;
+ } else if (ret < pkt->size) {
+ pkt->size = ret;
+ memset(pkt->data + ret, 0, FF_INPUT_BUFFER_PADDING_SIZE);
+ }
pkt->pts = pts;
pkt->dts = dts;
pkt->pos = dummy_pos;
@@ -578,7 +584,7 @@ static int mpegps_read_packet(AVFormatContext *s,
pkt->stream_index, pkt->pts / 90000.0, pkt->dts / 90000.0,
pkt->size);
- return 0;
+ return (ret < 0) ? ret : 0;
}
static int64_t mpegps_read_dts(AVFormatContext *s, int stream_index,
diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c
index 676e3a19d1..3e6132b880 100644
--- a/libavformat/pcmdec.c
+++ b/libavformat/pcmdec.c
@@ -54,26 +54,24 @@ static const AVOption pcm_options[] = {
{ NULL },
};
-#define PCMDEF(name, long_name, ext, codec) \
-static const AVClass name ## _demuxer_class = {\
- .class_name = #name " demuxer",\
- .item_name = av_default_item_name,\
- .option = pcm_options,\
- .version = LIBAVUTIL_VERSION_INT,\
-};\
-AVInputFormat ff_pcm_ ## name ## _demuxer = {\
- #name,\
- NULL_IF_CONFIG_SMALL(long_name),\
- sizeof(RawAudioDemuxerContext),\
- NULL,\
- ff_raw_read_header,\
- raw_read_packet,\
- NULL,\
- pcm_read_seek,\
- .flags= AVFMT_GENERIC_INDEX,\
- .extensions = ext,\
- .value = codec,\
- .priv_class = &name ## _demuxer_class,\
+#define PCMDEF(name_, long_name_, ext, codec) \
+static const AVClass name_ ## _demuxer_class = { \
+ .class_name = #name_ " demuxer", \
+ .item_name = av_default_item_name, \
+ .option = pcm_options, \
+ .version = LIBAVUTIL_VERSION_INT, \
+}; \
+AVInputFormat ff_pcm_ ## name_ ## _demuxer = { \
+ .name = #name_, \
+ .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
+ .priv_data_size = sizeof(RawAudioDemuxerContext), \
+ .read_header = ff_raw_read_header, \
+ .read_packet = raw_read_packet, \
+ .read_seek = pcm_read_seek, \
+ .flags = AVFMT_GENERIC_INDEX, \
+ .extensions = ext, \
+ .value = codec, \
+ .priv_class = &name_ ## _demuxer_class, \
};
PCMDEF(f64be, "PCM 64 bit floating-point big-endian format",
diff --git a/libavformat/pcmenc.c b/libavformat/pcmenc.c
index 385425ce77..12e64b0fb8 100644
--- a/libavformat/pcmenc.c
+++ b/libavformat/pcmenc.c
@@ -22,18 +22,15 @@
#include "avformat.h"
#include "rawenc.h"
-#define PCMDEF(name, long_name, ext, codec) \
-AVOutputFormat ff_pcm_ ## name ## _muxer = {\
- #name,\
- NULL_IF_CONFIG_SMALL(long_name),\
- NULL,\
- ext,\
- 0,\
- codec,\
- CODEC_ID_NONE,\
- NULL,\
- ff_raw_write_packet,\
- .flags= AVFMT_NOTIMESTAMPS,\
+#define PCMDEF(name_, long_name_, ext, codec) \
+AVOutputFormat ff_pcm_ ## name_ ## _muxer = { \
+ .name = #name_, \
+ .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
+ .extensions = ext, \
+ .audio_codec = codec, \
+ .video_codec = CODEC_ID_NONE, \
+ .write_packet = ff_raw_write_packet, \
+ .flags = AVFMT_NOTIMESTAMPS, \
};
PCMDEF(f64be, "PCM 64 bit floating-point big-endian format",
diff --git a/libavformat/txd.c b/libavformat/txd.c
index 05eb0ce6f3..6928216791 100644
--- a/libavformat/txd.c
+++ b/libavformat/txd.c
@@ -90,12 +90,10 @@ next_chunk:
return 0;
}
-AVInputFormat ff_txd_demuxer =
-{
- "txd",
- NULL_IF_CONFIG_SMALL("Renderware TeXture Dictionary"),
- 0,
- txd_probe,
- txd_read_header,
- txd_read_packet,
+AVInputFormat ff_txd_demuxer = {
+ .name = "txd",
+ .long_name = NULL_IF_CONFIG_SMALL("Renderware TeXture Dictionary"),
+ .read_probe = txd_probe,
+ .read_header = txd_read_header,
+ .read_packet = txd_read_packet,
};