18d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/******************************************************************************
28d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
38d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Copyright (C) 2015 The Android Open Source Project
48d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
58d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Licensed under the Apache License, Version 2.0 (the "License");
68d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * you may not use this file except in compliance with the License.
78d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * You may obtain a copy of the License at:
88d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
98d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * http://www.apache.org/licenses/LICENSE-2.0
108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Unless required by applicable law or agreed to in writing, software
128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * distributed under the License is distributed on an "AS IS" BASIS,
138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * See the License for the specific language governing permissions and
158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * limitations under the License.
168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *****************************************************************************
188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @file
248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  ih264e_encode_header.h
258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief
278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  This file contains structures and interface prototypes for h264 bitstream
288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  header encoding
298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @author
318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  ittiam
328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks
348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  None
358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*******************************************************************************
378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#ifndef IH264E_ENCODE_HEADER_H_
408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define IH264E_ENCODE_HEADER_H_
418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Function Macros                                                           */
448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *  @brief   Macro to put a code with specified number of bits into the
498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *           bitstream
508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */
528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define PUT_BITS(ps_bitstrm, code_val, code_len, ret_val, syntax_string) \
538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S         ENTROPY_TRACE(syntax_string, code_val);\
548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        ret_val |= ih264e_put_bits((ps_bitstrm), (code_val), (code_len))
558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *  @brief   Macro to put a code with specified number of bits into the
598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *           bitstream using 0th order exponential Golomb encoding for
608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *           signed numbers
618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */
638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define PUT_BITS_UEV(ps_bitstrm, code_val, ret_val, syntax_string) \
648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        ENTROPY_TRACE(syntax_string, code_val);\
658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        ret_val |= ih264e_put_uev((ps_bitstrm), (code_val))
668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *  @brief   Macro to put a code with specified number of bits into the
708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *           bitstream using 0th order exponential Golomb encoding for
718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *           signed numbers
728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */
748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define PUT_BITS_SEV(ps_bitstrm, code_val, ret_val, syntax_string) \
758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        ENTROPY_TRACE(syntax_string, code_val);\
768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        ret_val |= ih264e_put_sev((ps_bitstrm), (code_val))
778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Extern Function Declarations                                              */
818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief Generates SPS (Sequence Parameter Set)
878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par   Description
898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  This function generates Sequence Parameter Set header as per the spec
908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_bitstrm
928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to bitstream context (handle)
938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_sps
958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to structure containing SPS data
968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @return      success or failure error code
988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha SWORD32      ih264e_generate_sps
1028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    (
1038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        bitstrm_t   *ps_bitstrm,
1044202606c70de812a040fbd79c8721dcd5d3c764eHamsalekha S        sps_t       *ps_sps,
1054202606c70de812a040fbd79c8721dcd5d3c764eHamsalekha S        vui_t       *ps_vui
1068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    );
1078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief Generates PPS (Picture Parameter Set)
1128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par   Description
1148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Generate Picture Parameter Set as per Section 7.3.2.2
1158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_bitstrm
1178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to bitstream context (handle)
1188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_pps
1208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to structure containing PPS data
1218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @return      success or failure error code
1238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha SWORD32      ih264e_generate_pps
1278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    (
1288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        bitstrm_t   *ps_bitstrm,
1298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        pps_t       *ps_pps,
1308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        sps_t       *ps_sps
1318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    );
1328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief Generates Slice Header
1378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par   Description
1398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Generate Slice Header as per Section 7.3.5.1
1408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[inout]   ps_bitstrm
1428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to bitstream context for generating slice header
1438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_slice_hdr
1458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to slice header params
1468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_pps
1488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to pps params referred by slice
1498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_sps
1518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to sps params referred by slice
1528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[out]   ps_dup_bit_strm_ent_offset
1548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Bitstream struct to store bitstream state
1558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[out]   pu4_first_slice_start_offset
1578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  first slice offset is returned
1588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @return      success or failure error code
1608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha SWORD32      ih264e_generate_slice_header
1648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    (
1658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        bitstrm_t       *ps_bitstrm,
1668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        slice_header_t  *ps_slice_hdr,
1678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        pps_t           *ps_pps,
1688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        sps_t           *ps_sps
1698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    );
1708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief Populates sps structure
1758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par   Description
1778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Populates sps structure for its use in header generation
1788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_codec
1808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to encoder context
1818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[out]  ps_sps
1838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to sps params that needs to be populated
1848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @return      success or failure error code
1868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha SIH264E_ERROR_T      ih264e_populate_sps
1908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        (
1918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            codec_t *ps_codec,
1928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            sps_t   *ps_sps
1938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        );
1948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
1988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief Populates pps structure
1998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par   Description
2018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Populates pps structure for its use in header generation
2028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_codec
2048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to encoder context
2058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[out]  ps_pps
2078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to pps params that needs to be populated
2088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @return      success or failure error code
2108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
2128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
2138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha SIH264E_ERROR_T ih264e_populate_pps
2148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        (
2158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            codec_t *ps_codec,
2168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            pps_t *ps_pps
2178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        );
2188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
2218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
2228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief Populates slice header structure
2248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par   Description
2268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Populates slice header structure for its use in header generation
2278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]  ps_proc
2298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to proc context
2308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[out]  ps_slice_hdr
2328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to slice header structure that needs to be populated
2338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]  ps_pps
2358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to pps params structure referred by the slice
2368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]   ps_sps
2388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to sps params referred by the pps
2398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @return      success or failure error code
2418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
2438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
2448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha SWORD32 ih264e_populate_slice_header
2458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        (
2468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            process_ctxt_t *ps_proc,
2478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            slice_header_t *ps_slice_hdr,
2488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            pps_t *ps_pps,
2498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            sps_t *ps_sps
2508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        );
2518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
2548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
2558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief inserts FILLER Nal Unit.
2578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par   Description
2598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  In constant bit rate rc mode, when the bits generated by the codec is
2608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  underflowing the target bit rate, the encoder library inserts filler nal unit.
2618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]    ps_bitstrm
2638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  pointer to bitstream context (handle)
2648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in]    insert_fill_bytes
2668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Number of fill bytes to be inserted
2678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @return      success or failure error code
2698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
2708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
2718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
2728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha SIH264E_ERROR_T ih264e_add_filler_nal_unit
2738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        (
2748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            bitstrm_t   *ps_bitstrm,
2758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S            WORD32      insert_fill_bytes
2768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S        );
2778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#endif //IH264E_ENCODE_HEADER_H_
280