diff -ru gecko-mediaplayer-1.0.4-orig/ChangeLog gecko-mediaplayer-1.0.4/ChangeLog --- gecko-mediaplayer-1.0.4-orig/ChangeLog 2011-07-01 12:40:50.000000000 -0400 +++ gecko-mediaplayer-1.0.4/ChangeLog 2011-07-09 20:58:47.000000000 -0400 @@ -1,3 +1,6 @@ +Development + Improvements to the apple.com/trailers fix, caching now works properly + Fix regression at apple.com/trailers, side effect of fully caching the file for now 1.0.4 Fix problem where file is downloaded before gnome-mplayer is started (locally cached) Added Portuguese translation diff -ru gecko-mediaplayer-1.0.4-orig/src/memmem_compat.cpp gecko-mediaplayer-1.0.4/src/memmem_compat.cpp --- gecko-mediaplayer-1.0.4-orig/src/memmem_compat.cpp 2011-06-06 17:47:44.000000000 -0400 +++ gecko-mediaplayer-1.0.4/src/memmem_compat.cpp 2011-07-09 20:58:24.000000000 -0400 @@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with this file; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, + Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. */ diff -ru gecko-mediaplayer-1.0.4-orig/src/plugin.cpp gecko-mediaplayer-1.0.4/src/plugin.cpp --- gecko-mediaplayer-1.0.4-orig/src/plugin.cpp 2011-06-20 11:00:33.000000000 -0400 +++ gecko-mediaplayer-1.0.4/src/plugin.cpp 2011-07-09 20:57:50.000000000 -0400 @@ -1320,7 +1320,7 @@ ListItem *item = (ListItem *) clientp; gdouble percent, rate; gchar *text; - gboolean ok_to_play; + gboolean ok_to_play = FALSE; gint id; gboolean ready; gboolean newwindow; @@ -1364,8 +1364,11 @@ rate); } send_signal_with_string(plugin, item, "SetProgressText", text); - if (!item->opened) - send_signal_with_string(plugin, item, "SetURL", item->src); + if (!item->opened) { + //open_location (plugin, item, TRUE); + //item->opened = TRUE; + //send_signal_with_string(plugin, item, "SetURL", item->src); + } if (plugin->post_dom_events && plugin->id != NULL) { postDOMEvent(plugin->mInstance, plugin->id, "qt_progress"); postDOMEvent(plugin->mInstance, plugin->id, "qt_durationchange"); @@ -1376,6 +1379,7 @@ item->lastsize = item->localsize; } } + if (!item->opened) { if ((item->localsize >= (plugin->cache_size * 1024)) && (percent >= 0.2)) { printf("Setting to play because %i > %i\n", item->localsize, @@ -1391,7 +1395,7 @@ if (ok_to_play == FALSE) { if (item->bitrate == 0 && item->bitrate_requests < 5 && ((gint) (percent * 100) > item->bitrate_requests)) { - item->bitrate = request_bitrate(plugin, item, item->local); + //item->bitrate = request_bitrate(plugin, item, item->local); item->bitrate_requests++; } if (item->bitrate > 0) { @@ -1407,6 +1411,7 @@ } } + // if not opened, over cache level and not an href target then try and open it if ((!item->opened) && ok_to_play == TRUE) { id = item->controlid; @@ -1418,6 +1423,7 @@ if (!item->streaming) { printf("in progress_callback\n"); plugin->playlist = list_parse_qt(plugin->playlist, item); + plugin->playlist = list_parse_qt2(plugin->playlist, item); plugin->playlist = list_parse_asx(plugin->playlist, item); plugin->playlist = list_parse_qml(plugin->playlist, item); plugin->playlist = list_parse_ram(plugin->playlist, item); @@ -1456,6 +1462,7 @@ } g_free(path); } + } @@ -1493,13 +1500,14 @@ } fclose(local); - printf("fetched %s to %s\n", item->src, item->local); + printf("fetched %s to %s opened = %i\n", item->src, item->local, item->opened); + send_signal_with_double(plugin, item, "SetCachePercent", 1.0); send_signal_with_double(plugin, item, "SetCachePercent", 0.0); item->retrieved = TRUE; } - if ((!item->opened)) { + if (!item->opened) { id = item->controlid; path = g_strdup(item->path); ready = item->playerready; @@ -1509,13 +1517,14 @@ if (!item->streaming) { printf("in CURLGetURLNotify\n"); plugin->playlist = list_parse_qt(plugin->playlist, item); + plugin->playlist = list_parse_qt2(plugin->playlist, item); plugin->playlist = list_parse_asx(plugin->playlist, item); plugin->playlist = list_parse_qml(plugin->playlist, item); plugin->playlist = list_parse_ram(plugin->playlist, item); } // printf("item->play = %i\n", item->play); // printf("item->src = %i\n", item->src); - // printf("calling open_location from Write\n"); + // printf("calling open_location from CURLGetURLNotify\n"); if (item->play) { send_signal_with_integer(plugin, item, "SetGUIState", PLAYING); open_location(plugin, item, TRUE);