summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dxr3/video_out_dxr3.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/dxr3/video_out_dxr3.c b/src/dxr3/video_out_dxr3.c
index ae129b5a8..fc4025854 100644
--- a/src/dxr3/video_out_dxr3.c
+++ b/src/dxr3/video_out_dxr3.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: video_out_dxr3.c,v 1.80 2003/05/30 14:10:50 mroi Exp $
+ * $Id: video_out_dxr3.c,v 1.81 2003/05/30 14:29:02 mroi Exp $
*/
/* mpeg1 encoding video out plugin for the dxr3.
@@ -900,16 +900,24 @@ static void dxr3_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
#endif
if (frame_gen->format != XINE_IMGFMT_DXR3 && this->enc && this->enc->on_display_frame) {
- if (this->need_update) {
- /* we cannot do this earlier, because vo_frame.duration is only valid here */
- if (this->enc && this->enc->on_update_format)
- this->enc->on_update_format(this, frame);
- this->need_update = 0;
+
+ if (this->fd_video == CLOSED_FOR_DECODER) {
+ /* no need to encode, when the device is already reserved for the decoder */
+ frame_gen->displayed(frame_gen);
+ } else {
+ if (this->need_update) {
+ /* we cannot do this earlier, because vo_frame.duration is only valid here */
+ if (this->enc && this->enc->on_update_format)
+ this->enc->on_update_format(this, frame);
+ this->need_update = 0;
+ }
+ /* for non-mpeg, the encoder plugin is responsible for calling
+ * frame_gen->displayed(frame_gen) ! */
+ this->enc->on_display_frame(this, frame);
}
- /* for non-mpeg, the encoder plugin is responsible for calling
- * frame_gen->displayed(frame_gen) ! */
- this->enc->on_display_frame(this, frame);
+
} else {
+
if (this->need_update) {
/* we do not need the mpeg encoders any more */
if (this->enc && this->enc->on_unneeded)
@@ -917,6 +925,7 @@ static void dxr3_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
this->need_update = 0;
}
frame_gen->displayed(frame_gen);
+
}
}