diff libmpdemux/tv.c @ 7329:9129781e5939

removed messy global 'tv_handle', use stream->priv for that purpose note: i couldn't test it (only compile test) may be broken :( we're going to an unified demuxer API - required for modularization
author arpi
date Sun, 08 Sep 2002 23:00:01 +0000
parents 85897ab199a4
children 0c6948b8100f
line wrap: on
line diff
--- a/libmpdemux/tv.c	Sun Sep 08 22:57:23 2002 +0000
+++ b/libmpdemux/tv.c	Sun Sep 08 23:00:01 2002 +0000
@@ -73,8 +73,9 @@
 */
 /* fill demux->video and demux->audio */
 
-int demux_tv_fill_buffer(demuxer_t *demux, demux_stream_t *ds, tvi_handle_t *tvh)
+int demux_tv_fill_buffer(demuxer_t *demux, demux_stream_t *ds)
 {
+    tvi_handle_t *tvh=(tvi_handle_t*)(demux->stream->priv);
     demux_packet_t* dp;
 
     sh_video_t *sh_video = demux->video->sh;
@@ -254,8 +255,9 @@
 	return 1;
 }
 
-int demux_open_tv(demuxer_t *demuxer, tvi_handle_t *tvh)
+int demux_open_tv(demuxer_t *demuxer)
 {
+    tvi_handle_t *tvh=(tvi_handle_t*)(demuxer->stream->priv);
     sh_video_t *sh_video = NULL;
     sh_audio_t *sh_audio = NULL;
     tvi_functions_t *funcs = tvh->functions;
@@ -374,12 +376,18 @@
     }
 no_audio:
 
-    return(funcs->start(tvh->priv));	
+    if(!(funcs->start(tvh->priv))){
+	// start failed :(
+	tv_uninit(tvh);
+	return 0;
+    }
+    return 1;
 }
 
 #if defined(USE_TV) && defined(HAVE_TV_V4L)
-int demux_close_tv(demuxer_t *demuxer, tvi_handle_t *tvh)
+int demux_close_tv(demuxer_t *demuxer)
 {
+    tvi_handle_t *tvh=(tvi_handle_t*)(demuxer->stream->priv);
     return(tvh->functions->uninit(tvh->priv));
 }
 #endif