diff --git a/mythtv/libs/libmythtv/avformatdecoder.cpp b/mythtv/libs/libmythtv/avformatdecoder.cpp
index 3a42b40..9908ca6 100644
a
|
b
|
bool AvFormatDecoder::ProcessVideoFrame(AVStream *stream, AVFrame *mpa_pic) |
3519 | 3519 | picframe->frameNumber = framesPlayed; |
3520 | 3520 | picframe->aspect = current_aspect; |
3521 | 3521 | picframe->dummy = 0; |
| 3522 | if(directrendering) |
| 3523 | picframe->directrendering = 1; |
| 3524 | else |
| 3525 | picframe->directrendering = 0; |
3522 | 3526 | |
3523 | 3527 | m_parent->ReleaseNextVideoFrame(picframe, temppts); |
3524 | 3528 | if (private_dec) |
diff --git a/mythtv/libs/libmythtv/frame.h b/mythtv/libs/libmythtv/frame.h
index 1e59abe..6d852d0 100644
a
|
b
|
typedef struct VideoFrame_ |
58 | 58 | int offsets[3]; // Y, U, & V offsets |
59 | 59 | |
60 | 60 | int pix_fmt; |
| 61 | int directrendering; |
61 | 62 | } VideoFrame; |
62 | 63 | |
63 | 64 | #ifdef __cplusplus |
… |
… |
static inline void init(VideoFrame *vf, VideoFrameType _codec, |
101 | 102 | vf->forcekey = 0; |
102 | 103 | vf->dummy = 0; |
103 | 104 | vf->pix_fmt = 0; |
| 105 | vf->directrendering = 0; |
104 | 106 | |
105 | 107 | memset(vf->priv, 0, 4 * sizeof(unsigned char *)); |
106 | 108 | |
diff --git a/mythtv/libs/libmythtv/videobuffers.cpp b/mythtv/libs/libmythtv/videobuffers.cpp
index 95e0eec..16f1e34 100644
a
|
b
|
void VideoBuffers::ReleaseFrame(VideoFrame *frame) |
309 | 309 | |
310 | 310 | vpos = vbufferMap[frame]; |
311 | 311 | limbo.remove(frame); |
312 | | decode.enqueue(frame); |
| 312 | //non directrendering frames are ffmpeg handled |
| 313 | if(frame->directrendering != 0) |
| 314 | decode.enqueue(frame); |
313 | 315 | used.enqueue(frame); |
314 | 316 | } |
315 | 317 | |