From 2ff16582eef3e37548060b6863f4caa419bd4998 Mon Sep 17 00:00:00 2001 From: Harm van der Heijden Date: Sun, 23 Dec 2001 18:13:35 +0000 Subject: - changed default for sync_every_frame (SETPTS) to 0 from 1; this is more like the old behaviour and seems good enough for av sync - tried improving flush to get out of stuck /dev/em8300_mv writes; not entirely succesful :-) commented out. CVS patchset: 1293 CVS date: 2001/12/23 18:13:35 --- src/dxr3/dxr3_decoder.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/dxr3/dxr3_decoder.c b/src/dxr3/dxr3_decoder.c index b46d7d237..943dacfb9 100644 --- a/src/dxr3/dxr3_decoder.c +++ b/src/dxr3/dxr3_decoder.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: dxr3_decoder.c,v 1.50 2001/12/23 04:27:33 hrm Exp $ + * $Id: dxr3_decoder.c,v 1.51 2001/12/23 18:13:35 hrm Exp $ * * dxr3 video and spu decoder plugin. Accepts the video and spu data * from XINE and sends it directly to the corresponding dxr3 devices. @@ -61,6 +61,7 @@ #include #include #include +#include #include #include @@ -109,6 +110,7 @@ typedef struct dxr3_decoder_s { int enhanced_mode; int have_header_info; int in_buffer_fill; + pthread_t decoder_thread; /* reference to self */ } dxr3_decoder_t; /* Function to check whether the dxr3 video out plugin is active. @@ -353,6 +355,8 @@ static void dxr3_init (video_decoder_t *this_gen, vo_instance_t *video_out) this->video_out = video_out; this->last_pts = 0; + this->decoder_thread = pthread_self(); + this->scr = dxr3scr_init(this); this->video_decoder.metronom->register_scr( this->video_decoder.metronom, this->scr); @@ -685,7 +689,15 @@ static void dxr3_update_sync_mode(void *this_gen, cfg_entry_t *entry) static void dxr3_flush_decoder(void *this_gen, cfg_entry_t *entry) { + /* dxr3_decoder_t *this = (dxr3_decoder_t*)this_gen; */ printf("dxr3: flush requested\n"); +/* + pthread_kill(this->decoder_thread, SIGINT); + if (this->fd_video >= 0) { + close(this->fd_video); + this->fd_video = -1; + } +*/ dxr3_flush(this_gen); /* reset to false, so it'll look like a button in the gui :-) */ entry->num_value = 0; @@ -729,7 +741,7 @@ video_decoder_t *init_video_decoder_plugin (int iface_version, this->sync_every_frame = cfg->register_bool(cfg, "dxr3.sync_every_frame", - 1, + 0, "Try to sync video every frame", "This is relevant for progressive video only (most PAL films)", dxr3_update_sync_mode, this); -- cgit v1.2.3