]> git.vomp.tv Git - vompclient.git/commitdiff
Fix bug in videoomx delivermediapacket for big mediapackets
authorMarten Richter <marten.richter@freenet.de>
Sat, 15 Sep 2012 12:07:12 +0000 (14:07 +0200)
committerMarten Richter <marten.richter@freenet.de>
Sat, 15 Sep 2012 12:07:12 +0000 (14:07 +0200)
videoomx.cc

index 59d5d2921a60f0776ce9f01ec8d4372cbaa2773f..a6d670860f32c5f4a7fac4d0ce24a88bc4d73b81 100644 (file)
@@ -2187,6 +2187,7 @@ void VideoOMX::threadMethod()
                                input_bufs_omx_mutex.Lock();
                                input_bufs_omx_free.push_back(pict);
                                input_bufs_omx_mutex.Unlock();
+                               //Log::getInstance()->log("Video", Log::DEBUG, "threadMethod Frameskip");
 
                        } else {
                                OMX_ERRORTYPE error = ProtOMXEmptyThisBuffer(omx_vid_dec, pict);
@@ -2460,6 +2461,7 @@ UINT VideoOMX::DeliverMediaPacket(MediaPacket packet,
        unsigned int haveToCopy=packet.length-*samplepos;
 
        while (haveToCopy> (cur_input_buf_omx->nAllocLen-cur_input_buf_omx->nFilledLen)) {
+               //Log::getInstance()->log("Video", Log::DEBUG, "Big buffer %d %d %d",packet.length,cur_input_buf_omx->nAllocLen,cur_input_buf_omx->nFilledLen);
                unsigned int cancopy=cur_input_buf_omx->nAllocLen-cur_input_buf_omx->nFilledLen;
                memcpy(cur_input_buf_omx->pBuffer+cur_input_buf_omx->nFilledLen,buffer+packet.pos_buffer+*samplepos,cancopy);
                haveToCopy-=cancopy;
@@ -2468,6 +2470,7 @@ UINT VideoOMX::DeliverMediaPacket(MediaPacket packet,
                // push old buffer out
 
                PutBufferToPres(cur_input_buf_omx, lastreftimeOMX,false);
+               cur_input_buf_omx=NULL;
                // get5 new buffer
                input_bufs_omx_mutex.Lock();
                if (input_bufs_omx_free.size()==0) {