summaryrefslogtreecommitdiff
path: root/pjmedia/src/pjmedia/stream.c
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2010-01-25 17:14:44 +0000
committerNanang Izzuddin <nanang@teluu.com>2010-01-25 17:14:44 +0000
commite64cf78ec8b496833015bb703bc68de4a1ad4480 (patch)
treeaa21a7e67bb3221b7c6f31dcc503ad72b8edcf0e /pjmedia/src/pjmedia/stream.c
parent31f597e11a1547e0ce2932b02183f8807a6c6722 (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/pjmedia/stream.c')
-rw-r--r--pjmedia/src/pjmedia/stream.c13
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);
}