summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-09-15 20:51:55 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-09-15 20:51:55 +0000
commiteafdad4b73beef6e9d5595164e9584d4ecccc525 (patch)
tree7f58f497b129dfaac07731b092290d43d98d4ede /libmpdemux
parent4ccfe264a3accb64a1fe32c8712be5af1a2d6385 (diff)
downloadmpv-eafdad4b73beef6e9d5595164e9584d4ecccc525.tar.bz2
mpv-eafdad4b73beef6e9d5595164e9584d4ecccc525.tar.xz
stream layer cleanup part 2
STREAMTYPE_TV removed, use STREAMTYPE_DUMMY instead. tv init moved to demux_open git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7409 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/open.c41
-rw-r--r--libmpdemux/stream.c7
-rw-r--r--libmpdemux/stream.h1
-rw-r--r--libmpdemux/tv.c21
4 files changed, 22 insertions, 48 deletions
diff --git a/libmpdemux/open.c b/libmpdemux/open.c
index 0bdcaf0a89..c515f6c4c0 100644
--- a/libmpdemux/open.c
+++ b/libmpdemux/open.c
@@ -390,47 +390,16 @@ if(dvd_title){
}
#endif
+//============ Check for TV-input or multi-file input ====
+ if( (mf_support == 1)
#ifdef USE_TV
-//============ Check for TV-input ====
- if (tv_param_on == 1)
- {
- tvi_handle_t *tv_handler;
-
- /* create stream */
- stream = new_stream(-1, STREAMTYPE_TV);
- if (!stream)
- return(NULL);
-
- /* create tvi handler */
- tv_handler = tv_begin();
- if (!tv_handler)
- return(NULL);
-
- /* preinit */
- if (!tv_init(tv_handler))
- goto tv_err;
-
- if (!stream_open_tv(stream, tv_handler))
- goto tv_err;
-
- stream->priv=tv_handler;
-
- return(stream);
-
- /* something went wrong - uninit */
-tv_err:
- tv_uninit(tv_handler);
- return(NULL);
- }
+ || (tv_param_on == 1)
#endif
-
-//============ Check for multi file-input ====
- if (mf_support == 1)
- {
+ ){
/* create stream */
stream = new_stream(-1, STREAMTYPE_DUMMY);
if (!stream) return(NULL);
- stream->url=strdup(filename);
+ stream->url=filename?strdup(filename):NULL;
return(stream);
}
diff --git a/libmpdemux/stream.c b/libmpdemux/stream.c
index c1bc6cbf99..3d366ee312 100644
--- a/libmpdemux/stream.c
+++ b/libmpdemux/stream.c
@@ -194,11 +194,8 @@ if(newpos==0 || newpos!=s->pos){
}
#endif
break;
-#ifdef USE_TV
- case STREAMTYPE_TV:
- s->pos=newpos; /* no sense */
- break;
-#endif
+ default:
+ return 0;
}
// putchar('.');fflush(stdout);
//} else {
diff --git a/libmpdemux/stream.h b/libmpdemux/stream.h
index deca3cd222..e40cf92684 100644
--- a/libmpdemux/stream.h
+++ b/libmpdemux/stream.h
@@ -13,7 +13,6 @@
#define STREAMTYPE_STREAM 2 // same as FILE but no seeking (for net/stdin)
#define STREAMTYPE_DVD 3 // libdvdread
#define STREAMTYPE_MEMORY 4 // read data from memory area
-#define STREAMTYPE_TV 5 // FIXME!!! dummy
#define STREAMTYPE_PLAYLIST 6 // FIXME!!! same as STREAMTYPE_FILE now
#define STREAMTYPE_DS 8 // read from a demuxer stream
#define STREAMTYPE_DVDNAV 9 // we cannot safely "seek" in this...
diff --git a/libmpdemux/tv.c b/libmpdemux/tv.c
index 321aba8ff1..a437eada9b 100644
--- a/libmpdemux/tv.c
+++ b/libmpdemux/tv.c
@@ -75,7 +75,7 @@ char* tv_param_adevice = NULL;
int demux_tv_fill_buffer(demuxer_t *demux, demux_stream_t *ds)
{
- tvi_handle_t *tvh=(tvi_handle_t*)(demux->stream->priv);
+ tvi_handle_t *tvh=(tvi_handle_t*)(demux->priv);
demux_packet_t* dp;
sh_video_t *sh_video = demux->video->sh;
@@ -111,7 +111,7 @@ int demux_tv_fill_buffer(demuxer_t *demux, demux_stream_t *ds)
return 1;
}
-int stream_open_tv(stream_t *stream, tvi_handle_t *tvh)
+static int open_tv(tvi_handle_t *tvh)
{
int i;
tvi_functions_t *funcs = tvh->functions;
@@ -257,10 +257,19 @@ done:
int demux_open_tv(demuxer_t *demuxer)
{
- tvi_handle_t *tvh=(tvi_handle_t*)(demuxer->stream->priv);
- sh_video_t *sh_video = NULL;
+ tvi_handle_t *tvh;
+ sh_video_t *sh_video;
sh_audio_t *sh_audio = NULL;
- tvi_functions_t *funcs = tvh->functions;
+ tvi_functions_t *funcs;
+
+ if(!(tvh=tv_begin())) return 0;
+ if (!tv_init(tvh)) return 0;
+ if (!open_tv(tvh)){
+ tv_uninit(tvh);
+ return 0;
+ }
+ funcs = tvh->functions;
+ demuxer->priv=tvh;
sh_video = new_sh_video(demuxer, 0);
@@ -387,7 +396,7 @@ no_audio:
#if defined(USE_TV) && defined(HAVE_TV_V4L)
int demux_close_tv(demuxer_t *demuxer)
{
- tvi_handle_t *tvh=(tvi_handle_t*)(demuxer->stream->priv);
+ tvi_handle_t *tvh=(tvi_handle_t*)(demuxer->priv);
return(tvh->functions->uninit(tvh->priv));
}
#endif