Compare commits

...

10 Commits

Author SHA1 Message Date
ruil2
c79be44e93 Merge pull request #1286 from ethanhugg/FF33-patch
avoid encoder crash with random pixel input
2014-08-20 08:55:24 +08:00
dongzha
863617f620 avoid encoder crash with random pixel input 2014-08-19 14:29:45 -07:00
Ethan Hugg
b4504d4da4 Merge pull request #1201 from ruil2/decoder_ret_33
add decoder return value
2014-07-21 19:38:06 -07:00
ruil2
b127efafb4 add decoder return value 2014-07-22 09:47:14 +08:00
jesup
4d041398d0 Merge pull request #1196 from ethanhugg/v1.1-Firefox33
Set the v1.1-Firefox33 to use the Firefox33 branch of gmp-api
2014-07-21 17:18:35 -04:00
Ethan Hugg
439ce3fc46 Set the v1.1-Firefox33 to use the Firefox33 branch of gmp-api 2014-07-18 08:14:08 -07:00
jesup
ad48509d76 Merge pull request #1190 from ethanhugg/ff33-refframe
fix reference frame update issue which will casue crash
2014-07-17 16:38:34 -04:00
jesup
806c5e78ed Merge pull request #1193 from ethanhugg/FF33-infofile
Update info file for bugzilla 1037754 - no longer need to advertise VP8.
2014-07-17 16:37:52 -04:00
Ethan Hugg
4b19aeb0a2 Update info file for bugzilla 1037754 - no longer need to advertise VP8. 2014-07-17 10:05:48 -07:00
ruil2
1d0b9eb968 fix reference frame update issue which will casue crash 2014-07-17 07:25:29 -07:00
5 changed files with 14 additions and 7 deletions

View File

@ -17,7 +17,7 @@ SHARED=-shared
OBJ=o
PROJECT_NAME=openh264
MODULE_NAME=gmpopenh264
GMP_API_BRANCH=master
GMP_API_BRANCH=Firefox33
CCASFLAGS=$(CFLAGS)
ifeq (,$(wildcard ./gmp-api))

View File

@ -2976,6 +2976,9 @@ bool CheckFrameSkipBasedMaxbr (sWelsEncCtx* pCtx, int32_t iSpatialNum) {
* \return EFrameType (videoFrameTypeIDR/videoFrameTypeI/videoFrameTypeP)
*/
int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSourcePicture* pSrcPic) {
if( pCtx == NULL ) {
return ENC_RETURN_MEMALLOCERR;
}
SLayerBSInfo* pLayerBsInfo = &pFbi->sLayerInfo[0];
SWelsSvcCodingParam* pSvcParam = pCtx->pSvcParam;
SSpatialPicIndex* pSpatialIndexMap = &pCtx->sSpatialIndexMap[0];

View File

@ -127,6 +127,7 @@ static void DeleteNonSceneLTR (sWelsEncCtx* pCtx) {
(pCtx->uiTemporalId < pRef->uiTemporalId || pCtx->bCurFrameMarkedAsSceneLtr)) {
SetUnref (pRef);
DeleteLTRFromLongList (pCtx, i);
i--;
}
}
}

View File

@ -1,4 +1,4 @@
Name: gmpopenh264
Description: GMP Plugin for OpenH264.
Version: 1.0
APIs: encode-video[h264:vp8], decode-video[h264:vp8]
APIs: encode-video[h264], decode-video[h264]

View File

@ -608,13 +608,15 @@ class OpenH264VideoDecoder : public GMPVideoDecoder {
assert (false);
break;
}
DECODING_STATE dState = dsErrorFree;
worker_thread_->Post (WrapTask (
this, &OpenH264VideoDecoder::Decode_w,
inputFrame,
missingFrames,
dState,
renderTimeMs));
if (dState)
return GMPGenericErr;
return GMPNoErr;
}
@ -633,6 +635,7 @@ class OpenH264VideoDecoder : public GMPVideoDecoder {
private:
void Decode_w (GMPVideoEncodedFrame* inputFrame,
bool missingFrames,
DECODING_STATE& dState,
int64_t renderTimeMs = -1) {
GMPLOG (GL_DEBUG, "Frame decode on worker thread length = "
<< inputFrame->Size());
@ -642,13 +645,13 @@ class OpenH264VideoDecoder : public GMPVideoDecoder {
memset (&decoded, 0, sizeof (decoded));
unsigned char* data[3] = {nullptr, nullptr, nullptr};
int rv = decoder_->DecodeFrame2 (inputFrame->Buffer(),
dState = decoder_->DecodeFrame2 (inputFrame->Buffer(),
inputFrame->Size(),
data,
&decoded);
if (rv) {
GMPLOG (GL_ERROR, "Decoding error rv=" << rv);
if (dState) {
GMPLOG (GL_ERROR, "Decoding error dState=" << dState);
} else {
valid = true;
}