1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Streambaby - new streaming application

Discussion in 'TiVo Home Media Features & TiVoToGo' started by kearygriffin, Jan 20, 2009.

  1. Feb 10, 2009 #401 of 3415
    kearygriffin

    kearygriffin New Member

    346
    0
    Jan 31, 2008
    I assume you are talking about pyTivo metadata files. I'll have to look at some more pyTivo metadata files. The ones I have (which I think were all actually generated with kmttg) seem to look like this for episodes:

    title : 30 Rock - Retreat to Move Forward
    seriesTitle : 30 Rock
    episodeTitle : Retreat to Move Forward

    So the title seemed to be the appropriate piece of information to use, since it already had all the information in it.
     
  2. Feb 10, 2009 #402 of 3415
    jannlinder

    jannlinder New Member

    106
    0
    Oct 17, 2004
    San Jose, CA
    The spec (http://pytivo.armooo.net/wiki/MetaData) for it says:

    seriesTitle

    Name of series (The Simpsons, Seinfeld, etc.). This should be included if the show is episodic. For movies, you may repeat the name of the movie (The Mummy, Spiderman, etc), leave blank, or omit.

    title

    Title of the series (The Simpsons, Seinfeld, etc.) or title of the movie (The Mummy, Spiderman, etc). Seemingly endless number of characters can be entered, only so many will be shown on the Program screen, but all are shown on the Details screen.

    episodeTitle

    Title of the episode (Pilot, Homer's Night Out, Episode 02, etc.) Should be included for episodic shows. Leave blank or omit for movies.

    So when I see these three similar meta headings I am assuming the only place the episodeTitle goes is episodeTitle

    :) (by the way...do not take any of this personally...I am simply trying to put forward that to be true to the spec for pytivo meta files we need to stick to the wiki and not to what another programmer has done in the past. That is the only way that we can maintain true compatibility)

    J
     
  3. Feb 10, 2009 #403 of 3415
    moyekj

    moyekj Well-Known Member

    11,149
    33
    Jan 23, 2006
    Mission...
    Well, with (an admittedly old version of) pyTivo things don't work out for me with metadata file unless I have the following configuration example (which is why I made kmttg do what it does):
    title : The O'Reilly Factor - Coverage of the DNC
    seriesTitle : The O'Reilly Factor
    episodeTitle : Coverage of the DNC
    With above settings pyTivo gives me following in short description:
    The O'Reilly Factor <--- This in big letters
    "The O'Reilly Factor - Coverage of the DNC" ....

    If however I make the metadata file with the more logical settings:
    title : The O'Reilly Factor
    seriesTitle : The O'Reilly Factor
    episodeTitle : Coverage of the DNC
    Then I get:
    The O'Reilly Factor <--- This in big letters
    "The O'Reilly Factor" .... <--- missing episode description

    Various other combinations I tried either don't give the right name in NPL or don't look right under description and extended description.

    i.e. Only the first case most closely emulates what I see on Tivo which is why I make the metadata file like that in kmttg. Could be more recent versions of pyTivo behave differently, but at the time I added metadata support to kmttg that was the behavior (and still is with the old version of pyTivo I have installed).
     
  4. Feb 10, 2009 #404 of 3415
    jannlinder

    jannlinder New Member

    106
    0
    Oct 17, 2004
    San Jose, CA
    Hmmm

    Cos for me the following happens:

    description : Reba is happy to find out that she and Kyra are closer than ever since Krya moved in with Brock and Barbra Jean. Kyra's behavior is driving Brock and Barbra Jean crazy. Meanwhile, Cheyenne's snoring is causing problems for Van.
    episodeNumber : 302
    episodeTitle : War and Peace
    isEpisode : true
    originalAirDate : 2003-09-19T00:00:01Z
    seriesId : SH71550
    seriesTitle : Reba
    showingBits : 2
    title : Reba
    vWriter : Matt Berry

    WIKI WAY:
    Reba <-- big Letters
    "War and Peace" (2003) Reba is happy to find out that she and Kyra are closer than ever since Krya moved in with Brock and Barbra Jean. Kyra's behavior is driving Brock and Barbra Jean crazy. Meanwhile, Cheyenne's snoring is causing problems for Van. <-- small letters

    KMTTG WAY:
    Reba <-- big Letters
    "Reba" (2003) Reba is happy to find out that she and Kyra are closer than ever since Krya moved in with Brock and Barbra Jean. Kyra's behavior is driving Brock and Barbra Jean crazy. Meanwhile, Cheyenne's snoring is causing problems for Van. <-- small letters



    Oh well...

    Maybe an option in the ini file as follows:


    use.kmttg.meta.parsing=true/false

    if true, then it parses the title as it currently does -- and is compatible with the older PyTivo
    if false, then it follows the PyTivo Wiki description for the fields (and the new PyTivo and PyTivoX) and is standard as far as the wiki is concerned.


    PyTivoX would have to, of course, set this to false to be compatible with the way it currently displays information so as to make it's own non-streaming descriptions the same as the StreamBaby descriptions...

    My goal is to make both PyTivoX and StreamBaby (since it is now included) display meta info the same way. It is odd, after all, to view the same show 2 different ways and get 2 different displays of data.

    Spouse.Test=false

    :)

    J
     
  5. Feb 10, 2009 #405 of 3415
    Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    Unfortunately I have seen isEpisode set to true for movies as well. Tivo metadata is such entirely black magic it's a pain in the butt to deal with. May I suggest divorcing the wife instead? I suspect that would pass the spouse test more easily...
     
  6. Feb 10, 2009 #406 of 3415
    moyekj

    moyekj Well-Known Member

    11,149
    33
    Jan 23, 2006
    Mission...
    Sounds like newer branches of pyTivo have fixed the issue and behave the expected way. I'm not sure which particular branch of pyTivo is used by pyTivoX or if it really matters? For my installation I see I have this version that was installed using Windows installer: "pyTivo 2008.05.02". That version behaves the way I describe. I'll have to try a more recent version to confirm the fix.

    EDIT: I just updated to following version: wgw-2008.10.15-RC1
    I can confirm it now behaves as expected so no need to include episodeTitle content in title.
     
  7. Feb 10, 2009 #407 of 3415
    Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    Not sure if it really matters (I'm not using metadata so I'm not really contributing much here) but pyTivoX is using the latest git version of pyTivo-wgw (generally re-pulled with every build).
     
  8. Feb 10, 2009 #408 of 3415
    jannlinder

    jannlinder New Member

    106
    0
    Oct 17, 2004
    San Jose, CA
    Yes, but as programmers aren't we *supposed* to code for the standard and then put options (if we wish) to handle the misbehaving applications?

    husband...and yes, he would *love* a divorce as then he could have a simpler life and not worry about how I want to set up the electronics and computer controlled lights and garage door opener sensors (grin).

    All I am really saying is that if we code for misbehaving or misunderstood applications in order to make them work we are gonna have other programmers say 'Well, since StreamBaby does it that way, we should too". PyTivo handles this condition correctly. Why shouldn't StreamBaby?

    J
     
  9. Feb 10, 2009 #409 of 3415
    jannlinder

    jannlinder New Member

    106
    0
    Oct 17, 2004
    San Jose, CA

    Please define "as expected". If the wiki needs to be changed, lets change it ...

    I wrote my own app that pulls data from thetvdb.com and builds my own .txt metadata files for PyTivo. I would LOVE to know what the "official" explanation of title is. If it is supposed to be "display title" then it needs to morph depending on whether or not it is a tv show or movie, etc. I can fix my app to work correctly, however, as it stands my displays in b14 and b15 (as well as the current release version of pyTivoX), are all displaying correct information insofar as the Wiki is concerned -- so this means to me that pyTivoX is using a version of pyTivo that follows the Wiki for the definition of title (meaning use episodeName in both the selection screen and place episodeName in quotes below seriesTitle on the description page of the Tivo.)

    :)
     
  10. Feb 10, 2009 #410 of 3415
    Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    I'm all for making things work. don't get me wrong. But the reason pyTivo handles it 'correctly' is because pyTivo just passes all the data back to the tivo, and the tivo does what it always does with the data (all those variable names were not made up by pyTivo.. They are the original variables that tivo stores as its metadata with every show it records). Streambaby is actually trying to parse the data and handle all the interesting / undocumented situations... and I'm just warning that it's not as simple as it sounds... -- Tivo hasn't actually published a document detailing the metadata and what it means (afaik). We've just been playing a guessing game that we mostly have right.
     
  11. Feb 10, 2009 #411 of 3415
    moyekj

    moyekj Well-Known Member

    11,149
    33
    Jan 23, 2006
    Mission...
    My definition of expected is that when viewing program details & extended details on the Tivo it should mimic as closely as possible how non-transferred programs look on Tivo. I think the recent pyTivo implementations and the wiki are now in sync so I don't see a reason to update it other than perhaps clarify what each field actually does. As Yoav stated though there is no official Tivo document on any of this metadata stuff so current implementations are a best guess at what the different fields do and future Tivo software updates can easily change the behavior without warning.
     
  12. Feb 10, 2009 #412 of 3415
    windracer

    windracer joined the 10k club

    11,580
    3
    Jan 3, 2003
    St. Pete, FL
    Love the new metadata feature in 0.22!

    Unrelated: I have a small (8mb) mp4 file that crashes streambaby when I select it from the menu (to go to the details screen) or press Play on it. The error in the log is:

    Code:
    INFO   | jvm 1    | 2009/02/10 19:25:02 | SEVERE: Plausibility check failed: offset + size > file size (size = 50435192). Stop parsing!
    ffmpeg reports the file as:

    Code:
    FFmpeg version SVN-r17019, Copyright (c) 2000-2009 Fabrice Bellard, et al.
      configuration: --prefix=/usr --enable-gpl --enable-postproc --enable-libvorbis --enable-libtheora --disable-debug --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-pthreads --enable-libx264 --disable-ffplay --disable-ffserver --enable-libxvid --enable-shared
      libavutil     49.14. 0 / 49.14. 0
      libavcodec    52.13. 0 / 52.13. 0
      libavformat   52.25. 0 / 52.25. 0
      libavdevice   52. 1. 0 / 52. 1. 0
      libpostproc   51. 2. 0 / 51. 2. 0
      built on Feb  6 2009 08:58:52, gcc: 4.3.2
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'testing.mp4':
      Duration: 00:02:25.52, start: 0.000000, bitrate: 495 kb/s
        Stream #0.0(eng): Video: h264, yuv420p, 512x384, 25.00 tb(r)
        Stream #0.1(eng): Audio: aac, 44100 Hz, stereo, s16
    Any ideas? At first I thought it was because there was no corresponding metadata file for this video in the .meta directory, but I have tested that on other videos on my NAS and they all work as expected.
     
  13. Feb 10, 2009 #413 of 3415
    moyekj

    moyekj Well-Known Member

    11,149
    33
    Jan 23, 2006
    Mission...
    P.S. In case you missed it Keary released closed captioned capability in 0.22beta. So if you have file.xxx and an accompanying T2Sami file.srt file then by default captions will be enabled and displayed. You can toggle captions on/off using "Aspect" button. It works surprisingly well if the T2Sami file is generated properly.
     
  14. Feb 10, 2009 #414 of 3415
    kearygriffin

    kearygriffin New Member

    346
    0
    Jan 31, 2008
    Is there anything after that in the log? That's definitely an error, and streambaby won't be able to parse the metadata from the that file, but I am not sure why it would crash (from looking at the code it should handle it OK, but of course I don't have an easy way to test). What exactly are the symptoms of the crash? (hanging, exiting program, etc...)
     
  15. Feb 10, 2009 #415 of 3415
    kearygriffin

    kearygriffin New Member

    346
    0
    Jan 31, 2008
    I haven't updated SVN yet, but I added the following logic for pyTivo metadata files, as far as displaying them in the selection screen. For the actual display of what I call the "info" on the playscreen and while playing it is determined by the XSL template, which I am hoping someone who knows XSLT better than me can make work. (Either that or I'll need to implement an alternative to XSLT which I can work in easier)

    IF isEpisodic and we have a seriesTitle and we have an episodeTitle
    -- Use "seriesTitle - episodeTitle"
    else if we have a title:
    -- use title:
    else if we have a seriesTitle:
    -- use seriesTitle:
    else if we have episodeTitle
    -- use episodeTitle

    Hopefully that should work for most situations.
     
  16. Feb 10, 2009 #416 of 3415
    windracer

    windracer joined the 10k club

    11,580
    3
    Jan 3, 2003
    St. Pete, FL
    I should clarify: the streambaby app keeps running, but I get the 0x50006 error ("the application closed during a read").

    I'm starting to see this on more files now ... even ones with metadata. Hmmm.
     
  17. Feb 10, 2009 #417 of 3415
    reneg

    reneg Member

    699
    0
    Jun 19, 2002
    Finally got around to trying this app out, so I loaded version .22 and am seeing an error when I select a video on the Tivo. I get 0x50006 error ("the application closed during a read"). I have Windows XP with SP3. I made sure I had Java 1.6 installed. Will play around with it some more to see if I can get it running.

    Code:
    Initializing...
    02/10/09 20:24:42 Listener: added factory
    02/10/09 20:24:42 Main: streambaby ready & listening.
    02/10/09 20:25:46 Listener: 192.168.1.92 icon.png HTTP GET - to factory /streamb
    aby/
    log after close : initContext version=47
    02/10/09 20:25:57 Factory: HME receiver connected
    StreamBabyStream[#1,uri=null] warning: resource 2057 not found.
    StreamBabyStream[#1,uri=null] warning: resource 2057 not found.
    #
    # An unexpected error has been detected by Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77c4709c, pid=452, tid=1760
    #
    # Java VM: Java HotSpot(TM) Client VM (11.0-b16 mixed mode, sharing windows-x86)
    
    # Problematic frame:
    # C  [msvcrt.dll+0x3709c]
    #
    # An error report file with more information is saved as:
    # C:\temp\streambaby-0.22beta\native\hs_err_pid452.log
    #
    # If you would like to submit a bug report, please visit:
    #   http://java.sun.com/webapps/bugreport/crash.jsp
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    #
    Exited.
    Press any key to continue . . .
    Partial data from the log file:
    Code:
    #
    # An unexpected error has been detected by Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77c4709c, pid=452, tid=1760
    #
    # Java VM: Java HotSpot(TM) Client VM (11.0-b16 mixed mode, sharing windows-x86)
    # Problematic frame:
    # C  [msvcrt.dll+0x3709c]
    #
    # If you would like to submit a bug report, please visit:
    #   http://java.sun.com/webapps/bugreport/crash.jsp
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    #
    
    ---------------  T H R E A D  ---------------
    
    Current thread (0x02c54400):  JavaThread "Acceptor" [_thread_in_native, id=1760, stack(0x03330000,0x03380000)]
    
    siginfo: ExceptionCode=0xc0000005, reading address 0x0319cf00
    
    Registers:
    EAX=0x0319cf04, EBX=0x26a5eaf8, ECX=0x00000001, EDX=0x00000000
    ESP=0x0337f380, EBP=0x0337f388, ESI=0x0319cf00, EDI=0x0337f45c
    EIP=0x77c4709c, EFLAGS=0x00010297
    
    Top of Stack: (sp=0x0337f380)
    0x0337f380:   26a5eaf8 02c54400 0337f468 10005376
    0x0337f390:   0337f45c 0319cf00 00000004 02c54400
    0x0337f3a0:   00a12ec5 0000009c 00000000 00000000
    0x0337f3b0:   17d61c78 0337f3b4 2a9d1394 0337f3e4
    0x0337f3c0:   2b1f3a18 02c54400 16a85078 0337f43c
    0x0337f3d0:   02c54400 6d8f07e8 0337fcfc 6d9b1d02
    0x0337f3e0:   02c54400 00000006 00000004 02c54400
    0x0337f3f0:   2a9d0ab8 0337f43c 2b1f3ed0 00a19cf1 
    
    Instructions: (pc=0x77c4709c)
    0x77c4708c:   8b 44 8e f4 89 44 8f f4 8b 44 8e f8 89 44 8f f8
    0x77c4709c:   8b 44 8e fc 89 44 8f fc 8d 04 8d 00 00 00 00 03 
    
    
    Stack: [0x03330000,0x03380000],  sp=0x0337f380,  free space=316k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C  [msvcrt.dll+0x3709c]
    C  [jna371831539367682850.tmp+0x5376]
    j  com.sun.jna.Pointer._getPointer(J)Lcom/sun/jna/Pointer;+0
    j  com.sun.jna.Pointer.getPointer(J)Lcom/sun/jna/Pointer;+6
    j  com.sun.jna.Structure.readValue(ILjava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;+566
    j  com.sun.jna.Structure.readField(Lcom/sun/jna/Structure$StructField;)Ljava/lang/Object;+164
    j  com.sun.jna.Structure.read()V+79
    j  com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+311
    j  com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+344
    j  $Proxy0.av_close_input_file(Lnet/sf/ffmpeg_java/v52a/AVFormatLibrary$AVFormatContext;)V+16
    j  com.unwiredappeal.tivo.vm.ffjava.FFmpegJavaVideoModule.fillVideoInformation(Ljava/net/URI;Lcom/unwiredappeal/mediastreams/VideoInformation;)Z+1015
    j  com.unwiredappeal.tivo.modules.VideoModuleHelper.fillVideoInformation(Ljava/net/URI;Lcom/unwiredappeal/mediastreams/VideoInformation;)Z+67
    j  com.unwiredappeal.mediastreams.VideoInformation.<init>(Ljava/net/URI;)V+123
    j  com.unwiredappeal.mediastreams.VideoInformation.getVideoInformation(Ljava/net/URI;)Lcom/unwiredappeal/mediastreams/VideoInformation;+72
    j  com.unwiredappeal.tivo.dir.DirEntry.getVideoInformation()Lcom/unwiredappeal/mediastreams/VideoInformation;+12
    j  com.unwiredappeal.tivo.dir.DirEntry.getMetadata(Lcom/unwiredappeal/tivo/metadata/MetaData;)Z+41
    j  com.unwiredappeal.tivo.streambaby.PlayScreen.<init>(Lcom/tivo/hme/bananas/BApplicationPlus;Lcom/unwiredappeal/tivo/dir/DirEntry;)V+61
    j  com.unwiredappeal.tivo.streambaby.SelectionScreen.moveRight()V+82
    j  com.unwiredappeal.tivo.streambaby.SelectionScreen.handleKeyPress(IJ)Z+122
    j  com.tivo.hme.sdk.HmeObject.handleEvent(Lcom/tivo/hme/sdk/HmeEvent;)Z+69
    j  com.tivo.hme.bananas.BView.handleEvent(Lcom/tivo/hme/sdk/HmeEvent;)Z+74
    j  com.tivo.hme.bananas.BScreen.handleEvent(Lcom/tivo/hme/sdk/HmeEvent;)Z+57
    j  com.tivo.hme.sdk.View.postEvent(Lcom/tivo/hme/sdk/HmeEvent;)V+2
    j  com.tivo.hme.sdk.View.postEvent(Lcom/tivo/hme/sdk/HmeEvent;)V+20
    j  com.tivo.hme.sdk.View.postEvent(Lcom/tivo/hme/sdk/HmeEvent;)V+20
    j  com.tivo.hme.sdk.View.postEvent(Lcom/tivo/hme/sdk/HmeEvent;)V+20
    j  com.tivo.hme.bananas.BApplication.dispatchKeyEvent(Lcom/tivo/hme/sdk/HmeEvent$Key;)V+52
    j  com.tivo.hme.bananas.BApplication.dispatchEvent(Lcom/tivo/hme/sdk/HmeEvent;)V+29
    j  com.tivo.hme.bananas.BApplicationPlus.handleChunk(Ljava/io/InputStream;)Z+412
    j  com.unwiredappeal.tivo.streambaby.host.Listener.readEvents(Lcom/tivo/hme/interfaces/IApplication;Ljava/io/InputStream;)V+33
    j  com.unwiredappeal.tivo.streambaby.host.Listener.handleHME(Lcom/tivo/hme/host/http/server/HttpRequest;Lcom/tivo/hme/interfaces/IFactory;)V+498
    j  com.unwiredappeal.tivo.streambaby.host.Listener.handle(Lcom/tivo/hme/host/http/server/HttpRequest;)V+221
    j  com.tivo.hme.host.http.server.HttpConnection.run()V+259
    j  java.lang.Thread.run()V+11
    v  ~StubRoutines::call_stub
    
     
  18. Feb 10, 2009 #418 of 3415
    Sicklybutsexy

    Sicklybutsexy New Member

    179
    0
    May 5, 2007
    will try it out. thanks.
     
  19. Feb 10, 2009 #419 of 3415
    moyekj

    moyekj Well-Known Member

    11,149
    33
    Jan 23, 2006
    Mission...
    If you don't have any luck getting 0.22beta perhaps try 0.20beta for now to see if that gets you any further.
     
  20. Feb 10, 2009 #420 of 3415
    reneg

    reneg Member

    699
    0
    Jun 19, 2002
    Same error with .20beta as .22beta.

    So I went and changed com.unwiredappeal=Warn to com.unwiredappeal=Verbose in the simplelog.properties file and now it works under both .20beta and .22beta. Go figure.

    Limping along for now. Very impressed with what I've seen so far.
     

Share This Page