C++程序  |  59行  |  1.9 KB

/******************************************************************************
 *                                                                            *
 * Copyright (C) 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 *****************************************************************************
 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
*/
#ifndef __METADATA_H
#define __METADATA_H

#define MAX_TRACKS_PER_LAYER 50

typedef struct {
  UWORD32 *ia_mp4_stsz_size;
  UWORD32 ia_mp4_stsz_entries;
  UWORD32 fill_once;
  UWORD32 movie_time_scale;
  UWORD32 media_time_scale;

  UWORD32 dec_info_init;
  UWORD32 g_track_count;
  UWORD32 useEditlist[MAX_TRACKS_PER_LAYER];
  UWORD32 startOffsetInSamples[MAX_TRACKS_PER_LAYER];
  UWORD32 playTimeInSamples[MAX_TRACKS_PER_LAYER];

} metadata_info;

void metadata_info_init(metadata_info *meta_info);

int ixheaacd_read_metadata_info(FILE *fp, metadata_info *meta_info);

int get_metadata_dec_info_init(metadata_info meta_info);

int get_metadata_dec_exec(metadata_info meta_info, int frame);

int get_start_offset_in_samples(metadata_info meta_info);

int get_play_time_in_samples(metadata_info meta_info);

void update_start_offset_in_samples(metadata_info meta_info, int update);

void update_play_time_in_samples(metadata_info meta_info, int update);

void memset_metadata(metadata_info meta_info);

#endif