[Bug] TV: missing audio stream in records (Sky) (2 Viewers)

FreakyJ

Retired Team Member
  • Premium Supporter
  • July 25, 2010
    4,024
    1,420
    Home Country
    Germany Germany
    @mm1352000
    I had a talk with Norbert and here is our conversation (translation follows below) and I censored our Names ;)
    Also I should say "best regrads" from Norbert, too!

    [11:08:44] FreakyJ: Hi Norbert
    [11:08:56] FreakyJ: wir glauben einen kleinen Fehler in eurem Treiber gefunden zu haben.
    [11:08:58] Norbert: Moin
    [11:09:08] FreakyJ: Ersteinmal soll ich dir liebe Grüße von mm sagen!
    [11:09:58] FreakyJ: Es handelt sich darum, dass wenn man in Sky einen Sender aufnimmt und während der Prerecording zeit nur eine Tonspur verfügbar war, der Film aber mehr als eine Tonspur hat die anderen Tonspuren verschlüsselt bleiben
    [11:10:12] FreakyJ: Hier die Nachricht von mm, welche mehr technische Details enthält:
    [11:10:19] FreakyJ: ello Norbert, Manfred

    Recently a bug that affects Digital Devices hardware was reported on our forums. It relates to handling of dynamic PMT changes for encrypted channels.

    When I say "dynamic PMT changes" I mean: changes to the number or type of video, audio, subtitles or teletext streams, some time after a channel has been tuned.

    When TV Server detects a PMT change, it asks the CI/CAM to decrypt the channel again. For Digital Devices, we use the KSPROPERTY_DD_DECRYPT_PROGRAM property. It seems that the current Digital Devices driver ignores this request, maybe because it thinks that the CI/CAM is already decrypting the channel. The effect is that any new streams remain encrypted.

    Could you please investigate. Please don't hesitate to ask if you have any questions.

    Best regards,
    [11:12:50] Norbert: danke, grüße Zurück
    [11:12:57] FreakyJ: werde ich ausrichten
    [11:13:03] FreakyJ: könnt ihr damit was anfangen?
    [11:13:24] Norbert: das ist kein Bug, sondern eine Einschränkung, die bei MTD nicht anders geht
    [11:13:35] Norbert: bei single Transponder Mode geht es
    [11:14:46] Norbert: ich weiß das Sky gerne mal nachträglich Audiospuren dazu schaltet, nur wir müssen ja eonen neuen Transponder mischen und die Elementray Streams zusamen bauen, die beim Tunen bekannt sind,
    [11:15:20] Norbert: das ist nicht anderes realiesierbar bei MTD
    [11:16:06] FreakyJ: Wenn du das sagst, wird es wohl so sein :) Ich habe mit euren CIs keinerlei Erfahrung^^ Wie wechselt man ziwschen Single Transponder Mode unt MTD?
    [11:16:08] FreakyJ: *und
    [12:00:58] Norbert: wenn man das CI im Config Tool nur einem Tuner zuweist, ist es single Transponder, das heißt, der gesammte Transponderwird über das CI geschickt
    [12:01:50] Norbert: wenn man mehr als einen Tuner dem CI zuweist ist automatisch MTD eingestellt, heißt aus den gewählten TV Programmen wird ein neuer Transponder gemischt und dem CI gescickt.
    [12:27:03] FreakyJ: Danke dir ;)
    [12:27:27] FreakyJ: Ist es okay, wenn ich die Konversation bei uns im Forum + englische Übersetzung für mm poste?
    [12:27:45] Norbert: klar
    [12:27:52] FreakyJ: danke dir ;)
    [12:28:01] FreakyJ: Falls mm noch fragen hat, dann schreibe ich dir einfach nochmal^^
    [12:28:54] Norbert: das Thema hatte ich schon, deswegen konnte ich das sofort beantworten, weil ich das schon mit dem Entwickler diskutiert hatte
    [12:29:11] FreakyJ: hehe, ich war auch überrascht, dass die Antwort so promt kam .D
    [12:29:12] FreakyJ: :D
    Translation:
    [11:08:44] FreakyJ: Hi Norbert
    [11:08:56] FreakyJ: we think that we maybe found a bug in your drivers
    [11:08:58] Norbert: Moin
    [11:09:08] FreakyJ: But first of all kind regards from mm
    [11:09:58] FreakyJ: The problem is that if you record a program in which is only one audio stream during the pre recording time and more than audio stream later in the recording the new added audio streams stay encrypted
    [11:10:12] FreakyJ: Here is the message from mm, with the technical details:
    [11:10:19] FreakyJ: Hello Norbert, Manfred

    Recently a bug that affects Digital Devices hardware was reported on our forums. It relates to handling of dynamic PMT changes for encrypted channels.

    When I say "dynamic PMT changes" I mean: changes to the number or type of video, audio, subtitles or teletext streams, some time after a channel has been tuned.

    When TV Server detects a PMT change, it asks the CI/CAM to decrypt the channel again. For Digital Devices, we use the KSPROPERTY_DD_DECRYPT_PROGRAM property. It seems that the current Digital Devices driver ignores this request, maybe because it thinks that the CI/CAM is already decrypting the channel. The effect is that any new streams remain encrypted.

    Could you please investigate. Please don't hesitate to ask if you have any questions.

    Best regards,
    [11:12:50] Norbert: thanks, kind greetings back
    [11:12:57] FreakyJ: I will tell him
    [11:13:03] FreakyJ: Is that helpful for you?
    [11:13:24] Norbert: This is no bug Bug, but a limitation which is present while using MTD. It is not possible to do it doifferent with MTD
    [11:13:35] Norbert: in single Transponder Mode it is working
    [11:14:46] Norbert: I know that Sky sometimes adds audio tracks later, but we have to mix a new transponder and build the Elementary streams together which are known at the time of tuning.
    [11:15:20] Norbert: There is no way to do it differently with MTD
    [11:16:06] FreakyJ: If you say so this will be the truth :) I don't have any experience with your CIs^^ How do you switch between single Transponder mode and MTD?
    [11:16:08] FreakyJ: *und (correction not relevant for translation)
    [12:00:58] Norbert: You can switch between these two modes if you add the CI in the config tool only to one tuner. That means that the whole transponder gets send to the CI
    [12:01:50] Norbert: If you add more than one tuner to the CI you automatically have MTD, that means we mix a new transponder from the selected programs and send it to the CI
    [12:27:03] FreakyJ: thank you ;)
    [12:27:27] FreakyJ: Is it okay if I post our conversation in our forum + eng translation?
    [12:27:45] Norbert: sure
    [12:27:52] FreakyJ: thank you ;)
    [12:28:01] FreakyJ: In cas mm has any further question I will write you again^^
    [12:28:54] Norbert: I already had this topic that's the reason why I could answer this so fast. I already discussed that with our Devs
    [12:29:11] FreakyJ: hehe, I was surprised that the answer came so fast .D
    [12:29:12] FreakyJ: :D

    Like I wrote above: If you have any additional questions/inputs please let me know. I will take care of it ;)
     

    Vasilich

    Portal Pro
    August 30, 2009
    3,394
    1,170
    Germany, Mayence
    Home Country
    Russian Federation Russian Federation
    i would rather say it is the way how MTD works: it can either ignore new PMTs or it need to break complete muxed stream and rebuild it. Second approach means that ALL currently decrypring streams will be stopped and then restarted again. That is why DD decided to ignore new PMTs (my guess)
    btw, @mm1352000 what do you do in that patch to get it updated with new PMTs?
     

    mm1352000

    Retired Team Member
  • Premium Supporter
  • September 1, 2008
    21,577
    8,224
    Home Country
    New Zealand New Zealand
    So if understood this right, its a kind of hardware limitation?!
    No, I don't think so. IMO it is a limitation of their driver architecture or code.

    i would rather say it is the way how MTD works: it can either ignore new PMTs or it need to break complete muxed stream and rebuild it. Second approach means that ALL currently decrypring streams will be stopped and then restarted again. That is why DD decided to ignore new PMTs (my guess)
    That is possible. @Brette or @HTPC_Sourcer could test this by recording another encrypted channel at the same time as the Sky Cinema recording and see what happens to the second recording when the Sky Cinema recording starts, changes and stops. The second recording should be scheduled to start before and finish after the Sky Cinema recording to see the full effects.

    But having said that...
    @FreakyJ: please thank Norbert for his comments and send the following response.

    I understand that it is not possible (or not easy) to automatically handle dynamic PMT changes. That is okay. I do not expect you to do that. What I expect is that when we send KSPROPERTY_DD_DECRYPT_PROGRAM to the DD driver that it would not ignore the request.
    The test sequence is this:
    1. Tune channel.
    2. Send KSPROPERTY_DD_DECRYPT_PROGRAM.
    3. [Time passes]
    4. Channel streams (PMT) changes.
    5. Send KSPROPERTY_DD_DECRYPT_PROGRAM again.
    6. Decryption does not change.
    The problem is that the driver is not reacting at step 5, which leads to the result at step 6. What I would expect the driver to do at step 5 is to rebuild the TS that is sent to the CAM. I don't understand why that is not possible. I know it may affect other tuners, and this is a condition I am willing to accept... though if the driver is smart it should be able to minimise the disruption by only adding or removing the new streams rather than completely reconstructing the TS. At the minimum I would expect that the request would not be ignored.

    btw, @mm1352000 what do you do in that patch to get it updated with new PMTs?
    I send a fake decrypt request, like this:
    1. Tune channel.
    2. Send KSPROPERTY_DD_DECRYPT_PROGRAM X.
    3. [Time passes]
    4. Channel streams (PMT) changes.
    5. Send KSPROPERTY_DD_DECRYPT_PROGRAM Y.
    6. Send KSPROPERTY_DD_DECRYPT_PROGRAM X.
    7. Decryption changes.
    The code looks like this:
    Code:
      int hr;
      if (_prevServiceId > 0 && _prevServiceId == serviceId)
      {
        _prevServiceId = 1;
        if (_prevServiceId == serviceId)
        {
          _prevServiceId++;
        }
        Log.Log.Debug("Digital Devices: service ID {0} same as previous, setting fake service ID {1}", serviceId, _prevServiceId);
        Marshal.WriteInt32(pSid, _prevServiceId);
        hr = pControl.KsProperty(ref KsProperty, Marshal.SizeOf(KsProperty), pSid, paramSize, ref dwReturned);
        Log.Log.Debug("Digital Devices: result = 0x{0:x}", hr);
      }
      Marshal.WriteInt32(pSid, serviceId);
      hr = pControl.KsProperty(ref KsProperty, Marshal.SizeOf(KsProperty), pSid, paramSize, ref dwReturned);
      Log.Log.Debug(FormatMessage(String.Format("--> Setting service id {0} for decrypting returned {1}", serviceId, hr)));
      _prevServiceId = serviceId;
      return (hr == 0);

    This feels like a really bad hack... :(
     

    radical

    Portal Pro
    December 16, 2010
    1,466
    191
    Home Country
    Germany Germany
    To the people who have recorded 'Killing them softly' on sunday evening.
    Do the first german AC3 audio stream had 2.0 channels or 5.1 channels?
     

    FreakyJ

    Retired Team Member
  • Premium Supporter
  • July 25, 2010
    4,024
    1,420
    Home Country
    Germany Germany
    To the people who have recorded 'Killing them softly' on sunday evening.
    Do the first german AC3 audio stream had 2.0 channels or 5.1 channels?
    That's what Mediainfo says:
    Allgemein
    ID : 4 (0x4)
    Vollständiger Name : O:\tmp\Killing Them Softly - Sky Cinema - 2014-01-05.TSSplit.4-16.ts
    Format : MPEG-TS
    Dateigröße : 100 MiB
    Dauer : 5min 54s
    Modus der Gesamtbitrate : variabel
    Gesamte Bitrate : 2 363 Kbps

    Video
    ID : 48 (0x30)
    Menü-ID : 137 (0x89)
    Format : MPEG Video
    Format-Version : Version 2
    Format-Profil : Main@Main
    Format-Einstellungen für BVOP : Ja
    Format-Einstellungen für Matrix : ausgewählt
    Format_Settings_GOP : M=3, N=12
    Codec-ID : 2
    Dauer : 5min 54s
    Bitraten-Modus : variabel
    Bitrate : 2 052 Kbps
    maximale Bitrate : 15,0 Mbps
    Breite : 720 Pixel
    Höhe : 576 Pixel
    Bildseitenverhältnis : 16:9
    ActiveFormatDescription/String : Full frame 16:9 image
    Bildwiederholungsrate : 25,000 FPS
    Standard : PAL
    ColorSpace : YUV
    ChromaSubsampling : 4:2:0
    BitDepth/String : 8 bits
    Scantyp : Interlaced
    Scanreihenfolge : oberes Feld zuerst
    Bits/(Pixel*Frame) : 0.198
    Stream-Größe : 86,7 MiB (87%)

    Audio
    ID : 64 (0x40)
    Menü-ID : 137 (0x89)
    Format : MPEG Audio
    Format-Version : Version 1
    Format-Profil : Layer 2
    Codec-ID : 3
    Dauer : 5min 54s
    Bitraten-Modus : konstant
    Bitrate : 192 Kbps
    Kanäle : 2 Kanäle
    Samplingrate : 48,0 KHz
    Video Verzögerung : -368ms
    Stream-Größe : 8,12 MiB (8%)
    Sprache : Deutsch
    Sprache, nähere Info : Clean effects

    Text
    ID : 99 (0x63)-100
    Menü-ID : 137 (0x89)
    Format : Teletext
    Sprache : Deutsch
    Edit: It is from an 100MB part of the main movie
     

    radical

    Portal Pro
    December 16, 2010
    1,466
    191
    Home Country
    Germany Germany
    Thanks FreakyJ, had forgotten to say recording from the Sky Cinema HD.

    Code:
    Allgemein
    UniqueID/String  : 234619561156365703537825570468066453938 (0xB082157657851EE86A74AD401D4B69B2)
    CompleteName  : F:\Spielfilme\1080i\Killing Them Softly - (2012) - [tt1764234]\Killing Them Softly - (2012) - [tt1764234].mkv
    Format  : Matroska
    Format_Version  : Version 2
    FileSize/String  : 3,18 GiB
    Duration/String  : 1h 33min
    OverallBitRate/String  : 4 876 Kbps
    Encoded_Application  : Lavf52.64.2
    Encoded_Library/String  : Lavf52.64.2
    
    Video
    ID/String  : 1
    Format  : AVC
    Format/Info  : Advanced Video Codec
    Format_Profile  : High@L4.0
    Format_Settings_CABAC/String  : Ja
    Format_Settings_RefFrames/String : 3 frames
    CodecID  : V_MPEG4/ISO/AVC
    Duration/String  : 1h 33min
    BitRate/String  : 4 395 Kbps
    Width/String  : 1 920 Pixel
    Height/String  : 1 080 Pixel
    DisplayAspectRatio/String  : 16:9
    FrameRate_Mode/String  : konstant
    FrameRate/String  : 25,000 FPS
    Standard  : Component
    ColorSpace  : YUV
    ChromaSubsampling  : 4:2:0
    BitDepth/String  : 8 bits
    ScanType/String  : Interlaced
    ScanOrder/String  : oberes Feld zuerst
    Bits-(Pixel*Frame)  : 0.085
    StreamSize/String  : 2,86 GiB (90%)
    Default/String  : Ja
    Forced/String  : Nein
    colour_primaries  : BT.709
    transfer_characteristics  : BT.709
    matrix_coefficients  : BT.709
    
    Audio
    ID/String  : 2
    Format  : AC-3
    Format/Info  : Audio Coding 3
    Format_Settings_ModeExtension  : CM (complete main)
    Format_Settings_Endianness  : Big
    CodecID  : A_AC3
    Duration/String  : 1h 33min
    BitRate_Mode/String  : konstant
    BitRate/String  : 384 Kbps
    Channel(s)/String  : 2 Kanäle
    ChannelPositions  : Front: L R
    SamplingRate/String  : 48,0 KHz
    BitDepth/String  : 16 bits
    Video_Delay/String  : -40ms
    StreamSize/String  : 256 MiB (8%)
    Language/String  : Deutsch
    Default/String  : Ja
    Forced/String  : Nein

    As I can see, you got only mpeg audio stream left in your example.
     

    FreakyJ

    Retired Team Member
  • Premium Supporter
  • July 25, 2010
    4,024
    1,420
    Home Country
    Germany Germany
    yes, I was using the non HD version and I hadn't the patch installed^^ So the two channels are encrypted and mediainfo can't detect them^^
     

    Users who are viewing this thread

    Top Bottom