Skip to content

Commit 8ecd175

Browse files
+ DAT: frame rate
1 parent 9da314e commit 8ecd175

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

Source/MediaInfo/Audio/File_Dat.cpp

+12-3
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ enum items {
146146
item_samples,
147147
item_numchans,
148148
item_quantization,
149+
item_trackpitch,
149150
item_Max,
150151
};
151152

@@ -218,7 +219,13 @@ void File_Dat::Streams_Accept()
218219
auto Index = Conditional(Priv->Items[Item]);
219220
if (Index >= 0) {
220221
if (Array[Index]) {
221-
Fill(Stream_Audio, 0, Field, Array[Index]);
222+
auto Value = Array[Index];
223+
if (Item == item_trackpitch) {
224+
// Samples to frame rate
225+
Fill(Stream_Audio, 0, Field, 100.0 / 3 / Value);
226+
return;
227+
}
228+
Fill(Stream_Audio, 0, Field, Value);
222229
}
223230
else {
224231
Fill(Stream_Audio, 0, Field, "Value" + to_string(Index));
@@ -288,6 +295,7 @@ void File_Dat::Streams_Accept()
288295
Conditional_Int16(Audio_SamplingRate, item_samples, Dat_samples);
289296
Conditional_Int8(Audio_Channel_s_, item_numchans, Dat_numchans);
290297
Conditional_Int8(Audio_BitDepth, item_quantization, Dat_quantization);
298+
Conditional_Int8(Audio_FrameRate, item_trackpitch, Dat_samples_mul);
291299
for (int i = 0; i < 7; i++) {
292300
Conditional_TimeCode(i);
293301
}
@@ -444,13 +452,13 @@ void File_Dat::Data_Parse()
444452
}
445453
Element_End0();
446454
Element_Begin1("dtmainid");
447-
int8u fmtid, emphasis, sampfreq, numchans, quantization;
455+
int8u fmtid, emphasis, sampfreq, numchans, quantization, trackpitch;
448456
Get_S1 ( 2, fmtid, "fmtid"); Param_Info1C(Dat_fmtid[fmtid], Dat_fmtid[fmtid]);
449457
Get_S1 ( 2, emphasis, "emphasis"); Param_Info1C(Dat_emphasis[emphasis], Dat_emphasis[emphasis]);
450458
Get_S1 ( 2, sampfreq, "sampfreq"); Param_Info2C(Dat_samples[sampfreq], Dat_samples[sampfreq], " samples");
451459
Get_S1 ( 2, numchans, "numchans"); Param_Info2C(Dat_numchans[numchans], Dat_numchans[numchans], " channels");
452460
Get_S1 ( 2, quantization, "quantization"); Param_Info2C(Dat_quantization[quantization], Dat_quantization[quantization], " bits");
453-
Info_S1( 2, trackpitch, "trackpitch"); Param_Info1C(Dat_samples_mul[trackpitch], Dat_samples_mul[trackpitch]);
461+
Get_S1 ( 2, trackpitch, "trackpitch"); Param_Info1C(Dat_samples_mul[trackpitch], Dat_samples_mul[trackpitch]);
454462
Info_S1( 2, copy, "copy"); Param_Info1C(Dat_copy[copy], Dat_copy[copy]);
455463
Skip_S1( 2, "pack");
456464
if (fmtid) {
@@ -479,6 +487,7 @@ void File_Dat::Data_Parse()
479487
Priv->Items[item_samples][sampfreq]++;
480488
Priv->Items[item_numchans][numchans]++;
481489
Priv->Items[item_quantization][quantization]++;
490+
Priv->Items[item_trackpitch][trackpitch]++;
482491

483492
Frame_Count++;
484493
if (!Status[IsAccepted]) {

0 commit comments

Comments
 (0)