diff --git a/mythtv/libs/libmythtv/avformatdecoder.cpp b/mythtv/libs/libmythtv/avformatdecoder.cpp
index 88027a4..986cfc7 100644
a
|
b
|
void AvFormatDecoder::MpegPreProcessPkt(AVStream *stream, AVPacket *pkt) |
3281 | 3281 | |
3282 | 3282 | if (changed) |
3283 | 3283 | { |
| 3284 | if (private_dec) |
| 3285 | private_dec->Reset(); |
| 3286 | |
3284 | 3287 | m_parent->SetVideoParams(width, height, seqFPS, kScan_Detect); |
3285 | 3288 | |
3286 | 3289 | current_width = width; |
3287 | 3290 | current_height = height; |
3288 | 3291 | fps = seqFPS; |
3289 | 3292 | |
3290 | | if (private_dec) |
3291 | | private_dec->Reset(); |
3292 | | |
3293 | 3293 | gopset = false; |
3294 | 3294 | prevgoppos = 0; |
3295 | 3295 | firstvpts = lastapts = lastvpts = lastccptsu = 0; |
… |
… |
int AvFormatDecoder::H264PreProcessPkt(AVStream *stream, AVPacket *pkt) |
3388 | 3388 | |
3389 | 3389 | if (fps_changed || res_changed) |
3390 | 3390 | { |
| 3391 | if (private_dec) |
| 3392 | private_dec->Reset(); |
| 3393 | |
3391 | 3394 | m_parent->SetVideoParams(width, height, seqFPS, kScan_Detect); |
3392 | 3395 | |
3393 | 3396 | current_width = width; |
diff --git a/mythtv/libs/libmythtv/privatedecoder_omx.cpp b/mythtv/libs/libmythtv/privatedecoder_omx.cpp
index 8914a52..6aa2997 100644
a
|
b
|
OMX_ERRORTYPE PrivateDecoderOMX::FreeOutputBuffersCB() |
567 | 567 | m_lock.unlock(); |
568 | 568 | |
569 | 569 | VideoFrame *frame = HDR2FRAME(hdr); |
570 | | if (frame) |
| 570 | if (frame && FRAME2HDR(frame) == hdr) |
571 | 571 | { |
572 | | assert(FRAME2HDR(frame) == hdr); |
573 | 572 | FRAMESETHDR(frame, 0); |
574 | 573 | |
575 | 574 | AVBufferRef *ref = FRAME2REF(frame); |
… |
… |
OMX_ERRORTYPE PrivateDecoderOMX::UseBuffersCB() |
665 | 664 | |
666 | 665 | VideoFrame *frame = (VideoFrame*)picture->opaque; |
667 | 666 | assert(frame); |
668 | | assert(unsigned(frame->size) >= def.nBufferSize); |
669 | 667 | |
670 | 668 | OMX_BUFFERHEADERTYPE *hdr; |
671 | 669 | e = OMX_UseBuffer(m_videc.Handle(), &hdr, m_videc.Base() + index, frame, |
… |
… |
int PrivateDecoderOMX::GetBufferedFrame(AVStream *stream, AVFrame *picture) |
936 | 934 | picture->reordered_opaque = Ticks2Pts(stream, hdr->nTimeStamp); |
937 | 935 | |
938 | 936 | VideoFrame *frame = HDR2FRAME(hdr); |
939 | | if (frame) |
940 | | { |
941 | | assert(FRAME2HDR(frame) == hdr); |
942 | | assert(FRAME2REF(frame)); |
943 | 937 | |
| 938 | if (frame && FRAME2HDR(frame) == hdr) |
| 939 | { |
944 | 940 | frame->bpp = bitsperpixel(frametype); |
945 | 941 | frame->codec = frametype; |
946 | 942 | frame->width = vdef.nFrameWidth; |