summaryrefslogtreecommitdiff
path: root/src/post/deinterlace/xine_plugin.c
diff options
context:
space:
mode:
authorMichael Roitzsch <mroi@users.sourceforge.net>2003-08-12 13:56:25 +0000
committerMichael Roitzsch <mroi@users.sourceforge.net>2003-08-12 13:56:25 +0000
commiteb8339e2b2719c63eeac10f3ec4df4c86d4b38ce (patch)
treedb23c54ff9c2460af2d793788940db5a9ff7fcac /src/post/deinterlace/xine_plugin.c
parentf8fb6933244e2e494052c840bdd7dd9d66ed8512 (diff)
downloadxine-lib-eb8339e2b2719c63eeac10f3ec4df4c86d4b38ce.tar.gz
xine-lib-eb8339e2b2719c63eeac10f3ec4df4c86d4b38ce.tar.bz2
handle frame flags properly, small aspect ratio fix for expand
CVS patchset: 5277 CVS date: 2003/08/12 13:56:25
Diffstat (limited to 'src/post/deinterlace/xine_plugin.c')
-rw-r--r--src/post/deinterlace/xine_plugin.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/post/deinterlace/xine_plugin.c b/src/post/deinterlace/xine_plugin.c
index a8c503501..d4e2cdc21 100644
--- a/src/post/deinterlace/xine_plugin.c
+++ b/src/post/deinterlace/xine_plugin.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: xine_plugin.c,v 1.11 2003/08/04 03:47:10 miguelfreitas Exp $
+ * $Id: xine_plugin.c,v 1.12 2003/08/12 13:56:25 mroi Exp $
*
* advanced video deinterlacer plugin
* Jun/2003 by Miguel Freitas
@@ -558,6 +558,7 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
int i, skip, progressive = 0;
post_restore_video_frame(frame, port);
+ frame->flags &= ~VO_INTERLACED_FLAG;
/* this should be used to detect any special rff pattern */
this->rff_pattern = this->rff_pattern << 1;
@@ -576,7 +577,7 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
if( frame->format == XINE_IMGFMT_YV12 ) {
yuy2_frame = port->original_port->get_frame(port->original_port,
- frame->width, frame->height, frame->ratio, XINE_IMGFMT_YUY2, VO_BOTH_FIELDS);
+ frame->width, frame->height, frame->ratio, XINE_IMGFMT_YUY2, frame->flags | VO_BOTH_FIELDS);
yuy2_frame->pts = frame->pts;
yuy2_frame->duration = frame->duration;
@@ -652,7 +653,7 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
/* Build the output from the first field. */
pthread_mutex_unlock (&this->lock);
deinterlaced_frame = port->original_port->get_frame(port->original_port,
- frame->width, frame->height, frame->ratio, XINE_IMGFMT_YUY2, VO_BOTH_FIELDS);
+ frame->width, frame->height, frame->ratio, XINE_IMGFMT_YUY2, frame->flags | VO_BOTH_FIELDS);
pthread_mutex_lock (&this->lock);
extra_info_merge(deinterlaced_frame->extra_info, frame->extra_info);
@@ -719,7 +720,7 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
/* Build the output from the second field. */
pthread_mutex_unlock (&this->lock);
deinterlaced_frame = port->original_port->get_frame(port->original_port,
- frame->width, frame->height, frame->ratio, XINE_IMGFMT_YUY2, VO_BOTH_FIELDS);
+ frame->width, frame->height, frame->ratio, XINE_IMGFMT_YUY2, frame->flags | VO_BOTH_FIELDS);
pthread_mutex_lock (&this->lock);
extra_info_merge(deinterlaced_frame->extra_info, frame->extra_info);