/**
 * @brief           MP4コンテナ解析処理
 * @author          AXELL CORPORATION
 * @description     MP4コンテナ解析処理
 * @note            エラーコードはAG903_error.hを参照のこと.
 * @history         2017_02_22  初版
 * @history         2017_10_26  Ver2.0
 * @history         2019_03_08  [SDK2.2] MPSでのGVDサーチレンジの設定によってデコーダが終了しなくなる不具合等を修正 (#2449)
 */

/*
 * This program was created by AXELL CORPORATION.
 * Copyright (C) 2017-2019 AXELL CORPORATION, all rights reserved.
 */

//DOM-IGNORE-BEGIN
#ifndef __MPS_MP4CP_H_
#define __MPS_MP4CP_H_
//DOM-IGNORE-END

#include "mps/mps_api.h"

/**
 * MPS_GetNearIDRPos()で算出したシーク先とその前後のIDR位置をキャッシュします. <p>
 * 0を指定した場合はキャッシュ無効になります. <p>
 * @brief IDR位置キャッシュ距離
 */
#define MPS_CACHE_FRAME_DISTANCE 2
/** @brief IDR位置キャッシュサイズ */
#define MPS_CACHE_FRAME_SIZE ((MPS_CACHE_FRAME_DISTANCE * 2) + 1)

void mps_invalidateCache(uint32_t id);
int32_t mps_ParseMP4Container(uint32_t id);
int32_t MPS_GetNearIDRPos(uint32_t id, uint32_t frame, uint32_t *idr_frame, uint32_t *idr_pos);
int32_t MPS_GetPositionBuffer(uint32_t id, gvdPositionBuffer **position_buf, uint32_t *position_count);

#endif /* __MPS_MP4CP_H_ */
