diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-10-14 16:38:03 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-10-14 16:46:13 +0400 |
commit | 82c0055c5e71f2289936e6c2528bed5826c18c43 (patch) | |
tree | e4510e6a8cf751182378f293f7a8bc4f253c0097 /libavformat | |
parent | db51c65961bd692fc6ebb12c2f4183699d3db9c0 (diff) | |
parent | b5198a2637b7b45b0049a1d4b386a06f016f2520 (diff) |
Merge commit 'b5198a2637b7b45b0049a1d4b386a06f016f2520'
* commit 'b5198a2637b7b45b0049a1d4b386a06f016f2520':
configure: tms470: add mapping for -mfpu=vfpv3-d16 flag
configure: recognise Minix as OS
configure: work around bug in ash shell
eval-test: make table static const
lavr: handle clipping in the float to s32 conversion
nut: support pcm codecs not mapped in avi
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/nut.c | 27 | ||||
-rw-r--r-- | libavformat/nut.h | 1 | ||||
-rw-r--r-- | libavformat/nutdec.c | 7 |
3 files changed, 33 insertions, 2 deletions
diff --git a/libavformat/nut.c b/libavformat/nut.c index c30bac8e8e..34c43d16fb 100644 --- a/libavformat/nut.c +++ b/libavformat/nut.c @@ -113,9 +113,34 @@ const AVCodecTag ff_nut_video_tags[] = { { AV_CODEC_ID_NONE , 0 } }; +const AVCodecTag ff_nut_audio_tags[] = { + { AV_CODEC_ID_PCM_ALAW, MKTAG('A', 'L', 'A', 'W') }, + { AV_CODEC_ID_PCM_MULAW, MKTAG('U', 'L', 'A', 'W') }, + { AV_CODEC_ID_PCM_F32BE, MKTAG(32 , 'D', 'F', 'P') }, + { AV_CODEC_ID_PCM_F32LE, MKTAG('P', 'F', 'D', 32 ) }, + { AV_CODEC_ID_PCM_F64BE, MKTAG(64 , 'D', 'F', 'P') }, + { AV_CODEC_ID_PCM_F64LE, MKTAG('P', 'F', 'D', 64 ) }, + { AV_CODEC_ID_PCM_S16BE, MKTAG(16 , 'D', 'S', 'P') }, + { AV_CODEC_ID_PCM_S16LE, MKTAG('P', 'S', 'D', 16 ) }, + { AV_CODEC_ID_PCM_S24BE, MKTAG(24 , 'D', 'S', 'P') }, + { AV_CODEC_ID_PCM_S24LE, MKTAG('P', 'S', 'D', 24 ) }, + { AV_CODEC_ID_PCM_S32BE, MKTAG(32 , 'D', 'S', 'P') }, + { AV_CODEC_ID_PCM_S32LE, MKTAG('P', 'S', 'D', 32 ) }, + { AV_CODEC_ID_PCM_S8, MKTAG('P', 'S', 'D', 8 ) }, + { AV_CODEC_ID_PCM_U16BE, MKTAG(16 , 'D', 'U', 'P') }, + { AV_CODEC_ID_PCM_U16LE, MKTAG('P', 'U', 'D', 16 ) }, + { AV_CODEC_ID_PCM_U24BE, MKTAG(24 , 'D', 'U', 'P') }, + { AV_CODEC_ID_PCM_U24LE, MKTAG('P', 'U', 'D', 24 ) }, + { AV_CODEC_ID_PCM_U32BE, MKTAG(32 , 'D', 'U', 'P') }, + { AV_CODEC_ID_PCM_U32LE, MKTAG('P', 'U', 'D', 32 ) }, + { AV_CODEC_ID_PCM_U8, MKTAG('P', 'U', 'D', 8 ) }, + { AV_CODEC_ID_PCM_S16LE_PLANAR, MKTAG('P', 'S', 'P', 16 ) }, + { AV_CODEC_ID_NONE, 0 } +}; + const AVCodecTag * const ff_nut_codec_tags[] = { ff_nut_video_tags, ff_nut_subtitle_tags, - ff_codec_bmp_tags, ff_codec_wav_tags, 0 + ff_codec_bmp_tags, ff_codec_wav_tags, ff_nut_audio_tags, 0 }; void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val){ diff --git a/libavformat/nut.h b/libavformat/nut.h index dad03f7ea6..673f12f4b2 100644 --- a/libavformat/nut.h +++ b/libavformat/nut.h @@ -109,6 +109,7 @@ typedef struct NUTContext { extern const AVCodecTag ff_nut_subtitle_tags[]; extern const AVCodecTag ff_nut_video_tags[]; +extern const AVCodecTag ff_nut_audio_tags[]; extern const AVCodecTag * const ff_nut_codec_tags[]; diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c index 1513f5dad5..cc18adc97d 100644 --- a/libavformat/nutdec.c +++ b/libavformat/nutdec.c @@ -369,7 +369,12 @@ static int decode_stream_header(NUTContext *nut) break; case 1: st->codec->codec_type = AVMEDIA_TYPE_AUDIO; - st->codec->codec_id = ff_codec_get_id(ff_codec_wav_tags, tmp); + st->codec->codec_id = av_codec_get_id((const AVCodecTag * const []) { + ff_nut_audio_tags, + ff_codec_wav_tags, + 0 + }, + tmp); break; case 2: st->codec->codec_type = AVMEDIA_TYPE_SUBTITLE; |