mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
frame.c: Copy the whole subclass in ast_frdup().
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
This commit is contained in:
committed by
Richard Mudgett
parent
97db0ca884
commit
8ed5f61152
@@ -320,11 +320,10 @@ struct ast_frame *ast_frdup(const struct ast_frame *f)
|
||||
}
|
||||
|
||||
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;
|
||||
|
Reference in New Issue
Block a user