# translation of gst-plugins-bad-0.10.6.3 to Lithuanian
# This file is put in the public domain.
#
# Gintautas Miliauskas <gintas@akl.lt>, 2008.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad-0.10.6.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-05-04 15:09+0300\n"
"PO-Revision-Date: 2008-05-14 02:13+0300\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n"

msgid "failed to draw pattern"
msgstr ""

msgid "A GL error occured"
msgstr ""

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

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

#, fuzzy
msgid "Could not read title information for DVD."
msgstr "Nepavyko rašyti į failą „%s“."

#, fuzzy, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Nepavyko atverti išorinės pusės įrenginio „%s“."

msgid "Failed to set PGC based seeking."
msgstr ""

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""

#, fuzzy
msgid "Could not read DVD."
msgstr "Nepavyko rašyti į failą „%s“."

msgid "This file contains no playable streams."
msgstr ""

#, fuzzy
msgid "Could not open sndfile stream for reading."
msgstr "Nepavyko atverti failo „%s“ skaitymui."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr ""

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""

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

msgid "Subpicture format was not configured before data flow"
msgstr ""

msgid "Failed to get fragment URL."
msgstr ""

msgid "Couldn't download fragments"
msgstr ""

msgid "Internal data stream error."
msgstr "Vidinė duomenų srauto klaida."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Įrenginys „%s“ neegzistuoja."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Nepavyko atverti išorinės pusės įrenginio „%s“."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Nepavyko gauti nustatymų iš išorinės pusės įrenginio „%s“."

#, fuzzy, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Nepavyko gauti nustatymų iš išorinės pusės įrenginio „%s“."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Nepavyko atverti failo „%s“ skaitymui."

msgid "Couldn't find channel configuration file"
msgstr ""

#, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr ""

#, c-format
msgid "Couldn't find details for channel '%s'"
msgstr ""

#, c-format
msgid "No properties for channel '%s'"
msgstr ""

#, fuzzy, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Nepavyko atverti išorinės pusės įrenginio „%s“."

#, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr ""

msgid "Channel configuration file doesn't contain any channels"
msgstr ""

#, fuzzy
#~ msgid "Could not configure sndio"
#~ msgstr "Nepavyko atverti failo „%s“ skaitymui."

#, fuzzy
#~ msgid "Could not start sndio"
#~ msgstr "Nepavyko rašyti į failą „%s“."

#~ msgid "No file name specified for writing."
#~ msgstr "Nenurodytas failo rašymui pavadinimas."

#~ msgid "Could not open file \"%s\" for writing."
#~ msgstr "Nepavyko atverti failo „%s“ rašymui."

#, fuzzy
#~ msgid "Internal data flow error."
#~ msgstr "Vidinė duomenų srauto klaida."

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Nepavyko rašyti į failą „%s“."

#, fuzzy
#~ msgid "Internal clock error."
#~ msgstr "Vidinė duomenų srauto klaida."
