diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2010-01-25 17:14:44 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2010-01-25 17:14:44 +0000 |
commit | e64cf78ec8b496833015bb703bc68de4a1ad4480 (patch) | |
tree | aa21a7e67bb3221b7c6f31dcc503ad72b8edcf0e /pjmedia/src | |
parent | 31f597e11a1547e0ce2932b02183f8807a6c6722 (diff) |
Misc (#1026): missed PLC availability check in stream get_frame_ext().
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3072 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia/stream.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/pjmedia/src/pjmedia/stream.c b/pjmedia/src/pjmedia/stream.c index 6054f9a9..c956c838 100644 --- a/pjmedia/src/pjmedia/stream.c +++ b/pjmedia/src/pjmedia/stream.c @@ -590,9 +590,16 @@ static pj_status_t get_frame_ext( pjmedia_port *port, pjmedia_frame *frame) } } else { - status = (*stream->codec->op->recover)(stream->codec, - 0, frame); - if (status != PJ_SUCCESS) { + + /* Try to generate frame by invoking PLC (when any) */ + status = PJ_SUCCESS; + if (stream->codec->op->recover) { + status = (*stream->codec->op->recover)(stream->codec, + 0, frame); + } + + /* No PLC or PLC failed */ + if (!stream->codec->op->recover || status != PJ_SUCCESS) { pjmedia_frame_ext_append_subframe(f, NULL, 0, (pj_uint16_t)samples_per_frame); } |