/*----------------------------------------------------------------------------*
 * No Warranty                                                                *
 * Except as may be otherwise agreed to in writing, no warranties of any      *
 * kind, whether express or implied, are given by MTK with respect to any MTK *
 * Deliverables or any use thereof, and MTK Deliverables are provided on an   *
 * "AS IS" basis.  MTK hereby expressly disclaims all such warranties,        *
 * including any implied warranties of merchantability, non-infringement and  *
 * fitness for a particular purpose and any warranties arising out of course  *
 * of performance, course of dealing or usage of trade.  Parties further      *
 * acknowledge that Company may, either presently and/or in the future,       *
 * instruct MTK to assist it in the development and the implementation, in    *
 * accordance with Company's designs, of certain softwares relating to        *
 * Company's product(s) (the "Services").  Except as may be otherwise agreed  *
 * to in writing, no warranties of any kind, whether express or implied, are  *
 * given by MTK with respect to the Services provided, and the Services are   *
 * provided on an "AS IS" basis.  Company further acknowledges that the       *
 * Services may contain errors, that testing is important and Company is      *
 * solely responsible for fully testing the Services and/or derivatives       *
 * thereof before they are used, sublicensed or distributed.  Should there be *
 * any third party action brought against MTK, arising out of or relating to  *
 * the Services, Company agree to fully indemnify and hold MTK harmless.      *
 * If the parties mutually agree to enter into or continue a business         *
 * relationship or other arrangement, the terms and conditions set forth      *
 * hereunder shall remain effective and, unless explicitly stated otherwise,  *
 * shall prevail in the event of a conflict in the terms in any agreements    *
 * entered into between the parties.                                          *
 *---------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
 * Copyright (c) 2005, MediaTek, Inc.
 * All rights reserved.
 *
 * Unauthorized use, practice, perform, copy, distribution, reproduction,
 * or disclosure of this information in whole or in part is prohibited.
 *-----------------------------------------------------------------------------
 * $RCSfile: x_mux_util.h,v $
 * $Revision: #1 $
 * $Date: 2015/11/10 $
 * $Author: dtvbm11 $
 * $CCRevision: /main/DTV_X_HQ_int/5 $
 * $SWAuthor: Clear Case Administrator $
 * $MD5HEX: e5a2644d77eac094a5d2aa1496612a57 $
 *
 * Description:
 *         This contains Record Utility exported macros, definitons,
 *         and structures.
 *---------------------------------------------------------------------------*/

#ifndef _C_MUX_UTIL_H_
#define _C_MUX_UTIL_H_

/*-----------------------------------------------------------------------------
                    include files
-----------------------------------------------------------------------------*/
#include "u_common.h"
#include "u_handle.h"
#include "u_mux_util.h"

/*-----------------------------------------------------------------------------
                    macros, defines, typedefs, enums
-----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
                    Functions declarations
-----------------------------------------------------------------------------*/
extern INT32 c_mux_util_init( const MUX_UTIL_SYS_CONFIG_T* pt_sys_cfg );

extern INT32 c_mux_util_deinit(VOID);

extern INT32 c_mux_util_open( MUX_UTIL_PARAM_T* pt_mux_param,
                                    HANDLE_T*    ph_mux );

extern INT32 c_mux_util_start( HANDLE_T  h_mux,
                                    VOID*    pv_info );

extern INT32 c_mux_util_stop( HANDLE_T   h_mux,
                                   VOID*      pv_info );


extern INT32 c_mux_util_get( HANDLE_T            h_mux,
                                  MUX_UTIL_GET_TYPE_T t_type,
                                  SIZE_T*             pz_info_size,
                                  VOID*               pv_info );

extern INT32 c_mux_util_set( HANDLE_T            h_mux,
                                  MUX_UTIL_GET_TYPE_T t_type,
                                  SIZE_T*             pz_info_size,
                                  VOID*               pv_info );
extern INT32 c_mux_util_close( HANDLE_T  h_mux,
                                    VOID*      pv_info );


#endif /*end of _C_MUX_UTIL_H_ */


