📄 fbm_driver_api.c
字号:
/*==========================================================================*/
/* (Copyright (C) 2003 Koninklijke Philips Electronics N.V. */
/* All rights reserved. */
/* This source code and any compilation or derivative thereof is the */
/* proprietary information of Koninklijke Philips Electronics N.V. */
/* and is confidential in nature. */
/* Under no circumstances is this software to be exposed to or placed */
/* under an Open Source License of any type without the expressed */
/* written permission of Koninklijke Philips Electronics N.V. */
/*==========================================================================*/
/*==========================================================================*/
/*
SOURCE_FILE: $RCSfile: fbm_driver_api.c,v $
APPLICATION:
PACKAGE: Video Output
COMPONENT: MPEG Video
VERSION: $Revision: 1.7 $
DATE: $Date: 1998/04/29 12:13:58 $
(C) 1997: Philips Export B.V.
All rights are reserved. Reproduction in whole or in part is
prohibited without the prior written consent of the copyright
owner. The information presented in this document does not
form part of any quotation or contract, is believed to be
accurate and reliable and may be changed without notice.
No liability will be accepted by the publisher for any
consequence of its use. Publication thereof does not convey
nor imply any license under patent- or other industrial or
intellectual property rights.
*/
/*==========================================================================*/
/*==========================================================================*/
/* I N C L U D E S */
/*==========================================================================*/
#include "standard.h"
#include "mv_dec.h"
#include "mv_decl.h"
#include "fbm_sw.h"
#include "fbm_api.h"
#include "fbm_driver_api.h"
#include "disp_api.h"
/*==========================================================================*/
/* L O C A L S Y M B O L D E C L A R A T I O N S */
/*==========================================================================*/
/*==========================================================================*/
/* L O C A L F U N C T I O N S P R O T O T Y P E S */
/*==========================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_driver_dec_to_disp
DESCRIPTION:
Update the dec_to_disp_N1 flag of FBM status
RETURNS:
MV_FBM_OK
MV_FBM_NOT_OK
CALLING SEQUENCE:
*/
int
MV_FBM_driver_dec_to_disp(
ULONG msg_buf[4],
FBM_STATUS *ou_fbm_status_ptr
)
/*EMP=======================================================================*/
{
UInt32 returnVal = MV_FBM_OK;
if(msg_buf[1] == MV_DEC_TO_DISP_N1)
{
ou_fbm_status_ptr->dec_to_disp_N1 = TRUE;
}
else
{
ou_fbm_status_ptr->dec_to_disp_N1 = FALSE;
}
return(returnVal);
} /* End MV_FBM_driver_dec_to_disp */
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_driver_scan
DESCRIPTION:
Update the scan status of FBM_status
RETURNS:
MV_FBM_OK
MV_FBM_NOT_OK
CALLING SEQUENCE:
*/
int
MV_FBM_driver_scan(
ULONG msg_buf[4],
FBM_STATUS *ou_fbm_status_ptr
)
/*EMP=======================================================================*/
{
UInt32 returnVal = MV_FBM_OK;
switch(msg_buf[1])
{
case MV_DEC_SCAN_MODE_I_PICTURE:
case MV_DEC_SCAN_MODE_IP_PICTURE:
case MV_DEC_SCAN_MODE_NONE:
ou_fbm_status_ptr->scan_status = msg_buf[1];
break;
default:
returnVal = MV_FBM_NOT_OK;
break;
}
return(returnVal);
} /* End MV_FBM_driver_scan */
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_driver_freeze
DESCRIPTION:
Update the freeze status of FBM_status
RETURNS:
MV_FBM_OK
MV_FBM_NOT_OK
CALLING SEQUENCE:
*/
int
MV_FBM_driver_freeze(
ULONG msg_buf[4],
FBM_STATUS *ou_fbm_status_ptr
)
/*EMP=======================================================================*/
{
UInt32 returnVal = MV_FBM_OK;
switch(msg_buf[1])
{
case MV_DEC_FREEZE_MODE_B:
case MV_DEC_FREEZE_MODE_IP:
case MV_DEC_FREEZE_MODE_NONE:
ou_fbm_status_ptr->freeze_mode_requested = msg_buf[1];
break;
default:
returnVal = MV_FBM_NOT_OK;
break;
}
return(returnVal);
} /* End MV_FBM_driver_freeze */
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_driver_play
DESCRIPTION:
Update the play status of FBM_status
RETURNS:
MV_FBM_OK
MV_FBM_NOT_OK
CALLING SEQUENCE:
*/
int
MV_FBM_driver_play(
FBM_STATUS *ou_fbm_status_ptr
)
/*EMP=======================================================================*/
{
UInt32 returnVal = MV_FBM_OK;
ou_fbm_status_ptr->scan_status = MV_DEC_SCAN_MODE_NONE;
ou_fbm_status_ptr->step_status = MV_DEC_STEP_MODE_NONE;
ou_fbm_status_ptr->freeze_mode_requested = MV_DEC_FREEZE_MODE_NONE;
ou_fbm_status_ptr->dec_picture_controlled = FALSE;
/*----------------------------------------------------------------!
! No check on decoding should be performed on the coming Vs !
! Look for a new picture to decode !
!----------------------------------------------------------------*/
ou_fbm_status_ptr->Vs = VS_DECODE;
ou_fbm_status_ptr->next_Vs = VS_DECODE;
return(returnVal);
} /* End MV_FBM_driver_play */
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_driver_step
PACKAGE: MV_FBM
SCOPE: <PACKAGE, COMPONENT, CLUSTER or SYSTEM>
CALLING SEQUENCE:
*/
int /* Returns: <description> */
MV_FBM_driver_step(
ULONG msg_buf[4],
FBM_STATUS *ou_fbm_status_ptr
)
/*EMP=======================================================================*/
{
UInt32 returnVal = MV_FBM_OK;
switch(msg_buf[1])
{
case MV_DEC_STEP_MODE_I:
case MV_DEC_STEP_MODE_IP:
ou_fbm_status_ptr->step_status = msg_buf[1];
ou_fbm_status_ptr->step_required = TRUE;
/* Switch to picture_controlled mode */
ou_fbm_status_ptr->dec_picture_controlled = TRUE;
/* Set next_Vs to VS_DECODE */
ou_fbm_status_ptr->next_Vs = VS_DECODE;
/* Update decode_next_picture_request */
ou_fbm_status_ptr->decode_next_picture_request = TRUE ;
break;
case MV_DEC_STEP_MODE_NONE:
ou_fbm_status_ptr->step_status = MV_DEC_STEP_MODE_NONE;
ou_fbm_status_ptr->step_required = FALSE;
/* Switch to picture_controlled mode */
ou_fbm_status_ptr->dec_picture_controlled = FALSE;
/* Set next_Vs to VS_DECODE */
ou_fbm_status_ptr->next_Vs = VS_NO_DECODE;
/* Update decode_next_picture_request */
ou_fbm_status_ptr->decode_next_picture_request = FALSE ;
break;
default:
returnVal = MV_FBM_NOT_OK;
break;
}
return(returnVal);
} /* End of MV_FBM_driver_step */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -