# Latvian translation of gst-plugins-bad
# This file is put in the public domain.
#
# Arvis Lācis <arvis.lacis@inbox.lv>, 2009.
# Rihards Priedītis <rprieditis@gmail.com>, 2011.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-03-15 11:41+0200\n"
"PO-Revision-Date: 2014-04-20 15:52+0300\n"
"Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Latvian\n"
"X-Poedit-Country: LATVIA\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
"X-Generator: Lokalize 1.5\n"

msgid "format wasn't negotiated before get function"
msgstr ""

msgid "OpenCV failed to load template image"
msgstr ""

msgid "Could not read title information for DVD."
msgstr "Nevarēja nolasīt virsrakstu informāciju no DVD."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Neizdevās atvērt DVD ierīci “%s”."

msgid "Failed to set PGC based seeking."
msgstr "Neizdevās iestatīt uz PGC balstīto meklēšanu."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Nevarēja nolasīt DVD. Iespējams, ka DVD ir šifrēts un DVD atšifrēšanas "
"bibliotēka nav uzinstalēta."

msgid "Could not read DVD."
msgstr "Nevarēja nolasīt DVD."

msgid "This file contains no playable streams."
msgstr "Šī datne nesatur atskaņojamas straumes."

#, fuzzy
msgid "Could not open sndfile stream for reading."
msgstr "Nevarēja atvērt datni “%s” lasīšanai."

msgid "Could not establish connection to sndio"
msgstr "Nevarēja izveidot savienojumu ar sndio"

msgid "Failed to query sndio capabilities"
msgstr "Neizdevās apvaicāt sndio iespējas"

msgid "Could not configure sndio"
msgstr "Nevarēja konfigurēt sndio"

msgid "Could not start sndio"
msgstr "Nevarēja palaist sndio"

msgid "Internal data flow error."
msgstr "Iekšēja datu plūsmas kļūda."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""
"Izveidotajai datnei ir lielāks pirms-atskaņojuma laiks, kā straumes garums"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Trūkst elementa “%s” — pārbaudiet savu GStreamer instalāciju."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""
"Datnes vieta ir iestatīta uz NULL, lūdzu, iestatiet derīgu datnes nosaukumu"

msgid "Digitalzoom element couldn't be created"
msgstr ""

msgid "Subpicture format was not configured before data flow"
msgstr "Apakšattēla formāts netika konfigurēts pirms datu plūsmas"

msgid "Failed to get fragment URL."
msgstr "Neizdevās saņemt fragmenta URL."

msgid "Internal data stream error."
msgstr "Iekšējās datu plūsmas kļūda."

msgid "Couldn't download fragments"
msgstr "Nevarēja lejupielādēt fragmentus"

msgid "No file name specified for writing."
msgstr "Ierakstīšanai nav norādīts neviens datnes nosaukums."

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""
"Doto datnes nosaukumu “%s” nevar pārveidot uz lokālo datnes nosaukuma "
"kodējumu."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Nav iespējams atvērt datni “%s” ierakstīšanai."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Ierīce “%s” neeksistē."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Nevarēja atvērt priekšējo ierīci “%s”."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Nevarēja saņemt iestatījumus no priekšējās ierīces “%s”."

#, fuzzy, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Nevarēja saņemt iestatījumus no priekšējās ierīces “%s”."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Nevarēja atvērt datni “%s” lasīšanai."

msgid "Couldn't find DVB channel configuration file"
msgstr "Nevarēja atrast DVB kanāla konfigurācijas datni"

#, c-format
msgid "Couldn't load DVB channel configuration file: %s"
msgstr "Nevarēja ielādēt DVB kanāla konfigurācijas datni: %s"

msgid "DVB channel configuration file doesn't contain any channels"
msgstr "DVB kanāla konfigurācijas datne nesatur nevienu kanālu"

#, c-format
msgid "Couldn't find details for DVB channel %s"
msgstr "Nevarēja atrast sīkāku informāciju par DVB kanālu %s"

#~ msgid "Couldn't get the Manifest's URI"
#~ msgstr "Nevarēja saņemt manifesta URI"

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Nevarēja ierakstīt datnē “%s”."

#~ msgid "Internal clock error."
#~ msgstr "Iekšējā pulksteņa kļūda."

