# Finnish translation for gst-plugins-bad.
# This file is distributed under the same license as the gst-plugins-bad package.
# Copyright (C) 2007 Ilkka Tuohela.
# Copyright (C) 2009 Tommi Vainikainen.
# Suomennos: http://gnome.fi/
#
# Ilkka Tuohela <hile@iki.fi>, 2007.
# Tommi Vainikainen <thv@iki.fi>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 0.10.13.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-05-04 15:09+0300\n"
"PO-Revision-Date: 2009-08-12 22:13+0300\n"
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.11.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 ""

msgid "Could not read title information for DVD."
msgstr "DVD:n otsikkotietoja ei voitu lukea."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "DVD-laitetta \"%s\" ei voitu avata."

msgid "Failed to set PGC based seeking."
msgstr "PGC-pohjaisen kelauksen asetus epäonnistui."

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 "DVD:n otsikkotietoja ei voitu lukea."

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

#, fuzzy
msgid "Could not open sndfile stream for reading."
msgstr "Tiedostoa \"%s\" ei voi avata luettavaksi."

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 "Sisäisen tietovirran virhe."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Laitetta \"%s\" ei ole olemassa."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Edustalaitetta \"%s\" ei voitu avata."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Edustalaitteen \"%s\" asetuksia ei saatu."

#, fuzzy, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Edustalaitteen \"%s\" asetuksia ei saatu."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Tiedostoa \"%s\" ei voi avata luettavaksi."

#, fuzzy
msgid "Couldn't find channel configuration file"
msgstr "Näennäinen mikserikanava-asetus"

#, fuzzy, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr "Näennäinen mikserikanava-asetus"

#, 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 "DVD-laitetta \"%s\" ei voitu avata."

#, fuzzy, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Näennäinen mikserikanava-asetus"

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

#, fuzzy
#~ msgid "Could not configure sndio"
#~ msgstr "Tiedostoa \"%s\" ei voi avata luettavaksi."

#, fuzzy
#~ msgid "Could not start sndio"
#~ msgstr "DVD:n otsikkotietoja ei voitu lukea."

#~ msgid "No file name specified for writing."
#~ msgstr "Kirjoitettavaa tiedostonimeä ei annettu."

#~ msgid "Could not open file \"%s\" for writing."
#~ msgstr "Tiedostoa \"%s\" ei voi avata kirjoitettavaksi."

#~ msgid "Internal data flow error."
#~ msgstr "Sisäinen tietovirtavirhe."

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Tiedostoon \"%s\" ei voitu kirjoittaa."

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

#~ msgid "Internal clock error."
#~ msgstr "Sisäinen kellovirhe."

#~ 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 "Vihreän liittimen toiminto"

#~ msgid "Green front panel connector function"
#~ msgstr "Vihreän etupaneelin liittimen toiminto"

#~ msgid "Pink connector function"
#~ msgstr "Violetin liittimen toiminto"

#~ msgid "Pink front panel connector function"
#~ msgstr "Violetin etupaneelin liittimen toiminto"

#~ msgid "Blue connector function"
#~ msgstr "Sinisen liittimen toiminto"

#~ msgid "Blue front panel connector function"
#~ msgstr "Sinisen etupaneelin liittimen toiminto"

#~ msgid "Orange connector function"
#~ msgstr "Oranssin liittimen toiminto"

#~ msgid "Orange front panel connector function"
#~ msgstr "Oranssin etupaneelin liittimen toiminto"

#~ msgid "Black connector function"
#~ msgstr "Mustan liittimen toiminto"

#~ msgid "Black front panel connector function"
#~ msgstr "Mustan etupaneelin liittimen toiminto"

#~ msgid "Gray connector function"
#~ msgstr "Harmaan liittimen toiminto"

#~ msgid "Gray front panel connector function"
#~ msgstr "Harmaan etupaneelin liittimen toiminto"

#~ msgid "White connector function"
#~ msgstr "Valkoisen liittimen toiminto"

#~ msgid "White front panel connector function"
#~ msgstr "Valkoisen etupaneelin liittimen toiminto"

#~ msgid "Red connector function"
#~ msgstr "Punaisen liittimen toiminto"

#~ msgid "Red front panel connector function"
#~ msgstr "Punaisen etupaneelin liittimen toiminto"

#~ msgid "Yellow connector function"
#~ msgstr "Keltaisen liittimen toiminto"

#~ msgid "Yellow front panel connector function"
#~ msgstr "Keltaisen etupaneelin liittimen toiminto"
