The problem is ast_frdup() does not copy whole frame.subclass for voice,
video and image frames, only the format is copied. For video frames, the
subclass structure contains the .frame_ending flag used to put the RTP
marker where it needs to be.
ASTERISK-25894 #close
Change-Id: I812ca90e84ed5d4f473b997d0dd0d3c5a915fe33
}
out->frametype = f->frametype;
+ out->subclass = f->subclass;
if ((f->frametype == AST_FRAME_VOICE) || (f->frametype == AST_FRAME_VIDEO) ||
(f->frametype == AST_FRAME_IMAGE)) {
- out->subclass.format = ao2_bump(f->subclass.format);
- } else {
- memcpy(&out->subclass, &f->subclass, sizeof(out->subclass));
+ ao2_bump(out->subclass.format);
}
out->datalen = f->datalen;
out->samples = f->samples;