summaryrefslogtreecommitdiff
path: root/receiver.c
diff options
context:
space:
mode:
Diffstat (limited to 'receiver.c')
-rw-r--r--receiver.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/receiver.c b/receiver.c
index 56bc624..c813a43 100644
--- a/receiver.c
+++ b/receiver.c
@@ -6,6 +6,7 @@
#include "receiver.h"
#include "pes.h"
+#include "setup.h"
#include <vdr/channels.h>
#include <vdr/remux.h>
@@ -66,7 +67,16 @@ void cOsdPipReceiver::Action(void)
if (p) {
if (NewPictureType != NO_PICTURE) {
- m_ESBuffer->Put(new cFrame(VideoBuffer, VideoBufferPos, ftVideo, CurPictureType));
+ if ((OsdPipSetup.FrameMode == kFrameModeI && CurPictureType == I_FRAME) ||
+ (OsdPipSetup.FrameMode == kFrameModeIP && (CurPictureType == I_FRAME || CurPictureType == P_FRAME)) ||
+ (OsdPipSetup.FrameMode == kFrameModeIPB))
+ {
+ cFrame * frame = new cFrame(VideoBuffer, VideoBufferPos, ftVideo, CurPictureType);
+ if (!m_ESBuffer->Put(frame))
+ {
+ delete frame;
+ }
+ }
CurPictureType = NewPictureType;
VideoBufferPos = 0;
}