source: svn/trunk/newcon3bcm2_21bu/magnum/portinginterface/xvd/7552/bxvd_pvr.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 18.2 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2004-2012, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile: bxvd_pvr.h $
11 * $brcm_Revision: Hydra_Software_Devel/17 $
12 * $brcm_Date: 2/1/12 1:58p $
13 *
14 * Module Description:
15 *   See Module Overview below
16 *
17 * Revision History:
18 *
19 * $brcm_Log: /magnum/portinginterface/xvd/7401/bxvd_pvr.h $
20 *
21 * Hydra_Software_Devel/17   2/1/12 1:58p btosi
22 * SW7425-2270: add support for IgnoreNRTUnderflow
23 *
24 * Hydra_Software_Devel/16   8/3/10 2:03p btosi
25 * SW7400-2870: added BXVD_[Set/Get]PlaybackRate(_isr)
26 *
27 * Hydra_Software_Devel/15   7/29/09 2:45p pblanco
28 * PR57177: There is no need for a GetFrameAdvanceMode API. Removing it.
29 *
30 * Hydra_Software_Devel/14   7/29/09 1:45p pblanco
31 * PR57177: Added BXVD_PVR_GetFrameAdvance and
32 * BXVD_PVR_GetFrameAdvance_isr function prototypes.
33 *
34 * Hydra_Software_Devel/13   6/15/09 2:45p btosi
35 * PR55816: reconcile DQT logic with "Too Early" code
36 *
37 * Hydra_Software_Devel/12   3/24/09 4:52p nilesh
38 * PR52905: Added ISR versions of most get/set functions.  Cleaned up
39 * formatting.  Removed critical sections for some get functions.
40 *
41 * Hydra_Software_Devel/11   10/22/07 10:39a btosi
42 * PR30310: added BXVD_PVR_GetGopTrickMode()
43 *
44 * Hydra_Software_Devel/10   8/30/07 4:41p rayshap
45 * PR33893: Add support for BXVD_PVR_Set/GetAutoValidateStcOnPause
46 *
47 * Hydra_Software_Devel/9   6/13/07 8:08a btosi
48 * PR30310: added BXVD_PVR_SetGopTrickMode() to mainline branch
49 *
50 * Hydra_Software_Devel/8   1/23/07 2:33p pblanco
51 * PR27168: More review changes to documentation.
52 *
53 * Hydra_Software_Devel/7   1/17/07 4:26p pblanco
54 * PR27168: Incorporated changes suggested in code review on 16-Jan-2007
55 *
56 * Hydra_Software_Devel/6   3/28/06 11:48a pblanco
57 * PR20274: Removed old trick mode API prototypes.
58 *
59 * Hydra_Software_Devel/5   3/24/06 1:35p pblanco
60 * PR20274: Interim checkin prior to FW implementation.
61 *
62 * Hydra_Software_Devel/4   1/5/06 2:44p pblanco
63 * PR16052: Removed deprecated function prototypes.
64 *
65 * Hydra_Software_Devel/3   1/3/06 2:42p pblanco
66 * PR16052: Added new enum, changed some API prototypes to new forms and
67 * removed unused API prototypes.
68 *
69 * Hydra_Software_Devel/2   12/14/05 1:50p pblanco
70 * PR16052: Changed STC enum to on and off modes only.
71 *
72 * Hydra_Software_Devel/1   12/13/05 11:33a pblanco
73 * PR16052: Initial check in.
74 *
75 ****************************************************************************/
76#ifndef BXVD_PVR_H__
77#define BXVD_PVR_H__
78
79#ifdef __cplusplus
80extern "C" {
81#endif
82
83#if 0
84}
85#endif
86
87
88/***************************************************************************
89Summary:
90        Frame advance mode enum
91
92Description:
93        Enum to specify whether frame advance is frame by frame or field by field
94
95See Also:
96        BXVD_PVR_FrameAdvance
97****************************************************************************/
98typedef enum BXVD_PVR_FrameAdvanceMode
99{
100   BXVD_PVR_FrameAdvanceMode_eFrame_by_Frame, /* Frame by frame advance. Only 1st
101                                                 field of each frame is displayed */
102   BXVD_PVR_FrameAdvanceMode_eField_by_Field  /* Field by field advance. Only
103                                                 one field is advanced */
104} BXVD_PVR_FrameAdvanceMode;
105
106/***************************************************************************
107Summary:
108        BTP Mode Type
109
110Description:
111        BTP modes can be either implemented as BTP type (Transport) or
112        as BUD type (User Data) trick modes.
113
114Note:
115        Currently only BXVD_PVR_BTPMode_eOff is used. This is the value that
116        BXVD_OpenChannel and BXVD_StopDecode sets the channel's state to.
117
118 This enum is deprecated and may be removed in a future revision of PVR. Do
119 not use this in new code.
120
121See Also:
122        BXVD_PVR_EnableBTPMode
123****************************************************************************/
124typedef enum BXVD_PVR_BTPMode
125{
126   BXVD_PVR_BTPMode_eOff, /* Trick modes are off */
127   BXVD_PVR_BTPMode_eBTP, /* Trick mode info travels in the
128                             Adaptation field of Transport Packets */
129   BXVD_PVR_BTPMode_eBUD, /* Trick mode info travels in the
130                             User Data with a special marker */
131   BXVD_PVR_BTPMode_MaxMode
132} BXVD_PVR_BTPMode;
133
134/***************************************************************************
135Summary:
136        Pause/resume video
137
138Description:
139        This function pauses/resumes video. When unpaused (resumed), video
140        starts from the point it paused. This function works only for playback.
141
142Returns:
143        BERR_SUCCESS - If pause/resume operation is successful.
144
145See Also:
146        BXVD_PVR_GetPauseStatus
147****************************************************************************/
148BERR_Code BXVD_PVR_EnablePause
149(
150   BXVD_ChannelHandle      hXvdCh,        /* [In] XVD channel handle */
151   bool                    bEnablePause   /* [In] true=pause, false=resume */
152   );
153
154BERR_Code BXVD_PVR_EnablePause_isr
155(
156   BXVD_ChannelHandle      hXvdCh,        /* [In] XVD channel handle */
157   bool                    bEnablePause   /* [In] true=pause, false=resume */
158   );
159
160/***************************************************************************
161Summary:
162        Gets pause status of video
163       
164Description:
165        Returns true if paused, false otherwise
166****************************************************************************/
167BERR_Code BXVD_PVR_GetPauseStatus
168(
169   BXVD_ChannelHandle      hXvdCh,        /* [In] XVD channel handle */
170   bool                   *pbPauseStatus /* [Out] video pause status */
171   );
172
173BERR_Code BXVD_PVR_GetPauseStatus_isr
174(
175   BXVD_ChannelHandle      hXvdCh,        /* [In] XVD channel handle */
176   bool                   *pbPauseStatus /* [Out] video pause status */
177   );
178
179/***************************************************************************
180SW7400-2870:
181DEPRECATED: use BXVD_SetPlaybackRate(isr) instead
182
183Summary:
184        Set Slow motion rate
185
186Description:
187        This function programs video decoder to perform slow motion trick mode
188        with slow motion rate that is passed to this function. If rate > 1,
189        then slow motion with that rate. If rate = 1, then normal decode.
190        This is a decoder based trick mode. This function works only for
191        playback.
192
193Returns:
194        BERR_SUCCESS - If slow motion rate is programmed successfully.
195
196See Also:
197        BXVD_PVR_GetSlowMotionRate
198****************************************************************************/
199BERR_Code BXVD_PVR_SetSlowMotionRate
200(
201   BXVD_ChannelHandle      hXvdCh,      /* [In] XVD channel handle */
202   unsigned long           ulRate       /* [In] slow motion rate */
203   );
204
205BERR_Code BXVD_PVR_SetSlowMotionRate_isr
206(
207   BXVD_ChannelHandle      hXvdCh,      /* [In] XVD channel handle */
208   unsigned long           ulRate       /* [In] slow motion rate */
209   );
210
211/***************************************************************************
212SW7400-2870
213DEPRECATED: use BXVD_GetPlaybackRate(isr) instead
214Summary:
215        Get slow motion rate programmed
216
217Description: This function returns the slow motion rate that is currently
218             programmed in the video decoder.
219
220Returns:
221        BERR_SUCCESS - If opened XVD is successful.
222
223See Also:
224        BXVD_PVR_SetSlowMotionRate
225****************************************************************************/
226BERR_Code BXVD_PVR_GetSlowMotionRate
227(
228   BXVD_ChannelHandle       hXvdCh,   /* [In] XVD channel handle */
229   unsigned long           *pSMRate   /* [Out] slow motion rate */
230   );
231
232BERR_Code BXVD_PVR_GetSlowMotionRate_isr
233(
234   BXVD_ChannelHandle       hXvdCh,   /* [In] XVD channel handle */
235   unsigned long           *pSMRate   /* [Out] slow motion rate */
236   );
237
238/***************************************************************************
239Summary:
240        Set frame advance trick mode
241
242Description:
243        This function programs video decoder to perform frame advance trick
244        mode. Parameter eFrameAdvMode that is passed to this function tells
245        whether frame advance is achieved by advancing frames or fields.
246        This is a decoder based trick mode. This function works only for
247        playback.
248
249Returns:
250        BERR_SUCCESS - If frame advance mode is programmed successfully.
251
252See Also:
253****************************************************************************/
254BERR_Code BXVD_PVR_FrameAdvance
255(
256   BXVD_ChannelHandle          hXvdCh,         /* [In] XVD channel handle */
257   BXVD_PVR_FrameAdvanceMode   eFrameAdvMode  /* [In] Frame advance mode */
258   );
259
260BERR_Code BXVD_PVR_FrameAdvance_isr
261(
262   BXVD_ChannelHandle          hXvdCh,         /* [In] XVD channel handle */
263   BXVD_PVR_FrameAdvanceMode   eFrameAdvMode  /* [In] Frame advance mode */
264   );
265
266/***************************************************************************
267Summary:
268        Enable/disable field reversal
269
270Description:
271        This function enables/disables field reversal. When enabled fields are
272        displayed in the reverse order (bottom/top), this function has only effect
273        if source has interlaced format. Usually field reversal is enabled in
274        rewind type of trickmodes.
275
276Returns:
277        BERR_SUCCESS - If field reversal is enabled/disabled successfully.
278
279See Also:
280        BXVD_PVR_GetReverseFieldStatus
281****************************************************************************/
282BERR_Code BXVD_PVR_EnableReverseFields
283(
284   BXVD_ChannelHandle   hXvdCh,   /* [In] XVD channel handle */
285   bool                 bEnable   /* [In] flag to activate field reversal */
286   );
287
288BERR_Code BXVD_PVR_EnableReverseFields_isr
289(
290   BXVD_ChannelHandle   hXvdCh,  /* [In] XVD channel handle */
291   bool                 bEnable  /* [In] flag to activate field reversal */
292   );
293
294/***************************************************************************
295Summary:
296        Get current status of field reversal
297
298Description:
299        This function returns current status of field reversal
300
301Returns:
302        BERR_SUCCESS - If status was returned successfully.
303
304See Also:
305        BXVD_PVR_GetReverseFieldStatus
306****************************************************************************/
307BERR_Code BXVD_PVR_GetReverseFieldStatus
308(
309   BXVD_ChannelHandle   hXvdCh,   /* [In] XVD channel handle */
310   bool                *pbEnable  /* [Out] Status of field reversal */
311   );
312
313BERR_Code BXVD_PVR_GetReverseFieldStatus_isr
314(
315   BXVD_ChannelHandle   hXvdCh,  /* [In] XVD channel handle */
316   bool                *pbEnable /* [Out] Status of field reversal */
317   );
318
319/***************************************************************************
320Summary:
321  Enable or disable host sparse mode.
322
323Description:
324  This function enables host sparse mode when bSparseMode is true or disables
325  it when bSparseMode is false. For AVC this function is used to tell the
326         decoder it is in a host trick mode... it will have no effect on a non-H264
327  stream. Calling this function on valid AVC stream will result in the decode
328  stopping then restarting.
329
330Returns:
331        BERR_SUCCESS - If status was returned successfully.
332
333See Also:
334  BXVD_PVR_GetHostSparseMode
335****************************************************************************/
336BERR_Code BXVD_PVR_SetHostSparseMode
337(
338   BXVD_ChannelHandle hXvdCh, /* [In] XVD channel handle */
339   bool bSparseMode           /* [In] Sparse mode enable flag */
340   );
341
342/***************************************************************************
343Summary:
344  Return the current host sparse mode setting.
345
346Description:
347  This function returns a boolean value indicating the current setting of
348  the host sparse mode flag (true/false).
349
350Returns:
351        BERR_SUCCESS - If status was returned successfully.
352
353See Also:
354  BXVD_PVR_SetHostSparseMode
355****************************************************************************/
356BERR_Code BXVD_PVR_GetHostSparseMode
357(
358   BXVD_ChannelHandle hXvdCh, /* [In] XVD channel handle */
359   bool *pbSparseMode         /* [Out] Current sparse mode status */
360   );
361
362/***************************************************************************
363Summary:
364  Enable or disable GOP reverse trick mode.
365
366Description:
367  This function sets the flag which enables/disables the DQT mode. 
368  In this mode, the DM displays the pictures within a GOP in reverse order.
369  It takes effect when "BXVD_StartDecode()" is called.
370
371Returns:
372        BERR_SUCCESS - If status was returned successfully.
373
374See Also:
375    BXVD_PVR_GetGopTrickMode
376****************************************************************************/
377BERR_Code BXVD_PVR_SetGopTrickMode
378(
379   BXVD_ChannelHandle hXvdCh, /* [In] XVD channel handle */
380   bool bEnableTrickMode         /* [In] enable/disable DQT trickmode */
381   );
382
383BERR_Code BXVD_PVR_SetGopTrickMode_isr
384(
385   BXVD_ChannelHandle hXvdCh, /* [In] XVD channel handle */
386   bool bEnableTrickMode         /* [In] enable/disable DQT trickmode */
387   );
388
389/***************************************************************************
390Summary:
391  Return the current setting of the DQT flag.
392
393Description:
394  This function returns a boolean value indicating the current setting of
395  the DQT (Display Queue Trick) mode flag.
396
397
398Returns:
399        BERR_SUCCESS - If status was returned successfully.
400
401See Also:
402    BXVD_PVR_SetGopTrickMode
403****************************************************************************/
404BERR_Code BXVD_PVR_GetGopTrickMode
405(
406   BXVD_ChannelHandle hXvdCh, /* [In] XVD channel handle */
407   bool * pbEnableTrickMode         /* [Out] enable/disable DQT trickmode */
408   );
409
410BERR_Code BXVD_PVR_GetGopTrickMode_isr
411(
412   BXVD_ChannelHandle hXvdCh, /* [In] XVD channel handle */
413   bool * pbEnableTrickMode         /* [Out] enable/disable DQT trickmode */
414   );
415
416
417/***************************************************************************
418Summary:
419  Enable or disable automatic validation of the STC when transitioning from
420  pause to play (AutoValidateStcOnPause).
421
422Description:
423  By default, the display manager will try to automatically determine if the
424  STC is valid when transitioning from pause to play by waiting for "TSM pass" in
425  processing stamp management.  AutoValidateStcOnPause will cause the display manager
426  to pause indefinately waiting for TSM to pass, and may cause video to stop.
427
428  Disabling this feature will cause the display manager to process TSM normally during
429  the transition, but may also result in some pictures being discarded if the STC is
430  not properly set or set in time.
431
432  Making this call will have no effect when done during trick mode transition from pause to
433  play.  The call must be made before playback is "unpaused".
434
435Returns:
436        BERR_SUCCESS - If status was returned successfully.
437
438See Also:
439  BXVD_PVR_GetAutoValidateStcOnPause
440****************************************************************************/
441BERR_Code BXVD_PVR_SetAutoValidateStcOnPause
442(
443   BXVD_ChannelHandle hXvdCh,     /* [In] XVD channel handle */
444   bool bAutoValidateStcOnPause   /* [In] Enable/disable flag */
445   );
446
447BERR_Code BXVD_PVR_SetAutoValidateStcOnPause_isr
448(
449   BXVD_ChannelHandle hXvdCh,     /* [In] XVD channel handle */
450   bool bAutoValidateStcOnPause   /* [In] Enable/disable flag */
451   );
452
453/***************************************************************************
454Summary:
455  Return the current host AutoValidateStcOnPause setting.
456
457Description:
458  This function returns a boolean value indicating the current setting of
459  the AutoValidateStcOnPause (true/false).
460
461Returns:
462        BERR_SUCCESS - If status was returned successfully.
463
464See Also:
465  BXVD_PVR_SetAutoValidateStcOnPause
466****************************************************************************/
467BERR_Code BXVD_PVR_GetAutoValidateStcOnPause
468(
469   BXVD_ChannelHandle hXvdCh,     /* [In] XVD channel handle */
470   bool *pbAutoValidateStcOnPause /* [Out] Current sparse mode status */
471   );
472
473BERR_Code BXVD_PVR_GetAutoValidateStcOnPause_isr
474(
475   BXVD_ChannelHandle hXvdCh,     /* [In] XVD channel handle */
476   bool *pbAutoValidateStcOnPause /* [Out] Current sparse mode status */
477   );
478
479/***************************************************************************
480
481  SW7425-2270:
482
483  The application will call SetIgnoreNRTUnderflow when it determines that an
484  NRT underflow is actually a gap in the content (e.g. slideshow or end of
485  stream) and the repeated picture should actually be encoded.
486
487  When SetIgnoreNRTUnderflow=true, the "decoder underflow" scenario should
488  be ignored until either:
489  - the underflow condition ends
490  - the app explicitly sets SetIgnoreNRTUnderflow=false
491 
492  Note: only the "decoder underflow" condition is ignored. All other NRT cenarios
493  (e.g. "Other Transcode Stalled", "FIC Stall", etc) are still in effect.
494 
495****************************************************************************/
496
497BERR_Code BXVD_PVR_SetIgnoreNRTUnderflow(
498   BXVD_ChannelHandle hXvdCh,
499   bool bIgnoreNRTUnderflow
500   );
501
502BERR_Code BXVD_PVR_SetIgnoreNRTUnderflow_isr(
503   BXVD_ChannelHandle hXvdCh,
504   bool bIgnoreNRTUnderflow
505   );
506
507BERR_Code BXVD_PVR_GetIgnoreNRTUnderflow(
508   BXVD_ChannelHandle hXvdCh,
509   bool * pbIgnoreNRTUnderflow
510   );
511
512BERR_Code BXVD_PVR_GetIgnoreNRTUnderflow_isr(
513   BXVD_ChannelHandle hXvdCh,
514   bool * pbIgnoreNRTUnderflow
515   );
516
517
518/*******************/
519/* Deprecated APIs */
520/*******************/
521
522/***************************************************************************
523Summary:
524  [DEPRECATED] Enable or disable BUD trick mode.
525Description:
526  This function enables BUD trick mode when bBudMode is true or disables
527  it when bBudMode is false.
528
529Returns:
530        BERR_SUCCESS - If status was returned successfully.
531
532See Also:
533      BXVD_PVR_GetBUDMode
534****************************************************************************/
535BERR_Code BXVD_PVR_SetBUDMode
536(
537   BXVD_ChannelHandle hXvdCh, /* [In] XVD channel handle */
538   bool bBudMode              /* [In] BUD mode enable flag */
539   );
540
541/***************************************************************************
542Summary:
543  [DEPRECATED] Get the current setting of the BUD trick mode flag.
544
545Description:
546  This function returns a boolean value indicating the current setting of
547  BUD trick mode enable flag (true/false).
548
549Returns:
550        BERR_SUCCESS - If status was returned successfully.
551
552See Also:
553  BXVD_PVR_SetBUDMode
554****************************************************************************/
555BERR_Code BXVD_PVR_GetBUDMode
556(
557   BXVD_ChannelHandle hXvdCh, /* [In] XVD channel handle */
558   bool *pbBudMode            /* [Out] Current BUD mode status */
559   );
560
561#ifdef __cplusplus
562}
563#endif
564
565#endif /* BXVD_PVR_H__ */
566/* End of file. */
Note: See TracBrowser for help on using the repository browser.