/*! ************************************************************************ * \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 *GenerateSeq_parameter_set_NALU () { NALU_t *n = AllocNALU(64000); int RBSPlen = 0; int NALUlen; byte rbsp[MAXRBSPSIZE]; RBSPlen = GenerateSeq_parameter_set_rbsp (active_sps, rbsp); NALUlen = RBSPtoNALU (rbsp, n, RBSPlen, NALU_TYPE_SPS, NALU_PRIORITY_HIGHEST, 0, 1); n->startcodeprefix_len = 4; return n; }
/*! ************************************************************************************* * \brief * t_sint32 GenerateSeq_parameter_set_NALU (); * * \note * Uses the global variables through FillParameterSetStructures() * * \return * A NALU containing the Sequence ParameterSet * ************************************************************************************* */ NALU_t *GenerateSeq_parameter_set_NALU (seq_parameter_set_rbsp_t *active_sps) { 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 = GenerateSeq_parameter_set_rbsp (active_sps, (char *)rbsp); RBSPtoNALU ((char *)rbsp, n, RBSPlen, NALU_TYPE_SPS, NALU_PRIORITY_HIGHEST, 0, 1); n->startcodeprefix_len = 4; free(rbsp); return n; }