Mercurial > foo_out_sdl
comparison foosdk/sdk/foobar2000/helpers/packet_decoder_mp3_common.cpp @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:e9bb126753e7 | 1:20d02a178406 |
|---|---|
| 1 #include "StdAfx.h" | |
| 2 #include "packet_decoder_mp3_common.h" | |
| 3 #include "mp3_utils.h" | |
| 4 | |
| 5 unsigned packet_decoder_mp3_common::parseDecoderSetup( const GUID & p_owner,t_size p_param1,const void * p_param2,t_size p_param2size ) | |
| 6 { | |
| 7 if (p_owner == owner_MP3) return 3; | |
| 8 else if (p_owner == owner_MP2) return 2; | |
| 9 else if (p_owner == owner_MP1) return 1; | |
| 10 else if (p_owner == owner_MP4) | |
| 11 { | |
| 12 switch(p_param1) | |
| 13 { | |
| 14 case 0x6B: | |
| 15 return 3; | |
| 16 break; | |
| 17 case 0x69: | |
| 18 return 3; | |
| 19 break; | |
| 20 default: | |
| 21 return 0; | |
| 22 } | |
| 23 } | |
| 24 else if (p_owner == owner_matroska) | |
| 25 { | |
| 26 if (p_param2size==sizeof(matroska_setup)) | |
| 27 { | |
| 28 const matroska_setup * setup = (const matroska_setup*) p_param2; | |
| 29 if (!strcmp(setup->codec_id,"A_MPEG/L3")) return 3; | |
| 30 else if (!strcmp(setup->codec_id,"A_MPEG/L2")) return 2; | |
| 31 else if (!strcmp(setup->codec_id,"A_MPEG/L1")) return 1; | |
| 32 else return 0; | |
| 33 } | |
| 34 else return 0; | |
| 35 } | |
| 36 else return 0; | |
| 37 } | |
| 38 | |
| 39 unsigned packet_decoder_mp3_common::layer_from_frame(const void * frame, size_t size) { | |
| 40 using namespace mp3_utils; | |
| 41 TMPEGFrameInfo info; | |
| 42 if (!ParseMPEGFrameHeader(info, frame, size)) throw exception_io_data(); | |
| 43 return info.m_layer; | |
| 44 } |
