Hi,
is it possible to see what exact format of DTS is being played with Foobar?
I have a column named Codec but it only shows DTS no matter what kind of DTS is being played - it would be nice if it showed DTSHDMA or DTS96/24 or others.
When I play Dolby - Foobar shows AC3 or TrueHD (do not know if it also shows others forms as I usually use those two) - would it be possible to display such info regarding DTS forms?
I have already tried $info(codec_profile) but it shows only DTS.
You can make use of $info(bitspersample) to determine if it is lossless or not.
DTS 96/24 not lossless or lossless is a bit of a problem, but I "fix" that by looking to overall bitrate. So anything smaller than 1537kbps bitrate is not lossless. Anything above is.
This bit of code I wrote before all kinds of changes were made in 2.0, 2.1 betas to handling different codec formats, but this code still works. No way to detect DTS:X though which is still identified as DTS-HD MA 7.1.
Have a look at the DTS/DTSHD or AC3/EAC relevant stuff and pick what works for you ...
$puts(MOD, --- CODE.SPECS ---)
$puts(cmt, INITIALIZE COMMON FULL SPECS)
$puts(specs_full.video_codec,[$upper($info(video_codec))])
$puts(specs_full.codec_long_name,[$info(codec_long_name)])
$puts(specs_full.codec,[$upper(%codec%)])
$puts(specs_full.codec_profile,[%codec_profile%])
$puts(specs_full.samplerate,[$div(%samplerate%,1000)])
$puts(specs_full.bitspersample,[$info(bitspersample)])
$puts(specs_full.bitrate,[%bitrate%])
$puts(specs_full.channels_num,[$info(channels)])
$puts(specs_full.encoding,[$info(encoding)])
$if($and($get(item.youtube),$stricmp($cut($get(specs_full.codec),3),COM)),
$puts(specs_full.codec,COM)
)
$if($get(specs_full.codec_long_name), $puts(specs_full.codec,$get(specs_full.codec_long_name)) )
$puts(cmt, PROCESS VIDEO CODEC FIRST)
$if($stricmp($substr($get(specs_full.video_codec),6,8),AVC),
$puts(specs_full.video_codec,x264) ,
$if($stricmp($get(specs_full.video_codec),CINEPAK),
$puts(specs_full.video_codec,CINEPK) ,
$if($or($stricmp($cut($get(specs_full.video_codec),5),H.264),$stricmp($substr($get(specs_full.video_codec),2,5),H264),$stricmp($substr($get(specs_full.video_codec),2,6),H.264)),
$puts(specs_full.video_codec,H264) ,
$if($stricmp($cut($get(specs_full.video_codec),5),H.265),
$puts(specs_full.video_codec,H265)
$if($stricmp($cut($get(specs_full.video_codec),5),MPEG1),
$puts(specs_full.video_codec,MPEG1) ,
$if($stricmp($cut($get(specs_full.video_codec),5),MPEG2),
$puts(specs_full.video_codec,MPEG2) ,
$if($stricmp($cut($get(specs_full.video_codec),6),MPEG-4),
$puts(specs_full.video_codec,MPEG4) ,
$if($stricmp($get(specs_full.video_codec),MS/VFW/FOURCC),
$puts(specs_full.video_codec,MSVFW) ,
$if($stricmp($cut($get(specs_full.video_codec),3),VC1),
$puts(specs_full.video_codec,VC1) ,
)))))))))
$puts(cmt, INITIALIZE COMMON CONDENSED SPECS)
$puts(specs_cond.samplerate,$get(specs_full.samplerate))
$puts(specs_cond.bitspersample,$get(specs_full.bitspersample))
$puts(specs_cond.channels_num,$get(specs_full.channels_num))
$puts(specs_cond.bitrate,$get(specs_full.bitrate))
$puts(cmt, CODEC SPECIFIC FULL/CONDENSED SPECS & CLEARING CONDENSED DEFAULTS)
$puts(cmt, Remap MKV --> DTS)
$if($stricmp($get(specs_full.codec),MKV),
$puts(specs_full.codec,DTS)
)
$puts(cmt, AAC default LC 44kHz 2ch)
$if($stricmp($cut($get(specs_full.codec),3),AAC),
$puts(specs_full.codec,AAC)
$ifequal($get(specs_full.codec_profile),LC,
$puts(specs_full.codec_profile,)
,)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, AC3 default 48kHz 640kbps@6ch)
$if($or($stricmp($get(specs_full.codec),AC3),$stricmp($cut($get(specs_full.codec),10),ATSC A/52A)),
$puts(specs_full.codec,AC3)
$ifequal($get(specs_full.samplerate),48, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),6,
$ifequal($get(specs_full.bitrate),640, $puts(specs_cond.bitrate,) ,)
,)
)
$puts(cmt, ADPCM default 44kHz 2ch)
$if($stricmp($cut($get(specs_full.codec),5),ADPCM),
$puts(specs_full.codec,ADPCM)
$puts(specs_full.bitspersample,)
$puts(specs_cond.bitspersample,)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, ALAC default 44kHz 16bit 2ch)
$if($stricmp($cut($get(specs_full.codec),4),ALAC),
$puts(specs_full.codec,ALAC)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.bitspersample),16, $puts(specs_cond.bitspersample,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, CDDA default 44kHz 16bit 2ch)
$if($stricmp($cut($get(specs_full.codec),4),CDDA),
$puts(specs_full.codec,CDDA)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.bitspersample),16, $puts(specs_cond.bitspersample,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, DTS default 48kHz 1509/1510/1536kbps)
$puts(cmt, DTS HD default 48kHz 16bit)
$if($or($stricmp($get(specs_full.codec),DTS),$stricmp($cut($get(specs_full.codec),3),DCA)),
$puts(specs_full.codec,DTS)
$ifequal($get(specs_full.samplerate),48, $puts(specs_cond.samplerate,) ,)
$if($get(specs_full.bitspersample),
$puts(specs_full.codec_profile,HD)
$ifequal($get(specs_full.bitspersample),16, $puts(specs_cond.bitspersample,) ,)
$puts(specs_full.encoding,lossless)
,
$puts(specs_full.encoding,lossy)
$ifequal($get(specs_full.samplerate),96,
,
$ifequal($get(specs_full.bitrate),1509, $puts(specs_cond.bitrate,) ,)
$ifequal($get(specs_full.bitrate),1510, $puts(specs_cond.bitrate,) ,)
$ifequal($get(specs_full.bitrate),1519, $puts(specs_cond.bitrate,) ,)
$ifequal($get(specs_full.bitrate),1536, $puts(specs_cond.bitrate,) ,)
)
)
)
$puts(cmt, EAC default 48kHz)
$if($or($stricmp($get(specs_full.codec),E-AC3),$stricmp($get(specs_full.codec),EAC3),$stricmp($cut($get(specs_full.codec),10),ATSC A/52B)),
$puts(specs_full.codec,EAC)
$ifequal($get(specs_full.samplerate),48, $puts(specs_cond.samplerate,) ,)
)
$puts(cmt, FLAC default 44kHz 16bit 2ch)
$if($stricmp($cut($get(specs_full.codec),4),FLAC),
$puts(specs_full.codec,FLAC)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.bitspersample),16, $puts(specs_cond.bitspersample,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, MAPE default 44kHz 16bit 2ch)
$if($stricmp($cut($get(specs_full.codec),3),Mon),
$puts(specs_full.codec,MAPE)
$puts(specs_full.codec_profile,)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.bitspersample),16, $puts(specs_cond.bitspersample,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, MP2 default 44kHz 2ch)
$if($stricmp($cut($get(specs_full.codec),3),MP2),
$puts(specs_full.codec,MP2)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, MP3 default 44kHz 2ch)
$if($stricmp($cut($get(specs_full.codec),3),MP3),
$puts(specs_full.codec,MP3)
$if($stricmp($cut($get(specs_full.codec_profile),3),VBR),
$puts(specs_full.codec_profile,$substr($get(specs_full.codec_profile),5,256))
$puts(specs_cond.bitrate,)
)
$if($stricmp($cut($get(specs_full.codec_profile),3),CBR),
$puts(specs_full.codec_profile,$get(specs_full.bitrate)$if($stricmp($info(mp3_stereo_mode),stereo),s,$if($stricmp($info(mp3_stereo_mode),joint stereo),js,)))
$puts(specs_cond.bitrate,)
)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, OPUS default 44kHz 2ch)
$if($stricmp($get(specs_full.codec),OPUS),
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, PCM default 44kHz 16bit 2ch)
$if($stricmp($cut($get(specs_full.codec),3),PCM),
$puts(specs_full.codec,PCM)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.bitspersample),16, $puts(specs_cond.bitspersample,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, QDM2 default 44kHz 2ch)
$if($or($stricmp($get(specs_full.codec),QDME2),$stricmp($get(specs_full.codec),QDesign Music Codec 2)),
$puts(specs_full.codec,QDM2)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, TrueHD default 48kHz 24bit)
$if($stricmp($get(specs_full.codec),TRUEHD),
$puts(specs_full.codec,TrueHD)
$ifequal($get(specs_full.samplerate),48, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.bitspersample),24, $puts(specs_cond.bitspersample,) ,)
)
$puts(cmt, Vorbis default 44kHz 2ch)
$if($stricmp($get(specs_full.codec),VORBIS),
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, WMA default 44kHz 2ch)
$if($stricmp($get(specs_full.codec),WMA),
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, WMAV2 default 44kHz 2ch)
$if($stricmp($get(specs_full.codec),WMAV2),
$puts(specs_full.codec,WMA)
$puts(specs_full.codec_profile,V2)
$ifequal($get(specs_full.samplerate),44, $puts(specs_cond.samplerate,) ,)
$ifequal($get(specs_full.channels_num),2, $puts(specs_cond.channels_num,) ,)
)
$puts(cmt, IN CASE NOT SET - SET ENCODING TO LOSSLESS/LOSSY BASED ON BITSPERSAMPLE)
$if($get(specs_full.encoding),
,
$if($get(specs_full.bitspersample),
$puts(specs_full.encoding,lossless)
,
$puts(specs_full.encoding,lossy)
)
)
$puts(cmt, HDCD PLAYING OR MEDIA TAG HDCD) $puts(cmt, OTHER HDCD vars: %__hdcd_peak_extend% %__hdcd_gain% TF: %__hdcd_transient_filter%)
$if($stricmp($get(specs_full.encoding),lossless),
$if($or($info(hdcd),$stricmp($meta(media),HDCD)),
$puts(overrule,1)
$if(%el_is_group%,
,
$if(%el_isplaying%,
$if($info(hdcd),
$ifequal($get(specs_full.bitspersample),24, $puts(specs_full.bitspersample,20) ,)
,
$puts(overrule,0)
)
)
)
$ifequal($get(overrule),1,
$puts(specs_full.codec,HDCD)
,)
)
)
$puts(cmt, SET FINAL CONDENSED CODEC/CODEC_PROFILE/BITRATE)
$puts(specs_cond.codec,$get(specs_full.codec))
$puts(specs_cond.codec_profile,$get(specs_full.codec_profile))
$if($stricmp($get(specs_full.codec),MP3),
$ifequal(%ROW.SPECS.MP3_CODEC%, 0, $puts(specs_cond.codec,) ,)
$ifequal(%ROW.SPECS.MP3_CODEC_PROFILE%,0, $puts(specs_cond.codec_profile,) ,)
$if($get(item.stream),
,
$ifequal(%ROW.SPECS.MP3_BITRATE%,0, $puts(specs_cond.bitrate,) ,)
)
)
$if($get(specs_cond.codec),
$puts(specs_cond.codec_txt,$get(specs_cond.codec)[-$get(specs_cond.codec_profile)])
,
$puts(specs_cond.codec_txt,[$get(specs_cond.codec_profile)])
)
$puts(cmt, SET FULL/CONDENSED SR_BPS_BR TXT - LOSSY: SAMPLERATE/BITRATE - LOSSLESS: SAMPLERATE/BITSPERSAMPLE)
$if($stricmp($get(specs_full.encoding),lossy),
$puts(specs_full.sr_bps_br,[$get(specs_full.samplerate)kHz])
$if($get(specs_cond.bitrate),
$puts(specs_cond.sr_bps_br,[$get(specs_cond.samplerate)/][$get(specs_cond.bitrate)kbps])
,
$puts(specs_cond.sr_bps_br,[$get(specs_cond.samplerate)kHz])
)
,
$puts(specs_full.sr_bps_br,$get(specs_full.samplerate)/$get(specs_full.bitspersample))
$if($or($get(specs_cond.samplerate),$get(specs_cond.bitspersample)),
$puts(specs_cond.sr_bps_br,$get(specs_full.sr_bps_br))
)
)
$puts(cmt, CLEAR 2ch CONDENSED CHANNELS_TXT IF CHOSEN)
$puts(specs_cond.channels_txt,[$get(specs_cond.channels_num)ch])
$ifequal(%ROW.SPECS.2CH%,0,
$ifequal($get(specs_cond.channels_num),2,
$puts(specs_cond.channels_txt,)
,)
,)
$puts(cmt, CREATE FULL/CONDENSED SPECS STRINGS)
$puts(specs_cond.txt,$replace($substr($ifgreater(%ROW.SPECS.VIDEO%, 0,[|$get(specs_full.video_codec)],)[|$get(specs_cond.codec_txt)][|$get(specs_cond.sr_bps_br)][|$get(specs_cond.channels_txt)],2,512),|,$get(delimiter)))
$puts(specs_full.txt,$replace($substr($ifgreater(%ROW.SPECS.VIDEO%,-1,[|$get(specs_full.video_codec)],)[|$get(specs_full.codec)[-$get(specs_full.codec_profile)]][|$get(specs_full.sr_bps_br)][|%channels%][|$get(specs_full.bitrate)kbps],2,512),|,$get(delimiter)))