| 1 | /*************************************************************************** |
|---|
| 2 | * Copyright (c) 2002-2010, 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: bcmplayer_version.h $ |
|---|
| 11 | * $brcm_Revision: 3 $ |
|---|
| 12 | * $brcm_Date: 6/21/10 4:31p $ |
|---|
| 13 | * |
|---|
| 14 | * Module Description: Converts startcode index to bcmplayer index |
|---|
| 15 | * |
|---|
| 16 | * Revision History: |
|---|
| 17 | * |
|---|
| 18 | * $brcm_Log: /BSEAV/lib/bcmplayer/include/bcmplayer_version.h $ |
|---|
| 19 | * |
|---|
| 20 | * 3 6/21/10 4:31p erickson |
|---|
| 21 | * SW7405-4249: added BNAV_Version_TimestampOnly option for indexing |
|---|
| 22 | * audio-only or scrambled streams |
|---|
| 23 | * |
|---|
| 24 | * 2 2/26/08 12:28p katrep |
|---|
| 25 | * PR38429: Added AVS record and playback support |
|---|
| 26 | * |
|---|
| 27 | * Irvine_BSEAVSW_Devel/5 3/6/06 1:21p erickson |
|---|
| 28 | * PR19853: added VC1 PES support |
|---|
| 29 | * |
|---|
| 30 | * Irvine_BSEAVSW_Devel/4 7/13/05 2:11p erickson |
|---|
| 31 | * PR16138: added AVC NAV version |
|---|
| 32 | * |
|---|
| 33 | * Irvine_BSEAVSW_Devel/3 3/18/05 9:38a erickson |
|---|
| 34 | * PR14451: added 6 word SCT support |
|---|
| 35 | * |
|---|
| 36 | * Irvine_BSEAVSW_Devel/2 6/24/03 11:03a erickson |
|---|
| 37 | * PR7218 - handled partially encrypted streams. Added maxFrameSize and |
|---|
| 38 | * mpegSizeCallback. Had to change the |
|---|
| 39 | * NAV table format (version 2) in order to handle I frames with reference |
|---|
| 40 | * offset of 0. Bcmplayer |
|---|
| 41 | * is backward compatible. |
|---|
| 42 | * |
|---|
| 43 | * Irvine_BSEAVSW_Devel/1 2/14/03 2:24p erickson |
|---|
| 44 | * added bcmplayer_version.h |
|---|
| 45 | * |
|---|
| 46 | ****************************************************************************/ |
|---|
| 47 | #ifndef BCMPLAYER_VERSION_H |
|---|
| 48 | #define BCMPLAYER_VERSION_H |
|---|
| 49 | |
|---|
| 50 | /** |
|---|
| 51 | * Input to bcmindexer based on SCD (Start code detect) hardware. This cannot |
|---|
| 52 | * be autodetected reliably. |
|---|
| 53 | **/ |
|---|
| 54 | typedef enum { |
|---|
| 55 | BSCT_Version32bitOffset, /* 32 bit index entries, 4 words per entry. */ |
|---|
| 56 | BSCT_Version40bitOffset, /* 40 bit index entries, 4 words per entry. |
|---|
| 57 | Not available in venom2. */ |
|---|
| 58 | BSCT_Version6wordEntry /* 6 words per entry. */ |
|---|
| 59 | } BSCT_Version; |
|---|
| 60 | |
|---|
| 61 | /** |
|---|
| 62 | * Output of bcmindexer and input to bcmplayer. |
|---|
| 63 | * Bcmindexer can output all formats, but defaults to the latest format. |
|---|
| 64 | * Bcmplayer reads the version from the NAV table as is always backward compatible. |
|---|
| 65 | * |
|---|
| 66 | * Max storage is 4 bits. Therefore only values 0..14 should be used. Value of 15 should be reserved |
|---|
| 67 | * for extended version field. |
|---|
| 68 | **/ |
|---|
| 69 | typedef enum { |
|---|
| 70 | BNAV_VersionOriginal = 0, /* Open GOP B's use the immediate I frame as reference frame */ |
|---|
| 71 | BNAV_VersionOpenGopBs = 1, /* Open GOP B's use the prior I frame as reference frame */ |
|---|
| 72 | BNAV_Version2 = 2, /* Drop dangling open GOP B's and set initial I frame |
|---|
| 73 | reference offsets to 0. */ |
|---|
| 74 | /* There may be extensions of non-AVC versions.*/ |
|---|
| 75 | |
|---|
| 76 | BNAV_Version_AVC = 3, /* First extended-size AVC version */ |
|---|
| 77 | |
|---|
| 78 | BNAV_Version_VC1_PES = 4, /* VC1 video in PES stream. Use BNAV_Indexer_FeedPES. */ |
|---|
| 79 | BNAV_Version_AVS = 5, /* AVS video */ |
|---|
| 80 | BNAV_Version_TimestampOnly = 6, /* Content-agnostic index. Use timestamps and PTS for seek and current position status. |
|---|
| 81 | This can be used for audio-only streams, encrypted streams, or unsupported |
|---|
| 82 | video codecs. */ |
|---|
| 83 | BNAV_VersionUnknown /* Unknown version. Needs to be autodetected. */ |
|---|
| 84 | } BNAV_Version; |
|---|
| 85 | |
|---|
| 86 | #define BNAV_VersionLatest BNAV_Version2 |
|---|
| 87 | |
|---|
| 88 | /** |
|---|
| 89 | * Output of bcmplayer to mpegvideo decoder. |
|---|
| 90 | * Mpegvideo porting interface reports its capabilities. |
|---|
| 91 | **/ |
|---|
| 92 | typedef struct { |
|---|
| 93 | int supportsBroadcomTrickModes; /* This must be true to have any Broadcom trick modes. |
|---|
| 94 | If false, bcmplayer will only allow host trick modes. */ |
|---|
| 95 | int supportsCombiningBs; /* When doing 1x rewind, you can send multiple B's |
|---|
| 96 | in the same DISPLAY_REVERSE sequence. Venom2 support |
|---|
| 97 | is in development. */ |
|---|
| 98 | int supportsDisplayPastBuffer; /* BTP command to display past predictor. */ |
|---|
| 99 | int supportsDummyPicture; /* Send a one packet dummy picture if it doesn't |
|---|
| 100 | need to be decoded. */ |
|---|
| 101 | } BNAV_DecoderFeatures; |
|---|
| 102 | |
|---|
| 103 | #endif /* BCMPLAYER_VERSION_H */ |
|---|