1 /****************************************************************************** 2 * 3 * Copyright (C) 2015 The Android Open Source Project 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ***************************************************************************** 18 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19 */ 20 21 /** 22 ****************************************************************************** 23 * @file 24 * ih264e_cavlc.h 25 * 26 * @brief 27 * This file contains enumerations, macros and extern declarations of H264 28 * cavlc tables 29 * 30 * @author 31 * ittiam 32 * 33 * @remarks 34 * none 35 ****************************************************************************** 36 */ 37 38 #ifndef IH264E_CAVLC_H_ 39 #define IH264E_CAVLC_H_ 40 41 /*****************************************************************************/ 42 /* Function macro definitions */ 43 /*****************************************************************************/ 44 45 /*****************************************************************************/ 46 /* Extern Function Declarations */ 47 /*****************************************************************************/ 48 49 /** 50 ******************************************************************************* 51 * 52 * @brief 53 * This function generates CAVLC coded bit stream for an Intra Slice. 54 * 55 * @description 56 * The mb syntax layer for intra slices constitutes luma mb mode, luma sub modes 57 * (if present), mb qp delta, coded block pattern, chroma mb mode and 58 * luma/chroma residue. These syntax elements are written as directed by table 59 * 7.3.5 of h264 specification. 60 * 61 * @param[in] ps_ent_ctxt 62 * pointer to entropy context 63 * 64 * @returns error code 65 * 66 * @remarks none 67 * 68 ******************************************************************************* 69 */ 70 IH264E_ERROR_T ih264e_write_islice_mb_cavlc(entropy_ctxt_t *ps_ent_ctxt); 71 72 /** 73 ******************************************************************************* 74 * 75 * @brief 76 * This function generates CAVLC coded bit stream for Inter slices 77 * 78 * @description 79 * The mb syntax layer for inter slices constitutes luma mb mode, luma sub modes 80 * (if present), mb qp delta, coded block pattern, chroma mb mode and 81 * luma/chroma residue. These syntax elements are written as directed by table 82 * 7.3.5 of h264 specification 83 * 84 * @param[in] ps_ent_ctxt 85 * pointer to entropy context 86 * 87 * @returns error code 88 * 89 * @remarks none 90 * 91 ******************************************************************************* 92 */ 93 IH264E_ERROR_T ih264e_write_pslice_mb_cavlc(entropy_ctxt_t *ps_ent_ctxt); 94 95 /** 96 ******************************************************************************* 97 * 98 * @brief 99 * This function generates CAVLC coded bit stream for Inter(B) slices 100 * 101 * @description 102 * The mb syntax layer for inter slices constitutes luma mb mode, luma sub modes 103 * (if present), mb qp delta, coded block pattern, chroma mb mode and 104 * luma/chroma residue. These syntax elements are written as directed by table 105 * 7.3.5 of h264 specification 106 * 107 * @param[in] ps_ent_ctxt 108 * pointer to entropy context 109 * 110 * @returns error code 111 * 112 * @remarks none 113 * 114 ******************************************************************************* 115 */ 116 IH264E_ERROR_T ih264e_write_bslice_mb_cavlc(entropy_ctxt_t *ps_ent_ctxt); 117 118 #endif /* IH264E_CAVLC_H_ */ 119