mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-05-17 15:08:09 +08:00
Merge commit '5c7bf2dddee5bdfa247ff0d57cb8a37d19077f66'
* commit '5c7bf2dddee5bdfa247ff0d57cb8a37d19077f66': lavf: move nuv fourcc audio tags from riff to nuv lavf: add a common function for selecting a pcm codec from parameters Conflicts: libavformat/internal.h libavformat/mov.c libavformat/riff.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@ -26,6 +26,12 @@
|
||||
#include "internal.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 {
|
||||
int v_id;
|
||||
int a_id;
|
||||
@ -96,14 +102,25 @@ static int get_codec_data(AVIOContext *pb, AVStream *vst,
|
||||
avio_skip(pb, 4);
|
||||
|
||||
if (ast) {
|
||||
int id;
|
||||
|
||||
ast->codec->codec_tag = avio_rl32(pb);
|
||||
ast->codec->sample_rate = avio_rl32(pb);
|
||||
ast->codec->bits_per_coded_sample = avio_rl32(pb);
|
||||
ast->codec->channels = avio_rl32(pb);
|
||||
ast->codec->channel_layout = 0;
|
||||
ast->codec->codec_id =
|
||||
ff_wav_codec_get_id(ast->codec->codec_tag,
|
||||
ast->codec->bits_per_coded_sample);
|
||||
|
||||
id = ff_wav_codec_get_id(ast->codec->codec_tag,
|
||||
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;
|
||||
} else
|
||||
avio_skip(pb, 4 * 4);
|
||||
|
Reference in New Issue
Block a user