AVOutputFormat ff_wav_muxer = {
.name = "wav",
- .long_name = NULL_IF_CONFIG_SMALL("WAV format"),
+ .long_name = NULL_IF_CONFIG_SMALL("WAV / WAVE (Waveform Audio)"),
.mime_type = "audio/x-wav",
.extensions = "wav",
.priv_data_size = sizeof(WAVContext),
.write_header = wav_write_header,
.write_packet = wav_write_packet,
.write_trailer = wav_write_trailer,
+ .flags = AVFMT_TS_NONSTRICT,
.codec_tag = (const AVCodecTag* const []){ ff_codec_wav_tags, 0 },
.priv_class = &wav_muxer_class,
};
ret = ff_get_wav_header(pb, (*st)->codec, size);
if (ret < 0)
return ret;
- (*st)->need_parsing = AVSTREAM_PARSE_FULL;
+ (*st)->need_parsing = AVSTREAM_PARSE_FULL_RAW;
avpriv_set_pts_info(*st, 64, 1, (*st)->codec->sample_rate);
return ret;
break;
case MKTAG('S','M','V','0'):
+ if (!got_fmt) {
+ av_log(s, AV_LOG_ERROR, "found no 'fmt ' tag before the 'SMV0' tag\n");
+ return AVERROR_INVALIDDATA;
+ }
// SMV file, a wav file with video appended.
if (size != MKTAG('0','2','0','0')) {
av_log(s, AV_LOG_ERROR, "Unknown SMV version found\n");
};
AVInputFormat ff_wav_demuxer = {
.name = "wav",
- .long_name = NULL_IF_CONFIG_SMALL("WAV format"),
+ .long_name = NULL_IF_CONFIG_SMALL("WAV / WAVE (Waveform Audio)"),
.priv_data_size = sizeof(WAVContext),
.read_probe = wav_probe,
.read_header = wav_read_header,
return ret;
avio_skip(pb, FFALIGN(size, INT64_C(8)) - size);
- st->need_parsing = AVSTREAM_PARSE_FULL;
+ st->need_parsing = AVSTREAM_PARSE_FULL_RAW;
avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate);
AVInputFormat ff_w64_demuxer = {
.name = "w64",
- .long_name = NULL_IF_CONFIG_SMALL("Sony Wave64 format"),
+ .long_name = NULL_IF_CONFIG_SMALL("Sony Wave64"),
.priv_data_size = sizeof(WAVContext),
.read_probe = w64_probe,
.read_header = w64_read_header,