| 323 | } |
| 324 | |
| 325 | static struct Program * add_program(MpegTSContext *ts, unsigned int programid) |
| 326 | { |
| 327 | struct Program *p = get_program(ts, programid); |
| 328 | struct Program *tmp = NULL; |
| 329 | size_t new_prg_size; |
| 330 | if (p) |
| 331 | return p; |
| 332 | |
| 333 | if (!av_size_mult(ts->nb_prg + 1, sizeof(*ts->prg), &new_prg_size)) |
| 334 | tmp = av_fast_realloc(ts->prg, &ts->prg_size,new_prg_size); |
| 335 | if (!tmp) { |
| 336 | av_freep(&ts->prg); |
| 337 | ts->nb_prg = 0; |
| 338 | ts->prg_size = 0; |
| 339 | return NULL; |
| 340 | } |
| 341 | ts->prg = tmp; |
| 342 | p = &ts->prg[ts->nb_prg]; |
| 343 | p->id = programid; |
| 344 | clear_program(p); |
| 345 | ts->nb_prg++; |
| 346 | return p; |
| 347 | } |
| 348 | |
| 349 | static void add_pid_to_program(struct Program *p, unsigned int pid) |
| 350 | { |
no test coverage detected