#~ msgid "Could not open audio device for mixer control handling."
#~ msgstr "Nav iespējams atvērt audio ierīci jaucēja kontroles vadīšanai."

#~ msgid ""
#~ "Could not open audio device for mixer control handling. This version of "
#~ "the Open Sound System is not supported by this element."
#~ msgstr ""
#~ "Nav iespējams atvērt audio ierīci jaucēja kontroles vadīšanai. Šis "
#~ "elements neatbalsta šo Open Sound System versiju."

#~ msgid "Volume"
#~ msgstr "Skaļums"

#~ msgid "Master"
#~ msgstr "Galvenais"

#~ msgid "Front"
#~ msgstr "Priekšpuse"

#~ msgid "Rear"
#~ msgstr "Aizmugure"

#~ msgid "Headphones"
#~ msgstr "Austiņas"

#~ msgid "Center"
#~ msgstr "Centrāls"

#~ msgid "LFE"
#~ msgstr "LFE"

#~ msgid "Surround"
#~ msgstr "Ieskaujošs"

#~ msgid "Side"
#~ msgstr "Puse"

#~ msgid "Built-in Speaker"
#~ msgstr "Iebūvētais skaļrunis"

#~ msgid "AUX 1 Out"
#~ msgstr "AUX 1 izeja"

#~ msgid "AUX 2 Out"
#~ msgstr "AUX 2 izeja"

#~ msgid "AUX Out"
#~ msgstr "AUX izeja"

#~ msgid "Bass"
#~ msgstr "Basi"

#~ msgid "Treble"
#~ msgstr "Diskants"

#~ msgid "3D Depth"
#~ msgstr "3D dziļums"

#~ msgid "3D Center"
#~ msgstr "3D centrēts"

#~ msgid "3D Enhance"
#~ msgstr "3D aptverošs"

#~ msgid "Telephone"
#~ msgstr "Telefons"

#~ msgid "Microphone"
#~ msgstr "Mikrofons"

#~ msgid "Line Out"
#~ msgstr "Skaņas izeja"

#~ msgid "Line In"
#~ msgstr "Skaņas ieeja"

#~ msgid "Internal CD"
#~ msgstr "Iekšējais CD"

#~ msgid "Video In"
#~ msgstr "Video ieeja"

#~ msgid "AUX 1 In"
#~ msgstr "AUX 1 ieeja"

#~ msgid "AUX 2 In"
#~ msgstr "AUX 2 ieeja"

#~ msgid "AUX In"
#~ msgstr "AUX ieeja"

#~ msgid "PCM"
#~ msgstr "PCM"

#~ msgid "Record Gain"
#~ msgstr "Ierakstīšanas pieaugums"

#~ msgid "Output Gain"
#~ msgstr "Izvades pieaugums"

#~ msgid "Microphone Boost"
#~ msgstr "Mikrofona pastiprinājums"

#~ msgid "Loopback"
#~ msgstr "Atkārtošana"

#~ msgid "Diagnostic"
#~ msgstr "Diagnostika"

#~ msgid "Bass Boost"
#~ msgstr "Basu pastiprinājums"

#~ msgid "Playback Ports"
#~ msgstr "Atskaņošanas porti"

#~ msgid "Input"
#~ msgstr "Ievade"

#~ msgid "Record Source"
#~ msgstr "Ierakstīšanas avots"

#~ msgid "Monitor Source"
#~ msgstr "Monitora avots"

#~ msgid "Keyboard Beep"
#~ msgstr "Klaviatūras pīkstiens"

#~ msgid "Monitor"
#~ msgstr "Monitors"

#~ msgid "Simulate Stereo"
#~ msgstr "Simulēt stereo"

#~ msgid "Stereo"
#~ msgstr "Stereo"

#~ msgid "Surround Sound"
#~ msgstr "Ieskaujoša skaņa"

#~ msgid "Microphone Gain"
#~ msgstr "Mikrofona pieaugums"

#~ msgid "Speaker Source"
#~ msgstr "Skaļruņa avots"

#~ msgid "Microphone Source"
#~ msgstr "Mikrofona avots"

#~ msgid "Jack"
#~ msgstr "Ligzda"

#~ msgid "Center / LFE"
#~ msgstr "Centrālais / LFE"

#~ msgid "Stereo Mix"
#~ msgstr "Stereo jaukšana"

#~ msgid "Mono Mix"
#~ msgstr "Mono jaukšana"

#~ msgid "Input Mix"
#~ msgstr "Ievades jaukšana"

#~ msgid "SPDIF In"
#~ msgstr "SPDIF ieeja"

#~ msgid "SPDIF Out"
#~ msgstr "SPDIF izeja"

#~ msgid "Microphone 1"
#~ msgstr "Mikrofons 1"

#~ msgid "Microphone 2"
#~ msgstr "Mikrofons 2"

#~ msgid "Digital Out"
#~ msgstr "Digitālā izeja"

#~ msgid "Digital In"
#~ msgstr "Digitālā ieeja"

#~ msgid "HDMI"
#~ msgstr "HDMI"

#~ msgid "Modem"
#~ msgstr "Modems"

#~ msgid "Handset"
#~ msgstr "Papildierīce"

#~ msgid "Other"
#~ msgstr "Cits"

#~ msgid "None"
#~ msgstr "Nav"

#~ msgid "On"
#~ msgstr "Ieslēgts"

#~ msgid "Off"
#~ msgstr "Izslēgts"

#~ msgid "Mute"
#~ msgstr "Klusums"

#~ msgid "Fast"
#~ msgstr "Ātrs"

#~ msgid "Very Low"
#~ msgstr "Ļoti zems"

#~ msgid "Low"
#~ msgstr "Zems"

#~ msgid "Medium"
#~ msgstr "Vidējs"

#~ msgid "High"
#~ msgstr "Augsts"

#~ msgid "Very High"
#~ msgstr "Ļoti augsts"

#~ msgid "Production"
#~ msgstr "Izstrāde"

#~ msgid "Front Panel Microphone"
#~ msgstr "Priekšējā paneļa nikrofons"

#~ msgid "Front Panel Line In"
#~ msgstr "Priekšējā paneļa skaņas ieeja"

#~ msgid "Front Panel Headphones"
#~ msgstr "Priekšējā paneļa austiņas"

#~ msgid "Front Panel Line Out"
#~ msgstr "Priekšējā paneļa skaņas izeja"

#~ msgid "Green Connector"
#~ msgstr "Zaļais savienotājs"

#~ msgid "Pink Connector"
#~ msgstr "Rozā savienotājs"

#~ msgid "Blue Connector"
#~ msgstr "Zilais savienotājs"

#~ msgid "White Connector"
#~ msgstr "Baltais savienotājs"

#~ msgid "Black Connector"
#~ msgstr "Melnais savienotājs"

#~ msgid "Gray Connector"
#~ msgstr "Pelēkais savienotājs"

#~ msgid "Orange Connector"
#~ msgstr "Oranžais savienotājs"

#~ msgid "Red Connector"
#~ msgstr "Sarkanais savienotājs"

#~ msgid "Yellow Connector"
#~ msgstr "Dzeltenais savienotājs"

#~ msgid "Green Front Panel Connector"
#~ msgstr "Zaļais priekšējā paneļa savienotājs"

#~ msgid "Pink Front Panel Connector"
#~ msgstr "Rozā priekšējā paneļa savienotājs"

#~ msgid "Blue Front Panel Connector"
#~ msgstr "Zilais priekšējā paneļa savienotājs"

#~ msgid "White Front Panel Connector"
#~ msgstr "Baltais priekšējā paneļa savienotājs"

#~ msgid "Black Front Panel Connector"
#~ msgstr "Melnais priekšējā paneļa savienotājs"

#~ msgid "Gray Front Panel Connector"
#~ msgstr "Pelēkais priekšējā paneļa savienotājs"

#~ msgid "Orange Front Panel Connector"
#~ msgstr "Oranžais priekšējā paneļa savienotājs"

#~ msgid "Red Front Panel Connector"
#~ msgstr "Sarkanais priekšējā paneļa savienotājs"

#~ msgid "Yellow Front Panel Connector"
#~ msgstr "Dzeltenais priekšējā paneļa savienotājs"

#~ msgid "Spread Output"
#~ msgstr "Sadalīt izvadi"

#~ msgid "Downmix"
#~ msgstr "Pazeminātā jaukšana"

#~ msgid "Virtual Mixer Input"
#~ msgstr "Virtuālā jaucēja ievads"

#~ msgid "Virtual Mixer Output"
#~ msgstr "Virtuālā jaucēja izvads"

#~ msgid "Virtual Mixer Channels"
#~ msgstr "Virtuālā jaucēja kanāli"

#~ msgid "%s Function"
#~ msgstr "%s funkcija"

#~ msgid "%s %d"
#~ msgstr "%s %d"

#~ msgid ""
#~ "Could not open audio device for playback. Device is being used by another "
#~ "application."
#~ msgstr ""
#~ "Nav iespējams atvērt audio ierīci atskaņošanai. Ierīci pašlaik izmanto "
#~ "cita programma."

#~ msgid ""
#~ "Could not open audio device for playback. You don't have permission to "
#~ "open the device."
#~ msgstr ""
#~ "Nav iespējams atvērt audio ierīci atskaņošanai. Jums nav nepieciešamās "
#~ "atļaujas, lai atvērtu ierīci."

#~ msgid "Could not open audio device for playback."
#~ msgstr "Nav iespējams atvērt audio ierīci atskaņošanai."

#~ msgid ""
#~ "Could not open audio device for playback. This version of the Open Sound "
#~ "System is not supported by this element."
#~ msgstr ""
#~ "Nav iespējams atvērt audio ierīci atskaņošanai. Šis elements neatbalsta "
#~ "šo Open Sound System versiju."

#~ msgid "Playback is not supported by this audio device."
#~ msgstr "Šī audio ierīce neatbalsta atskaņošanu."

#~ msgid "Audio playback error."
#~ msgstr "Audio atskaņošanas kļūda."

#~ msgid "Recording is not supported by this audio device."
#~ msgstr "Šī audio ierīce neatbalsta ierakstīšanu."

#~ msgid "Error recording from audio device."
#~ msgstr "Radās kļūda ierakstot no audio ierīces."

#~ msgid "PCM 1"
#~ msgstr "PCM 1"

#~ msgid "PCM 2"
#~ msgstr "PCM 2"

#~ msgid "PCM 3"
#~ msgstr "PCM 3"

#~ msgid "PCM 4"
#~ msgstr "PCM 4"

#~ msgid "Green connector function"
#~ msgstr "Zaļā savienotāja funkcija"

#~ msgid "Green front panel connector function"
#~ msgstr "Zaļā priekšējā paneļa savienotāja funkcija"

#~ msgid "Pink connector function"
#~ msgstr "Rozā savienotāja funkcija"

#~ msgid "Pink front panel connector function"
#~ msgstr "Rozā priekšējā paneļa savienotāja funkcija"

#~ msgid "Blue connector function"
#~ msgstr "Zilā savienotāja funkcija"

#~ msgid "Blue front panel connector function"
#~ msgstr "Zilā priekšējā paneļa savienotāja funkcija"

#~ msgid "Orange connector function"
#~ msgstr "Oranžā savienotāja funkcija"

#~ msgid "Orange front panel connector function"
#~ msgstr "Oranžā priekšējā paneļa savienotāja funkcija"

#~ msgid "Black connector function"
#~ msgstr "Melnā savienotāja funkcija"

#~ msgid "Black front panel connector function"
#~ msgstr "Melnā priekšējā paneļa savienotāja funkcija"

#~ msgid "Gray connector function"
#~ msgstr "Pelēkā savienotāja funkcija"

#~ msgid "Gray front panel connector function"
#~ msgstr "Pelēkā priekšējā paneļa savienotāja funkcija"

#~ msgid "White connector function"
#~ msgstr "Baltā savienotāja funkcija"

#~ msgid "White front panel connector function"
#~ msgstr "Baltā priekšējā paneļa savienotāja funkcija"

#~ msgid "Red connector function"
#~ msgstr "Sarkanā savienotāja funkcija"

#~ msgid "Red front panel connector function"
#~ msgstr "Sarkanā priekšējā paneļa savienotāja funkcija"

#~ msgid "Yellow connector function"
#~ msgstr "Dzeltenā savienotāja funkcija"

#~ msgid "Yellow front panel connector function"
#~ msgstr "Dzeltenā priekšējā paneļa savienotāja funkcija"
