Commit 3cf4ef1e authored by Ken Self's avatar Ken Self

Improved handling of no-signal condition and other errors

parent 68d81870
...@@ -49,7 +49,11 @@ static int Control( access_t *, int, va_list ); ...@@ -49,7 +49,11 @@ static int Control( access_t *, int, va_list );
#define DEVICE_LONGTEXT "" #define DEVICE_LONGTEXT ""
#define FREQ_TEXT N_("Transponder/multiplex frequency") #define FREQ_TEXT N_("Transponder/multiplex frequency")
#define FREQ_LONGTEXT N_("In kHz for DVB-S or Hz for DVB-C/T") #if defined(WIN32) || defined(WINCE)
# define FREQ_LONGTEXT N_("In kHz for DVB-S or Hz for DVB-C/T")
#else
# define FREQ_LONGTEXT N_("In kHz for DVB-C/S/T")
#endif
#define INVERSION_TEXT N_("Inversion mode") #define INVERSION_TEXT N_("Inversion mode")
#define INVERSION_LONGTEXT N_("Inversion mode [0=off, 1=on, 2=auto]") #define INVERSION_LONGTEXT N_("Inversion mode [0=off, 1=on, 2=auto]")
...@@ -495,11 +499,17 @@ static block_t *Block( access_t *p_access ) ...@@ -495,11 +499,17 @@ static block_t *Block( access_t *p_access )
l_buffer_len = dvb_GetBufferSize( p_access ); l_buffer_len = dvb_GetBufferSize( p_access );
if( l_buffer_len < 0 ) if( l_buffer_len < 0 )
{
p_access->info.b_eof = VLC_TRUE;
return NULL; return NULL;
}
p_block = block_New( p_access, l_buffer_len ); p_block = block_New( p_access, l_buffer_len );
if( dvb_ReadBuffer( p_access, &l_buffer_len, p_block->p_buffer ) < 0 ) if( dvb_ReadBuffer( p_access, &l_buffer_len, p_block->p_buffer ) < 0 )
{
p_access->info.b_eof = VLC_TRUE;
return NULL; return NULL;
}
return p_block; return p_block;
} }
...@@ -37,38 +37,51 @@ extern "C" { ...@@ -37,38 +37,51 @@ extern "C" {
void dvb_deleteBDAGraph( access_t* p_access ) void dvb_deleteBDAGraph( access_t* p_access )
{ {
delete p_access->p_sys->p_bda_module; if( p_access->p_sys->p_bda_module )
delete p_access->p_sys->p_bda_module;
}; };
int dvb_SubmitATSCTuneRequest( access_t* p_access ) int dvb_SubmitATSCTuneRequest( access_t* p_access )
{ {
return p_access->p_sys->p_bda_module->SubmitATSCTuneRequest(); if( p_access->p_sys->p_bda_module )
return p_access->p_sys->p_bda_module->SubmitATSCTuneRequest();
return VLC_EGENERIC;
}; };
int dvb_SubmitDVBTTuneRequest( access_t* p_access ) int dvb_SubmitDVBTTuneRequest( access_t* p_access )
{ {
return p_access->p_sys->p_bda_module->SubmitDVBTTuneRequest(); if( p_access->p_sys->p_bda_module )
return p_access->p_sys->p_bda_module->SubmitDVBTTuneRequest();
return VLC_EGENERIC;
}; };
int dvb_SubmitDVBCTuneRequest( access_t* p_access ) int dvb_SubmitDVBCTuneRequest( access_t* p_access )
{ {
return p_access->p_sys->p_bda_module->SubmitDVBCTuneRequest(); if( p_access->p_sys->p_bda_module )
return p_access->p_sys->p_bda_module->SubmitDVBCTuneRequest();
return VLC_EGENERIC;
}; };
int dvb_SubmitDVBSTuneRequest( access_t* p_access ) int dvb_SubmitDVBSTuneRequest( access_t* p_access )
{ {
return p_access->p_sys->p_bda_module->SubmitDVBSTuneRequest(); if( p_access->p_sys->p_bda_module )
return p_access->p_sys->p_bda_module->SubmitDVBSTuneRequest();
return VLC_EGENERIC;
}; };
long dvb_GetBufferSize( access_t* p_access ) long dvb_GetBufferSize( access_t* p_access )
{ {
return p_access->p_sys->p_bda_module->GetBufferSize(); if( p_access->p_sys->p_bda_module )
return p_access->p_sys->p_bda_module->GetBufferSize();
return -1;
}; };
long dvb_ReadBuffer( access_t* p_access, long* l_buffer_len, BYTE* p_buff ) long dvb_ReadBuffer( access_t* p_access, long* l_buffer_len, BYTE* p_buff )
{ {
return p_access->p_sys->p_bda_module->ReadBuffer( l_buffer_len, if( p_access->p_sys->p_bda_module )
p_buff ); return p_access->p_sys->p_bda_module->ReadBuffer( l_buffer_len,
p_buff );
return -1;
}; };
}; };
...@@ -460,7 +473,7 @@ int BDAGraph::SubmitDVBSTuneRequest() ...@@ -460,7 +473,7 @@ int BDAGraph::SubmitDVBSTuneRequest()
hr = CreateTuneRequest(); hr = CreateTuneRequest();
if( FAILED( hr ) ) if( FAILED( hr ) )
{ {
msg_Warn( p_access, "SubmitDVBCTuneRequest: "\ msg_Warn( p_access, "SubmitDVBSTuneRequest: "\
"Cannot create Tune Request: hr=0x%8lx", hr ); "Cannot create Tune Request: hr=0x%8lx", hr );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
...@@ -469,7 +482,7 @@ int BDAGraph::SubmitDVBSTuneRequest() ...@@ -469,7 +482,7 @@ int BDAGraph::SubmitDVBSTuneRequest()
(void**)&l.p_dvbs_tune_request ); (void**)&l.p_dvbs_tune_request );
if( FAILED( hr ) ) if( FAILED( hr ) )
{ {
msg_Warn( p_access, "SubmitDVBCTuneRequest: "\ msg_Warn( p_access, "SubmitDVBSTuneRequest: "\
"Cannot QI for IDVBTuneRequest: hr=0x%8lx", hr ); "Cannot QI for IDVBTuneRequest: hr=0x%8lx", hr );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
...@@ -481,7 +494,7 @@ int BDAGraph::SubmitDVBSTuneRequest() ...@@ -481,7 +494,7 @@ int BDAGraph::SubmitDVBSTuneRequest()
IID_IDVBSLocator, (void**)&l.p_dvbs_locator ); IID_IDVBSLocator, (void**)&l.p_dvbs_locator );
if( FAILED( hr ) ) if( FAILED( hr ) )
{ {
msg_Warn( p_access, "SubmitDVBCTuneRequest: "\ msg_Warn( p_access, "SubmitDVBSTuneRequest: "\
"Cannot create the DVBS Locator: hr=0x%8lx", hr ); "Cannot create the DVBS Locator: hr=0x%8lx", hr );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
...@@ -503,7 +516,7 @@ int BDAGraph::SubmitDVBSTuneRequest() ...@@ -503,7 +516,7 @@ int BDAGraph::SubmitDVBSTuneRequest()
hr = l.p_dvbs_locator->put_SignalPolarisation( i_polar ); hr = l.p_dvbs_locator->put_SignalPolarisation( i_polar );
if( FAILED( hr ) ) if( FAILED( hr ) )
{ {
msg_Warn( p_access, "SubmitDVBCTuneRequest: "\ msg_Warn( p_access, "SubmitDVBSTuneRequest: "\
"Cannot set tuning parameters on Locator: hr=0x%8lx", hr ); "Cannot set tuning parameters on Locator: hr=0x%8lx", hr );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
...@@ -511,7 +524,7 @@ int BDAGraph::SubmitDVBSTuneRequest() ...@@ -511,7 +524,7 @@ int BDAGraph::SubmitDVBSTuneRequest()
hr = p_tune_request->put_Locator( l.p_dvbs_locator ); hr = p_tune_request->put_Locator( l.p_dvbs_locator );
if( FAILED( hr ) ) if( FAILED( hr ) )
{ {
msg_Warn( p_access, "SubmitDVBCTuneRequest: "\ msg_Warn( p_access, "SubmitDVBSTuneRequest: "\
"Cannot put the locator: hr=0x%8lx", hr ); "Cannot put the locator: hr=0x%8lx", hr );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment