vlc | branch: master | François Revol <[email protected]> | Wed Sep 12 11:40:00 
2012 +0200| [8e60ce57f9be6ccad2248c57f40dc9b364da09e7] | committer: 
Jean-Baptiste Kempf

lua vimeo playlist: Handle VP6 and VP8 codecs

Check which codecs are available instead of asking blindly for h264.

Signed-off-by: François Revol <[email protected]>
Signed-off-by: Jean-Baptiste Kempf <[email protected]>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8e60ce57f9be6ccad2248c57f40dc9b364da09e7
---

 share/lua/playlist/vimeo.lua |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/share/lua/playlist/vimeo.lua b/share/lua/playlist/vimeo.lua
index 367804a..8c98bb6 100644
--- a/share/lua/playlist/vimeo.lua
+++ b/share/lua/playlist/vimeo.lua
@@ -48,6 +48,7 @@ function parse()
         prefres = get_prefres()
                ishd = false
                quality = "sd"
+               codec = nil
         while true do
             line = vlc.readline()
             if not line then break end
@@ -77,6 +78,16 @@ function parse()
             if string.match( line, "{config:.*\"timestamp\":" ) then
                 _,_,tstamp = string.find (line, "\"timestamp\":([0-9]*)," )
             end
+            -- Try to find the available codecs
+            if string.match( line, "{config:.*,\"files\":{\"vp6\":" ) then
+                               codec = "vp6"
+            end
+            if string.match( line, "{config:.*,\"files\":{\"vp8\":" ) then
+                               codec = "vp8"
+            end
+            if string.match( line, "{config:.*,\"files\":{\"h264\":" ) then
+                               codec = "h264"
+            end
             -- Try to find whether video is HD actually
             if string.match( line, "{config:.*,\"hd\":1" ) then
                                ishd = true
@@ -85,11 +96,16 @@ function parse()
                 _,_,height = string.find (line, "\"height\":([0-9]*)," )
             end
         end
+       
+               if not codec then
+                       vlc.msg.warn("unable to find codec info")
+                       return nil
+               end
 
         if ishd and ( not height or prefres < 0 or prefres >= tonumber(height) 
) then
             quality = "hd"
         end
-               path = 
"http://player.vimeo.com/play_redirect?quality="..quality.."&codecs=h264&clip_id="..id.."&time="..tstamp.."&sig="..rsig.."&type=html5_desktop_local";
+               path = 
"http://player.vimeo.com/play_redirect?quality="..quality.."&codecs="..codec.."&clip_id="..id.."&time="..tstamp.."&sig="..rsig.."&type=html5_desktop_local";
         return { { path = path; name = name; arturl = arturl, duration = 
duration } }
     end
     return {}

_______________________________________________
vlc-commits mailing list
[email protected]
http://mailman.videolan.org/listinfo/vlc-commits

Reply via email to