Index: trunk/extensions/MetavidWiki/skins/mv_embed/example_usage/sample_page.php |
— | — | @@ -61,10 +61,9 @@ |
62 | 62 | $sample_embed[3]['desc'] = 'Demo2 of json ROE attribute'; |
63 | 63 | |
64 | 64 | |
65 | | -//$sample_embed[2]['tag'] = '<video id="v2" controls="true" roe="http://mammoth.dnip.net/mvWiki/index.php?title=Special:MvExportStream&feed_format=roe&stream_name=senate_11-14-05&t=0:42:14/0:42:56"></video>'; |
66 | | -//$sample_embed[2]['desc'] = 'video with controls and thumbnail'; |
| 65 | +$sample_embed[2]['tag'] = '<video id="v2" controls="true" src="sample_fish.ogg" poster="sample_fish.jpg"></video>'; |
| 66 | +$sample_embed[2]['desc'] = 'simple video with controls and thumbnail'; |
67 | 67 | |
68 | | - |
69 | 68 | //playlist tags: |
70 | 69 | $sample_embed[4]['tag'] = '<playlist id="playlist1" width="400" height="300" |
71 | 70 | src="sample_xspf.xml" controls="true" embed_link="true"/>'; |
— | — | @@ -108,7 +107,6 @@ |
109 | 108 | $sample_embed[7]['desc'] = '<b>Inline Playlist:</b> for more info see <a href="http://metavid.ucsc.edu/wiki/index.php/Mv_embed">mv_embed wiki</a> page'; |
110 | 109 | |
111 | 110 | //real video sample: |
112 | | -// |
113 | 111 | $smilURL = 'sample_smil.smil.xml'; |
114 | 112 | $sample_embed[8]['tag']= '<playlist id="smil_pl" src="'.$smilURL.'">'; |
115 | 113 | $sample_embed[8]['desc']=' <br><b>Crossfading Videos</b><br/><a href="http://service.real.com/help/library/guides/realone/ProductionGuide/HTML/htmfiles/transit.htm">source</a> |
— | — | @@ -126,10 +124,11 @@ |
127 | 125 | ?> |
128 | 126 | <table border="1" cellpadding="6" width="600"> |
129 | 127 | <? foreach($sample_embed as $key=>$aval){ |
130 | | - if($key!=8 && $key!=3)continue; |
| 128 | + //$key!=8 |
| 129 | + if($key!=2)continue; |
131 | 130 | ?> |
132 | 131 | <tr> |
133 | | - <td><?=$aval['tag']?></td> |
| 132 | + <td valign="top"><?=$aval['tag']?></td> |
134 | 133 | <td valign="top"><b>Sample Embed <?=$key?></b><br /> |
135 | 134 | <?=$aval['desc']?><br /> |
136 | 135 | <-- code used: <br /> |
Index: trunk/extensions/MetavidWiki/skins/mv_embed/embedLibs/mv_nativeEmbed.js |
— | — | @@ -1,22 +1,57 @@ |
2 | 2 | |
3 | 3 | var nativeEmbed = { |
4 | 4 | instanceOf:'nativeEmbed', |
| 5 | + canPlayThrough:false, |
5 | 6 | supports: {'play_head':true, 'play_or_pause':true, 'stop':true, 'fullscreen':true, 'time_display':true, 'volume_control':true}, |
6 | 7 | getEmbedHTML : function (){ |
7 | | - setTimeout('document.getElementById(\''+this.id+'\').postEmbedJS()', 150); |
| 8 | + setTimeout('$j(\'#'+this.id+'\').get(0).postEmbedJS()', 150); |
8 | 9 | //set a default duration of 30 seconds: cortao should detect duration. |
9 | | - return this.wrapEmebedContainer( this.getEmbedObj() ); |
| 10 | + var embed_code = this.getEmbedObj(); |
| 11 | + js_log('EMBED CODE: ' + embed_code); |
| 12 | + return this.wrapEmebedContainer( embed_code); |
10 | 13 | }, |
11 | 14 | getEmbedObj:function(){ |
12 | 15 | return '<video " ' + |
13 | | - 'id="'+this.pid + '" ' + |
14 | | - 'style="width:'+this.width+';height:'+this.height+';" ' + |
15 | | - 'src="'+this.media_element.selected_source.uri+'" >' + |
| 16 | + 'id="'+this.pid + '" ' + |
| 17 | + 'style="width:'+this.width+'px;height:'+this.height+'px;" ' + |
| 18 | + 'src="'+this.media_element.selected_source.uri+'" ' + |
| 19 | + 'controls="false" ' + |
| 20 | + 'oncanplaythrough="$j(\'#'+this.id+'\').get(0).oncanplaythrough();return false;" ' + |
| 21 | + 'onloadedmetadata="$j(\'#'+this.id+'\').get(0).onloadedmetadata();return false;" >' + |
16 | 22 | '</video>'; |
17 | 23 | }, |
18 | | - postEmbedJS:function(){ |
19 | | - document.getElementById(this.pid).play(); |
| 24 | + //@@todo : loading progress |
| 25 | + postEmbedJS:function(){ |
| 26 | + this.getVID(); |
| 27 | + if(this.vid){ |
| 28 | + this.vid.load(); |
| 29 | + setTimeout('$j(\'#'+this.id+'\').get(0).monitor()',100); |
| 30 | + }else{ |
| 31 | + js_log('could not grab vid obj:' + typeof this.vid); |
| 32 | + setTimeout('$j(\'#'+this.id+'\').get(0).postEmbedJS()',100); |
| 33 | + } |
| 34 | + }, |
| 35 | + monitor : function(){ |
| 36 | + this.getVID(); //make shure we have .vid obj |
| 37 | + js_log('time loaded: ' + this.vid.TimeRanges() ); |
| 38 | + //update load progress and |
| 39 | + if( ! this.monitorTimerId ){ |
| 40 | + if(document.getElementById(this.id)){ |
| 41 | + this.monitorTimerId = setInterval('$j(\'#'+this.id+'\').get(0).monitor()', 1000); |
| 42 | + } |
| 43 | + } |
| 44 | + }, |
| 45 | + /* |
| 46 | + * native callbacks for the video tag: |
| 47 | + */ |
| 48 | + oncanplaythrough : function(){ |
| 49 | + js_log("f:oncanplaythrough start playback"); |
| 50 | + this.play(); |
20 | 51 | }, |
| 52 | + onloadedmetadata: function(){ |
| 53 | + js_log('f:onloadedmetadata get duration'); |
| 54 | + //this. |
| 55 | + }, |
21 | 56 | pause : function(){ |
22 | 57 | document.getElementById(this.pid).pause(); |
23 | 58 | }, |
— | — | @@ -26,5 +61,9 @@ |
27 | 62 | }else{ |
28 | 63 | document.getElementById(this.pid).play(); |
29 | 64 | } |
30 | | - } |
| 65 | + }, |
| 66 | + // get the embed vlc object |
| 67 | + getVID : function (){ |
| 68 | + this.vid = $j('#'+this.pid).get(0); |
| 69 | + } |
31 | 70 | } |
\ No newline at end of file |
Index: trunk/extensions/MetavidWiki/skins/mv_embed/embedLibs/mv_genericEmbed.js |
— | — | @@ -1,7 +1,7 @@ |
2 | 2 | /* the most simple implementation used for unknown application/ogg plugin */ |
3 | 3 | var genericEmbed={ |
4 | 4 | instanceOf:'genericEmbed', |
5 | | - getEmbedObj:function(){ |
| 5 | + getEmbedHTML:function(){ |
6 | 6 | return '<object type="application/ogg" '+ |
7 | 7 | 'width="'+this.width+'" height="'+this.height+'" ' + |
8 | 8 | 'data="' + this.src + '"></object>'; |
Index: trunk/extensions/MetavidWiki/skins/mv_embed/embedLibs/mv_flashEmbed.js |
— | — | @@ -318,10 +318,17 @@ |
319 | 319 | var flashEmbed = { |
320 | 320 | instanceOf:'flashEmbed', |
321 | 321 | monitorTimerId : 0, |
322 | | - supports: {'play_head':true, 'play_or_pause':true, 'stop':true, 'fullscreen':true, 'time_display':true, 'volume_control':true}, |
323 | | - getPluginEmbedHTML : function (){ |
| 322 | + supports: {'play_head':true, |
| 323 | + 'play_or_pause':true, |
| 324 | + 'stop':true, |
| 325 | + 'fullscreen':true, |
| 326 | + 'time_display':true, |
| 327 | + 'volume_control':true, |
| 328 | + 'overlay':false |
| 329 | + }, |
| 330 | + getEmbedHTML : function (){ |
324 | 331 | setTimeout('document.getElementById(\''+this.id+'\').postEmbedJS()', 150); |
325 | | - return this.getEmbedObj(); |
| 332 | + return this.wrapEmebedContainer( this.getEmbedObj() ); |
326 | 333 | }, |
327 | 334 | getEmbedObj:function(){ |
328 | 335 | if(!this.duration)this.duration=30; |
Index: trunk/extensions/MetavidWiki/skins/mv_embed/embedLibs/mv_vlcEmbed.js |
— | — | @@ -6,12 +6,19 @@ |
7 | 7 | */ |
8 | 8 | var vlcEmbed = { |
9 | 9 | instanceOf:'vlcEmbed', |
10 | | - supports: {'play_head':true, 'play_or_pause':true, 'stop':true, 'fullscreen':true, 'time_display':true, 'volume_control':true}, |
| 10 | + supports: {'play_head':true, |
| 11 | + 'play_or_pause':true, |
| 12 | + 'stop':true, |
| 13 | + 'fullscreen':true, |
| 14 | + 'time_display':true, |
| 15 | + 'volume_control':false, |
| 16 | + 'overlay':false |
| 17 | + }, |
11 | 18 | //init vars: |
12 | 19 | monitorTimerId : 0, |
13 | 20 | prevState : 0, |
14 | 21 | currentTime:0, |
15 | | - duration:0, |
| 22 | + duration:0, |
16 | 23 | userSlide:false, |
17 | 24 | getEmbedHTML : function(){ |
18 | 25 | //give VLC 150ms to initialize before we start playback |
— | — | @@ -92,8 +99,8 @@ |
93 | 100 | var msgtype = msg.type.toString(); |
94 | 101 | if( (msg.severity == 1) && (msgtype == "input") ) |
95 | 102 | { |
96 | | - js_log( msg.message ); |
97 | | - } |
| 103 | + js_log( msg.message ); |
| 104 | + } |
98 | 105 | } |
99 | 106 | // clear the log once finished to avoid clogging |
100 | 107 | this.vlc.log.messages.clear(); |
— | — | @@ -225,6 +232,7 @@ |
226 | 233 | }, |
227 | 234 | /* js hooks/controls */ |
228 | 235 | play : function(){ |
| 236 | + js_log('f:vlcPlay'); |
229 | 237 | this.getVLC(); |
230 | 238 | if(!this.vlc || this.thumbnail_disp){ |
231 | 239 | //call the parent |
— | — | @@ -275,7 +283,7 @@ |
276 | 284 | }, |
277 | 285 | */ |
278 | 286 | // get the embed vlc object |
279 | | - getVLC : function getVLC(){ |
| 287 | + getVLC : function(){ |
280 | 288 | this.vlc = this.getPluginEmbed(); |
281 | 289 | } |
282 | 290 | } |
Index: trunk/extensions/MetavidWiki/skins/mv_embed/mv_embed.js |
— | — | @@ -39,9 +39,10 @@ |
40 | 40 | var debug_global_vid_ref=null; |
41 | 41 | /* |
42 | 42 | * its best if you just require all your external data sources to serve up json data. |
43 | | - * mv_proxy is not such a good idea from security standpoint but if you know what your doing |
44 | | - * ie mv_data_proxy should not be hosted on domain as with any other web services running... |
45 | | - * you can enable it here ) |
| 43 | + * or |
| 44 | + * have a limited set of domains that you accept data from |
| 45 | + * enabling mv_proxy is not such a good idea from security standpoint but if you know what your doing |
| 46 | + * you can enable it here (also you have to uncomment mv_data_proxy die(); line) |
46 | 47 | */ |
47 | 48 | var MV_ENABLE_DATA_PROXY=false; |
48 | 49 | |
— | — | @@ -442,7 +443,7 @@ |
443 | 444 | { |
444 | 445 | var name_value = pairs[i].split('='); |
445 | 446 | this.preference[name_value[0]]=name_value[1]; |
446 | | - js_log('setting preference for ' + name_value[0] + ' to ' + name_value[1]); |
| 447 | + js_log('load preference for ' + name_value[0] + ' to ' + name_value[1]); |
447 | 448 | } |
448 | 449 | } |
449 | 450 | }, |
— | — | @@ -903,8 +904,12 @@ |
904 | 905 | js_log('did swap'); |
905 | 906 | $j('#'+embed_video.id).get(0).on_dom_swap(); |
906 | 907 | // now that "embed_video" is stable, do more initialization (if we are ready) |
907 | | - if($j('#'+embed_video.id).get(0).loading_external_data==false) |
908 | | - $j('#'+embed_video.id).get(0).more_init(); |
| 908 | + if($j('#'+embed_video.id).get(0).loading_external_data==false && |
| 909 | + $j('#'+embed_video.id).get(0).init_with_sources_loadedDone==false){ |
| 910 | + js_log("NOT LOADING ext data jump to init with sources"); |
| 911 | + $j('#'+embed_video.id).get(0).init_with_sources_loaded(); |
| 912 | + } |
| 913 | + //js_log(" isd: "+this.init_with_sources_loadedDone + ' ed:' + ) |
909 | 914 | |
910 | 915 | //js_log('vid elm:'+ $j(video_element).html() ); |
911 | 916 | |
— | — | @@ -1582,6 +1587,7 @@ |
1583 | 1588 | media_element:null, |
1584 | 1589 | slider:null, |
1585 | 1590 | loading_external_data:false, |
| 1591 | + init_with_sources_loadedDone:false, |
1586 | 1592 | inDOM:false, |
1587 | 1593 | supports:{}, |
1588 | 1594 | //utility functions for property values: |
— | — | @@ -1652,16 +1658,17 @@ |
1653 | 1659 | { |
1654 | 1660 | //continue |
1655 | 1661 | _this.media_element.addROE(data); |
1656 | | - js_log('added_roe::' + _this.media_element.sources); |
1657 | | - _this.more_init(); |
1658 | | - js_log('done loading ROE '+_this.thumbnail_disp ) |
1659 | | - _this.loading_external_data=false; |
| 1662 | + js_log('added_roe::' + _this.media_element.sources); |
| 1663 | + js_log('done loading ROE '+_this.thumbnail_disp ) |
| 1664 | + _this.init_with_sources_loaded(); |
| 1665 | + js_log('set loading_external_data=false'); |
| 1666 | + _this.loading_external_data=false; |
1660 | 1667 | }); |
1661 | 1668 | } |
1662 | 1669 | }, |
1663 | | - more_init : function(ready_callback) |
| 1670 | + init_with_sources_loaded : function(ready_callback) |
1664 | 1671 | { |
1665 | | - js_log('f:more_init'); |
| 1672 | + js_log('f:init_with_sources_loaded'); |
1666 | 1673 | //autoseletct the source |
1667 | 1674 | this.media_element.autoSelectSource(); |
1668 | 1675 | //auto select player based on prefrence or default order |
— | — | @@ -1683,7 +1690,7 @@ |
1684 | 1691 | * @@TODO lazy load plugin types |
1685 | 1692 | * override all relevant exported functions with the {embed_type} Object |
1686 | 1693 | * place the base functions in parent.{function name} |
1687 | | - */ |
| 1694 | + */ |
1688 | 1695 | this.inheritEmbedObj(ready_callback); |
1689 | 1696 | |
1690 | 1697 | //update HTML |
— | — | @@ -1691,13 +1698,16 @@ |
1692 | 1699 | |
1693 | 1700 | //js_log('HTML FROM IN OBJECT' + this.getHTML()); |
1694 | 1701 | //return this object: |
1695 | | - //return this; |
| 1702 | + //return this; |
| 1703 | + this.init_with_sources_loadedDone=true; |
1696 | 1704 | }, |
1697 | 1705 | selectPlayer:function(player) |
1698 | 1706 | { |
1699 | 1707 | var _this = this; |
1700 | | - this.selected_player = player; |
1701 | | - this.inheritEmbedObj(); |
| 1708 | + if(this.selected_player.id != player.id){ |
| 1709 | + this.selected_player = player; |
| 1710 | + this.inheritEmbedObj(); |
| 1711 | + } |
1702 | 1712 | }, |
1703 | 1713 | getTimeReq:function(){ |
1704 | 1714 | js_log('f:getTimeReq'); |
— | — | @@ -1717,20 +1727,27 @@ |
1718 | 1728 | getDurationNTP:function(){ |
1719 | 1729 | return seconds2ntp(this.getDuration()/1000); |
1720 | 1730 | }, |
| 1731 | + /* |
| 1732 | + * wrapEmebedContainer |
| 1733 | + * wraps the embed code into a container to better support playlist function |
| 1734 | + * (where embed element is swapped for next clip |
| 1735 | + * (where plugin method does not support playlsits) |
| 1736 | + */ |
1721 | 1737 | wrapEmebedContainer:function(embed_code){ |
1722 | 1738 | //check if parent clip is set( ie we are in a playlist so name the embed container by playlistID) |
1723 | 1739 | var id = (this.pc!=null)?this.pc.pp.id:this.id; |
1724 | 1740 | return '<div id="mv_ebct_'+id+'" style="width:'+this.width+'px;height:'+this.height+'px;">' + |
1725 | 1741 | embed_code + |
1726 | 1742 | '</div>'; |
1727 | | - }, |
| 1743 | + }, |
1728 | 1744 | getEmbedHTML : function(){ |
1729 | | - return this.wrapEmebedContainer( this.getPluginEmbedHTML() ); |
| 1745 | + //return this.wrapEmebedContainer( this.getEmbedObj() ); |
| 1746 | + return 'function getEmbedHTML should be overiten by embedLib '; |
1730 | 1747 | }, |
1731 | 1748 | doEmbedHTML:function() |
1732 | 1749 | { |
1733 | 1750 | js_log('f:doEmbedHTML'); |
1734 | | - js_log('thum disp:'+this.thumbnail_disp); |
| 1751 | + js_log('thum disp:'+this.thumbnail_disp); |
1735 | 1752 | var _this = this; |
1736 | 1753 | this.closeDisplayedHTML(); |
1737 | 1754 | |
— | — | @@ -1904,20 +1921,21 @@ |
1905 | 1922 | }); |
1906 | 1923 | }, |
1907 | 1924 | getHTML : function (){ |
1908 | | - //check if we have sources avaliable |
| 1925 | + //@@todo check if we have sources avaliable |
1909 | 1926 | js_log('f:getHTML'); |
1910 | 1927 | var html_code = ''; |
1911 | 1928 | |
1912 | 1929 | html_code = '<div style="width:'+this.width+'px;" class="videoPlayer">'; |
1913 | 1930 | html_code += '<div id="mv_embedded_player_'+this.id+'">' + |
1914 | | - this.getThumbnailHTML(); |
| 1931 | + this.getThumbnailHTML() + |
1915 | 1932 | '</div>'; |
1916 | 1933 | |
1917 | 1934 | if(this.controls) |
1918 | 1935 | { |
1919 | 1936 | html_code += '<div id="mv_embedded_controls_'+this.id+'" class="controls">'; |
1920 | | - html_code += this.getControlsHTML(); |
| 1937 | + html_code += this.getControlsHTML(); |
1921 | 1938 | html_code += '</div>'; |
| 1939 | + |
1922 | 1940 | var dlLink = 'javascript:$j(\'#'+this.id+'\').get(0).showVideoDownload();'; |
1923 | 1941 | var source_link = 'javascript:$j(\'#'+this.id+'\').get(0).selectPlaybackMethod();'; |
1924 | 1942 | var close_link = '$j(\'#mv_embedded_options_'+this.id+'\').hide();'; |
— | — | @@ -2033,7 +2051,6 @@ |
2034 | 2052 | js_log("PLAY BUTTON: " + this.play_button); |
2035 | 2053 | if(this.play_button==true) |
2036 | 2054 | thumb_html+=this.getPlayButton(); |
2037 | | -22 |
2038 | 2055 | thumb_html+='</div>'; |
2039 | 2056 | return thumb_html; |
2040 | 2057 | }, |
— | — | @@ -2365,8 +2382,8 @@ |
2366 | 2383 | * the play button calls |
2367 | 2384 | */ |
2368 | 2385 | play : function(){ |
2369 | | - js_log("mv_embed play:"+this.id); |
2370 | | - js_log('thum disp:'+this.thumbnail_disp); |
| 2386 | + js_log("mv_embed play:"+this.id); |
| 2387 | + js_log('thum disp:'+this.thumbnail_disp); |
2371 | 2388 | //check if thumbnail is being displayed and embed html |
2372 | 2389 | if(this.thumbnail_disp){ |
2373 | 2390 | if(!this.selected_player){ |
— | — | @@ -2435,6 +2452,9 @@ |
2436 | 2453 | this.update_interval = null; |
2437 | 2454 | } |
2438 | 2455 | }, |
| 2456 | + fullscreen:function(){ |
| 2457 | + js_log('fullscreen not supported for this plugin type'); |
| 2458 | + }, |
2439 | 2459 | /* returns bool true if playing false if paused or stooped |
2440 | 2460 | */ |
2441 | 2461 | isPlaying : function(){ |
Index: trunk/extensions/MetavidWiki/skins/mv_embed/mv_data_proxy.php |
— | — | @@ -7,8 +7,9 @@ |
8 | 8 | * (so that remote use of mv_embed can load remote xml ) |
9 | 9 | */ |
10 | 10 | |
11 | | -//NOTE THIS IS DISABLED BY DEFAULT simply comment out the line below to enable; |
12 | | -die('note mv_data_proxy is disabled by default, see var mv_data_proxy in mv_embed.js for more info'); |
| 11 | +//NOTE THIS IS DISABLED BY DEFAULT FOR A RESON |
| 12 | +//See var mv_data_proxy in mv_embed.js for more info |
| 13 | +die('note mv_data_proxy is disabled by default'); |
13 | 14 | |
14 | 15 | if(isset($_POST['url'])){ |
15 | 16 | $req_url = $_POST['url']; |
Index: trunk/extensions/MetavidWiki/skins/mv_embed/mv_playlist.js |
— | — | @@ -290,8 +290,7 @@ |
291 | 291 | return ; |
292 | 292 | } |
293 | 293 | $j(this).html('<div id="dc_'+this.id+'" style="border:solid thin;width:'+this.width+'px;' + |
294 | | - 'height:'+this.height+'px;position:relative;"></div>'); |
295 | | - |
| 294 | + 'height:'+this.height+'px;position:relative;"></div>'); |
296 | 295 | |
297 | 296 | var plObj=this; |
298 | 297 | //append all embed details |
— | — | @@ -1449,12 +1448,19 @@ |
1450 | 1449 | var smilPlaylist ={ |
1451 | 1450 | transitions:{}, |
1452 | 1451 | doParse:function(){ |
| 1452 | + var _this = this; |
1453 | 1453 | js_log('do parse smil'+ typeof this.transitions); |
1454 | 1454 | //@@todo get/parse meta: |
1455 | | - |
| 1455 | + var meta_tags = this.data.getElementsByTagName('meta'); |
| 1456 | + $j.each(meta_tags, function(i,meta_elm){ |
| 1457 | + if(meta_elm.hasAttribute('name') && meta_elm.hasAttribute('content')){ |
| 1458 | + if(meta_elm.getAttribute('name')=='title' ){ |
| 1459 | + _this.title = meta_elm.getAttribute('content'); |
| 1460 | + } |
| 1461 | + } |
| 1462 | + }); |
1456 | 1463 | //add transition objects: |
1457 | | - var transition_tags = this.data.getElementsByTagName('transition'); |
1458 | | - var _this = this; |
| 1464 | + var transition_tags = this.data.getElementsByTagName('transition'); |
1459 | 1465 | $j.each(transition_tags, function(i,trans_elm){ |
1460 | 1466 | if(trans_elm.hasAttribute("id")){ |
1461 | 1467 | _this.transitions[trans_elm.getAttribute("id")]= new transitionObj(trans_elm); |
— | — | @@ -1463,7 +1469,6 @@ |
1464 | 1470 | } |
1465 | 1471 | }); |
1466 | 1472 | //add seq (latter we will have support than one) |
1467 | | - var _this_pl = this; |
1468 | 1473 | var seq_tags = this.data.getElementsByTagName('seq'); |
1469 | 1474 | $j.each(seq_tags, function(i,seq_elm){ |
1470 | 1475 | var inx = 0; |
— | — | @@ -1475,8 +1480,8 @@ |
1476 | 1481 | //set up basic mvSMILClip send it the mediaElemnt & mvClip init: |
1477 | 1482 | var cur_clip = new mvSMILClip(mediaElemnt, |
1478 | 1483 | { |
1479 | | - id:'p_' + _this_pl.id + '_c_'+inx, |
1480 | | - pp:_this_pl, |
| 1484 | + id:'p_' + _this.id + '_c_'+inx, |
| 1485 | + pp:_this, |
1481 | 1486 | order:inx |
1482 | 1487 | } |
1483 | 1488 | ); |
— | — | @@ -1484,7 +1489,7 @@ |
1485 | 1490 | //set up embed: |
1486 | 1491 | cur_clip.setUpEmbedObj(); |
1487 | 1492 | //add clip to track: |
1488 | | - _this_pl.addCliptoTrack(cur_clip); |
| 1493 | + _this.addCliptoTrack(cur_clip); |
1489 | 1494 | //valid clip up the order inx: |
1490 | 1495 | inx++; |
1491 | 1496 | } |