The Custom Integrator Show Installment 008 is live.In Installment 007, we covered some of the basics that need to be addressed as part of implementing a reliable and predictable CableCARD-based Windows Media Center deliverable. We also provided some links to the standards as a way to help you familiarize yourself with how the technology works behind the scenes.As mentioned, it is essential to get a grasp on the components that make up the pipeline for you to be able to test and troubleshoot the platform well.
This installment takes us into the next phase of the Digital Cable Tuner (DCT) and CableCARD implementation – the architecture.Microsoft has done a great job of simplifying the pairing and activation process using the TV Signal Setup wizard via the Windows Media Center experience.We assume you are familiar with doing that and have been successful in setting up a CableCARD-based Windows Media Center ecosystem.In this installment, we focus more on the components that influence the operation and handshaking of the DCT and CableCARD in relation to the head-end and what is necessary to understand about the architecture when troubleshooting it if things are not working correctly for some reason.In the next installment, we will start to dive down into some of the specific troubleshooting aspects of dealing with the actual CableCARD implementation for Windows Media Center.
Remember that Windows Vista (and Windows 7) supports CableCARD technologies only when they are used with an approved Windows Media Center PC from an authorized OEM. A DCT with a CableCARD provides a way to encode the premium high definition cable TV content in the same way set-top box does it – only without the need for the set top box. Implementing CableCARDs requires coordination with the cable company and ample time should be allowed when getting the cards and the hardware paired and working.For whatever reason, things always seem to go wrong with this process – whether it is with the cabling plant, the Windows Media Center PC, the Digital Cable Tuners, the CableCARDs, the handshaking with the head end, or with the provider’s ability to support CableCARD.It is important to check all of the subsystems to ensure your clients have the expected experience when they use their Windows Media Center ecosystem for their TV viewing pleasure.
SOME RELEVANT TERMINOLOGY
First, let’s get some of the terms out of the way.This is not a comprehensive list, but it covers most of the acronyms we will use.There is a lot of good content on the Internet regarding these terms and I find it useful for you to investigate them further because you usually end up finding some great resources related to the technologies in general.
Single-Stream Card (S-Card™) –A two-way CableCARD module that follows the original CableCARD 1.0 Interface specification or implements only the single-stream portion of the CableCARD-2.0 Interface specification.
Multi Stream Card (M-Card™) – M-Cards are newer CableCARD modules that implement all of the standard single-stream functionality (for backward compatibility purposes) in addition to the multi-stream functionality of the CableCARD 2.0 Interface specifications.
Terminology also has been developed to help distinguish between the two different operating modes and product types:
S-Mode is the operating mode of the CableCARD’s interface when the original parallel transfer function is being used in single stream mode, which limits the video transfer rate to 40 Mbps in each direction.
M-Mode is the operating mode of the CableCARD’s interface when the newer serial transfer function is being used, regardless of how many transport streams are actually being delivered.It provides up to a 200 Mbps data transfer rate for the video stream.
S-Host is when a CableCARD device operates exclusively in the S-Mode, regardless of how many tuners are available.
M-Host is when a CableCARD device implements the M-Mode variation of the interface.
Right now the Digital Cable Tuners supported by Windows Vista work with both S-Cards and M-Cards, but only operate in the S-Mode.Although S-Cards work with the current release of Windows Media Center, it is recommended that you use M-Cards if the cable provider has them.Be sure to update the firmware on the CableCARD tuners, especially when using M-Cards, since several issues have been resolved with firmware updates.Also make sure that the cable provider has updated the firmware on the CableCARDs themselves.Most M-Cards will update automatically when connected to the cable system.Not all S-Cards will do that.Sometimes it appears that the system is hung when you first plug the CableCARD into the DCT, but it really is updating the firmware over the cable infrastructure.In the next installment, we will tell you where to look to get a better feel for the status of the card at that time.
Virtual Channel Table (VCT) – The Virtual Channel Table is a memory area in the DCT that maps actual Network IDs of the broadcast providers coming in as part of the Transport Stream (TS) to logical channel numbers used by Windows Media Center.It contains information about the video stream (service type, analog or digital) the audio stream (single audio or multiple audio) and/or the data stream.It also reflects the list of what channels are enabled to be viewed by the head end.This is an important consideration when matching up the channels available from within Windows Media Center to those that are part of the client’s subscription package.
NTSC – For the sake of this discussion, these are the analog channels.It is important to note that the digital transition (getting rid of the NTSC channels) in the US for Over the Air (OTA) broadcasts is independent of moving to an all digital cable system.It gets confusing because many cable providers happen to be doing the same thing, but it is not part of the FCC mandate for June.It is important, however, for you to understand which channels are analog and which are digital when working with the CableCARDs because the DCTs actually have two different tuner sections – one for analog and one for digital.We will look at this more as part of the DCT architecture.
QAM (256) – For the sake of this discussion, these are the digital channels.It actually refers to the modulation scheme used by the cable companies to fit the digital channels in what were the analog 6 MHz bands.Most cable companies have either gone all digital (where they map previous analog channels to digital ones) or they are in the process of rolling that out by communities.
CableCARD Authorization –Authenticates a specific CableCARD to tune/decrypt subscribed services and channels.It also pairs the CableCARD to a specific Digital Cable Tuner device enabling playback of copy controlled content.Pairing ties a particular CableCARD to a particular tuner.If a CableCARD is moved to another device, pairing is lost.Restoration of pairing requires the cable company to re-authorize the card.
Copy Control Information (CCI) – The CCI rules dictate if the show can be Copied Freely, Copied No More times, Copied only Once, or Copied Never.These attributes match up to a numeric value of 0x00, 0x01, 0x02. or 0x03 respectfully.
Forward Application Transport (FAT) Tuner –This is the designator for the front-end tuner in an OpenCable system.It is what receives either the digital or the analog signals.This is in comparison to the Out of Band (OOB)/Forward Data Channel (FDC) tuners used for tuning the “handshaking channel” between the DCT and the head-end.
THE ARCHITECTURE
At a high level, this is how the pieces fit together.Although Microsoft now only refers to OCUR devices as Digital Cable Tuners, I left the designator in because the DCT component is certified by CableLabs as a device that meets the OCUR specifications.
If we drill down into the DCT, we find that it consists of two tuner sections.One for the transport stream and one for the Out of Band (OOB) communications used for handshaking with the head-end.This OOB channel is referred to as the Forward Data Channel (FDC) if you are working with Scientific-Atlanta (SA) cards instead of those from Motorola (or NDS, as smaller player in the US market).It, too, has an operating frequency on the cable just like a channel would and we will see that when we start to drill down into the troubleshooting process in future installments.
DCT/CableCARD Operation
1. The Virtual Channel Table (VCT) gets downloaded into the DCT through the separate OOB/FDC tuner.The VCT contains Virtual Channel Numbers (VCNs) that map to the actual frequencies used by the associated channels.
2. The tuner no longer tunes by frequency, but instead passes the VCN to CableCARD to resolve.
3. The CableCARD then determines if service is included in customer’s subscription based upon the additional information provided stored in the VCT.
4. If the channel is subscribed, the CableCARD decryption is enabled for that Transport Stream.
5. Windows Media Digital Rights Management (WMDRM) is applied by the DCT with the appropriate rights for the content to be viewed.It is based on the CCI applied to that channel from Cable head-end.
6. Protected and unprotected video content (along with the associated command and control information) are sent via the DRI UPnP interfaces to PC.Once again, I will refer you to the Digital Receiver Interface (DRI) specifications at www.cablelabs.com/specifications/OC-SP-DRI-I02-060210.pdf.
Hopefully the information we presented in this Installment sheds some light on the inner workings of the DCT, CableCARD, and how that information is passed into the Windows Media Center PC.Now that we have some more of the architecture under our belts, the diagnostic information we will investigate next Installment will make a lot more sense.
{"id":null,"mode":"button","open_style":"in_place","currency_code":"GBP","currency_symbol":"\u00a3","currency_type":"decimal","blank_flag_url":"https:\/\/thedigitallifestyle.com\/w\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/thedigitallifestyle.com\/w\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":500,"top_media_type":"none","featured_image_url":false,"featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Leave a tip","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"TheDigitalLifestyle.com","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"TheDigitalLifestyle.com","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for being a supporter!","payment_confirmation_title":"TheDigitalLifestyle.com","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}