[FFmpeg-cvslog] matroskaenc: set the actual PCM bitdepth in the header

Hendrik Leppkes git at videolan.org
Wed Mar 16 13:07:49 CET 2016


ffmpeg | branch: master | Hendrik Leppkes <h.leppkes at gmail.com> | Wed Mar 16 12:39:19 2016 +0100| [c43d4858119e79db0c24f673bcbf20eb3870b307] | committer: Hendrik Leppkes

matroskaenc: set the actual PCM bitdepth in the header

The actual bitdepth can be different to the storage format (ie. sample format).
Fixes the stored bitdepth for 24-bit formats like FLAC.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c43d4858119e79db0c24f673bcbf20eb3870b307
---

 libavformat/matroskaenc.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 05b1b94..6ad9aed 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -850,8 +850,12 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv,
         return 0;
     }
 
-    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 && codec->codec_id != AV_CODEC_ID_ADPCM_G726) {
+        if (codec->bits_per_raw_sample)
+            bit_depth = codec->bits_per_raw_sample;
+        else
+            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-cvslog mailing list