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


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7330 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
arpi
2002-09-08 23:00:01 +00:00
parent 095a1cad2d
commit cd8540ab8c
5 changed files with 28 additions and 22 deletions
+6 -11
View File
@@ -157,13 +157,12 @@ extern void demux_close_rawdv(demuxer_t* demuxer);
#ifdef USE_TV
#include "tv.h"
extern tvi_handle_t *tv_handler;
extern int tv_param_on;
extern int demux_tv_fill_buffer(demuxer_t *demux, demux_stream_t *ds, tvi_handle_t *tvh);
extern int demux_open_tv(demuxer_t *demuxer, tvi_handle_t *tvh);
extern int demux_tv_fill_buffer(demuxer_t *demux, demux_stream_t *ds);
extern int demux_open_tv(demuxer_t *demuxer);
#if defined(USE_TV) && defined(HAVE_TV_V4L)
extern void demux_close_tv(demuxer_t *demuxer, tvi_handle_t *tvh);
extern void demux_close_tv(demuxer_t *demuxer);
#endif
#endif
@@ -191,7 +190,7 @@ void free_demuxer(demuxer_t *demuxer){
demux_close_nuv(demuxer); break;
#if defined(USE_TV) && defined(HAVE_TV_V4L)
case DEMUXER_TYPE_TV:
demux_close_tv(demuxer, tv_handler); break;
demux_close_tv(demuxer); break;
#endif
#ifdef HAVE_LIBDV095
case DEMUXER_TYPE_RAWDV:
@@ -312,7 +311,7 @@ int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds){
case DEMUXER_TYPE_REAL: return demux_real_fill_buffer(demux);
case DEMUXER_TYPE_NUV: return demux_nuv_fill_buffer(demux);
#ifdef USE_TV
case DEMUXER_TYPE_TV: return demux_tv_fill_buffer(demux, ds, tv_handler);
case DEMUXER_TYPE_TV: return demux_tv_fill_buffer(demux, ds);
#endif
case DEMUXER_TYPE_Y4M: return demux_y4m_fill_buffer(demux);
case DEMUXER_TYPE_AUDIO: return demux_audio_fill_buffer(ds);
@@ -994,11 +993,7 @@ switch(file_format){
}
#ifdef USE_TV
case DEMUXER_TYPE_TV: {
if (!demux_open_tv(demuxer, tv_handler))
{
tv_uninit(tv_handler);
return(NULL);
}
if (!demux_open_tv(demuxer)) return(NULL);
break;
}
#endif
+4 -1
View File
@@ -68,7 +68,6 @@ extern int vcd_get_track_end(int fd,int track);
#ifdef USE_TV
#include "tv.h"
tvi_handle_t *tv_handler;
extern int stream_open_tv(stream_t *stream, tvi_handle_t *tvh);
#endif
@@ -401,6 +400,8 @@ if(dvd_title){
//============ Check for TV-input ====
if (tv_param_on == 1)
{
tvi_handle_t *tv_handler;
/* create stream */
stream = new_stream(-1, STREAMTYPE_TV);
if (!stream)
@@ -417,6 +418,8 @@ if(dvd_title){
if (!stream_open_tv(stream, tv_handler))
goto tv_err;
stream->priv=tv_handler;
return(stream);
+1 -1
View File
@@ -42,7 +42,7 @@ typedef struct {
int eof;
unsigned int cache_pid;
void* cache_data;
void* priv; // used for DVD
void* priv; // used for DVD, TV, RTSP etc
unsigned char buffer[STREAM_BUFFER_SIZE>VCD_SECTOR_SIZE?STREAM_BUFFER_SIZE:VCD_SECTOR_SIZE];
#ifdef STREAMING
streaming_ctrl_t *streaming_ctrl;
+12 -4
View File
@@ -73,8 +73,9 @@ char* tv_param_adevice = NULL;
*/
/* 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 @@ done:
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 @@ int demux_open_tv(demuxer_t *demuxer, tvi_handle_t *tvh)
}
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
+5 -5
View File
@@ -82,7 +82,7 @@ int quiet=0;
#include "libmpdemux/tv.h"
extern int tv_param_on;
extern tvi_handle_t *tv_handler;
//extern tvi_handle_t *tv_handler;
#endif
//**************************************************************************//
@@ -2220,18 +2220,18 @@ if (stream->type==STREAMTYPE_DVDNAV && dvd_nav_still)
if (tv_param_on == 1) {
int v = cmd->args[0].v.i;
if(v > 0)
tv_step_channel(tv_handler, TV_CHANNEL_HIGHER);
tv_step_channel((tvi_handle_t*)(stream->priv), TV_CHANNEL_HIGHER);
else
tv_step_channel(tv_handler, TV_CHANNEL_LOWER);
tv_step_channel((tvi_handle_t*)(stream->priv), TV_CHANNEL_LOWER);
}
} break;
case MP_CMD_TV_STEP_NORM : {
if (tv_param_on == 1)
tv_step_norm(tv_handler);
tv_step_norm((tvi_handle_t*)(stream->priv));
} break;
case MP_CMD_TV_STEP_CHANNEL_LIST : {
if (tv_param_on == 1)
tv_step_chanlist(tv_handler);
tv_step_chanlist((tvi_handle_t*)(stream->priv));
} break;
#endif
case MP_CMD_VO_FULLSCREEN: