h.264 decoder
Transcription
h.264 decoder
H.264/AVC SD Audio Video Encoder / Decoder VOLTplus • Gornji Ribnik • Srbija • www.voltplus.co.rs VOLTplus H.264/AVC SD Audio Video Encoder / Decoder je hardverska platforma koja koristi jedan od novijih načina kodiranja video materijala zasnovanog na H.264/AVC standardu koji uveliko nalazi primenu kako u okvirima zabavne potrošačke elektronike tako i u uređajima namenjenim profesionalnom televizijskom emitovanju video sadržaja visoke definicije (HD video). H.264/MPEG-4 AVC predstavlja standard kompresije pokretnih slika zasnovan na blokovskom modelu kodeka razvijenog od strane ITU-T Video Coding Experts Group (VCEG) u saradnji sa ISO/IEC Moving Picture Experts Group (MPEG). ITU-T H.264 standard i ISO/IEC MPEG-4 AVC standard (ISO/IEC 14496-10 - MPEG-4 Part 10, Advanced Video Coding) predstavljaju sinonime za jedan te isti standard jer u osnovi imaju identičnu tehničku specifikaciju. Kako H.264 video kodek donosi bitna poboljšanja na polju ostvarene kompresije (više nego dvostruko poboljšanje u odnosu na MPEG-2 standard) a imajući u vidu stalni napredak komunikacionih tehnologija i sveprisutnu širokopojasnu mrežnu infrastrukturu, kompanija Volt Plus se odlučila da za distribuciju komprimovanog materijala koristi komutacione paketne mreže tj. IP mrežni protokol. VOLTplus H.264/AVC SD Audio Video Encoder / Decoder Ovaj hardverski uređaj zasnovan je na H.264 koprocesoru koji omogućava kodiranje i dekodiranje videa korišćenjem osnovnog profila H.264 kodeka nivoa 3 tj. podržava rezolucije do veličine slike standardne definicije (SD video). Audio podsistem koristi MPEG-4 Advanced Audio Coding standard tj. AAC-LC dvokanalnu audio kompresiju / dekompresiju sa uzorkovanjem sirovog materijala do brzine od 48kHz. Kompletna platforma je projektovana i realizovana oko Microchipovog PIC-32MX mikrokontrolera koga pokreće operativni sistem zasnovan na linux jezgru a koji je u potpunosti razvijen i prilagođen u kompaniji Volt Plus. H.264/AVC video karakteristike: Osnovni H.264 profil kodeka (nivo 3), enkodiranje i dekodiranje I i P frejmova; Stansardno podržane rezolucije: o 720x480/576 (NTSC/PAL) 640x480 (VGA) o 720x240 (HVR) 640x240 (HVR) o 352x480 (HHR) 320x480 (HHR) o 352x240/288 (SIF/CIF) 320x240 (QVGA) Podržane su i rezolucije definisane od strane korisnika; Puni 30/25 fps, mogućnost izbora brzine osvežavanja od strane korisnika: o 24 | 15 | 10 | 7.5 | Variable fps Frame mod kodiranja (progressive); Field mod kodiranja (interlaced); Podržane brzine od 64 Kbps do 10 Mbps; Konstantni (CBR) i varijabilni (VBR) bitrate; Quarter-Pel Motion procena (4x4 mod); Automatsko odlučivanje o odstupanjima u transferu – Rate-distortion mod; Podešavajići deblokacioni filter; Visokokvalitetni plifazni horizontalni i vertikalni filter; Podešavanje promene veličine slike od strane korisnika (Input/Output); Napredni video pre-procesor sa impulsnom i redukcijom šuma; Simultano enkodiranje i dekodiranje; Dekodiranje dva kanala sa mogućnošću slike u slici i skaliranja; 4x ubrzano reprodukovanje unapred i unazad, usporena reprodukcija; visokokvalitetni digitalni zum; AAC audio karakteristike: Hi-Fi 2-kanalno AAC-LC enkodiranje i dekodiranje; o 22.05 | 24 | 32 | 44.1 | 48 kHz brzina semplovanja Podržane brzine od 8 Kbps do 384 Kbps; VOLTplus H.264/AVC SD Audio Video Encoder / Decoder je uređaj koncipiran tako da bude veoma fleksibilan i primenljiv u raznim situacijama. Hardverski komplet se sastoji iz dva uređaja: VOLTplus H.264/AVC SD Audio Video Encodera i VOLTplus H.264/AVC SD Audio Video Decodera. Na sledećoj ilustraciji prikazana je blok šema funkcionisanja sistema: Funkcionalna blok-šema VOLTplus H.264/AVC SD Audio Video Encodera Funkcionalna blok-šema VOLTplus H.264/AVC SD Audio Video Decodera Kodirani materijal Encoder isporučuje preko ethernet mrežnog interfejsa (IEEE 802.3). IP saobraćaj moguće je distribuirati putem UDP protokola, RTP protokola kao i u obliku transportnog strima kompatibilnog sa DVB-T/S/C standardom (paketna enkapsulacija sa parametrima za H.264 algoritam kompresije). Komunikacija između enkodera i dekodera moguća je putem svih vrsta širokopojasnih (broadband) konekcija koje omogućavaju kvalitetan saobraćaj i stabilnu vezu kako u odlaznom (upload) tako i u dolaznom (download) smeru. Jedna od najinteresantnijih mogućnosti je upotreba veoma pristupačnih Mikrotik Routerboard sistema za realizaciju bežičnih (wireless) linkova čime se, u kombinaciji sa VOLTplus H.264/AVC SD Audio Video Encoder / Decoder uređajima, dobija visokoprofesionalni digitalni audio-video link za najrazličitije namene koje zahtevaju visok kvalitet slike i tona. Primena VOLTplus H.264/AVC SD Audio Video Encoder / Decoder uređaja još je jednostavnija ukoliko se za distribuciju IP saobraćaja koriste zakupljeni vodovi ili mrežna infrastruktura nekog od postojećih internet provajdera. Podatke koje isporučuje enkoder preuzima neki od mrežnih rutera i dalje prosleđuje do odredišne lokacije na kojoj ih prima dekoder i vrši konverziju digitalnog signala u početni AV oblik. Imajući u vidu mogućnosti uređaja polje primene je veoma široko – od namenskih audio-video linkova, sistema za emitovanje video materijala putem interneta do bežičnih distribucionih sistema za krajnje korisnike. Komplet VOLTplus H.264/AVC SD Audio Video Encoder / Decoder uređaja. Uređaj je veoma kompaktnih dimenzija. Isporučuje se u metalnoj kutiji koja može da se pričvrsti za panel nosač namenjen ugradnji u rek ormare. Composite in/out SDI in/out Ulazno/Izlazni konektori Composite: Video I/O o SDI in/out o Y/C in/out o Composite in/out Audio I/O o R/L in/out o SPDIF Ethernet (RJ45) Power TS-OUT (H.264 transport stream) Dimenzije: Box size (142 x 217 x 32mm) 18V DC power brick uključen u pakovanju. transport stream connector 1 +5.0 V 2 +5.0 V 3 +5.0 V 4 +5.0 V 5 not connected 6 not connected 7 not connected 8 not connected 9 GND 10 GND 11 TSCLK 12 PSYM 13 not connected 14 DVAL 15 TS 6 16 TS 7 17 TS 4 18 TS 5 19 TS 2 20 TS 3 21 TS 0 22 TS 1 23 GND 24 GND 25 not connected 26 not connected 27 not connected 28 not connected 29 GND 30 GND 31 not connected 32 not connected 33 not connected 34 not connected TS-OUT (H.264 transport stream) H.264/AVC SD Audio Video Encoder / Decoder poseduje paralelni TS-konektor na kome je prisutan H.264 transport stream 188 bajta. TS-Adapter i RealTime clock H.264/AVC SD Audio Video Encoder / Decoder ima mogicnost insertovanja pogretnog logo-a od maksimalno 100 frejmova kao i sata, zbog ove mogucnosti na TSAdapteru nalazi se i RealTime clok koji radi na sopstvenom napajanju ukoliko uredjaj nije napojen. H.264/AVC SD Audio Video Encoder / Decoder pokreće operativni sistem zasnovan na linux jezgru koji je u potpunosti razvijen i prilagođen u kompaniji Volt Plus. Jezgro sistema i neophodni konfiguracioni fajlovi za podrazumevano podešavanje uređaja nalaze se na CF kartici koja je sastavni deo uređaja. Nakon povezivanja uređaja i dovođenja napajanja automatski se vrši učitavanje operativnog sistema i pokretanje H.264/AVC SD Audio Video Encodera / Decodera prema predefinisanim parametrima. Kako bi našim korisnicima olakšali korišćenje i omogućili da veoma jednostavno iskoriste sve raspoložive mogućnosti uređaja, razvili smo aplikaciju koja vrši sva neophodna setovanja sa nekog od personalnih računara pod Windows operativnim sistemom priključenim na lokalnu mrežu. Aplikacija za PC računar kojom se vrše podešavanja radnih parametara H.264/AVC SD uređaja. Veliki broj raspoloživih opcija za podešavanje radnih parametara H.264/AVC SD uređaja. Za potrebe daljinske administracije uređaja pored navedene PC aplikacije moguće je koristiti i telnet protokol. Preko ovog mrežnog komunikacionog protokola takođe se mogu vršiti sva raspoloživa podešavanja i pokretati svi modovi rada enkodera / dekodera pomoću CLI interfejsa. Osim toga, u ovom režimu rada u svakom trenutku je dostupan i sistem pomoći (help) nalik onom na linux/dos operativnim sistemima. Mogućnosti uređaja se neprekidno nadograđuju i proširuju. Za naprednije korisnike: Podešavanje radnih parametara H.264/AVC SD uređaja putem telnet klijenta. U toku su i završna testiranja podrške za H.264/MPEG-4 ts (transport stream). VOLTplus H.264/AVC SD Audio Video Encoder ima mogućnost da materijal nakon obrade kompresionim kodekom isporuči u formatu kompatibilnim sa kontejnerskim ts standardom koji koriste DVB distribucioni sistemi (DVB-S, DVB-T, DVB-C). Ovakav transportni format moguće je primiti i pogledati nekim od popularnih programa za reprodukciju AV sadržaja na PC platformi (kao što je npr. VLC Player) čime se polje primene VOLTplus H.264/AVC SD uređaja još više proširuje. Kontakt: adresa: Kompanija VOLTplus Gornji Ribnik 37240 Trstenik, Srbija web: http://www.voltplus.co.rs e-mail: [email protected] [email protected] tel: +381 37 731 771 mob: +381 63 660 547 primer konfiguracije enkodera za mod transport strima tsstream -c 239.1.1.1 -port 1200 -rtp -pmpid 100 -vpid 101 -apid 102 -wd -c adresa klienta ili multikast adresa -port port -rtp slanje paketa real time protokolom -pmpit pid po kome se salje program tabela / 0 iskljucuje program tabelu -vpid video pid -apid audio pid -wd aktiviranje Watchdog timer enkoder paralelno salje transport strim na transport strim i eternet konektor primer konfiguracije enkodera za mod qbox strima udpstream -c 239.1.1.1 -port 1200 -b 1400 -wd -c adresa klienta ili multikast adresa -port port -b velicina paketa -fs velicina paketa fiksne velicine -wd aktiviranje Watchdog timer primer konfiguracije dekodera streamplay -s 192.168.0.200 -port 1200 -mcast 239.1.1.1 -port 1200 -i cp0 -wd -s adresa servera -mcast ukoliko postoji iskljucuje adresu servera -port port -i mrezni interfejs -wd aktiviranje Watchdog timer decoder ima mogucnost insertovanja staticnog ili pokretnog znaka kao i sata primer konfiguracije logo -lname logo -frame 100 -speed 25 -x 568 -y 40 -clock -xc 588 -yc 136 -lname naziv loagoa -frame broj slika za prikaz pokretnog znaka (logo00.bmp do logo99.bmp) -speed brzina prikaza znaka u frejmovima -x -y kordinate prikaza znaka -clock aktiviranje prikaza sata -xc -yc kordinate prikaza sata slike iskopirati u direktorijum \logo\ na raspolaganju su vam i dodatne komande kao na primer osdfill 0 0 0 720 480 sa bojom iz palete 0 boji prostor 0,0 i 720,480 osdpalette 15 255 255 255 200 podesava paletu 15 r255 g255 b255 transparentnost 200 osdshow 1 0 0 aktiviranje osd-a od tacke 0,0 palete se generise iz prve slike u nasem slucalu logo00.bmp prikaz sata je u boji iz palete 0 a pozadina iz palete 15 restart brief Reboot the codec usage: restart This command reboots the codec and resubscribes to all events. No state is otherwise preserved. rawcmd brief Send a raw command to the codec specifying opcode and arguments directly. usage: rawcmd <ObjectID> <opcode> [arg0] [arg1] [arg2] [arg3] [arg4] [arg5] The rawcmd command is used to send commands to the host where the opcode and arguments are known, but could not otherwise be specified by other supported commands. No error checking is done on the command whatsoever as it exects the caller to use correct object ID, opcode, and all arguments. It is recommended that this command not be used unless given specific instructions. param ObjectId ID of the target object param Opcode Opcode of the command param arg0 Argument 0 to the command param arg1 Argument 1 to the command param arg2 Argument 2 to the command param arg3 Argument 3 to the command param arg4 Argument 4 to the command param arg5 Argument 5 to the command sleep brief Sleep for a specified number of seconds usage: sleep <time> The sleep command is used to pause execution in the shell. It is typically used for test scripts where an operation is started and let to continue for an amount of time, such as record or playback. param time Number containing of time to sleep specified in seconds system brief Execute a system call in the parent Linux shell usage: system <command> The system command is used to execute a command in the parent Linux shell. Note that the command should be contained within quotes. param command String containing the command to execute echocmd brief Generate an echo event with payload[0] same as argument[0] usage: echocmd <payload> The echo command is used to generate an echo event with a known payload. The command is typically used during bringup to confirm that the interrupt system is working. param payload Number which is sent back in the echo event payload qverbose brief Set the verbosity mode of the codec's serial port usage: qverbose This command is used to set the verbose level of the codec's debug serial port. If the command is used with no arguments then the valid verbose levels are shown. The verbose levels are none, fatal, error, warning, info0, info1, info2, info3, and debug. The info levels produce slightly more information at each step. Note that info3 and debug list every command received and event sent and realtime playback may no longer be possible. param Verbosity String containing verbose level mequery brief Display low-level codec status usage: mequery This command shows low-level codec status. query brief Display encoder and decoder status information usage: query This command is used to display encoder and decoder status information. The data displayed is not synchronized with any particular event and values are sample somewhat arbitrarily from the codec. However, you would expect somewhat stable values such as performance, or increasing values such as frames encoded/decoded play brief Decode and display a file usage: play [/path/to/file] [start time] [pause flag] The play command is used to decode and display a file, which on the Linux file system could be either a true file, or a named pipe connected to a server. param /path/to/file Path to the file to be played param start time The first frame to be displayed should have this time param pause flag Paused at the first display frame bplay brief Decode and display a stored file backward usage: bplay [/path/to/file] [start time] The play command is used to decode and display a file backward param /path/to/file Path to the file to be played param start time The first frame to be displayed should have this time dstop brief Stop the AV decoder usage: dstop This command is used to stop the AV decoder. The display is held at the last decoded frame and is deinterlaced if necessary. dpause brief Pause the decoder at currently displayed frame usage: dpause dresume brief Resume to linear playback from the current trick play state usage: dresume This command is used to transition to linear playback with audio from a trick play state. scan brief Forward scan through the screen at a rate of 2x or 4x, deinterlacing if necessary. usage: scan <rate> param rate Scan rate, either 2 or 4 bscan brief Backward scan through the screen at a rate of 2x or 4x, deinterlacing if necessary. usage: bscan <rate> param rate Scan rate, either 2 or 4 slow brief Play current file in slow motion with speed 1/factor with no audio output. usage: slow <factor> param factor Speed of slow motion bslow brief Backward play current file in slow motion with speed 1/factor with no audio output. usage: bslow <factor> param factor Speed of slow motion s brief Step the AV decoder forward one frame and deinterlace if necessary usage: s bs brief Step the AV decoder backward one frame and deinterlace if necessary usage: bs iplay brief Playback of I-frames only usage: iplay numOfFrameTime The iplay command is used to playback I-frames only. Only the I frame is sent to the decoder. param number of times to display each I frame biplay brief Backward playback of I-frames only usage: biplay numOfFrameTime The biplay command is used to backward playback I-frames only. Only the I frame is sent to the decoder. param number of times to display each I frame ipause brief Pauses the decoder at the next I-frame and deinterlaces as necessary. usage: ipause bipause brief Pauses the decoder at the prev I-frame and deinterlaces as necessary. usage: bipause preview brief Enable preview of video input on video output usage: preview [disable] This command is used to echo the video input to the video output. Note that the echoed video will be after post-processing by the video input and therefore will already be scaled, cropped, and filtered. Note that the phyisical display of the output can be disabled in which case the host can receive capture related events such as preprocessing statistics. The default is to echo the video to the display. param disable Number, either 0 for enable output or 1 to disable output trigger brief Fires the recording trigger and starts outputting frames usage: trigger triggercfg brief Configure recording trigger guardbands usage: triggercfg <minvempty> <minvau> <minaempty> <minaau> This commands configures the audio and video guardbands in the triggered record mode. If these guardbands are violated then the encoder will start releasing older frames even though they are within the specified buffer time. This is either to the record buffer being too small for the specified buffer time or due to bitrate spikes. param minvempty Minimum allowable video buffer emptiness param minvau Minimum allowable video frames param minaempty Minimum allowable audio buffer emptiness param minaau Minimum allowable audio frames triggerrec brief Record a stream to a file when triggered usage: triggerrec </path/to/file> [disable] [delay] The triggerrec command encodes and stores a stream to the path specified in the argument . Additionally, the captured input can be echoed to the display. As in preview, the echoed video has been proprocessed which includes crop, scale, and filtering. The default is to echo the output. param disable Number set to non-zero to disable video echo param delay Number of frames that are recorded prior to the trigger record brief Record a stream to a file usage: record </path/to/file> [disable] The record command encodes and stores a stream to the path specified in the argument. Additionally, the captured input can be echoed to the display. As in preview, the echoed video has been proprocessed which includes crop, scale, and filtering. The default is to echo the output. param disable Number set to non-zero to disable video echo qccrd brief Read codec register usage: qccrd <length> <block> <address> This command reads a codec register param size Register length param block ID Register block ID param address Register address qccwr brief Write codec register usage: qccwr <length> <block> <address> <data> This command writes a codec register param size Register length param block ID Register block ID param address Register address param data Data to be written estop brief Stop the av encoder and flush out remaining bitstream from its memory. usage: estop This command stops the AV encoder from encoding and puts the codec into the FLUSHING state. The remaining bitstream is flushed and the codec will automatically enter the IDLE state. epause brief Pause the av encoder usage: epause This command pauses the AV encoder. Audio and video data continues to be captured with all relevant capture events being sent to the host. The encoder maintains state until it is resumed to the RECORD state. Note that unless there is little or no motion during the time when the encoder is paused it is very likely that a scene change will be detected upon resume. eresume brief Resume encoding from the PAUSE state usage: eresume This command is used to transition the encoder back to the RECORD state from PAUSE. Encoding continues and bitstream events are generated. vencstreamtype brief Sets the encoder stream type usage: vencstreamtype <type> The vencstreamtype command is used to set the media container format of the output streams. The stream types of ves (video elementary stream) and qbox are natively handled by the codec. The mp4 streamype is handled by host code that converts the mp4 file to and from a qbox stream on the fly. Therefore the host code will set the codec in qbox mode for both the qbox and mp4 types. param type Stream type one of ves, qbox, and mp4 vdecstreamtype brief Sets the decoder stream type usage: vdecstreamtype <type> The streamtype command is used to set the media container format of the input streams. The stream types of ves (video elementary stream) and qbox are natively handled by the codec. The mp4 streamype is handled by host code that converts the mp4 file to and from a qbox stream on the fly. Therefore the host code will set the codec in qbox mode for both the qbox and mp4 types. param type Stream type one of ves, qbox, and mp4 streamtype brief Sets the encoder and decoder stream type usage: streamtype <type> The streamtype command is used to set the media container format of the input and output streams. The stream types of ves (video elementary stream) and qbox are natively handled by the codec. The mp4 streamype is handled by host code that converts the mp4 file to and from a qbox stream on the fly. Therefore the host code will set the codec in qbox mode for both the qbox and mp4 types. param type Stream type one of ves, qbox, and mp4 encmode brief Set the encoder mode usage: encode [mode] The encmode command is used to indicate to the encoder if it is operating in a low, medium, or high bitrate situation. Internally it selects a set of encoding tools that are optimized for that situation. If no arguments are given then the list of valid modes is shown. param mode Encoder mode, one of low, medium, and high encperf brief Sets the encoder performance mode usage: encperf [mode] This command controls the performance profile of the encoder. It is specifically used to optimize power vs. quality, as well as indicating if full-duplex operation is expected. If no arguments are given then the list of valid modes is shown. For example, the d1101 mode indicates that it is configured to encode D1 resolution video at 101Mhz operation. param mode Encoder performance mode vinhea brief Set horizontal edge-adaptive noise filter usage: vinhea <level> <thresh0> <thresh1> This command configures the edge adaptive noise filter. There are 5 total filters that are available (representing different cutoff frequencies) and two thresholds which configure edge detection. For a given pixel an edge detector generates an 8 bit number which represents the amount of edge observed. The stronger the edge the more filtering will be applied, the weaker the edge then less filtering will be applied. There are two thresholds that are used for edge detection which represent values that are used to detect gradients. There are two thresholds used, one for adjacent pixels and one for pixels two apart. The edge detector generates two values which are compared against these thresholds and the filter is used accordingly. If a threshold of 255 is chosen then every pixel is considered an edge and no filtering is done. If a threshold of 0 is chosen then no pixel is considered an edge and filtering is done. param level Filter strength (0-4) with 0 weakest, 4 strongest param thresh0 1-pix threshold for edge detection param thresh1 2-pix threshold vindec brief Sets the vertical and horizontal decimation filters in video input usage: vindec <x factor> <y factor> The vindec command sets the horizontal and vertical scalers in the video input block. These scalers are applied to the input video after cropping to the capture rectangle has been performed (which is set by the vrectcap command). If the x or y factor is 16 or smaller then the factor is interpreted as a ratio and the video will be scaled by that factor. For example, if the factor is 4 then the video will be decimated by 4 (and filtered) by 4. Note that if the resulting resolution is not a multiple of 16 then the size will be rounded down to the nearest multiple of 16. If the factor has a value greater than 16 then it is interpreted as a resolution. For example, if the x factor is 320 then the video will be scaled to a width of 320 pixels. Again, if not a multiple of 16 then the size will be rounded down to the nearest multiple of 16. Also note that if the interlace to progressive scaling flag (which is set by the vinintprogscale command) is set then if the input is interlaced and the scaling factor is 2 or larger then the bottom field will be dropped and the resulting field will be scaled appropriately to meet the vertical scaling factor. param Xfactor The horizontal (width) scaling factor param Yfactor The vertical (height) scaling factor voutscale brief Enable or disable scaling on the video output usage: voutscale <s0enable> [s1enable] This command enables or disables scaling of the video output. If scaling is enabled then the input frames to the video display (which come from the echoed video input during record, or the decoder during playback) will be scaled to completely fit the video display rectangle (set using the vrectdisp command). If scaling is disabled then the image will be displayed centered in the display rectangle. param s0enable Set to 1 to enable scaling, 0 to disable for screen 0 param s1enable Set to 1 to enable scaling, 0 to disable for screen 1 progsource brief This command indicates to the encoder if the video input frames are usage: progsource <scan> interlaced scanned or progressive scanned. Note that this is entirely seperate from the physical video input type as you can have progressive video content sent on interlaced interfaces, and vice versa. The primary effect of this command is to indicate in the stream the scan type so the display can be properly deinterlaced during playback. param scan Set to 1 to indicate progressive scan, set to 0 for interlace pvsenc brief Enable reconstructed preview of the encoded video pvsenc This command is used to enable the display of the reconstructed frames during encode. The net result of this feature is that it allows the actual video quality to be previewed while encoding. Note that this is a debug/demo feature only and is not supported for production. Also, 32Mbytes of CODEC memory is required to properly use this feature. param enable Set to 1 to renable reconstructed preview, 0 to disable. vinfieldorder brief Indicates to the encoder if the video is top or bottom field first scan usage: vinfieldorder <order> This command is used to indicate to the encoder if the video source is top or bottom field first (temporally). This setting does not affect the actual encoding process but is used to mark the stream as top or bottom field first for proper display on interlaced displays. param order Set to tff for top field first, set to bff for bottom field first vinar brief Sets the pixel aspect ration of the video input usage: vinar <x aspect> <y aspect> [fixed] This command is used to set the pixel aspect ratio of the input video. The input aspect ratio is marked in the H.264 stream as part of the VUI. If the aspect ratio matches exactly with a standard ratio then the index to this ratio is marked in the sream, otherwise the ratio is explicitly stored. The aspect ratio will be changed in the presence of scaling through the vindec command. However, the aspect ratio can be made fixed through the optional fixed parameter. The default is for fixed aspect to be disabled. param Xaspect Aspect of the pixel width param Yaspect Aspect of the pixel height param fixed Set to 1 if the aspect ratio is fixed, zero otherwise vinintprogscale brief Enable vertical 2x scaling of interlace material by dropping the bottom field usage: vinintprogscale <enable> vencframeticks brief Override duration of each video frame coming from the encoder usage: vencframeticks <ticks> This command sets the minimum frame time of each coded frame output by the encoder. Normally this command is not used except in conjunction with inverse telecine where the desired frame time is based on 24fps instead of 29.97fps. param ticks Number of ticks per output frame vinoutframeticks brief Sets the frame time of each encoded video frame output by the encoder usage: vinoutframeticks <ticks> This command is used to control the resulting frame rate from the video encoder. (Note that it is also possible to reduce the frame rate of the stream at the vieo input). If the number of ticks is different from the number of ticks per input frame (3003 for NTSC, 3600 for PAL) then the encoder will adjust the frame rate by dropping or repeating frames as necessary. Note that the resulting rate can be arbitrary by choosing the appropriate number of ticks per output frame. Note that when the encoder drops or repeats frames to achieve the desired frame rate at its output, it will also adjust the timestamps of the captured frames such that each frame is seperated by the number of ticks specified by this command. param ticks Number of ticks per frame output by the encoder (90Khz clock) vintf brief Configure temporal filter usage: vintf <filter> <luma attenuation> <chroma attenuation> This command configures the video input's noise reducing temporal filter. The filter works by averaging colocated pixels over time with the averaging time constant reduced by the presence of motion. The first parameter is the filter strength with 0 being off, and 3 being strongest. The second and the third constants attenuate the filter's response with 0 being no attenuation and 7 being the highest. param filter Number 0-3 indicating filter strength param lumaattenuation Number 0-7 indicating luma attenuation param chromaattenuation Number 0-7 indicating chroma attenuation vincontrast brief Set video input constrast usage: vincontrast <contrast> This command is used to enhance or reduce the contrast of the video input by setting the gamma correction LUT using the vgammalut command. The contrast is input as percentage where 0 is no change, 20 is 20% increase and -20 is 20% decrease. param contrast Signed number indicating contrast (0 = no change) vgammalut brief Configure the video input gamma table usage: vgammalut <# of entries> <index> <value> [value0] [value1] [value2] [value3] [value4] [value5] This command is used to set up to six of the 8-bit gamma entries in the video input gamma correction block. The table operates as a simple 8-bit to 8-bit lookup table where each entry is programmable. The command can set up to 6 values from index to index+5 param entries Number of gamma entries to be set by this command param index The starting index to be set (0-255) param value0 Value of table at index 0 param value1 Value of table at index 1 param value2 Value of table at index 2 param value3 Value of table at index 3 param value4 Value of table at index 4 param value5 Value of table at index 5 vinhuesat brief Sets the values in the hue/saturation multiplication matrix usage: vinhueset <Ka> <Kb> <Kc> <Kd> This command sets the entries in the 2x2 matrix used by the video input to adjust hue and saturation. Hue and saturation are changed as follows (Cb' - 128) = S*cos(theta)(Cb-128) - S*sin(theta)(Cr-128) (Cr' - 128) = S*sin(theta)(Cb-128) + S*cos(theta)(Cr-128) This is simplified in video input to use coefficients referred to as Ka, Kb, Kc, Kd where (Cb' - 128) = Ka(Cb-128) + Kb(theta)(Cr-128) (Cr' - 128) = Kc(Cb-128) + Kd(Cr-128) The command takes as its arguments the value of S and theta and calculates the Ka, Kb, Kc, and Kd coeffficients. param S Saturation scaling factor in percentage (0 to 199) param theta Hue rotation angle (-180 to 180) voutar brief Set the video output pixel aspect ratio usage: voutar <x aspect> <y aspect> This command sets the aspect ratio of the output display. The video output scaler will use this information to apply the correct scaling of the frames to be displayed (when scaling is enabled). Typical aspect ratios are 8:9 for NTSC and 15:16 for PAL. param Xaspect Aspect of each display pixel (width) param Yaspect Aspect of each display pixel (height) voutframeticks brief Set the frame time of each picture for the video display usage: voutframeticks <ticks> This command sets the display time of each frame for the display. It is typically set to 3003 for NTSC and 3600 for PAL but can be set arbitrarily for other output devices The video display will drop/repeat frames and fields to match the frame rate of the frames to be displayed to the display. param ticks Number of ticks per video frame (90khz clock) voutframecodedpause brief Set the output to use progressive-style display when pausing frame coded pictures usage: voutframecodedpause <enable> This command sets the display to treat frame-coded interlaced frames as if they were progressive frames when paused or stopped, alternating between both fields instead of displaying only one field repeatedly. WARNING: This can result in flicker on higher bitrate or medium motion displays. It should be used with caution for applications which require the maximum display resolution at the cost of some image stability. param enable Display both fields of frame-coded frames in pause/idle voutexternaldeint brief Set the video output to support an external deinterlacer usage: voutexternaldeint <enable> This command sets the video output to display fields in matching pairs rather than individually. Each decoded frame will be displayed one or more times, with the top and bottom fields of the display showing the top and bottom fields of the decoded frame. This can cause flickering if viewed on a normal interlaced display. It is intended for external deinterlacers which will combine each pair of matching fields into one progressive frame. param enable Enable/disable external deinterlacer support vouttopfieldonly brief Set the video output forcibly deinterlace in playback and/or trickplay usage: vouttopfieldonly <slow> <fast> <force all> This command sets the video output to display top fields only during slow and/or fast trick play on interlaced material. This is useful to avoid the appearance of jerky or bouncing content, primarily text, on some sequences that have many sharp edges. Top field only is very useful for slow motion on text. Scan normally results in top field only playback for most content, but this API can ensure top field only playback on extreme content such as very low framerate streams. Top field only can also be forced for all displayed frames. param slow Enable/disable top field only for slow playback param fast Enable/disable top field only for fast playback param force all Enable/disable top field only for all frames vinstandard brief set the video input standard usage: vinstandard <standard> This command allows the video input standard to be set to either NTSC or PAL. This command controls video timing only, not resolution. Resolution is set through the vrectcap command which sets the capture rectangle. param standard Video standard, either ntsc or pal voutstandard brief set the video input standard usage: vinstandard <standard> This command allows the video output standard to be set to either NTSC or PAL. This command controls video timing only, not resolution. Resolution is set through the vrectdisp command which sets the display rectangle. param standard Video standard, either ntsc or pal vinframerate brief Sets the frame time of the video input usage: vinframerate <ticks> This command sets the native number of ticks per frame in the video input. The video input will drop and repeat frames to match this rate and ensure that frames delivered to the encoder are seperated by exactly this number of ticks. This is typically 3003 for NTSC and 3600 for PAL. param ticks Number of ticks per video input frame. vrectcap brief Sets the capture rectangle for the video input usage: vrectcap <width> <height> <x offset] [y offset] This command is used to set the capture rectangle of the video input relative to the start of active video. The width and height of the rectangle, as well as optionally an horizontal and vertical offset can be specified. This rectangle may result in cropping of the video input. param width Width of the capture rectangle param height Height of the capture recangle param Xoffset Horizontal offset of capture rectangle param YOffset Vertical offset of the capture rectangle vrectdisp brief Sets the capture rectangle for the video display usage: vrectdisp <width> <height> [x offset] [y offset] [screen] This command is used to set the display rectangle of the video output relative to the start of active video. The width and height of the rectangle, as well as optionally an horizontal and vertical offset can be specified. When scaling is enabled, it scales the output frames to the dimensions of the display rectangle while respecting the pixel aspect ratios of both. Note that scaling and cropping can be applied to either screen 0 or screen 1 which is useful in PIP applications. param width Width of the display rectangle param height Height of the display recangle param Xoffset Horizontal offset of display rectangle param YOffset Vertical offset of the display rectangle param screen Screen to control voutzoom brief Zoom the video display usage: voutzoom <factor> <x offset> <y offset> This command zooms the video display onto an smaller area of the display with the same aspect ratio. The zoom factor is 1-255 where 255 is no zoom at all and 1 is maximum. param factor Zoom factor out of 255 param Xoffset Horizontal offset of rectangle which is being zoomed param Yoffset Vertical offset of rectangle which is being zoomed vdecframerate brief Set the default display rate during playback usage: vdecframerate <ticks> [override] This command is used to set the default frame time during playback in the case that there is no video timing information present. Typically video timing information is contained in either a media container such as MP4 or QBOX, or in SEI picture timing messages embedded in the AVC stream. Additionally, the timing in the stream can be overridden by this timing. param ticks Default time of each decoded frame param override Set to 1 if stream timing is to be overridden vdecprog brief Set the default scan type of a decoded stream usage: vdecpog <prog> [override] This command is used to set the default scan type (interlace or progressive) for a decoded stream in the case that there are no SEI messages embedded in the stream that indicate the scan type. Additionally, the scan type can be overridden by this command. param prog Flag indicating that stream is progressive if 1, interlace if 0 param override Flag indicating that stream's scan type is to be overridden if set to 1 vdecdisableoutput brief Disable video output from the decoder usage: vdecdisableoutput <enable> This command is used to disable video output from the decoder. Decoding is still done and all events are generated as expected except for display and display related events. param enable Flag set to 1 to disable video output from the decoder vbitrate brief Sets the target bitrate of the video encoder usage: vbitrate <rate> This command sets the target bitrate of the video encoder. The bitrate is set in bits per second. The rate control algorithm uses this input to control the encoding process per video frame. param rate Bitrate in bits per second aenccbr brief Sets CBR mode in the audio encoder usage: aenccbr <0|1> This command enables and disables constant bitrate mode in the audio encoder. abitrate brief Sets the target bitrate of the audio encoder usage: abitrate <rate> This command sets the target bitrate of the audio encoder. The bitrate is set in bits per second. The rate control algorithm uses this input to control the encoding process per audio frame. param rate Bitrate in bits per second vfieldcoding brief Set the picture coding type usage: vfieldcoding <type> This command sets the picture coding type used by the video encoder. The coding type can be either frame, field, or adaptive field/frame (aff). param type Picture coding type (field, frame, aff) vgopsize brief Sets the GOP size usage: vgopsize <size> This command is used to set the GOP size used by the video encoder. A typical GOP size is 15 when used for storage applications of moderate bitrate with reverse trick play. Larger GOP sizes such as 60 or 300 is used in lower bitrate applications with no reverse playback requirements. Additionally, using a GOP size of 1 is an all I-frame stream, a GOP size of 0 is an infinite GOP with only one I-frame at the start. vdeblock brief Set the strength of the deblocking filter usage: vdeblock <enable> <alpha> <beta> This command is used to enable, and set the strength of the deblocking filter. The deblocking filter alpha and beta coefficients can be set from -5 to 5. param enable Set to 1 to enable the filter, 0 to disable param alpha Alpha deblocking filter coefficient -5 to 5 param beta Beta deblocking filter coefficient -5 to 5 vnumslices brief Set the number of slices per frame usage: vnumslices <slices> This command sets the number of slices per video frame. Note that field pictures automatically use at least 2 slices, one per field. At this time, the number of slices must be divisible into the number of macroblock rows in the picture (for example, in NTSC that is 1, 2, 3, 5, 6, 10, 15, 30) param slices Number of slices per picture vseipt brief Enable SEI picture timing messages usage: vseipt <enable> This command is used to enable SEI picture timing messages in the AVC stream. These messages store timestamp information but are known to break some decoders such as Quicktime. param enable Set to 1 to store SEI picture timing messages, 0 to disable vseipanscanrect brief Enable SEI pan scan rect messages usage: vseipanscanrect <enable> This command is used to enable SEI pan scan rect messages in the AVC stream. These messages have default content which sets the pan and scan rectangle to fullscreen. One message is sent with every IDR picture. These messages only need to be enabled for compatibility with decoders which specifically expect pan and scan rect messages to be present in the bitstream. param enable Set to 1 to store SEI pan scan rect messages, 0 to disable vseienccfg brief Enable SEI encoder configuration messages usage: vseienccfg <enable> This command is used to enable SEI encoder configuration messages in the AVC stream. These messages store configuration information. param enable Set to 1 to store SEI picture timing messages, 0 to disable vseircstats brief Enable SEI encoder rate control messages usage: vseircstats <enable> This command is used to enable SEI encoder rate control messages in the AVC stream. These messages store rate control information. param enable Set to 1 to store SEI picture timing messages, 0 to disable vvuitiming brief Enable generation of VUI timing and set the units in tick and fixed frame rate fields usage: vvuitiming <enable> <units> <fixed> This command sets the units in tick and fixed frame rateflags in the VUI timing information param enable Set to 1 to include VUI timing information param ticks Sets number of units in tick param fixed Sets fixed frame rate flag vspslevel brief Sets the SPS Level in the bitstream usage: vspslevel <level> This command forces the SPS level in the AVC bitstream. For example, 21 for 2.1, 30 for 3.0 param level SPS level vspsperidr brief Enable one SPS (sequence) per IDR frame mode usage: vspsperidr <enable> This command forces a new sequence and associated SPS to be generated for every IDR picture. This allows decode from the middle of a stream, without sending a previously cached SPS from the beginning of the stream. param enable Enable one SPS per IDR vaudelimiters brief Enable AU delimiter NALUs for every picture usage: vaudelimiters <enable> This command enables AU delimiter NALUs before every picture. These are marker NALUs generated for convenience before all other NALUs associated with a picture. param enable Enable AU delimiter to mark the NALUs associated with a new picture. vnalubytealign brief Enable byte alignment for NALUs within an AVC stream usage: vnalubytealign [0|2|4] This command enables NALUs within an AVC stream to be aligned on 2 or 4 byte boundaries (set to 0 to disable), within QBoxes or in an elementary stream. Zero padding is used at the end of each NALU to ensure that the start of the next NALU is aligned. param alignment Byte alignment for NALUs (0 to disable). vsc brief Enables scene change detection usage: vsc <enable> <I-slice> This command enables scene change detection. Scene change is also controlled by the vscnewgop command. There are 4 possible configurations for scene change. The configurations are as follows: - nothing - set by vsc 0 - insert I-frame but do not start a new GOP - set by vsc 1 0, vscnewgop 0 - Force P-frame to contain only I-slice - set with vsc 1 1, vscnewgop 0 - insert I-frame and start new GIO - set wth vsc 1 0, vscnewgop 1 param enable Enables scene change detection param Islice Forces scene detection to still send a P picture but force I-slice vscnewgop brief Enables new GOP start on scene change usage: vscnewgop <enable> This command forces the scene change detection algorithm to start a new GOP when a scene change is detected. Scene change is also controlled by the vsc command which can either insert I-frames or I-slices on scene change. The configurations are as follows: - nothing - set by vsc 0 - insert I-frame but do not start a new GOP - set by vsc 1 0, vscnewgop 0 - Force P-frame to contain only I-slice - set with vsc 1 1, vscnewgop 0 - insert I-frame and start new GIO - set wth vsc 1 0, vscnewgop 1 param enable Enables new GOP on scene change vintelecine brief Enables telecine detection in the video input usage: vintelecine <enable> This command enables telecine detection in the video input. No action is taken due to detection being enabled, it merely signals its presence to the encoder. The encoder's actions are configured using the vtelecine command. param enable Enables telecine detection on video input vtelecine brief Set inverse telecine mode usage: vtelecine <enable> <frame drop> This command configures the encoder to perform specific operations on streams which 3:2 pulldown (telecine) has been detected. Note that telecine detection has to be enabled in the video input for the decoder to take action (via the tintelecine command). There are two possible operations the encoder can perform. The first is to code the duplicate field using SKIP macroblocks only. The second is to drop the field. Note that inverse telecine is only supported on streams which have had their bottom field dropped and are being encoded as progressive frames (enabled via vinoutprogscale and vindec with vertical decimation of at least 2). param enable Enables inverse telecine in the encoder param framedrop Forces duplicate fields instead of coded as SKIP vforcegop brief Force the encoder to start a new GOP immediately usage: vforcegop This command forces the encoder to start a new GOP as soon as the command is received. It is typically used in streaming applications where the decoder requests a new GOP due to network packet loss vrcbuffer brief Set buffer-based video rate control parameters usage: vrcbuffer <enable> <buffersize> <channel rate> <initial delay> <low delay mode> <cbr> <max snr> This command enables buffer-based rate control which is suitable for streaming applications. Buffer-based rate control uses a leaky bucket model to control bitrate. The model is parametrized by the target bitrate (set by vbitrate), the buffer size, the channel rate (the drain rate of the bucket), enabling low-delay operation, constant bitrate application, and a maximum SNR. At this time constant bitrate mode is not supported. Low-delay operation is recommended. In low-delay operation, if the buffer model underflows, the encoder will drop frames to catch up. param enable Set to 1 to enable buffer based rate control param buffersize Size of the decoder buffer param channelrate Sustained transfer rate of the transmission channel param initialdelay Initial delay required of decoder to prevent underflow param lowdelay Flag set to 1 to enable low-delay operation param cbr Flag set to 1 to enable CBR operation (only 0 supported) vrcsize brief Sets storage based rate control usage: vrcsize <enable> <deviation> <allowviolation> This command is used to enable size-based rate control. Size-based rate control is used in storage applications where the size of the encoded stream must be managed due to finite available storage. The rate control algorithm attempts to keep the file size to its nominal value (equal to bitrate multiplied by time) plus/minus a specified deviation in bits. Frames are not dropped at any time due to rate control. Typical values for deviation are 1 to 8mbits. param enable Flag set to 1 to enable size-based rate control param deviation Deviation (in bits) from the nominal file size param allowviolation Allows rate control to permanently save/spend bits when the QP is min/max capped vrcafr brief Enable adaptive video frame rate usage: vrcafr <enable> <min qp> <max qp> <max frame rate> <min frame rate> This command enables adaptive frame rate operation in the video encoder. Whereas the normal rate control algorithm reduces quality per picture to hit a target bitrate, adaptive frame rate will instead reduce frame rate to reduce bitrate. The algorithm can be used in conjunction with both storage and buffer based rate control. The algorithm takes a max QP where if the QP were to be raised above this level the encoder will instead reduce frame rate. The encoder will continue to reduce frame rate until it hits a minimum frame rate after which it will start to raise the QP again. The algorithm also takes a min QP value where the encoder will restart raising QP again. Typically the min QP is set to 2 lower than the maximum to implement a type of hystersis and stablize the frame rate. param enable Flag set to 1 to enable adaptive frame rate, 0 to disable param minqp Minimum QP where algorithm starts increasing QP to hit bitrate param maxqp Maximum QP where algorithm starts decreasing frame rate to hit bitrate param maxrate Maximum framerate set by the algorithm param minrate Minimum framerate where the algorithm starts to raise QP vrcqprange brief Set rate control QP range usage: vrcqprange <min qp> <max qp> The rate control can optionally have its quantizer (QP) capped at both a minimum or a maximum value. Normally the rate control will manipulate the quantizer to achieve the target bitrate but if it is capped with either a minimum or a maximum the bitrate will increase or decrease to the point where the allowed deviation will be violated. This feature is typically used in situations where there will be many easy scenes to encode and the user wants to save bits. For instance, the minimum quantizer can be set to a value that produces good quality on easy scenes at a low bitrate. Note that the quantizers selected must be tuned to the target bitrate. param minqp Minimum picture QP to allow the rate control to use param maxqp Maximum picture QP to allow the rate control to use avcalign brief Forces 4-byte alignment of the AVC stream usage: avcalign <enable> This command forces 4-byte alignment of NAL units by stuffing a private SEI message after the slice NALU. param enable Flag to enable AVC NALU alignment llatency brief Enable low-latency operation usage: llatency <enable> This command enables low-latency mode where individual slices are sent to the host instead of a complete frame's worth of data. audioenc brief Selects the audio encoder usage: audioenc <encoder> This command is used to select between the AAC encoder or the MPEG1/2 Layer 2 encoder. param encoder Set the encoder type as aac or qma audiodec brief Selects the audio encoder usage: audiodec <encoder> This command is used to select between the AAC encoder or the MPEG1/2 Layer 2 decoder. param encoder Set the decoder type as aac or mp2 (aka qma) audiooutput brief Set audio output configuration usage: audiooutput <channels> <sample rate> <sample size> This command sets the configuration of the audio output unit, including the number of channels, the sampling rate, and the sample size. param channels Number of channels (2 or 1) param rate Sampling rate (16000, 24000, 32000, 44100, 48000) param size Sample size (only 16 at this time) audioinput brief Set the audio input configuration usage: audioinput <channel routing> This command sets the channel routing of the audio input. The channels can either be mono (left channel), mono (right channel), stereo, or swapped stereo. param routing Set channel routing pipaud brief Select audio source usage: pipaud <source> This command is used to control the active audio source during PIP operation. The source can either be the main window, the pip window, the encoder, the decoder. param source Sets the audio input. Main sets the main screen, pip sets the PIP screen. Options are \"main\", \"pip\", \"enc\", \"dec\", \"none\". pip brief Select automatic or manual main and PIP display sources usage: pip <enable> <main> <pip> This command controls the main and PIP display screens. When enable is 0, the decoder or preview uses the main screen depending on which is running. Full duplex mode thus requires encode without preview. When PIP control is enabled, this API specifies whether the encoder, decoder, or nothing is used as the source for each screen. Main is screen 0 in the video APIs (such as scaling), PIP is screen 1. When nothing is displayed to a screen, the screen is disabled. Only the main stream plays audio. Therefore, full duplex with audio and with decode and preview can be run, but only the main screen will actually play back the audio. pip can be enabled, disabled, or switched in any state. This means that the encoder and decoder can be swapped between main and PIP, switching the audio as well. param enable Enables manual PIP control. Main sets the main screen, pip sets the PIP screen. Options are \"enc\", \"dec\", \"none\". avselect brief Select audio, video, or audio/video encoding usage: avselect <mode> This command controls the encoder's encoding of audio and video. It can be configured to encode video only, audio only, or audio and video. param mode Sets the encoding mode. av for audio/video, v for video-only, a for audio-only prevavselect brief Selects audio/video preview mode usage: prevavselect <mode> This command is used to control the preview mode. When encoding both the video and audio, or video or audio can be echoed. The mode can be av for both audio and video, v for video only, and a for audio only. param mode Preview mode, either av, v, or a inputselect brief Start video and/or audio input units usage: inputselect <mode> This command is used to start the video and audio input units. If there is no input present then the input unit should not be started as the firmware will attempt to synchronize the inputs. The input mode can be av for audio/video, v for video, or a for audio. replay brief Executes commands from a logfile usage: replay <logfile> param logfile Logfile to replay avsynch brief Enable audio/video synchronization usage: avsync <enable> This command is used to enable av synch on playback param enable Flag set to 1 to enable audio/video synch, 0 to disable vinstcoffset brief Set encoder STC offset between audio and video streams usage: vinstcoffset <ticks> This command sets an audio/video offset in the encoder. It is typically used if there is a skew between the input streams to the codec. param ticks STC offset (90Khz clock) voutstcoffset brief Set display STC offset between audio and video streams usage: voutstcoffset <ticks> This command sets an audio/video offset in the display. It is typically used if there is a skew between the input streams to external peripherals. param ticks STC offset (90Khz clock) dirlist brief Lists directories on the target filesystem usage: dirlist <path> This command is used to list directories on the remote target. param path Path to directory to list sub directories filelist brief Lists files on the target filesystem usage: filelist <path> This command is used to list files on the remote target. param path Path to directory to list files osdalpha brief Set OSD display alpha usage: osdfill <enable> [alpha] This command sets the global alpha of the OSD plane. param enable Enables alpha-blending param alpha 0-255 alpha blend with 255 being solid 0 being transparent osdblit brief Blit a bitmap onto OSD display usage: osdbmpblit <name> <x> <y> This commands blits a previously loaded BMP or pixel map onto the OSD display param name Full path of previously loaded BMP param x X coordinate (relative to OSD origin set in osdshow) param y Y coordinate (relative to OSD origin set in osdshow) osdloadbmp brief Download a BMP to codec memory usage: osdloadbmp <path> [nopalette] This command is used to download a BMP to codec memory so that it can be displayed as an OSD. param path Path to the BMP to download param nopalette If set to 1 does not download palette, just pixel data osdloadpixmap brief Download a raw pixel map to codec memory usage: osdloadpixmap <path> <width> <height> This command is used to download a raw pixel map to codec memory param path Path to the pixel map to download param width Width of pixel map param Height of pixel map osdloadresource brief Download binary data to the codec usage: osdloadresource <path> <width> <height> This command is used to download a raw pixel map to codec memory param path Path to the pixel map to download param width Width of pixel map param Height of pixel map osdbmppalette brief Set OSD palette based on a bmp's handle usage: osdpalettefromhandle <name> <alpha> This command sets a palette from a previously loaded bmp (using the osdloadbmp command). param handle Bitmap handle param alpha Alpha value to set osdpalette brief Set OSD palette entry usage: osdpalette <index> <red> <green> <blue> <alpha> This command sets a palette's (0-255) RGBA triplet. param index Palette entry 0 - 255 param red Red component 0 - 255 param green Green component 0 - 255 param blue Blue component 0 - 255 param alpha Alpha component 0 - 255 (0 is transparent) osdgetpalette brief Read OSD palette entry usage: osdgetpalette <index> This command reads a palette's (0-255) RGBA triplet. param index Palette entry 0 - 255 osdfontsize brief Set OSD font size usage: osdsetfontsize [16|24|32] This command sets the global alpha of the OSD plane. param size Specifies the font as either 16x16, 24x24 or 32x32 osdfill brief Fill OSD display memory rectangle with a color usage: osdfill <color> <xtop> <ytop> <xbottom> <ybottom> This command fills a rectangle in the OSD display memory with a specified color. Note that color 255 is predefined to be transparent. param color Color to store in each pixel param xtop Top left x coordinate of rectangle param ytop Top left y coordinate of rectangle param xbottom Bottom right x coordinate of rectangle param ybottom Bottom right y coordinate of rectangle osdsize brief Set the display area of the OSD usage: osdsize <width> <height> This command sets the visible area of the OSD display memory. param width Width of the display area osdshow brief Show/hide OSD usage: osdshow This command is used to enable or disable the OSD plane. A zero argument disables, non-zero enables. The second and third arguments contain the x/y address where the OSD plane should be displayed relative to the display osdtext brief Display string on OSD usage: osdtext <string> <x> <y> This command is used to display a string on the osd. param string the string that will be displayed param x the x location on the screen (multiple of 4) param y the y location on the screen (multiple of 4) vamden brief Enable or disable motion detection usage: vamden <en> This command is used to enable/disable motion detection. param en 1 to enable, 0 to disable. vamdvis brief Enables or diables motion detection visualization usage: vamdvis <enable> This command is used to enable motion detection visualization through OSD. param enable 1 to enable, 0 to disable vamdreset brief Resets all motion detection settings usage: vamdreset This command is used to reset all motion detection settings. This can only be called with global motion detection disabled. vamdroiset brief Set the settings for a region usage: vamdroiset <index> <en> <mot> <sen> <qboost> This command is used to set the settings for a region of interest. <mot> <sen> <qboost> is only needed when <en> equals 1. This can only be called with global motion detection disabled. param index region number [0 - 15]. param en region enable, 1 to enable, 0 to disable. param mot amount of luma difference for a macroblock to be considered in motion [0 - 255]. param sen percentage of macroblocks that need to be in motion for the region to be considered in motion [0 - 10000]. param qboost boost region quality when region is in motion, 1 to enable, 0 to disable. vamdroiadd brief Add a rectangle area to a region usage: vamdroiadd <index> <x> <y> <w> <h> This command is used to add a rectangle to a region of interest. This can only be called with global motion detection disabled. param index region number [0 - 15]. param x x coordinate of top left corner of rectangle. param y y coordinate of top left corner of rectangle. param w width of rectangle. param h height of rectangle. vamdroisub brief Subtract a rectangle area from a region usage: vamdroisub <index> <x> <y> <w> <h> This command is used to subtract a rectangle from a region of interest. This can only be called with global motion detection disabled. param index region number [0 - 15]. param x x coordinate of top left corner of rectangle. param y y coordinate of top left corner of rectangle. param w width of rectangle. param h height of rectangle. trickplaycap brief Get trick play capability of the file usage: trickplaycap <filename> This command is used to get the trick play capability of the file bplay, bscan, bs ... param filename Filename to check trick-play capable fdcap brief Get full-duplex capability of the file usage: fdcap <filename> This command is used to get the full-duplex capability of the file param filename Filename to check full-duplex capable vinstrenable brief Enable a string to be added to the input video usage: vinstrenable <index> <enable> [rollover-high] [x] [y] This command is used to enable the addition of one of the two strings on the video. The strings are addressed through the index 0 or 1 and can be enabled with a value of 1. The rollover-high parameter is the frame count value where the counter wraps back to the start count. The x and y coordinates are the string position on the screen, both of which must be a multiple of 16. param index String index 0 or 1 param enable Enables string display (0=disable, 1=enable) param rollover-high Value where frame number resets (0-100) param x Horizontal position of timestamp string (multiple of 16) param y Vertical position of timestamp string (multiple of 16) vinstrset brief Enable a string to be added to the input video usage: vinstrset <index> <mode> <position> <rollover-low> <string> This command is used to set the string that is added to the input video. There are two strings that can be set, index 0 and index 1. Up to 20 characters can be set per command starting at any string position for a maximum of a 24 character string. That is, a non-zero position argument will change characters in the middle of the string. The strings are double buffered inside the codec allowing the host to update the strings without disturbing the display. There are three update modes. The first mode 0 updates the string but does not change the displayed string. An update mode of 1 forces an immediate update and an update mode of 2 forces an update on the next rollover of the frame counter. Additonally, the event QAVEEVVIDEOBURNINROVER is generated when the string is updated on rollover allowing for the host to generate the string for the next rollover. The rollover-low value is the starting frame number for the counter. Typically this value is always set to 0 but can be set to non-zero to implement drop-frame timecode. param index String index 0 or 1 param mode Update mode 0=Display not updated, 1=Update Display 2=Update Display on rollover param position Position within string to update param rollover-low Start value of counter on next-rollover param string New string to copy into codec's buffered string vinstrcntset brief Set the string position of the frame counter usage: vinstrcntset <index> <enable> <position> This command is used to set the position with the string for the automatically incrementing frame counter. A value of 0 indicates that the first 2 characters will be used for the frame number. param index String index (0-1) of string to update param enable Enables frame counting if set to 1 param position Position within string to place counter vinstrauto brief Enable automatic timestamping of each frame usage: vinstrauto <framerate> <x> <y> This command is used to enable the shell's automatic timestamping of each video frame. The framerate can be specified as either 30, 25 or 29.97 in which case drop-frame timecode is used (where 2 frames are not counted every minute except for minutes divisible by 10). param framerate Enables auto timestamp at frame rate of 30, 25, or 29.97, or 0 to disable param x Horizontal position of timestamp string (multiple of 16) param y Vertical position of timestamp string (multiple of 16) vinstrfontset brief Loads the 2bpp font used for burn in text usage: vinstrfontset <path> This command is used to load the 2 bpp font that is used by the codec for burn in text. param path Path to the font file vdecprebuffer brief prebuffering bitstream during decode usage: vdecprebuffer <nFrames> This command is used to set the initial pre-buffering of the AVC decoder, as measured in video frames. param nFrames Number of frames to prebuffer (minimum 1) before decoding qboxmeta brief Disable generation of QBOX meta data information usage: qboxmeta <enable> This command is used to disable the generation of qbox meta data information. param enable Set to 1 to enable generation of meta data, 0 to disable streamsource brief Set stream source mode usage: streamsource <mode> This command is used to set the stream source to sisc push (blocking) or pull (none-blocking) mode. param mode: siscpush (default) or siscpull (vdecstreamtype qbox only). vlookahead brief Set encoder look ahead usage: vlookahead <frames> param frames: frame times to lookahead dload brief Dynamically load a shared library containing new shell commands usage: dload <path to library> param path: path to .so to load vencmaskadd brief Add a mask rectangle area to a region usage: vencmaskadd <index> <x> <y> <w> <h> This command is used to add a mask rectangle to a region. param index region number [0 - 15]. param x x coordinate of top left corner of rectangle. param y y coordinate of top left corner of rectangle. param w width of rectangle. param h height of rectangle. vencmasksub brief Subtract a mask rectangle area from a region usage: vencmasksub <index> This command is used to subtract a mask rectangle from a region. param index region number [0 - 15]. vencmovealloc brief Allocate a rectangle area to a region usage: vencmovealloc <x1> <y1> <w> <h> <x2> <y2> This command is used to allocate a rectangle to a region. param x1 x1 coordinate of top left corner of rectangle. param y1 y1 coordinate of top left corner of rectangle. param w width of rectangle. param h height of rectangle. param x2 x2 the horizontal address of the destination. param y2 y2 the vertical address of the destination. vencmovedel brief Delete a rectangle area from a region usage: vencmovedel This command is used to delete a rectangle from a region. venczoominset brief specify a rectangle area to a region usage: venczoominset <w> <h> This command is used to specify the width/height of a rectangle to a region. param w width of rectangle. param h height of rectangle.