xref: /aosp_15_r20/external/libxaac/encoder/ixheaace_mps_lib.h (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
1 /******************************************************************************
2  *                                                                            *
3  * Copyright (C) 2023 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************
18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19  */
20 
21 #pragma once
22 typedef struct {
23   WORD32 num_ssc_size_bits;
24   UWORD8 *ptr_ssc;
25 
26 } ixheaace_mps_space_ssc_buf;
27 
28 typedef struct {
29   WORD32 num_sample_rate;
30   WORD32 num_samples_frame;
31   WORD32 num_total_input_channels;
32   WORD32 dmx_delay;
33   WORD32 codec_delay;
34 
35   WORD32 decoder_delay;
36   WORD32 pay_load_delay;
37   WORD32 num_discard_out_frames;
38 
39   ixheaace_mps_space_ssc_buf *p_ssc_buf;
40 
41 } ixheaace_mps_space_info;
42 
43 typedef struct {
44   WORD32 num_input_samples;
45   UWORD32 input_buffer_size_per_channel;
46   UWORD32 is_input_inter_leaved;
47 
48 } ixheaace_mps_in_args;
49 
50 typedef struct {
51   WORD32 num_output_bits;
52   WORD32 num_output_samples;
53   UWORD32 num_samples_consumed;
54 
55 } ixheaace_mps_out_args;
56 
57 typedef struct ixheaace_mps_space_structure ixheaace_mps_space_structure,
58     *ixheaace_mps_pstr_space_structure;
59