Thread: [Mplayerplug-in-devel] Playlists
Brought to you by:
kdekorte
From: Kevin D. <kde...@ya...> - 2003-10-23 19:41:03
|
Well, I'm a little frustrated with all the changes to the mplayer playlist processing. So I have taken matters into my own hands and have started working on parsing my own playlists.... So far I have a few sites working and so I'm sure some of you are going to find some that don't work. But I should have some code in CVS today and maybe a tar file up on the site for testing. The benefits of parsing my own lists is that the processing is MUCH faster and I don't have to worry about network delays as much. Plus I don't have a moving target to keep hitting. Kevin |
From: christian <yl...@co...> - 2003-10-24 19:38:58
|
Great work, I think this is the better way to go. I found another benefit. You can easily choose if you want to add a certain entry to the playlist or not. Below is my patch against mplayerplug-in-1.0pre2-test3 to make my hockey listening experience a little easier. It would be easy to implement a "playlist filter" config option, but I don't know if anyone else than me would find it useful. /Christian --- support.c.orig 2003-10-23 23:18:29.000000000 +0200 +++ support.c 2003-10-24 05:49:40.000000000 +0200 @@ -443,7 +443,6 @@ n->delete = 1; n->status = STATE_NEWINSTANCE; n->retrieved = 0; - n->next = NULL; return n; } @@ -499,6 +498,30 @@ } +int filter(NPP instance,char *item) +{ + int block = 0; + char message[1024]; + PluginInstance *This; + This = (PluginInstance *) instance->pdata; + + //Remove pre-game advertising on nhl.com + if(strstr(item, "nhl_promo1.wma") != NULL) + block = 1; + if(strstr(item, "nhllive/wms/games/pre.wma") != NULL) + block = 1; + if(strstr(item, "nhllive/wms/games/post.wma") != NULL) + block = 1; + + if(block == 1){ + strcpy(message, "Blocked by filter: "); + strcat(message, item); + DrawUI(This->netscape_widget, instance, message); + sleep(1); + } + return block; +} + /* Inserts node newnode after node item */ void insertafter(Node * item, Node * newnode) { @@ -547,6 +570,9 @@ char tmpdir[1024]; char *tmp; + if(filter(instance,item))//Filter=YES + return; + This = (PluginInstance *) instance->pdata; if (!isMms(item)) { |
From: Kevin D. <kde...@ya...> - 2003-10-24 20:14:40
|
Christian, Interesting idea. I'm not sure I am going to merge this for only one reason= =2E=20 Since advertising is pretty much what pays for people to listen to this stu= ff=20 over the net, I would prefer not to specifically block it. I guess I feel i= f=20 you are getting something for free a little advertising won't kill you. May= be=20 a better option would be something that called an external program that=20 "filtered" the content. That way what content is filtered it controlled by= =20 the user of the program rather that hard coded in the program itself. Perhaps something where you pass it a URL and it returns a "blank" line to= =20 remove the url or even an "altered url". Someone else asked for this featur= e=20 but I declined since the "altered url" was fixing a broken site.=20 something like this new config option media_filter=3Dfully qualified path to script Add this to PluginInstance structure char media_filter[1024]; Add this to the init instance sprintf(media_filter,"\0"); Need to add something to read the option from the config file add something like this to "addToList" if (strlen(This->media_filter) =3D=3D 0) { sprintf(cmd,"%s %s",This->media_filter,This->url); fp =3D popen(cmd,"r") if (fp !=3D NULL) { // psuedo code read a line if line len =3D 0 then=20 don't add the url=20 else use returned value as the new url end if } } example media filter script, really basic example. I'm sure someone can mak= e a=20 better one. #!/bin/bash echo %1 > /tmp/media_filter grep -v "nhl_promo1.wma" /tmp/media_filter rm /tmp/media_filter or something along that line So if you want to code that up I would take that patch. Kevin On Friday 24 October 2003 1:37 pm, christian yl=C3=A4m=C3=A4ki wrote: > Great work, I think this is the better way to go. > > I found another benefit. You can easily choose if you want to add a > certain entry to the playlist or not. Below is my patch against > mplayerplug-in-1.0pre2-test3 to make my hockey listening experience a > little easier. It would be easy to implement a "playlist filter" config > option, but I don't know if anyone else than me would find it useful. > > /Christian > > --- support.c.orig 2003-10-23 23:18:29.000000000 +0200 > +++ support.c 2003-10-24 05:49:40.000000000 +0200 > @@ -443,7 +443,6 @@ > n->delete =3D 1; > n->status =3D STATE_NEWINSTANCE; > n->retrieved =3D 0; > - n->next =3D NULL; > return n; > } > > @@ -499,6 +498,30 @@ > > } > > +int filter(NPP instance,char *item) > +{ > + int block =3D 0; > + char message[1024]; > + PluginInstance *This; > + This =3D (PluginInstance *) instance->pdata; > + > + //Remove pre-game advertising on nhl.com > + if(strstr(item, "nhl_promo1.wma") !=3D NULL) > + block =3D 1; > + if(strstr(item, "nhllive/wms/games/pre.wma") !=3D NULL) > + block =3D 1; > + if(strstr(item, "nhllive/wms/games/post.wma") !=3D NULL) > + block =3D 1; > + > + if(block =3D=3D 1){ > + strcpy(message, "Blocked by filter: "); > + strcat(message, item); > + DrawUI(This->netscape_widget, instance, message); > + sleep(1); > + } > + return block; > +} > + > /* Inserts node newnode after node item */ > void insertafter(Node * item, Node * newnode) > { > @@ -547,6 +570,9 @@ > char tmpdir[1024]; > char *tmp; > > + if(filter(instance,item))//Filter=3DYES > + return; > + > This =3D (PluginInstance *) instance->pdata; > > if (!isMms(item)) { > > > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: The SF.net Donation Program. > Do you like what SourceForge.net is doing for the Open > Source Community? Make a contribution, and help us add new > features and functionality. Click here: http://sourceforge.net/donate/ > _______________________________________________ > Mplayerplug-in-devel mailing list > Mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mplayerplug-in-devel |
From: Kevin D. <kde...@ya...> - 2003-10-24 20:27:31
|
oops,=20 Psuedo code error if (strlen(This->media_filter) =3D=3D 0) { Should be if (strlen(This->media_filter) !=3D 0) { Kevin On Friday 24 October 2003 2:10 pm, Kevin DeKorte wrote: > Christian, > > Interesting idea. I'm not sure I am going to merge this for only one > reason. Since advertising is pretty much what pays for people to listen to > this stuff over the net, I would prefer not to specifically block it. I > guess I feel if you are getting something for free a little advertising > won't kill you. Maybe a better option would be something that called an > external program that "filtered" the content. That way what content is > filtered it controlled by the user of the program rather that hard coded = in > the program itself. > > Perhaps something where you pass it a URL and it returns a "blank" line to > remove the url or even an "altered url". Someone else asked for this > feature but I declined since the "altered url" was fixing a broken site. > > something like this > > new config option > > media_filter=3Dfully qualified path to script > > Add this to PluginInstance structure > char media_filter[1024]; > > Add this to the init instance > sprintf(media_filter,"\0"); > > Need to add something to read the option from the config file > > add something like this to "addToList" > > if (strlen(This->media_filter) =3D=3D 0) { > sprintf(cmd,"%s %s",This->media_filter,This->url); > fp =3D popen(cmd,"r") > if (fp !=3D NULL) { > // psuedo code > read a line > if line len =3D 0 then > don't add the url > else > use returned value as the new url > end if > } > } > example media filter script, really basic example. I'm sure someone can > make a better one. > > #!/bin/bash > echo %1 > /tmp/media_filter > grep -v "nhl_promo1.wma" /tmp/media_filter > rm /tmp/media_filter > > or something along that line > > So if you want to code that up I would take that patch. > > Kevin > > On Friday 24 October 2003 1:37 pm, christian yl=C3=83=C2=A4m=C3=83=C2=A4k= i wrote: > > Great work, I think this is the better way to go. > > > > I found another benefit. You can easily choose if you want to add a > > certain entry to the playlist or not. Below is my patch against > > mplayerplug-in-1.0pre2-test3 to make my hockey listening experience a > > little easier. It would be easy to implement a "playlist filter" config > > option, but I don't know if anyone else than me would find it useful. > > > > /Christian > > > > --- support.c.orig 2003-10-23 23:18:29.000000000 +0200 > > +++ support.c 2003-10-24 05:49:40.000000000 +0200 > > @@ -443,7 +443,6 @@ > > n->delete =3D 1; > > n->status =3D STATE_NEWINSTANCE; > > n->retrieved =3D 0; > > - n->next =3D NULL; > > return n; > > } > > > > @@ -499,6 +498,30 @@ > > > > } > > > > +int filter(NPP instance,char *item) > > +{ > > + int block =3D 0; > > + char message[1024]; > > + PluginInstance *This; > > + This =3D (PluginInstance *) instance->pdata; > > + > > + //Remove pre-game advertising on nhl.com > > + if(strstr(item, "nhl_promo1.wma") !=3D NULL) > > + block =3D 1; > > + if(strstr(item, "nhllive/wms/games/pre.wma") !=3D NULL) > > + block =3D 1; > > + if(strstr(item, "nhllive/wms/games/post.wma") !=3D NULL) > > + block =3D 1; > > + > > + if(block =3D=3D 1){ > > + strcpy(message, "Blocked by filter: "); > > + strcat(message, item); > > + DrawUI(This->netscape_widget, instance, message); > > + sleep(1); > > + } > > + return block; > > +} > > + > > /* Inserts node newnode after node item */ > > void insertafter(Node * item, Node * newnode) > > { > > @@ -547,6 +570,9 @@ > > char tmpdir[1024]; > > char *tmp; > > > > + if(filter(instance,item))//Filter=3DYES > > + return; > > + > > This =3D (PluginInstance *) instance->pdata; > > > > if (!isMms(item)) { > > > > > > > > > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: The SF.net Donation Program. > > Do you like what SourceForge.net is doing for the Open > > Source Community? Make a contribution, and help us add new > > features and functionality. Click here: http://sourceforge.net/donate/ > > _______________________________________________ > > Mplayerplug-in-devel mailing list > > Mpl...@li... > > https://lists.sourceforge.net/lists/listinfo/mplayerplug-in-devel > > ------------------------------------------------------- > This SF.net email is sponsored by: The SF.net Donation Program. > Do you like what SourceForge.net is doing for the Open > Source Community? Make a contribution, and help us add new > features and functionality. Click here: http://sourceforge.net/donate/ > _______________________________________________ > Mplayerplug-in-devel mailing list > Mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mplayerplug-in-devel |
From: christian <yl...@co...> - 2003-10-24 20:55:04
|
Well that patch was not really meant for merging anyway. I agree about the advertising, in this case I just removed them because mplayer cant handle them (se previous posts). My idea was not to hardcode the blocklist but to use something like media_filter= fully qualified path to list with items to block Then check if an item was in that list, but I like your idea more. I will have a look to see if I can make something along the lines of what you are suggesting. /Christian On Fri, 2003-10-24 at 22:10, Kevin DeKorte wrote: > Christian, > > Interesting idea. I'm not sure I am going to merge this for only one reason. > Since advertising is pretty much what pays for people to listen to this stuff > over the net, I would prefer not to specifically block it. I guess I feel if > you are getting something for free a little advertising won't kill you. Maybe > a better option would be something that called an external program that > "filtered" the content. That way what content is filtered it controlled by > the user of the program rather that hard coded in the program itself. > > Perhaps something where you pass it a URL and it returns a "blank" line to > remove the url or even an "altered url". Someone else asked for this feature > but I declined since the "altered url" was fixing a broken site. > > something like this > > new config option > > media_filter=fully qualified path to script > > Add this to PluginInstance structure > char media_filter[1024]; > > Add this to the init instance > sprintf(media_filter,"\0"); > > Need to add something to read the option from the config file > > add something like this to "addToList" > > if (strlen(This->media_filter) == 0) { > sprintf(cmd,"%s %s",This->media_filter,This->url); > fp = popen(cmd,"r") > if (fp != NULL) { > // psuedo code > read a line > if line len = 0 then > don't add the url > else > use returned value as the new url > end if > } > } > example media filter script, really basic example. I'm sure someone can make a > better one. > > #!/bin/bash > echo %1 > /tmp/media_filter > grep -v "nhl_promo1.wma" /tmp/media_filter > rm /tmp/media_filter > > or something along that line > > So if you want to code that up I would take that patch. > > Kevin |
From: Robert S. <rse...@au...> - 2003-10-25 14:57:49
|
hmm.. This may be a good time to put in a feature request. Any chance you could implement it in such a way that while the plugin is fetching the playlist is does not block the main browser process. Especially now that some of the sites mentioned in the earlier thread (cnn and nhl.com) are causing mplayer to hang, it's basically freezing the browser. If it's possible -Rob On Wed, 22 Oct 2003 13:53:21 -0600 Kevin DeKorte <kde...@ya...> wrote: > Well, > > I'm a little frustrated with all the changes to the mplayer playlist > > processing. So I have taken matters into my own hands and have > started working on parsing my own playlists.... So far I have a few > sites working and so I'm sure some of you are going to find some > that don't work. But I should have some code in CVS today and maybe > a tar file up on the site for testing. > > The benefits of parsing my own lists is that the processing is MUCH > faster and I don't have to worry about network delays as much. Plus > I don't have a moving target to keep hitting. > > Kevin > > > > ------------------------------------------------------- > This SF.net email is sponsored by: The SF.net Donation Program. > Do you like what SourceForge.net is doing for the Open > Source Community? Make a contribution, and help us add new > features and functionality. Click here: > http://sourceforge.net/donate/ > _______________________________________________ > Mplayerplug-in-devel mailing list > Mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mplayerplug-in-devel > |
From: Kevin D. <kde...@ya...> - 2003-10-26 16:45:42
|
Rob, Sorry when I try and do the playlist parsing in a thread it crashes mozilla. I think it has something to do with reentering the NPN_GetURL function. Kevin On Thursday 23 October 2003 4:54 pm, Robert Serphillips wrote: > hmm.. This may be a good time to put in a feature request. Any chance > you could implement it in such a way that while the plugin is fetching > the playlist is does not block the main browser process. Especially > now that some of the sites mentioned in the earlier thread (cnn and > nhl.com) are causing mplayer to hang, it's basically freezing the > browser. > > If it's possible > > -Rob > > On Wed, 22 Oct 2003 13:53:21 -0600 > > Kevin DeKorte <kde...@ya...> wrote: > > Well, > > > > I'm a little frustrated with all the changes to the mplayer playlist > > > > processing. So I have taken matters into my own hands and have > > started working on parsing my own playlists.... So far I have a few > > sites working and so I'm sure some of you are going to find some > > that don't work. But I should have some code in CVS today and maybe > > a tar file up on the site for testing. > > > > The benefits of parsing my own lists is that the processing is MUCH > > faster and I don't have to worry about network delays as much. Plus > > I don't have a moving target to keep hitting. > > > > Kevin > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: The SF.net Donation Program. > > Do you like what SourceForge.net is doing for the Open > > Source Community? Make a contribution, and help us add new > > features and functionality. Click here: > > http://sourceforge.net/donate/ > > _______________________________________________ > > Mplayerplug-in-devel mailing list > > Mpl...@li... > > https://lists.sourceforge.net/lists/listinfo/mplayerplug-in-devel > > ------------------------------------------------------- > This SF.net email is sponsored by: The SF.net Donation Program. > Do you like what SourceForge.net is doing for the Open > Source Community? Make a contribution, and help us add new > features and functionality. Click here: http://sourceforge.net/donate/ > _______________________________________________ > Mplayerplug-in-devel mailing list > Mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mplayerplug-in-devel |