+ *output_sample_rate = ff_mpeg4audio_sample_rates[sri];
+ }
+}
+
+static int mkv_write_codecprivate(AVFormatContext *s, ByteIOContext *pb, AVCodecContext *codec, int native_id)
+{
+ ByteIOContext *dyn_cp;
+ uint8_t *codecpriv;
+ int ret, codecpriv_size;
+
+ ret = url_open_dyn_buf(&dyn_cp);
+ if(ret < 0)
+ return ret;
+
+ if (native_id) {
+ if (codec->codec_id == CODEC_ID_VORBIS || codec->codec_id == CODEC_ID_THEORA)
+ ret = put_xiph_codecpriv(s, dyn_cp, codec);
+ else if (codec->codec_id == CODEC_ID_FLAC)
+ ret = put_flac_codecpriv(s, dyn_cp, codec);
+ else if (codec->codec_id == CODEC_ID_H264)
+ ret = ff_isom_write_avcc(dyn_cp, codec->extradata, codec->extradata_size);
+ else if (codec->extradata_size)
+ put_buffer(dyn_cp, codec->extradata, codec->extradata_size);
+ } else if (codec->codec_type == CODEC_TYPE_VIDEO) {
+ if (!codec->codec_tag)
+ codec->codec_tag = codec_get_tag(codec_bmp_tags, codec->codec_id);
+ if (!codec->codec_tag) {
+ av_log(s, AV_LOG_ERROR, "No bmp codec ID found.");
+ ret = -1;
+ }
+
+ put_bmp_header(dyn_cp, codec, codec_bmp_tags, 0);
+
+ } else if (codec->codec_type == CODEC_TYPE_AUDIO) {
+ if (!codec->codec_tag)
+ codec->codec_tag = codec_get_tag(codec_wav_tags, codec->codec_id);
+ if (!codec->codec_tag) {
+ av_log(s, AV_LOG_ERROR, "No wav codec ID found.");
+ ret = -1;
+ }
+
+ put_wav_header(dyn_cp, codec);