Hdhomerun Development
Hdhomerun Development
Hdhomerun Development
HDHomeRun Software release 20100213 contains enhancements and improvements used in this guide. The latest HDHomeRun drivers, code, and firmware can e found on the Silicondust we site! http!""www.silicondust.com"downloads
&indows, 'inu(, )ac, *+SD, Solaris. 32% it or ,-% it operating s$stems. +ig%endian and little%endian ./0s. /. or em edded platforms.
Compiling hdhomerun_config
!indo"# (pre-compiled)$
Download and install the HDHomeRun software for &indows. The hdhomerun#config.e(e e(ecuta le can e found in the program director$ % default .!1/rogram 2iles1Silicondust1HDHomeRun.
!indo"# (%S&C'')$
Download and e(tract the li hdhomerun archive. .reate a new empt$ pro3ect and include all the .c and .h files. 2rom the pro3ect properties page under .".44 advanced, change the .ompile 5s t$pe to ., clic6 appl$ and then change it ac6 to .44 %% this is a wor6around for a ug in )S7.44. 0nder the 'in6er input, add &s2#32.li and iphlpapi.li as 5dditional Dependencies. .ompile.
C(g"in)*inu+)%,c)-.SD$
Download and e(tract the li hdhomerun archive. Run 8ma6e8
Using hdhomerun_config
The list of supported commands can e o tained $ running hdhomerun#config without an$ parameters! hdhomerun_config hdhomerun_config hdhomerun_config hdhomerun_config hdhomerun_config hdhomerun_config hdhomerun_config discover <id> get help <id> get <item> <id> set <item> <value> <id> scan <tuner> [<filename>] <id> save <tuner> <filename> <id> upgrade <filename>
C/,nnelm,p$
The channelmap is used to configure the auto%modulation detection and channel scan. This should e configured correctl$ for each tuner. The channelmap configuration is stored in non%volatile memor$ so onl$ needs to e set once. format: format: eg: eg: hdhomerun_config hdhomerun_config hdhomerun_config hdhomerun_config <device id> get /tuner<n>/channelmap <device id> set /tuner<n>/channelmap <channelmap> -------- get /tuner /channelmap -------- set /tuner /channelmap us"'cast
.hannel maps supported $ HDHR%0S hardware! 3,me us-bcast us-cable us- rc us-irc De#cription Digital Antenna (ATSC). Digital Cable - !"C frequency layout. Digital Cable - #"C frequency layout. *oc,tion US, Canada US, Canada US, Canada
.hannel maps supported $ HDHR%?0 hardware! 3,me De#cription *oc,tion Australia Australia $uro%e, Ne& 'ealand $uro%e, Ne& 'ealand Tai&an Tai&an
au-bcast Digital Antenna (Australia). au-cable Digital Cable (Australia). eu-bcast Digital Antenna ($uro%e). eu-cable Digital Cable ($uro%e). t&-bcast t&-cable Digital Antenna (Tai&an). Digital Cable (Tai&an).
C/,nnel #c,n$
To run a channel scan! format: hdhomerun_config <device id> scan /tuner<n> [<log filename>] eg: hdhomerun_config -------- scan /tuner scan #log This command will scan all channels on the selected channelmap plus an$ additional channelmaps associated with the selected channelmap. 5ll standard modulation t$pes for the selected channelmap are tested. &hen a digital channel is found it will identif$ the programs on the channel. The log filename is optional@ if included it will log to the given filename.
Supported modulation t$pes can e =ueried with the get s$s%features command!
hdhomerun_config <id> get /sys/features To stop the tuner set the channel to none! format: hdhomerun_config <id> set /tuner<n>/channel none eg: hdhomerun_config -------- set /tuner /channel none
seq10
ch A channel re=uested loc6 A actual modulation detected ss A signal strength. B0C is appro(imatel$ %12d+m7. sn= A signal to noise =ualit$ D ased on analog signal to noise ratioE. se= A s$m ol error =ualit$ Dnum er of uncorrecta le digital errors detectedE. ps A raw channel its per second. pps A pac6ets per second sent through the networ6.
)ore advanced information can e o tained $ using the get de ug command! format: hdhomerun_config <device id> get /tuner<n>/de'ug eg: hdhomerun_config -------- get /tuner /de'ug ?(ample output! tun: dev: ts: flt: net: ch1qam:22 loc*1qam3/. ss147 snq144 seq10 resync1 overflo,1 'ps1244 530. ut157 te1 miss1 crc1 'ps1244 530. pps1 err1 stop1 d'g133 40".52
?ach line contains a prefi( to indicate the t$pe of data, followed $ the values.
ps A its per second ut A utiliFation percentage D100C is filled to capacit$E te A transport error counter Duncorrecta le reception errorE miss A missed pac6et counter D3ump in se=uence num ersE crc A crc error counter ps A its per second
pps A pac6ets per second err A pac6ets or TS frames dropped efore transmission. stop A reason for stopping the stream
The counters are reset to Fero upon a channel change, ut ma$ indicate a small num er of errors caused efore the tuner loc6s on the channel. 5s a result, diagnostics should e ased on the change in values over time, and not the initial values.
>t ma$ ta6e several seconds after setting the channel for the stream information to e full$ populated Ddepending on how long the channel ta6es to loc6 and how often the stream information is sent $ the roadcaster"ca le providerE.
5iltering 2( 6ID$
The HDHomeRun supports ar itrar$ hardware />D filtering! format: hdhomerun_config <id> set /tuner<n>/filter <filter> eg: hdhomerun_config -------- set /tuner /filter C ! " !0---C hdhomerun_config -------- set /tuner /filter C ! ! 2 " ! &hen filtering $ />D the stream is filtered ut otherwise unmodified. The filter is cleared to pass%all D0(0000%0(1222E when a set channel command is received.
22
!0--<C
S,ving , #tre,m$
The hdhomerun#config command can e used to automate the process of saving to the local files$stem! format: hdhomerun_config <id> save /tuner<n> <filename> eg: hdhomerun_config -------- save /tuner capture#ts &hile saving the stream, a single period 9.< will e displa$ed ever$ second. 5dditionall$, as of the 200B0,0G release, the hdhomerun#config will detect reception and networ6 errors, replacing the 9.< with an alternative character to indicate the pro lem. ?(ample output! ############n###############################n##########ts########## "" Dideo statistics "" 32232 pac*ets recievedE 3 net,or* errorsE 0 transport errorsE 0 sequence errors Advanced: 5 filename of 9null< indicates no file should e created, allowing the use of the save command as a diagnostic tool. Advanced: 9%< ma$ e used as a filename to indicate standard output, allowing the save command to e used as a pipe on supported platforms. eg: hdhomerun_config -------- save /tuner " | vlc "
:/ :/
The target machine must e listening on the given 0D/ port. The HDHomeRun will automaticall$ clear the target if a >.)/ port unreacha le message is received. 5 glo al roadcast D2HH.2HH.2HH.2HHE or su net roadcast can e specified however care must e ta6en to ensure that the roadcast traffic will not cause pro lems with other devices on the networ6. >f the local networ6 is ridged to a wireless networ6 then the 5/ will t$picall$ transmit at a low roadcast speed saturating the wireless networ6.
Select a su %program! hdhomerun_config -------- set /tuner /program 2 Set the target! hdhomerun_config -------- set /tuner /target <ip address of pc>:/
Frequency Offset:
&ith analog T7 the channel fre=uenc$ is t$picall$ e(pressed as the video carrier fre=uenc$. &ith digital T7 the channel fre=uenc$ is t$picall$ e(pressed as the digital center fre=uenc$.
The HDHomeRun hardware uses the digital center fre=uenc$ to tune a channel. 2or 5TS."0S%O5) operation the &indows +D5 s$stem uses the JTS. video carrier fre=uenc$. The HDHomeRun +D5 driver will add 1.PH)HF to the re=uested fre=uenc$ to convert the re=uested fre=uenc$ into the digital center fre=uenc$ needed $ the hardware. 2or D7+T"D7+. operation the &indows +D5 s$stem uses the digital center fre=uenc$. The +D5 driver will pass the re=uested fre=uenc$ directl$ to the hardware.
filter automaticall$. There is a ug in one of the standard &indows +D5 components that prevents this from wor6ing. Windows 7: The &indows +D5 s$stem supports the />D filtering 5/>s and will set the />D filter automaticall$ when using the standard &indows +D5 components. HDHomeRun Setup will auto%detect if the IS has wor6ing uilt in />D filter support and can configure the driver appropriatel$. ).? 200H or &indows P is re=uired to test the uilt in &indows hardware />D filter handling. >t is important to test oth changing to a new fre=uenc$ and changing to a different su %channel on the same fre=uenc$. +uilt in &indows />D handling cannot e used with normal N/ Dnon ).? 200HE or normal 7ista Dnon &).T7/E.
%odul,tion$
0S digital ca le providers mostl$ use O5)2H, modulation, however can also use O5),- and"or B7S+ modulation. The HDHomeRun uses the modulation t$pe set $ the application as a hint, ut alwa$s auto% detects the modulation t$pe. The general%purpose method for detecting if a driver supports auto%modulation detection is to =uer$ the 8>+D5#5utoDemodulate8 interface. >f this interface e(ists, call put#5utoDemodulate. >f this function returns IK then the tuner supports automatic modulation detection.
C/,nnel m,p$
There are three common channel num er to fre=uenc$ ta les used $ 0S ca le providers % .a le, >R., and HR.. The .a le and >R. channel maps are almost identical. &ith the e(ception of channels H and ,, all >R. channels are within 2H6HF of the matching .a le channels Dless than the tuning resolution of a t$pical tunerE. To test all 0S ca le channels an application must test all .a le channels, all HR. channels, and >R. channels H and ,. The HDHomeRun driver can operate in one of four modes! Native: the application is responsi le for setting the fre=uenc$. The HDHomeRun will tune the re=uested fre=uenc$ Dplus 1.PH)HF to convert the re=uested fre=uenc$ from JTS. video carrier fre=uenc$ to digital center fre=uenc$E. AutoU Ca!leMa": used for legac$ applications onl$ support the .a le channel map. The HDHomeRun driver will loo6 up the re=uested fre=uenc$ and compare with the channel configuration recorded $ HDHomeRun Setup. The re=uested fre=uenc$ is converted to a HR. or >R. fre=uenc$ as needed.
AutoU Ca!leMa"#ilte$ed: used for legac$ applications that onl$ support the .a le channel map. The HDHomeRun driver will loo6 up the re=uested fre=uenc$ and compare with the channel configuration recorded $ HDHomeRun Setup. The re=uested fre=uenc$ is converted to a HR. or >R. fre=uenc$ as needed. >f the re=uested fre=uenc$ is 6nown not to contain unencr$pted digital video then the channel will e set to 9none<. This will result in a Fero signal strength and speed up the channel scan process. %e&a"#$e'uenc(: used for legac$ applications that support D7+%T ut not D7+%.. The HDHomeRun driver will loo6 up the re=uested IT5 fre=uenc$ in the lineup file DRemapTrigger fieldE. >f a match is found it will tune the actual fre=uenc$ specified in the lineup file. %e&a"P$og$a&: used for legac$ applications that support 5TS. ut not .learO5). The HDHomeRun driver will loo6 up the re=uested IT5 fre=uenc$ in the lineup file DRemapTrigger fieldE. >f a match is found it will tune the fre=uenc$4program specified in the lineup file. &hen operating in this mode the HDHomeRun will generate the /5T, /)T, and 7.T information needed to wor6 with 5TS. onl$ applications. &hen using this mode onl$ ,B channels can e used as there are ,B IT5 fre=uencies Dchannels 2 to ,GE.
Dri$er configuration:
The user specifies the application the$ intend to use with the HDHomeRun when the run HDHomeRun Setup. This selection sets a num er of registr$ options to ad3ust the driver ehavior to suit the specified application. 2or development the 5pplication can e set to 9Ither! Registr$<. This tells HDHomeRun Setup not to overwrite the registr$ options, thus allowing the options to e set manuall$. 2or production please contact Silicondust to have $our application added to the list of user% selecta le applications in HDHomeRun Setup.
Regi#tr($
The +D5 driver configuration is per tuner, stored in! HK?M#'I.5'#)5.H>J?1SI2T&5R?1Silicondust1HDHomeRun1Tuners1:device id;%:tuner inde(; 7alues are case sensitive. 3,me /odel SourceTy%e &,lid &,lue# 4irm&are model string from t e !D!ome"un ard&are. Used by t e ,DA dri(er to configure de(ice s%ecific features. 5Digital Antenna6, 5Digital Cable6, 5Disabled6. Used by !D!ome"un Setu% to enable source s%ecific features3o%tions. Used by t e ,DA dri(er to select auto-modulation grou% if not s%ecified by t e a%%lication. Name of t e source. S ould be set to 5Digital Antenna6, 5Digital Cable6, or 5Disabled6 unless t ere are multi%le directional antennas or multi%le cable systems. Used by !D!ome"un Setu% to manage c annel lineu%s. Used by Dynamic Tuner Allocation feature to identify interc angeable tuners.
Source
Used by ,DA dri(er to select t e lineu% 7/0 file to use & en a lineu%-a&are o%tion suc as AutoUSCable/a% or "ema% mode is enabled. A%%lication ,DADemodulator ,DA;#D4ilter C annel/a%%ing Name of a%%lication 8no&n to !D!ome"un Setu%, or 5*t er9 "egistry6. Used by !D!ome"un Setu% :U# to store user selection. De%recated - not used by dri(er. 5$nabled6 - enable ard&are ;#D filter su%%ort. 5Disabled6 - disable ard&are ;#D filter su%%ort. 5Nati(e6, 5AutoUSCable/a%6, 5AutoUSCable/a%4iltered6, 5"ema%;rogram6, 5"ema%4requency6 - see c annel ma% section under US digital cable su%%ort.
III.*ineup Server
Silicondust maintains a lineup server to trac6 and identif$ antenna and ca le channels. The main focus is on identif$ing unencr$pted digital ca le channels in the 0S. 2or end%customers the lineup information is availa le from the Silicondust we site! http!""www.silicondust.com"hdhomerun"channels 2or application use the lineup information is availa le via a N)'"HTT/S ased we 5/>. u!)c*annel t$ac+ing: The lineup server trac6s and groups su %channels $ comparing the video content using a real% time video hash. )atching is automatic and is not dependent on the fre=uenc$ or the stream la$out. 7ideo matching allows the lineup server to automaticall$ match and trac6 names from 5TS. channels, DT5%identified channels, /S>/%identified channels, and user%identified channels. The server is currentl$ trac6ing G0,000 unencr$pted ca le su %channels and t$picall$ identifies 100,000 tuner%to%tuner video matches per minute. Enc$("ted vs Unenc$("ted: The lineup server uses >%2rame detection from HDHomeRun devices to detect unencr$pted su % channels. This improves the relia ilit$ of reporting which su %channels are unencr$pted. ,ineu" t$ac+ing: The lineup server automaticall$ identifies and trac6s ca le lineups. ?ach lineup is a collection of ca le head%ends with the identical unencr$pted channels, e(cluding on%demand channels. This information is used to locate the correct lineup for a user re=uest for channel identification. A- C: 5TS. Dover the airE channels are validated against a dictionar$ of latitude"longitude, callsign, transport stream >D, and virtual channel num ers. The output of the dictionar$ is the T)S%st$le callsign for matching guide data. A- C $e!$oadcast on ca!le: The lineup server automaticall$ matches over%the%air su %channels with ca le su %channels $ matching the video content. This allows the 5TS. channel name to e applied to the ca le channel without rel$ing on user feed ac6. 'i6ewise if a ca le provider changes the channel la$out the 5TS.%re roadcast channels are automaticall$ detected and named. Co&cast .-A in/o$&ation: The lineup server processes .omcast DT5 information to aid with channel identification. Su %channels identified via .omcast DT5 information are automaticall$ matched with su % channels on non%DT5 ased headends ased on the video content. Use$ /eed!ac+: The lineup server accepts and processes user feed ac6 for trac6ing channels that cannot e automaticall$ identified using 5TS., DT5, or /S>/ matching. Su %channels are automaticall$ matched etween head ends ased on video content. The user feed ac6 is anal$Fed oth at the local level for the specific head%end and at a wider level for all head%ends that roadcast the specific video feed. e$vice: 2or application use the lineup information is availa le via a N)'"HTT/S ased we 5/>.
The we 5/> is availa le for use with HDHomeRun tuners at no cost. 2or non%HDHomeRun tuners the service is availa le for a nominal cost ased on the num er of users. This helps cover andwidth and operating costs. The we 5/> documentation follows.
7endor! Test string to identif$ the application vendor. 2or e(ample 9Silicondust 0S5<. 5pplication! Te(t string to identif$ the application, version, and platform. 2or e(ample 9HDHomeRun Setup 200G0-1H D&indowsE< .ommand! 9>dentif$/rograms2<. 0ser>D! Llo all$ uni=ue string to identif$ the user"household. T$picall$ this will e the userSs email address or a 3 or - letter a reviation of the product name followed $ the product serial num er Dfor e(ample 92II!123-H,PB<E. >f there are multiple computers in the same household the$ should all return the same 0ser>D. Device>D! Iptional field to specif$ the Device >D of a HDHomeRun if a HDHomeRun is present. 2or e(ample 910100000<. This field can e present multiple times for multiple HDHomeRun devices. 'ocation! Two character >SI countr$ code followed $ the postcode Dcolon separatedE. 2or e(ample 90S!G-0B,<. The >SI countr$ code should e capitaliFed. )odulation! 2or 0S digital ca le the modulation should e one of 9=am2H,<, 9=am,-<, or
2re=uenc$! Digital center fre=uenc$ in HF. 2or e(ample, 0S ca le channel 100 is 9,H1000000<. >f the JTS. video carrier fre=uenc$ is used internall$ $ the D7R application D,-G2H0000 for channel 100E then add 1.PH)HF to get the digital center fre=uenc$. TransportStream>D! 1,% it transport stream >D as detected from the /5T. This ma$ e specified as an integer D91P3<E or in he( D90(005D<E. /rogramJum er! 1,% it program num er from the /5T Dor 7.TE. The values of 0 and ,HH3H are reserved. SeenTimestamp! 0T. time of when the channel"program was detected in 9MMMM%))%DD HH!))!SS< format. 2or a complete channel scan the timestamp for all programs can e set to the time the channel scan was initiated. 5ll detected unencr$pted programs should e sent in the re=uest. The complete set of program information is used to detect the right head%end match.
%es"onse /o$&at: <F!ml version1C0# C encoding1CGA-"4C standalone1CyesCF> <HineupG%+esponse> <Bommand>%dentify$rograms3</Bommand> <$rogram> <(odulation>I(odulationJ</(odulation> <-requency>IBenter frequency >KJ</-requency> <AransportStream%&>IAS%&J</AransportStream%&> <$rogramLum'er>I$rogram num'erJ</$rogramLum'er> [<GuideLame>IGuide nameJ</GuideLame>] [<GuideLum'er>IGuide num'erJ</GuideLum'er>] </$rogram> <$rogram> <(odulation>I(odulationJ</(odulation> <-requency>IBenter frequency >KJ</-requency> <AransportStream%&>IAS%&J</AransportStream%&> <$rogramLum'er>I$rogram num'erJ</$rogramLum'er> [<GuideLame>IGuide nameJ</GuideLame>] [<GuideLum'er>IGuide num'erJ</GuideLum'er>] </$rogram> </HineupG%+esponse>
LuideJame! 0T2%B encoded name of the program Dsu %channelE matching the guide. 2or 0S digital ca le Tri une"Tap2it guide names are provided. This field will e omitted if not 6nown. Special purpose LuideJame results!
LuideJum er! 9n.n< or 9n< format virtual channel num er. 2or 0S digital ca le the virtual channel num ers are unrelia le for matching Q the virtual channel num er should not e used for channel matching e(cept as a fall% ac6 if the returned LuideJame does not e(ist in the guide. This field will e omitted if not 6nown.
.ommand! 9>dentif$2eed ac62<. 0serLuideJame! 0T2%B encoded name of the program Dsu %channelE matching the guide. 0serLuideJum er! 9n.n< or 9n< format guide num er for the program Dsu %channelE. This field can e omitted if not 6nown. 0ser)odified! 0T. time of when the user modified the guide name or the guide num er of program Dsu %channelE in 9MMMM%))%DD HH!))!SS< format. Inl$ names that have een user%modified should e sent using this 5/>.
HTT/S to e used for re=uests. N)' encoding to e 0T2%B. The script or D7R application to identif$ itself in the re=uest including the version. Re=uests to the lineup server to e made from the user"client application, not from a central server. Support for the correction"feed ac6 5/> is re=uired if the application provides a wa$ for the user to edit channel names. +usiness and Technical contact information to e registered with Silicondust.
I&.*i2r,r( 86I
The li hdhomerun li rar$ can e used for direct programmatic control of the HDHomeRun. See 9Scripting % HDHomeRun .onfig< for platform compati ilit$ and information on compiling.
Disco$ery A "
The discover$ 5/> is used to find HDHomeRun units on the networ6 % documented in hdhomerun#discover.h. 2or repetitive ac6ground polling use hdhomerun#discover#createDE and hdhomerun#discover#find#devicesDE. 2or less fre=uent use the hdhomerun#discover#find#devices#customDE 5/> provides discover$ using a single call. Jote! the Discover$ 5/> will return the list of HDHomeRun units on the networ6 ut does not indicate the num er of tuners associated with each HDHomeRun unit. This will e addressed in the future. >f this affects $our application please contact supportUsilicondust.com.
De$ice A "
The Device 5/> is the primar$ 5/> for controlling a HDHomeRun tuner % documented in hdhomerun#device.h.
Cre,te$
.all hdhomerun#device#createDE or hdhomerun#device#create#from#strDE to create a device o 3ect. See hdhomerun#device.h for parameters and usage. T$picall$ a device o 3ect will e created for each tuner to e controlled.
Get)Set$
The get"set 5/>s can e used in a similar wa$ to the get"set commands of hdhomerun#config. See hdhomerun#device.h for the complete list of get"set functions. 2or e(ample, to set a channel call! hdhomerun#device#createDE hdhomerun#device#set#tuner#channelDE hdhomerun#device#set#tuner#programDE Jote! for Let functions that return a string the string is valid until another li hdhomerun 5/> call.
&ideo #tre,m$
Iption 1! li hdhomerun video soc6et support! The device%video 5/> handles the video 0D/ soc6et, target configuration, uffering, se=uence chec6ing, etc. 5fter setting the channel call hdhomerun#device#stream#startDE to create the video 0D/ soc6et and start the video service thread. .all hdhomerun#device#stream#recvDE periodicall$ to receive the video stream.
The hdhomerun#device#stream#start"stopDE 5/>s call hdhomerun#device#set#tuner#targetDE internall$ as needed. Iption 2! e(ternal video soc6et support! 2or applications with e(isting 0D/ or RT/ video support use hdhomerun#device#set#tuner#targetDE to set the target to the listening 0D/ port. &hen streaming is no longer re=uired use the same function to set the target to 9none<.
Re#ource loc0$
The resource loc6 5/> is used to prevent conflicts when there are multiple hosts on the networ6 controlling the same set of tuners. 'ow level! use hdhomerun#device#tuner#loc66e$#re=uestDE to re=uest e(clusive control of the tuner. This function will return success D1E if the re=uest was successful, re3ect D0E if the tuner is in use $ anther host, or error D%1E if a communication error occurs. &hen the tuner loc6 is no longer re=uired use hdhomerun#device#tuner#loc66e$#releaseDE to release the resource loc6. The hdhomerun#device#tuner#loc66e$#forceDE 5/> will cause a resource loc6 to e released regardless of which host owns the loc6. This function should onl$ e called if the user has een presented with a dialog and the user has e(plicitl$ re=uested that the loc6 e overridden. The HDHomeRun will self e(pire the resource loc6 if not streaming and no commands are received in a 30s period. >f the host application crashes without releasing the resource loc6 this timeout will allow the tuner to e used again. The e(ception % if the tuner is streaming video and the host has a firewall that prevents >.)/ port unreacha le messages the tuner will not e informed that the video is no longer eing accepted $ the host. Streaming will continue and the tuner will maintain the loc6. To avoid this situation use the Device Selector 5/> to re=uest the resource loc6. This will auto% detect and release dead loc6s % see Device Selector 5/> section elow. Jote! the detection and automatic release of dead resource loc6s is planned to e moved to hdhomerun#device#tuner#loc66e$#re=uestDE. >f this affects $our application please contact supportUsilicondust.com
Setup$
0se hdhomerun#device#selector#createDE to create the selector o 3ect. 0se hdhomerun#device#selector#add#deviceDE to add a device to the selection pool.
4uner #election$
Start! use hdhomerun#device#selector#choose#and#loc6DE to find and loc6 an availa le tuner. Stop! use hdhomerun#device#tuner#loc66e$#releaseDE to release the loc6 when the tuner is no longer re=uired. .hannel change! there are two options for handling the resource loc6 when changing channel!
1E Release the resource loc6 $ calling hdhomerun#device#tuner#loc66e$#releaseDE, then call hdhomerun#device#selector#choose#and#loc6DE to find and loc6 an availa le tuner. 2E Refresh the e(isting loc6 $ calling hdhomerun#device#tuner#loc66e$#re=uestDE. >f the application still holds the resource loc6 the re=uest function will return success D1E. >f the loc6 has een lost at some point ut the tuner is availa le the re=uest function will reac=uire the loc6 and return success D1E. >f the loc6 as een lost at some point and the tuner is now loc6ed $ another host the re=uest function will return us$ D0E. >n this situation the application should call hdhomerun#device#tuner#loc66e$#releaseDE to release the local loc6 state and call hdhomerun#device#selector#choose#and#loc6DE to find another tuner.
&.%odul,tion t(pe#
84SC
ATSC modulation ATSC auto-modulation Jotes! -(sb auto<t
There is onl$ one modulation t$pe for 5TS. % auto,t is an alias for the Bvs modulation t$pe. The auto,t alias was not present in earl$ firmware versions. 0sing 9Bvs < will avoid an$ issues with older firmware. &hen the modulation is not specified or 9auto< is specified the ehavior depends on the firmware version. Ilder firmware versions will test Bvs , =am2H,, and =am,- DslowerE. Jewer firmware versions choose the modulation ased on the channel map set DfasterE! us-bcast auto<t3-(sb
D&.-4
D.,-T -/!= modulation D.,-T @/!= modulation D.,-T </!= modulation D.,-T -/!= auto-modulation D.,-T @/!= auto-modulation D.,-T </!= auto-modulation Jotes! t-qam<> t-qam?< t-q%s8 t@qam<> t@qam?< t@q%s8 t<qam<> t<qam?< t<q%s8 auto-t auto@t auto<t
The HDHomeRun re=uires the channel andwidth to e specified % if the incorrect channel andwidth is specified the HDHomeRun will not loc6. The current HDHomeRun models do auto%modulation detection when tuning D7+%T regardless of which modulation t$pe is specified Die tB=am,-, tB=am1,, and tB=ps6 are all aliases for autoBtE. The HDHomeRun will report the actual modulation in "tuner:n;"status. There is no performance penalt$ for using auto%modulation. &hen the modulation is not specified or 9auto< is specified the modulation is chosen ased on the channel map! eu-bcast au-bcast t&-bcast auto@t (4ABCC/!=) auto-t (4DEBCC/!=) auto@t auto<t
:S-C,2le
US-cable modulation US-cable auto-modulation Jotes! qamFG< qam<> qam auto<c
The auto,c alias was not present in earl$ firmware versions. 0sing 9=am< for auto%modulation will avoid an$ issues with older firmware. &hen the modulation is not specified or 9auto< is specified the ehavior depends on the firmware
version. Ilder firmware versions will test Bvs , =am2H,, and =am,- DslowerE. Jewer firmware versions choose the modulation ased on the channel map set DfasterE! us-cable us- rc us-irc auto<c3qam
D&.-C
D.,-C -/!= modulation D.,-C @/!= modulation D.,-C </!= modulation D.,-C -/!= auto-modulation D.,-C @/!= auto-modulation D.,-C </!= auto-modulation Jotes! a-qamFG<-HHHH a-qam?F--HHHH a-qam<>-HHHH a@qamFG<-HHHH a@qam?F--HHHH a@qam<>-HHHH a<qamFG<-HHHH a<qam?F--HHHH a<qam<>-HHHH auto-c auto@c auto<c
The s$m ol rate is specified as a -%digit decimal num er % the s$m ols"sec divided $ 1000. 2or e(ample, B)HF O5)2H, at ,,G00,000 s$m ols"second is specified as 9aB=am2H,%,G00<. >f the incorrect channel andwidth is specified the HDHomeRun ma$ loc6, however the signal performance ma$ e impacted. >f the incorrect modulation t$pe or s$m ol rate is specified the HDHomeRun will not loc6. &hen D7+%. auto%modulation is specified the HDHomeRun will attempt to tune following the "s$s"dv c#modulation setting. 0p to three modulation strings can e programmed Dspace separatedE and this information is stored in non%volatile configuration memor$ $ the HDHomeRun. 5uto%modulation will not wor6 until the "s$s"dv c#modulation value has een set $ the user. The autoBc, autoPc, and auto,c modes are identical % the HDHomeRun will attempt to tune using the modulation strings from the "s$s"dv c#modulation setting. The channel andwidth is set ased on the modulation strings found in "s$s"dv c#modulation. &hen the modulation is not specified or 9auto< is specified the modulation is chosen ased on the channel map! eu-cable au-cable t&-cable auto-c3auto@c3auto<c auto-c3auto@c3auto<c auto-c3auto@c3auto<c