ons 2019-03-20 klockan 15:56 +0000 skrev Aidan R: > tis 2019-03-19 klockan 22:53 +0000 skrev Aidan R: > > > @@ -130,20 +161,24 @@ static int wsaud_read_packet(AVFormatContext *s, > > > AVPacket *pkt) > > > { > > > AVIOContext *pb = s->pb; > > > + AUDDemuxContext *aud = s->priv_data; > > > unsigned char preamble[AUD_CHUNK_PREAMBLE_SIZE]; > > > - unsigned int chunk_size; > > > + unsigned int chunk_size, bytes_per_sample; > > > int ret = 0; > > > AVStream *st = s->streams[0]; > > > > > > - if (avio_read(pb, preamble, AUD_CHUNK_PREAMBLE_SIZE) != > > > - AUD_CHUNK_PREAMBLE_SIZE) > > > - return AVERROR(EIO); > > > + /* AUD files don't store PCM audio in chunks */ > > > + if (st->codecpar->codec_id != AV_CODEC_ID_PCM_S16LE) { > > > > What about AV_CODEC_ID_PCM_U8? > > Good catch, I don't think any actually exist in the wild, but I have supported > the possibility in wsaud_read_header and from looking at the audio engine it > looks to support it in theory.
Given the recent 24-bit ZMBV discussion on this list, I think we should not implement support for things which we don't have samples for. Using it in the probe function is probably fine, but we should error out in wsaud_read_header() until we have an 8-bit sample. The U8 implementation in this patch can be dummied out with #ifdefs until then, for convenient un-#ifdefing > > > > A sample + FATE test for this would be nice > > Some guidance on where to start for that would be most welcome. I have short > examples from Blade Runner that could be used but wouldn't distributing them > violate copyright? Cutting them down to a second or two should be fine I think. If we want to be paranoid we could zero out the sample data as well, but I doubt anyone cares. There's plenty of such samples in FATE. We could do this in a separate thread, it doesn't have to hold up this patch /Tomas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel