[FFmpeg-devel] [PATCH]Fix G.726 in mkv
Carl Eugen Hoyos
cehoyos at ag.or.at
Fri Jan 10 11:26:59 CET 2014
Hi!
The following command lines fail since dd5689a3
$ ffmpeg -i input -vn -acodec g726 -ar 8k out.mkv
$ ffmpeg -i out.mkv
Attached are two (independent) patches, one fixes decoding the samples created
since the breakage, one allows to create files that older (broken) FFmpeg can
read.
Please review, Carl Eugen
-------------- next part --------------
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index e05101f..9a7e366 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1909,6 +1909,7 @@ static int matroska_read_header(AVFormatContext *s)
st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->sample_rate = track->audio.out_samplerate;
st->codec->channels = track->audio.channels;
+ if (!st->codec->bits_per_coded_sample)
st->codec->bits_per_coded_sample = track->audio.bitdepth;
if (st->codec->codec_id != AV_CODEC_ID_AAC)
st->need_parsing = AVSTREAM_PARSE_HEADERS;
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 82624b7..11174f1 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -620,7 +620,7 @@ static int mkv_write_tracks(AVFormatContext *s)
continue;
}
- if (!bit_depth)
+ if (!bit_depth && codec->codec_id != AV_CODEC_ID_ADPCM_G726)
bit_depth = av_get_bytes_per_sample(codec->sample_fmt) << 3;
if (!bit_depth)
bit_depth = codec->bits_per_coded_sample;
More information about the ffmpeg-devel
mailing list