From 50fed7d1f91dbfacd73b0a6292990626a0d4f236 Mon Sep 17 00:00:00 2001 From: reimar Date: Sat, 27 Feb 2010 06:17:14 +0000 Subject: Restructure #ifs to be clearer, also ensures that we return from the thread proc instead of calling exit() on __MINGW32__. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30754 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/cache2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'stream') diff --git a/stream/cache2.c b/stream/cache2.c index 7e42c6b60e..1a7942d098 100644 --- a/stream/cache2.c +++ b/stream/cache2.c @@ -430,12 +430,12 @@ static void ThreadProc( void *s ){ } while (cache_execute_control(s)); #if defined(__MINGW32__) || defined(__OS2__) _endthread(); -#endif -#ifdef PTHREAD_CACHE +#elif defined(PTHREAD_CACHE) return NULL; -#endif +#else // make sure forked code never leaves this function exit(0); +#endif } int cache_stream_fill_buffer(stream_t *s){ -- cgit v1.2.3 From f47d90850d34cd9baeed005d96b1673fb1351702 Mon Sep 17 00:00:00 2001 From: cehoyos Date: Sat, 27 Feb 2010 20:13:21 +0000 Subject: Remove unused static function streaming_stop(). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30765 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/network.c | 6 ------ 1 file changed, 6 deletions(-) (limited to 'stream') diff --git a/stream/network.c b/stream/network.c index 25d4cf3533..9750d28478 100644 --- a/stream/network.c +++ b/stream/network.c @@ -470,9 +470,3 @@ void fixup_network_stream_cache(stream_t *stream) { } } - -static int -streaming_stop( stream_t *stream ) { - stream->streaming_ctrl->status = streaming_stopped_e; - return 0; -} -- cgit v1.2.3 From 827df51f1db5ab8ae774396c5d7fa955908e306e Mon Sep 17 00:00:00 2001 From: reimar Date: Sat, 27 Feb 2010 21:02:44 +0000 Subject: Threaded cache fixes: do not free the stream_t struct twice on windows and make sure the cache thread quits also for streams without a control function (e.g. http). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30773 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/cache2.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'stream') diff --git a/stream/cache2.c b/stream/cache2.c index 1a7942d098..2e2aadc3fe 100644 --- a/stream/cache2.c +++ b/stream/cache2.c @@ -222,14 +222,14 @@ static int cache_fill(cache_vars_t *s) } static int cache_execute_control(cache_vars_t *s) { - int res = 1; static unsigned last; - if (!s->stream->control) { + int quit = s->control == -2; + if (quit || !s->stream->control) { s->stream_time_length = 0; s->control_new_pos = 0; s->control_res = STREAM_UNSUPPORTED; s->control = -1; - return res; + return !quit; } if (GetTimerMS() - last > 99) { double len; @@ -239,7 +239,7 @@ static int cache_execute_control(cache_vars_t *s) { s->stream_time_length = 0; last = GetTimerMS(); } - if (s->control == -1) return res; + if (s->control == -1) return 1; switch (s->control) { case STREAM_CTRL_GET_CURRENT_TIME: case STREAM_CTRL_SEEK_TO_TIME: @@ -254,15 +254,13 @@ static int cache_execute_control(cache_vars_t *s) { case STREAM_CTRL_SET_ANGLE: s->control_res = s->stream->control(s->stream, s->control, &s->control_uint_arg); break; - case -2: - res = 0; default: s->control_res = STREAM_UNSUPPORTED; break; } s->control_new_pos = s->stream->pos; s->control = -1; - return res; + return 1; } static cache_vars_t* cache_init(int size,int sector){ @@ -314,9 +312,9 @@ void cache_uninit(stream_t *s) { } if(!c) return; #if defined(__MINGW32__) || defined(PTHREAD_CACHE) || defined(__OS2__) - free(c->stream); free(c->buffer); c->buffer = NULL; + c->stream = NULL; free(s->cache_data); #else shmem_free(c->buffer,c->buffer_size); -- cgit v1.2.3 From d1b81c6c1c8e7079dc7aa51c8afc6167e4b712c2 Mon Sep 17 00:00:00 2001 From: cehoyos Date: Sat, 27 Feb 2010 21:32:33 +0000 Subject: Fix cd_info_new() prototype. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30775 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/cdd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'stream') diff --git a/stream/cdd.h b/stream/cdd.h index 9f2ae2fbb6..c6d6e9d92b 100644 --- a/stream/cdd.h +++ b/stream/cdd.h @@ -86,7 +86,7 @@ typedef struct { cd_info_t *cd_info; } cdda_priv; -cd_info_t* cd_info_new(); +cd_info_t* cd_info_new(void); void cd_info_free(cd_info_t *cd_info); cd_track_t* cd_info_add_track(cd_info_t *cd_info, char *track_name, unsigned int track_nb, unsigned int min, unsigned int sec, unsigned int msec, unsigned long frame_begin, unsigned long frame_length); cd_track_t* cd_info_get_track(cd_info_t *cd_info, unsigned int track_nb); -- cgit v1.2.3 From 70b070baa2b81f2204723e18d815b2bc3c763efa Mon Sep 17 00:00:00 2001 From: cehoyos Date: Sat, 27 Feb 2010 23:14:44 +0000 Subject: Remove unused functions. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30781 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/freesdp/parser.c | 60 ------------------------------------------------- 1 file changed, 60 deletions(-) (limited to 'stream') diff --git a/stream/freesdp/parser.c b/stream/freesdp/parser.c index 34e6737a05..6d806a6e80 100644 --- a/stream/freesdp/parser.c +++ b/stream/freesdp/parser.c @@ -1440,50 +1440,6 @@ fsdp_get_encryption_content (const fsdp_description_t * dsc) return dsc->k_encryption_content; } -unsigned int -fsdp_get_rtpmap_count (const fsdp_description_t * dsc) -{ - if (!dsc) - return 0; - return dsc->a_rtpmaps_count; -} - -const char * -fsdp_get_rtpmap_payload_type (const fsdp_description_t * dsc, - unsigned int index) -{ - if ((!dsc) || (index >= dsc->a_rtpmaps_count)) - return NULL; - return dsc->a_rtpmaps[index]->pt; -} - -const char * -fsdp_get_rtpmap_encoding_name (const fsdp_description_t * dsc, - unsigned int index) -{ - if ((!dsc) || (index >= dsc->a_rtpmaps_count)) - return NULL; - return dsc->a_rtpmaps[index]->encoding_name; -} - -unsigned int -fsdp_get_rtpmap_clock_rate (const fsdp_description_t * dsc, - unsigned int index) -{ - if ((!dsc) || (index >= dsc->a_rtpmaps_count)) - return 0; - return dsc->a_rtpmaps[index]->clock_rate; -} - -const char * -fsdp_get_rtpmap_encoding_parameters (const fsdp_description_t * dsc, - unsigned int index) -{ - if ((!dsc) || (index >= dsc->a_rtpmaps_count)) - return NULL; - return dsc->a_rtpmaps[index]->parameters; -} - const char * fsdp_get_str_att (const fsdp_description_t * dsc, fsdp_session_str_att_t att) { @@ -1530,22 +1486,6 @@ fsdp_get_sdplang (const fsdp_description_t * dsc, unsigned int index) return dsc->a_sdplangs[index]; } -unsigned int -fsdp_get_lang_count (const fsdp_description_t * dsc) -{ - if (!dsc) - return 0; - return dsc->a_langs_count; -} - -const char * -fsdp_get_lang (const fsdp_description_t * dsc, unsigned int index) -{ - if ((!dsc) || (index >= dsc->a_langs_count)) - return NULL; - return dsc->a_langs[index]; -} - unsigned int fsdp_get_control_count (const fsdp_description_t * dsc) { -- cgit v1.2.3 From d59123f10d133a4dd600e2896b8ee365c6f67e4a Mon Sep 17 00:00:00 2001 From: cehoyos Date: Sat, 27 Feb 2010 23:23:34 +0000 Subject: Fix warning "missing braces around initializer". git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30782 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_tv.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'stream') diff --git a/stream/stream_tv.c b/stream/stream_tv.c index 3db6195dcf..fb2090fd09 100644 --- a/stream/stream_tv.c +++ b/stream/stream_tv.c @@ -70,10 +70,12 @@ tv_param_t stream_tv_defaults = { 0, //hue 0, //saturation -1, //gain + { NULL, //tdevice 0, //tformat 100, //tpage 0, //tlang + }, 0, //scan_autostart 50, //scan_threshold 0.5, //scan_period -- cgit v1.2.3 From 35fbd55c0fbe9c4beb65963c034ea85082cec6e5 Mon Sep 17 00:00:00 2001 From: komh Date: Sun, 28 Feb 2010 03:26:18 +0000 Subject: Add cddb:// support for OS/2 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30788 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_cddb.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) (limited to 'stream') diff --git a/stream/stream_cddb.c b/stream/stream_cddb.c index 3ecad98183..47a0321e01 100644 --- a/stream/stream_cddb.c +++ b/stream/stream_cddb.c @@ -68,6 +68,8 @@ #include "mpbswap.h" #endif +#include "osdep/osdep.h" + #include "cdd.h" #include "version.h" #include "stream.h" @@ -112,6 +114,78 @@ static int read_toc(const char *dev) } CloseHandle(drive); +#elif defined(__OS2__) + UCHAR auchParamDisk[4] = {'C', 'D', '0', '1'}; + + struct { + BYTE bFirstTrack; + BYTE bLastTrack; + BYTE bLeadOutF; + BYTE bLeadOutS; + BYTE bLeadOutM; + BYTE bLeadOutReserved; + } __attribute__((packed)) sDataDisk; + + struct { + UCHAR auchSign[4]; + BYTE bTrack; + } __attribute__((packed)) sParamTrack = {{'C', 'D', '0', '1'},}; + + struct { + BYTE bStartF; + BYTE bStartS; + BYTE bStartM; + BYTE bStartReserved; + BYTE bControlInfo; + } __attribute__((packed)) sDataTrack; + + HFILE hcd; + ULONG ulAction; + ULONG ulParamLen; + ULONG ulDataLen; + ULONG rc; + + rc = DosOpen(dev, &hcd, &ulAction, 0, FILE_NORMAL, + OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW, + OPEN_ACCESS_READONLY | OPEN_SHARE_DENYNONE | OPEN_FLAGS_DASD, + NULL); + if (rc) { + mp_msg(MSGT_OPEN, MSGL_ERR, MSGTR_MPDEMUX_CDDB_FailedToReadTOC); + return -1; + } + + rc = DosDevIOCtl(hcd, IOCTL_CDROMAUDIO, CDROMAUDIO_GETAUDIODISK, + auchParamDisk, sizeof(auchParamDisk), &ulParamLen, + &sDataDisk, sizeof(sDataDisk), &ulDataLen); + if (!rc) { + first = sDataDisk.bFirstTrack - 1; + last = sDataDisk.bLastTrack; + for (i = first; i <= last; i++) { + if (i == last) { + sDataTrack.bStartM = sDataDisk.bLeadOutM; + sDataTrack.bStartS = sDataDisk.bLeadOutS; + sDataTrack.bStartF = sDataDisk.bLeadOutF; + } else { + sParamTrack.bTrack = i + 1; + rc = DosDevIOCtl(hcd, IOCTL_CDROMAUDIO, CDROMAUDIO_GETAUDIOTRACK, + &sParamTrack, sizeof(sParamTrack), &ulParamLen, + &sDataTrack, sizeof(sDataTrack), &ulDataLen); + if (rc) + break; + } + + cdtoc[i].min = sDataTrack.bStartM; + cdtoc[i].sec = sDataTrack.bStartS; + cdtoc[i].frame = sDataTrack.bStartF; + } + } + + DosClose(hcd); + + if (rc) { + mp_msg(MSGT_OPEN, MSGL_ERR, MSGTR_MPDEMUX_CDDB_FailedToReadTOC); + return -1; + } #else int drive; drive = open(dev, O_RDONLY | O_NONBLOCK); -- cgit v1.2.3 From 2c8d69f1855122e8ddece9e31b640db937d0ff9d Mon Sep 17 00:00:00 2001 From: reimar Date: Sun, 28 Feb 2010 11:30:35 +0000 Subject: Remove useless cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30794 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_vcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'stream') diff --git a/stream/stream_vcd.c b/stream/stream_vcd.c index 4c85335073..9ed8ac7a58 100644 --- a/stream/stream_vcd.c +++ b/stream/stream_vcd.c @@ -92,7 +92,7 @@ static void close_s(stream_t *stream) { } static int open_s(stream_t *stream,int mode, void* opts, int* file_format) { - struct stream_priv_s* p = (struct stream_priv_s*)opts; + struct stream_priv_s* p = opts; int ret,ret2,f,sect,tmp; mp_vcd_priv_t* vcd; #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) -- cgit v1.2.3 From d8c02c2dd229b2fda576e0aa09cee4e0a6090b7b Mon Sep 17 00:00:00 2001 From: reimar Date: Sun, 28 Feb 2010 12:54:12 +0000 Subject: Simplify handling of 0-termination in stream_read_line git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30795 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'stream') diff --git a/stream/stream.h b/stream/stream.h index f1a3667343..579468114a 100644 --- a/stream/stream.h +++ b/stream/stream.h @@ -268,6 +268,8 @@ inline static int stream_read(stream_t *s,char* mem,int total){ inline static unsigned char* stream_read_line(stream_t *s,unsigned char* mem, int max) { int len; unsigned char* end,*ptr = mem; + if (max < 1) return NULL; + max--; // reserve one for 0-termination do { len = s->buf_len-s->buf_pos; // try to fill the buffer @@ -276,8 +278,8 @@ inline static unsigned char* stream_read_line(stream_t *s,unsigned char* mem, in (len = s->buf_len-s->buf_pos) <= 0)) break; end = (unsigned char*) memchr((void*)(s->buffer+s->buf_pos),'\n',len); if(end) len = end - (s->buffer+s->buf_pos) + 1; - if(len > 0 && max > 1) { - int l = len > max-1 ? max-1 : len; + if(len > 0 && max > 0) { + int l = len > max ? max : len; memcpy(ptr,s->buffer+s->buf_pos,l); max -= l; ptr += l; @@ -285,7 +287,7 @@ inline static unsigned char* stream_read_line(stream_t *s,unsigned char* mem, in s->buf_pos += len; } while(!end); if(s->eof && ptr == mem) return NULL; - if(max > 0) ptr[0] = 0; + ptr[0] = 0; return mem; } -- cgit v1.2.3 From c89169f7b5c13961a3183d3a8736b8558b2a0922 Mon Sep 17 00:00:00 2001 From: reimar Date: Sun, 28 Feb 2010 13:54:55 +0000 Subject: Move stream_read_line implementation from stream.h to stream.c, it is not speed critical and the function call overhead is not relevant for its overall speed anyway. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30796 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream.c | 26 ++++++++++++++++++++++++++ stream/stream.h | 27 +-------------------------- 2 files changed, 27 insertions(+), 26 deletions(-) (limited to 'stream') diff --git a/stream/stream.c b/stream/stream.c index daecc09d2c..47d4b9e2a5 100644 --- a/stream/stream.c +++ b/stream/stream.c @@ -487,3 +487,29 @@ int stream_check_interrupt(int time) { if(!stream_check_interrupt_cb) return 0; return stream_check_interrupt_cb(time); } + +unsigned char* stream_read_line(stream_t *s,unsigned char* mem, int max) { + int len; + unsigned char* end,*ptr = mem; + if (max < 1) return NULL; + max--; // reserve one for 0-termination + do { + len = s->buf_len-s->buf_pos; + // try to fill the buffer + if(len <= 0 && + (!cache_stream_fill_buffer(s) || + (len = s->buf_len-s->buf_pos) <= 0)) break; + end = (unsigned char*) memchr((void*)(s->buffer+s->buf_pos),'\n',len); + if(end) len = end - (s->buffer+s->buf_pos) + 1; + if(len > 0 && max > 0) { + int l = len > max ? max : len; + memcpy(ptr,s->buffer+s->buf_pos,l); + max -= l; + ptr += l; + } + s->buf_pos += len; + } while(!end); + if(s->eof && ptr == mem) return NULL; + ptr[0] = 0; + return mem; +} diff --git a/stream/stream.h b/stream/stream.h index 579468114a..cc70c81db5 100644 --- a/stream/stream.h +++ b/stream/stream.h @@ -265,32 +265,7 @@ inline static int stream_read(stream_t *s,char* mem,int total){ return total; } -inline static unsigned char* stream_read_line(stream_t *s,unsigned char* mem, int max) { - int len; - unsigned char* end,*ptr = mem; - if (max < 1) return NULL; - max--; // reserve one for 0-termination - do { - len = s->buf_len-s->buf_pos; - // try to fill the buffer - if(len <= 0 && - (!cache_stream_fill_buffer(s) || - (len = s->buf_len-s->buf_pos) <= 0)) break; - end = (unsigned char*) memchr((void*)(s->buffer+s->buf_pos),'\n',len); - if(end) len = end - (s->buffer+s->buf_pos) + 1; - if(len > 0 && max > 0) { - int l = len > max ? max : len; - memcpy(ptr,s->buffer+s->buf_pos,l); - max -= l; - ptr += l; - } - s->buf_pos += len; - } while(!end); - if(s->eof && ptr == mem) return NULL; - ptr[0] = 0; - return mem; -} - +unsigned char* stream_read_line(stream_t *s,unsigned char* mem, int max); inline static int stream_eof(stream_t *s){ return s->eof; -- cgit v1.2.3