summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2014-06-23 06:21:21 +0000
committerBenny Prijono <bennylp@teluu.com>2014-06-23 06:21:21 +0000
commit2b26066fb90b55e2156b8294e8d0426b961df598 (patch)
tree6f43ccd6436b9948fc9b69fe71ed4b2b9fa01855
parent1321a047fb6d74374f7948eda41ad5c84884daab (diff)
Re #1758: Updated with the latest OpenH264 to fix compilation error and codec initialization error for packing mode
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4863 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/src/pjmedia-codec/openh264.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/pjmedia/src/pjmedia-codec/openh264.cpp b/pjmedia/src/pjmedia-codec/openh264.cpp
index 68178228..a28edaaa 100644
--- a/pjmedia/src/pjmedia-codec/openh264.cpp
+++ b/pjmedia/src/pjmedia-codec/openh264.cpp
@@ -479,6 +479,9 @@ static pj_status_t oh264_codec_open(pjmedia_vid_codec *codec,
eprm.iLtrMarkPeriod = 30;
eprm.bPrefixNalAddingCtrl = false;
eprm.iSpatialLayerNum = 1;
+ if (!oh264_data->whole) {
+ eprm.uiMaxNalSize = param->enc_mtu;
+ }
pj_bzero(&elayer_ctx, sizeof (SLayerPEncCtx));
elayer_ctx.iDLayerQp = 24;
@@ -659,13 +662,13 @@ static pj_status_t oh264_codec_encode_begin(pjmedia_vid_codec *codec,
/* Find which layer with biggest payload */
oh264_data->ilayer = 0;
- payload_size = oh264_data->bsi.sLayerInfo[0].iNalLengthInByte[0];
+ payload_size = oh264_data->bsi.sLayerInfo[0].pNalLengthInByte[0];
for (i=0; i < (unsigned)oh264_data->bsi.iLayerNum; ++i) {
unsigned j;
pLayerBsInfo = &oh264_data->bsi.sLayerInfo[i];
for (j=0; j < (unsigned)pLayerBsInfo->iNalCount; ++j) {
- if (pLayerBsInfo->iNalLengthInByte[j] > (int)payload_size) {
- payload_size = pLayerBsInfo->iNalLengthInByte[j];
+ if (pLayerBsInfo->pNalLengthInByte[j] > (int)payload_size) {
+ payload_size = pLayerBsInfo->pNalLengthInByte[j];
oh264_data->ilayer = i;
}
}
@@ -681,7 +684,7 @@ static pj_status_t oh264_codec_encode_begin(pjmedia_vid_codec *codec,
payload = pLayerBsInfo->pBsBuf;
payload_size = 0;
for (int inal = pLayerBsInfo->iNalCount - 1; inal >= 0; --inal) {
- payload_size += pLayerBsInfo->iNalLengthInByte[inal];
+ payload_size += pLayerBsInfo->pNalLengthInByte[inal];
}
if (payload_size > out_size)
@@ -760,7 +763,7 @@ static pj_status_t oh264_codec_encode_more(pjmedia_vid_codec *codec,
oh264_data->enc_frame_size = 0;
for (int inal = pLayerBsInfo->iNalCount - 1; inal >= 0; --inal) {
- oh264_data->enc_frame_size += pLayerBsInfo->iNalLengthInByte[inal];
+ oh264_data->enc_frame_size += pLayerBsInfo->pNalLengthInByte[inal];
}
oh264_data->enc_frame_whole = pLayerBsInfo->pBsBuf;
@@ -858,7 +861,7 @@ static int write_yuv(pj_uint8_t *buf,
static pj_status_t oh264_got_decoded_frame(pjmedia_vid_codec *codec,
struct oh264_codec_data *oh264_data,
- void *pData[3],
+ unsigned char *pData[3],
SBufferInfo *sDstBufInfo,
pj_timestamp *timestamp,
unsigned out_size,
@@ -931,7 +934,7 @@ static pj_status_t oh264_codec_decode(pjmedia_vid_codec *codec,
pjmedia_frame *output)
{
struct oh264_codec_data *oh264_data;
- void* pData[3] = {NULL};
+ unsigned char* pData[3] = {NULL};
const pj_uint8_t nal_start[] = { 0, 0, 1 };
SBufferInfo sDstBufInfo;
pj_bool_t has_frame = PJ_FALSE;