Jan 3, 2021, 23:48 by jon@jonb.org:
On Sun, Jan 3, 2021, at 2:25 PM, Lynne wrote:
+ /* Input sample rate (0 = unspecified) */> + bytestream_put_le32 (&bs, 0); Put in 48000 here. Stream copy will preserve extradata, and we don't want to generate weird streams, even if our decoder ignores this.
+ /* Channel count */> + bytestream_put_byte (&bs, codecpar->channels);> + /* Mapping family */> + bytestream_put_byte (&bs, 0x0); This will only work for mono and stereo. The decoder will error out if more than 2 channels are present. For now maybe error out if the number of channels is greater than 2?
Ok! Sample rate changed to 48000. If codecpar->channels is greater than 2, AVERROR_INVALIDDATA will be returned. Please advise if there is a better error code.
Thanks Lynne!
+static int opus_write_extradata(AVCodecParameters *codecpar) { Function opening brackets must be put by themselves on a new line.
+ if (codecpar->channels > 2) { + return AVERROR_INVALIDDATA; + } + + ret = ff_alloc_extradata(codecpar, 19); + if (ret < 0) { + return ret; + } We don't wrap 1-line conditions in brackets, so just remove them.
+ av_log(s1, AV_LOG_ERROR, + "Error creating opus extradata: %s\n", + av_err2str(ret)); Weird indentation. There's an extra space in the 2 lines.
Apart from that LGTM.