diff --git a/include/libmkv.h b/include/libmkv.h index 146a91f..f03d608 100644 --- a/include/libmkv.h +++ b/include/libmkv.h @@ -203,6 +204,7 @@ struct mk_TrackConfig_s { } video; struct { float samplingFreq; /* Sampling Frequency in Hz */ + float outputSamplingFreq; /* Playback Sampling Frequency in Hz (e.g. for AAC w/SBR) */ unsigned channels; /* Number of channels for this track */ unsigned bitDepth; /* Bits per sample (PCM) */ } audio; diff --git a/src/tracks.c b/src/tracks.c index f9c7e48..a2a60ca 100644 --- a/src/tracks.c +++ b/src/tracks.c @@ -174,6 +174,11 @@ mk_Track *mk_createTrack(mk_Writer *w, mk_TrackConfig *tc) /* SamplingFrequency */ if (mk_writeFloat(v, MATROSKA_ID_AUDIOSAMPLINGFREQ, tc->extra.audio.samplingFreq) < 0) return NULL; + if (tc->extra.audio.outputSamplingFreq) { + /* Output SamplingFrequency */ + if (mk_writeFloat(v, MATROSKA_ID_AUDIOOUTSAMPLINGFREQ, tc->extra.audio.outputSamplingFreq) < 0) + return NULL; + } /* Channels */ if (mk_writeUInt(v, MATROSKA_ID_AUDIOCHANNELS, tc->extra.audio.channels) < 0) return NULL;