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