1 /*
2 * Copyright (c) 2021-2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #define MINIMP3_IMPLEMENTATION
17 #define MAX_FRAME_SYNC_MATCHES 3
18 #include "minimp3.h"
19 #include "minimp3_ex.h"
20 #undef MINIMP3_IMPLEMENTATION
21
22 #include "minimp3_wrapper.h"
23
Minimp3WrapperMp3decInit(Minimp3WrapperMp3dec * dec)24 void Minimp3WrapperMp3decInit(Minimp3WrapperMp3dec *dec)
25 {
26 mp3dec_init(dec);
27 }
28
Minimp3WrapperMp3decDecodeFrame(Minimp3WrapperMp3dec * dec,const uint8_t * mp3,int mp3Bytes,Minimp3WrapperMp3dSample * pcm,Minimp3WrapperMp3decFrameInfo * info)29 int Minimp3WrapperMp3decDecodeFrame(Minimp3WrapperMp3dec *dec, const uint8_t *mp3, int mp3Bytes,
30 Minimp3WrapperMp3dSample *pcm, Minimp3WrapperMp3decFrameInfo *info)
31 {
32 return mp3dec_decode_frame(dec, mp3, mp3Bytes, pcm, info);
33 }
34
Minimp3WrapperMp3decDetectBuf(const uint8_t * buf,size_t bufSize)35 int Minimp3WrapperMp3decDetectBuf(const uint8_t *buf, size_t bufSize)
36 {
37 return mp3dec_detect_buf(buf, bufSize);
38 }
39
Minimp3WrapperMp3decDetectCb(Minimp3WrapperMp3decIO * io,uint8_t * buf,size_t bufSize)40 int Minimp3WrapperMp3decDetectCb(Minimp3WrapperMp3decIO *io, uint8_t *buf, size_t bufSize)
41 {
42 return mp3dec_detect_cb(io, buf, bufSize);
43 }
44
Minimp3WrapperMp3decIterateBuf(const uint8_t * buf,size_t bufSize,MINIMP3_WRAPPER_MP3D_ITERATE_CB callback,void * userData)45 int Minimp3WrapperMp3decIterateBuf(const uint8_t *buf, size_t bufSize, MINIMP3_WRAPPER_MP3D_ITERATE_CB callback,
46 void *userData)
47 {
48 return mp3dec_iterate_buf(buf, bufSize, callback, userData);
49 }
50
Minimp3WrapperMp3decIterateCb(Minimp3WrapperMp3decIO * io,uint8_t * buf,size_t bufSize,MINIMP3_WRAPPER_MP3D_ITERATE_CB callback,void * userData)51 int Minimp3WrapperMp3decIterateCb(Minimp3WrapperMp3decIO *io, uint8_t *buf, size_t bufSize,
52 MINIMP3_WRAPPER_MP3D_ITERATE_CB callback, void *userData)
53 {
54 return mp3dec_iterate_cb(io, buf, bufSize, callback, userData);
55 }
56
57 Minimp3DemuxerOp minimp3DemuxerOp = {
58 .init = Minimp3WrapperMp3decInit,
59 .decoderFrame = Minimp3WrapperMp3decDecodeFrame,
60 .detecBuf = Minimp3WrapperMp3decDetectBuf,
61 .detecCb = Minimp3WrapperMp3decDetectCb,
62 .iterateBuf = Minimp3WrapperMp3decIterateBuf,
63 .iterateCb = Minimp3WrapperMp3decIterateCb
64 };
65
MiniMp3GetOpt(void)66 Minimp3DemuxerOp MiniMp3GetOpt(void)
67 {
68 return minimp3DemuxerOp;
69 }