NALU_t *GeneratePic_parameter_set_NALU(int PPS_id) { NALU_t *n = AllocNALU(64000); int RBSPlen = 0; int NALUlen; byte rbsp[MAXRBSPSIZE]; RBSPlen = GeneratePic_parameter_set_rbsp (&PicParSet[PPS_id], rbsp); NALUlen = RBSPtoNALU (rbsp, n, RBSPlen, NALU_TYPE_PPS, NALU_PRIORITY_HIGHEST, 0, 1); n->startcodeprefix_len = 4; return n; }
/*! ************************************************************************ * \brief * This function opens the output files and generates the * appropriate sequence header ************************************************************************ */ int start_sequence() { GenerateHeader(NALU_TYPE_SPS); GenerateSeq_parameter_set_rbsp (active_sps); //MSG(GENERATE_HEADER_SPS); GenerateHeader(NALU_TYPE_PPS); GeneratePic_parameter_set_rbsp (active_pps); //MSG(GENERATE_HEADER_PPS); //MSG(START_SEQUENCE); return 0; }
NALU_t *GeneratePic_parameter_set_NALU() { NALU_t *n = AllocNALU(64000); int RBSPlen = 0; int NALUlen; byte rbsp[MAXRBSPSIZE]; RBSPlen = GeneratePic_parameter_set_rbsp (active_pps, rbsp); //++ 参见标准7.3.2.2、7.4.2.2节 NALUlen = RBSPtoNALU (rbsp, n, RBSPlen, NALU_TYPE_PPS, NALU_PRIORITY_HIGHEST, 0, 1); n->startcodeprefix_len = 4; return n; }
/*! ************************************************************************************* * \brief * NALU_t *GeneratePic_parameter_set_NALU (); * * \note * Uses the global variables through FillParameterSetStructures() * * \return * A NALU containing the Picture Parameter Set * ************************************************************************************* */ NALU_t *GeneratePic_parameter_set_NALU(pic_parameter_set_rbsp_t *active_pps) { NALU_t *n = AllocNALU(64000); t_sint32 RBSPlen = 0; byte *rbsp = (byte*)NULL; void * vfm_memory_ctxt = my_vfm_memory_ctxt; /*byte rbsp[MAXRBSPSIZE]; */ rbsp = (byte *)malloc_(MAXRBSPSIZE * sizeof(char)); // rbsp = (byte *)alloca(MAXRBSPSIZE * sizeof(char)); RBSPlen = GeneratePic_parameter_set_rbsp (active_pps, (char *)rbsp); RBSPtoNALU ((char *)rbsp, n, RBSPlen, NALU_TYPE_PPS, NALU_PRIORITY_HIGHEST, 0, 1); n->startcodeprefix_len = 4; free(rbsp); return n; }