@@ -313,10 +313,48 @@ impl fmt::Display for AvcProfile {
313
313
314
314
#[ derive( Debug , PartialEq , Clone , Copy ) ]
315
315
pub enum AudioObjectType {
316
- AacMain = 1 ,
317
- AacLowComplexity = 2 ,
318
- AacScalableSampleRate = 3 ,
319
- AacLongTermPrediction = 4 ,
316
+ AacMain = 1 , // AAC Main Profile
317
+ AacLowComplexity = 2 , // AAC Low Complexity
318
+ AacScalableSampleRate = 3 , // AAC Scalable Sample Rate
319
+ AacLongTermPrediction = 4 , // AAC Long Term Predictor
320
+ SpectralBandReplication = 5 , // Spectral band Replication
321
+ AACScalable = 6 , // AAC Scalable
322
+ TwinVQ = 7 , // Twin VQ
323
+ CodeExcitedLinearPrediction = 8 , // CELP
324
+ HarmonicVectorExcitationCoding = 9 , // HVXC
325
+ TextToSpeechtInterface = 12 , // TTSI
326
+ MainSynthetic = 13 , // Main Synthetic
327
+ WavetableSynthesis = 14 , // Wavetable Synthesis
328
+ GeneralMIDI = 15 , // General MIDI
329
+ AlgorithmicSynthesis = 16 , // Algorithmic Synthesis
330
+ ErrorResilientAacLowComplexity = 17 , // ER AAC LC
331
+ ErrorResilientAacLongTermPrediction = 19 , // ER AAC LTP
332
+ ErrorResilientAacScalable = 20 , // ER AAC Scalable
333
+ ErrorResilientAacTwinVQ = 21 , // ER AAC TwinVQ
334
+ ErrorResilientAacBitSlicedArithmeticCoding = 22 , // ER Bit Sliced Arithmetic Coding
335
+ ErrorResilientAacLowDelay = 23 , // ER AAC Low Delay
336
+ ErrorResilientCodeExcitedLinearPrediction = 24 , // ER CELP
337
+ ErrorResilientHarmonicVectorExcitationCoding = 25 , // ER HVXC
338
+ ErrorResilientHarmonicIndividualLinesNoise = 26 , // ER HILN
339
+ ErrorResilientParametric = 27 , // ER Parametric
340
+ SinuSoidalCoding = 28 , // SSC
341
+ ParametricStereo = 29 , // PS
342
+ MpegSurround = 30 , // MPEG Surround
343
+ MpegLayer1 = 32 , // MPEG Layer 1
344
+ MpegLayer2 = 33 , // MPEG Layer 2
345
+ MpegLayer3 = 34 , // MPEG Layer 3
346
+ DirectStreamTransfer = 35 , // DST Direct Stream Transfer
347
+ AudioLosslessCoding = 36 , // ALS Audio Lossless Coding
348
+ ScalableLosslessCoding = 37 , // SLC Scalable Lossless Coding
349
+ ScalableLosslessCodingNoneCore = 38 , // SLC non-core
350
+ ErrorResilientAacEnhancedLowDelay = 39 , // ER AAC ELD
351
+ SymbolicMusicRepresentationSimple = 40 , // SMR Simple
352
+ SymbolicMusicRepresentationMain = 41 , // SMR Main
353
+ UnifiedSpeechAudioCoding = 42 , // USAC
354
+ SpatialAudioObjectCoding = 43 , // SAOC
355
+ LowDelayMpegSurround = 44 , // LD MPEG Surround
356
+ SpatialAudioObjectCodingDialogueEnhancement = 45 , // SAOC-DE
357
+ AudioSync = 46 , // Audio Sync
320
358
}
321
359
322
360
impl TryFrom < u8 > for AudioObjectType {
@@ -327,6 +365,44 @@ impl TryFrom<u8> for AudioObjectType {
327
365
2 => Ok ( AudioObjectType :: AacLowComplexity ) ,
328
366
3 => Ok ( AudioObjectType :: AacScalableSampleRate ) ,
329
367
4 => Ok ( AudioObjectType :: AacLongTermPrediction ) ,
368
+ 5 => Ok ( AudioObjectType :: SpectralBandReplication ) ,
369
+ 6 => Ok ( AudioObjectType :: AACScalable ) ,
370
+ 7 => Ok ( AudioObjectType :: TwinVQ ) ,
371
+ 8 => Ok ( AudioObjectType :: CodeExcitedLinearPrediction ) ,
372
+ 9 => Ok ( AudioObjectType :: HarmonicVectorExcitationCoding ) ,
373
+ 12 => Ok ( AudioObjectType :: TextToSpeechtInterface ) ,
374
+ 13 => Ok ( AudioObjectType :: MainSynthetic ) ,
375
+ 14 => Ok ( AudioObjectType :: WavetableSynthesis ) ,
376
+ 15 => Ok ( AudioObjectType :: GeneralMIDI ) ,
377
+ 16 => Ok ( AudioObjectType :: AlgorithmicSynthesis ) ,
378
+ 17 => Ok ( AudioObjectType :: ErrorResilientAacLowComplexity ) ,
379
+ 19 => Ok ( AudioObjectType :: ErrorResilientAacLongTermPrediction ) ,
380
+ 20 => Ok ( AudioObjectType :: ErrorResilientAacScalable ) ,
381
+ 21 => Ok ( AudioObjectType :: ErrorResilientAacTwinVQ ) ,
382
+ 22 => Ok ( AudioObjectType :: ErrorResilientAacBitSlicedArithmeticCoding ) ,
383
+ 23 => Ok ( AudioObjectType :: ErrorResilientAacLowDelay ) ,
384
+ 24 => Ok ( AudioObjectType :: ErrorResilientCodeExcitedLinearPrediction ) ,
385
+ 25 => Ok ( AudioObjectType :: ErrorResilientHarmonicVectorExcitationCoding ) ,
386
+ 26 => Ok ( AudioObjectType :: ErrorResilientHarmonicIndividualLinesNoise ) ,
387
+ 27 => Ok ( AudioObjectType :: ErrorResilientParametric ) ,
388
+ 28 => Ok ( AudioObjectType :: SinuSoidalCoding ) ,
389
+ 29 => Ok ( AudioObjectType :: ParametricStereo ) ,
390
+ 30 => Ok ( AudioObjectType :: MpegSurround ) ,
391
+ 32 => Ok ( AudioObjectType :: MpegLayer1 ) ,
392
+ 33 => Ok ( AudioObjectType :: MpegLayer2 ) ,
393
+ 34 => Ok ( AudioObjectType :: MpegLayer3 ) ,
394
+ 35 => Ok ( AudioObjectType :: DirectStreamTransfer ) ,
395
+ 36 => Ok ( AudioObjectType :: AudioLosslessCoding ) ,
396
+ 37 => Ok ( AudioObjectType :: ScalableLosslessCoding ) ,
397
+ 38 => Ok ( AudioObjectType :: ScalableLosslessCodingNoneCore ) ,
398
+ 39 => Ok ( AudioObjectType :: ErrorResilientAacEnhancedLowDelay ) ,
399
+ 40 => Ok ( AudioObjectType :: SymbolicMusicRepresentationSimple ) ,
400
+ 41 => Ok ( AudioObjectType :: SymbolicMusicRepresentationMain ) ,
401
+ 42 => Ok ( AudioObjectType :: UnifiedSpeechAudioCoding ) ,
402
+ 43 => Ok ( AudioObjectType :: SpatialAudioObjectCoding ) ,
403
+ 44 => Ok ( AudioObjectType :: LowDelayMpegSurround ) ,
404
+ 45 => Ok ( AudioObjectType :: SpatialAudioObjectCodingDialogueEnhancement ) ,
405
+ 46 => Ok ( AudioObjectType :: AudioSync ) ,
330
406
_ => Err ( Error :: InvalidData ( "invalid audio object type" ) ) ,
331
407
}
332
408
}
@@ -335,10 +411,48 @@ impl TryFrom<u8> for AudioObjectType {
335
411
impl fmt:: Display for AudioObjectType {
336
412
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
337
413
let type_str = match self {
338
- AudioObjectType :: AacMain => "main " ,
414
+ AudioObjectType :: AacMain => "AAC Main " ,
339
415
AudioObjectType :: AacLowComplexity => "LC" ,
340
416
AudioObjectType :: AacScalableSampleRate => "SSR" ,
341
417
AudioObjectType :: AacLongTermPrediction => "LTP" ,
418
+ AudioObjectType :: SpectralBandReplication => "SBR" ,
419
+ AudioObjectType :: AACScalable => "Scalable" ,
420
+ AudioObjectType :: TwinVQ => "TwinVQ" ,
421
+ AudioObjectType :: CodeExcitedLinearPrediction => "CELP" ,
422
+ AudioObjectType :: HarmonicVectorExcitationCoding => "HVXC" ,
423
+ AudioObjectType :: TextToSpeechtInterface => "TTSI" ,
424
+ AudioObjectType :: MainSynthetic => "Main Synthetic" ,
425
+ AudioObjectType :: WavetableSynthesis => "Wavetable Synthesis" ,
426
+ AudioObjectType :: GeneralMIDI => "General MIDI" ,
427
+ AudioObjectType :: AlgorithmicSynthesis => "Algorithmic Synthesis" ,
428
+ AudioObjectType :: ErrorResilientAacLowComplexity => "ER AAC LC" ,
429
+ AudioObjectType :: ErrorResilientAacLongTermPrediction => "ER AAC LTP" ,
430
+ AudioObjectType :: ErrorResilientAacScalable => "ER AAC scalable" ,
431
+ AudioObjectType :: ErrorResilientAacTwinVQ => "ER AAC TwinVQ" ,
432
+ AudioObjectType :: ErrorResilientAacBitSlicedArithmeticCoding => "ER AAC BSAC" ,
433
+ AudioObjectType :: ErrorResilientAacLowDelay => "ER AAC LD" ,
434
+ AudioObjectType :: ErrorResilientCodeExcitedLinearPrediction => "ER CELP" ,
435
+ AudioObjectType :: ErrorResilientHarmonicVectorExcitationCoding => "ER HVXC" ,
436
+ AudioObjectType :: ErrorResilientHarmonicIndividualLinesNoise => "ER HILN" ,
437
+ AudioObjectType :: ErrorResilientParametric => "ER Parametric" ,
438
+ AudioObjectType :: SinuSoidalCoding => "SSC" ,
439
+ AudioObjectType :: ParametricStereo => "Parametric Stereo" ,
440
+ AudioObjectType :: MpegSurround => "MPEG surround" ,
441
+ AudioObjectType :: MpegLayer1 => "MPEG Layer 1" ,
442
+ AudioObjectType :: MpegLayer2 => "MPEG Layer 2" ,
443
+ AudioObjectType :: MpegLayer3 => "MPEG Layer 3" ,
444
+ AudioObjectType :: DirectStreamTransfer => "DST" ,
445
+ AudioObjectType :: AudioLosslessCoding => "ALS" ,
446
+ AudioObjectType :: ScalableLosslessCoding => "SLS" ,
447
+ AudioObjectType :: ScalableLosslessCodingNoneCore => "SLS Non-core" ,
448
+ AudioObjectType :: ErrorResilientAacEnhancedLowDelay => "ER AAC ELD" ,
449
+ AudioObjectType :: SymbolicMusicRepresentationSimple => "SMR Simple" ,
450
+ AudioObjectType :: SymbolicMusicRepresentationMain => "SMR Main" ,
451
+ AudioObjectType :: UnifiedSpeechAudioCoding => "USAC" ,
452
+ AudioObjectType :: SpatialAudioObjectCoding => "SAOC" ,
453
+ AudioObjectType :: LowDelayMpegSurround => "LD MPEG Surround" ,
454
+ AudioObjectType :: SpatialAudioObjectCodingDialogueEnhancement => "SAOC-DE" ,
455
+ AudioObjectType :: AudioSync => "Audio Sync" ,
342
456
} ;
343
457
write ! ( f, "{}" , type_str)
344
458
}
0 commit comments