Menu

Code Questions...

2014-11-06
2014-11-07
  • Rick Stuart

    Rick Stuart - 2014-11-06

    steffen,

    I'm still downloading the SDK so am just looking at the raw *js files.
    There are not many comments. Is there a place where you have an
    overview of what each file is doing? Also, I found the code to move
    around in the video:

        case sf.key.REW:
            OSD.showOSD(-3000);
            plugin.JumpBackward(5);
            break;
        case sf.key.FF:
            OSD.showOSD(7000);
            plugin.JumpForward(5);
            break;
    

    But I do not understand where plugin.JumpForward is defined. Is plugin
    part of the Samsung SDK?

    In a real front end the jump forward is (I think) 3 times the size of
    jump backwards. Here you are using 5 & 5. But the OSD values are not
    symmetrical. Is there a reason for this?

    When I use the arrow keys on my Samsung device, I have not seen the OSD
    progress bar move backwards. Could there be many defines for the many
    different types of Samsung remote arrow keys? (I have tried the >>,

    |, <<, |<<, up, down, left & right keys on my remote and none appear
    to reduce the size of the progress bar.)

    -thanks

     
  • steffen

    steffen - 2014-11-06

    Hi Rick,
    thank you. It's great getting some contribution to SMTV. Currently, there is no documentation about the project structure, but I can create one (maybe today).

    Currently SMTV is configured as follows:
    << jumps back 5 seconds
    >> jumps forward 5 seconds
    left key jumps back 30 seconds
    right key jumps forward 60 seconds
    down key jumps back 150 (?) seconds
    up key jumps forward 300 seconds

    showOSD has a parameter that defines when the OSD should disappear relatively to the (old) stream position. Currently it is configured to disappear 2 seconds after skipping.

    Stream position to disappear = jump + 2000ms

     

    Last edit: steffen 2014-11-06
    • Rick Stuart

      Rick Stuart - 2014-11-06

      Hi Steffen,

      Currently SMTV is configured as follows:
      << jumps back 5 seconds

          jumps forward 5 seconds
          left key jumps back 30 seconds
          right key jumps forward 60 seconds
          down key jumps back 150 (?) seconds
          up key jumps forward 300 seconds
      

      Yes, but how does the code know where to jump to? I had though the myth
      data base needed to be asked. I think that the myth recordings are
      variably compressed and jumping a fixed number of "bytes" results in
      inconsistent results.

      showOSD has a parameter that defines when the OSD show disappear
      relative to the (old) stream position. Currently it is configured to
      disappear 2 seconds after skipping.

      Stream position to disappear = jump + 2000ms

      Yes I realize this. But I still do not see the bar-graph of the OSD
      reduce in size no matter which button I press. I will try this again.

      Other question...

      Is this the code to access the myth mysql data base to get the
      information regarding the recording? I am trying to understand how the
      myth mysql data base is accessed from smartmythtv:

      SceneGroups.prototype.getRecording = function() {

           var item = $('#svecListbox_GOUK').sfList('getIndex');
           var fileName = Data.GroupsRecordings[groupid][item].FileName;
           alert("GetRecording returning groupid=" + groupid + " item=" + item
                           + " Filename=" + fileName);
           return Data.GroupsRecordings[groupid][item];
      

      };

      Is this where the URL of the back end is set? I am wondering if it
      should be set from the data base instead when smarthmythtv is used in a
      multiple back end myth network:

                   if (Data.URL == null) {
                           Data.URL = sf.core.localData("serverip");
                   }
      

      -thanks

       
      • steffen

        steffen - 2014-11-06

        Yes, but how does the code know where to jump to? I had though the myth
        data base needed to be asked. I think that the myth recordings are
        variably compressed and jumping a fixed number of "bytes" results in
        inconsistent results.

        SMTV uses the (new) MythTV Service Api:
        https://www.mythtv.org/wiki/Services_API . It uses streaming over HTTP.
        Jumping should work without additional information of the database.

        Yes I realize this. But I still do not see the bar-graph of the OSD
        reduce in size no matter which button I press. I will try this again.

        The bar should be updated by the Samsung (SDK) Video Player when it receives the jump commands.

        Is this the code to access the myth mysql data base to get the
        information regarding the recording? I am trying to understand how the
        myth mysql data base is accessed from smartmythtv:

        SceneGroups.prototype.getRecording = function() {

        var item = $('#svecListbox_GOUK').sfList('getIndex');
        var fileName = Data.GroupsRecordings[groupid][item].FileName;
        alert("GetRecording returning groupid=" + groupid + " item=" + item
                        + " Filename=" + fileName);
        return Data.GroupsRecordings[groupid][item];
        

        };

        It only accesses MythTV by the Service API.

        Is this where the URL of the back end is set? I am wondering if it
        should be set from the data base instead when smarthmythtv is used in a
        multiple back end myth network:

                if (Data.URL == null) {
                        Data.URL = sf.core.localData("serverip");
                }
        

        It's the URL of the Service API for API calls.

         

        Last edit: steffen 2014-11-06
  • B Hurff

    B Hurff - 2014-11-06

    Great info.

    I too started to look at all the code to see if i can figure out this jump issue with my HD videos (recorded via mythbackend and HDHomerun+cablecard). From what I can tell, Player.js is using JumpBackward and JumpForward to actually move through the file. Aren't these Samsung SmartTV Player plugin APIcalls, not Myth API calls?

    I came across this link which seems to be the issue I am seeing.
    http://www.samsungdforum.com/SamsungDForum/ForumView/f0cd8ea6961d50c3?forumID=9d65c502d5a6974a
    From the link:
    "So for example if I am on 1 minute and do jump forward 30 seconds - it actually lands on 2 minutes; the next jump from 2 minutes - on 4 minutes and so on until it reaches the end of file.

    Even more surprisingly - jumps backward in effect produce jumps forward."

    The responder said it is an issue with the content, not the API. That seems odd to me, but it could be a subtle issue/incompatibility with the content coming from the HDHomerun/myth recording methods. I'd try transcoding automatically to see if the transcoded content still does it but my backend is way too slow. May try that with a small sample recording. If i could easily transcode though I'd probably just use Plex's player.

    So long story short, I think it's a TV/content issue, not at all a SMTV issue. I am going to keep looking and attempt to try some debug when I get a chance.

     
    • steffen

      steffen - 2014-11-06

      I too started to look at all the code to see if i can figure out this jump issue with
      my HD videos (recorded via mythbackend and HDHomerun+cablecard). From what I can
      tell, Player.js is using JumpBackward and JumpForward to actually move through the
      file. Aren't these Samsung SmartTV Player plugin APIcalls, not Myth API calls?

      Yes, JumpBackward and JumpForward are Samsung API calls.

      I came across this link which seems to be the issue I am seeing.
      http://www.samsungdforum.com/SamsungDForum/ForumView/f0cd8ea6961d50c3?> forumID=9d65c502d5a6974a

      Does your video content work using DLNA on Samsung TV?

      The responder said it is an issue with the content, not the API. That seems odd to
      me, but it could be a subtle issue/incompatibility with the content coming from the
      HDHomerun/myth recording methods. I'd try transcoding automatically to see if the
      transcoded content still does it but my backend is way too slow. May try that with
      a small sample recording. If i could easily transcode though I'd probably just use
      Plex's player.
      So long story short, I think it's a TV/content issue, not at all a SMTV issue. I am
      going to keep looking and attempt to try some debug when I get a chance.

      Thank you for your effort. Keep us updated.

       
    • steffen

      steffen - 2014-11-06

      I too started to look at all the code to see if i can figure out this jump issue with
      my HD videos (recorded via mythbackend and HDHomerun+cablecard). From what I can
      tell, Player.js is using JumpBackward and JumpForward to actually move through the
      file. Aren't these Samsung SmartTV Player plugin APIcalls, not Myth API calls?

      Yes, JumpBackward and JumpForward are Samsung API calls.

      I came across this link which seems to be the issue I am seeing.
      http://www.samsungdforum.com/SamsungDForum/ForumView/f0cd8ea6961d50c3?> forumID=9d65c502d5a6974a

      Does your video content work using DLNA on Samsung TV?

      The responder said it is an issue with the content, not the API. That seems odd to
      me, but it could be a subtle issue/incompatibility with the content coming from the
      HDHomerun/myth recording methods. I'd try transcoding automatically to see if the
      transcoded content still does it but my backend is way too slow. May try that with
      a small sample recording. If i could easily transcode though I'd probably just use
      Plex's player.
      So long story short, I think it's a TV/content issue, not at all a SMTV issue. I am
      going to keep looking and attempt to try some debug when I get a chance.

      Thank you for your effort. Keep us updated. Btw. are you using the latest firmware on your TV?

       

      Last edit: steffen 2014-11-06
      • B Hurff

        B Hurff - 2014-11-06

        Yup I just updated the software on the TV last night hoping it was just an old library/API issue, but the problem persisted.

        I'll check how the content plays (jump/ff/rew/etc) in the DLNA player tonight.

         
        • B Hurff

          B Hurff - 2014-11-07

          If I go to my Myth server in the Source menu and browse to recordings and play a file this way, the right arrow skips 10 seconds forward. Left skips 10 seconds back. I assume this is the DLNA player?

           
  • steffen

    steffen - 2014-11-06

    SMTV is structured as follow:

    • the menu is located in scences: Recording, Vidoes, Upcoming, Settings

    • scences/Player.js (and the experimental HTML5 version HtmlPlayer.js) are the actual players that use the Samsung API to play MPEG2 and MPEG4 Videos delivered via HTML.

    • ServiceAPIjson.js (and the old XML version ServiceAPI.js) are the interface to access videos and recording listings from MythBackend

    • Data.js stores some configuration and dynamic data

    • OSD.js is the OSD implementation that shows video processing after pressing a key

     
    • B Hurff

      B Hurff - 2014-11-07

      Steffen - how is HtmlPlayer.js used? I am assuming that the Player.js is loading to play my videos. How/when does the HTML variant come into play? Thanks

       

Log in to post a comment.