lavf: move nuv fourcc audio tags from riff to nuv
This commit is contained in:
parent
261e9348ef
commit
5c7bf2ddde
@ -26,6 +26,12 @@
|
|||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "riff.h"
|
#include "riff.h"
|
||||||
|
|
||||||
|
static const AVCodecTag nuv_audio_tags[] = {
|
||||||
|
{ AV_CODEC_ID_PCM_S16LE, MKTAG('R', 'A', 'W', 'A') },
|
||||||
|
{ AV_CODEC_ID_MP3, MKTAG('L', 'A', 'M', 'E') },
|
||||||
|
{ AV_CODEC_ID_NONE, 0 },
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int v_id;
|
int v_id;
|
||||||
int a_id;
|
int a_id;
|
||||||
@ -96,14 +102,25 @@ static int get_codec_data(AVIOContext *pb, AVStream *vst,
|
|||||||
avio_skip(pb, 4);
|
avio_skip(pb, 4);
|
||||||
|
|
||||||
if (ast) {
|
if (ast) {
|
||||||
|
int id;
|
||||||
|
|
||||||
ast->codec->codec_tag = avio_rl32(pb);
|
ast->codec->codec_tag = avio_rl32(pb);
|
||||||
ast->codec->sample_rate = avio_rl32(pb);
|
ast->codec->sample_rate = avio_rl32(pb);
|
||||||
ast->codec->bits_per_coded_sample = avio_rl32(pb);
|
ast->codec->bits_per_coded_sample = avio_rl32(pb);
|
||||||
ast->codec->channels = avio_rl32(pb);
|
ast->codec->channels = avio_rl32(pb);
|
||||||
ast->codec->channel_layout = 0;
|
ast->codec->channel_layout = 0;
|
||||||
ast->codec->codec_id =
|
|
||||||
ff_wav_codec_get_id(ast->codec->codec_tag,
|
id = ff_wav_codec_get_id(ast->codec->codec_tag,
|
||||||
ast->codec->bits_per_coded_sample);
|
ast->codec->bits_per_coded_sample);
|
||||||
|
if (id == AV_CODEC_ID_NONE) {
|
||||||
|
id = ff_codec_get_id(nuv_audio_tags,
|
||||||
|
ast->codec->codec_tag);
|
||||||
|
if (id == AV_CODEC_ID_PCM_S16LE)
|
||||||
|
id = ff_get_pcm_codec_id(ast->codec->bits_per_coded_sample,
|
||||||
|
0, 0, ~1);
|
||||||
|
}
|
||||||
|
ast->codec->codec_id = id;
|
||||||
|
|
||||||
ast->need_parsing = AVSTREAM_PARSE_FULL;
|
ast->need_parsing = AVSTREAM_PARSE_FULL;
|
||||||
} else
|
} else
|
||||||
avio_skip(pb, 4 * 4);
|
avio_skip(pb, 4 * 4);
|
||||||
|
@ -343,11 +343,6 @@ const AVCodecTag ff_codec_wav_tags[] = {
|
|||||||
{ AV_CODEC_ID_FLAC, 0xF1AC },
|
{ AV_CODEC_ID_FLAC, 0xF1AC },
|
||||||
{ AV_CODEC_ID_ADPCM_SWF, ('S'<<8)+'F' },
|
{ AV_CODEC_ID_ADPCM_SWF, ('S'<<8)+'F' },
|
||||||
{ AV_CODEC_ID_VORBIS, ('V'<<8)+'o' }, //HACK/FIXME, does vorbis in WAV/AVI have an (in)official id?
|
{ AV_CODEC_ID_VORBIS, ('V'<<8)+'o' }, //HACK/FIXME, does vorbis in WAV/AVI have an (in)official id?
|
||||||
|
|
||||||
/* FIXME: All of the IDs below are not 16 bit and thus illegal. */
|
|
||||||
// for NuppelVideo (nuv.c)
|
|
||||||
{ AV_CODEC_ID_PCM_S16LE, MKTAG('R', 'A', 'W', 'A') },
|
|
||||||
{ AV_CODEC_ID_MP3, MKTAG('L', 'A', 'M', 'E') },
|
|
||||||
{ AV_CODEC_ID_NONE, 0 },
|
{ AV_CODEC_ID_NONE, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user