@@ -146,6 +146,7 @@ enum items {
146
146
item_samples,
147
147
item_numchans,
148
148
item_quantization,
149
+ item_trackpitch,
149
150
item_Max,
150
151
};
151
152
@@ -218,7 +219,13 @@ void File_Dat::Streams_Accept()
218
219
auto Index = Conditional (Priv->Items [Item]);
219
220
if (Index >= 0 ) {
220
221
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);
222
229
}
223
230
else {
224
231
Fill (Stream_Audio, 0 , Field, " Value" + to_string (Index));
@@ -288,6 +295,7 @@ void File_Dat::Streams_Accept()
288
295
Conditional_Int16 (Audio_SamplingRate, item_samples, Dat_samples);
289
296
Conditional_Int8 (Audio_Channel_s_, item_numchans, Dat_numchans);
290
297
Conditional_Int8 (Audio_BitDepth, item_quantization, Dat_quantization);
298
+ Conditional_Int8 (Audio_FrameRate, item_trackpitch, Dat_samples_mul);
291
299
for (int i = 0 ; i < 7 ; i++) {
292
300
Conditional_TimeCode (i);
293
301
}
@@ -444,13 +452,13 @@ void File_Dat::Data_Parse()
444
452
}
445
453
Element_End0 ();
446
454
Element_Begin1 (" dtmainid" );
447
- int8u fmtid, emphasis, sampfreq, numchans, quantization;
455
+ int8u fmtid, emphasis, sampfreq, numchans, quantization, trackpitch ;
448
456
Get_S1 ( 2 , fmtid, " fmtid" ); Param_Info1C (Dat_fmtid[fmtid], Dat_fmtid[fmtid]);
449
457
Get_S1 ( 2 , emphasis, " emphasis" ); Param_Info1C (Dat_emphasis[emphasis], Dat_emphasis[emphasis]);
450
458
Get_S1 ( 2 , sampfreq, " sampfreq" ); Param_Info2C (Dat_samples[sampfreq], Dat_samples[sampfreq], " samples" );
451
459
Get_S1 ( 2 , numchans, " numchans" ); Param_Info2C (Dat_numchans[numchans], Dat_numchans[numchans], " channels" );
452
460
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]);
454
462
Info_S1 ( 2 , copy, " copy" ); Param_Info1C (Dat_copy[copy], Dat_copy[copy]);
455
463
Skip_S1 ( 2 , " pack" );
456
464
if (fmtid) {
@@ -479,6 +487,7 @@ void File_Dat::Data_Parse()
479
487
Priv->Items [item_samples][sampfreq]++;
480
488
Priv->Items [item_numchans][numchans]++;
481
489
Priv->Items [item_quantization][quantization]++;
490
+ Priv->Items [item_trackpitch][trackpitch]++;
482
491
483
492
Frame_Count++;
484
493
if (!Status[IsAccepted]) {
0 commit comments