# 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: 2016-09-30 12:19+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 "Could not establish connection to sndio"
msgstr ""

msgid "Failed to query sndio capabilities"
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 "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."

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

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""

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

#, 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 DVB channel configuration file"
msgstr "Näennäinen mikserikanava-asetus"

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

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

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

#, c-format
msgid "Failed to set properties for the DVB channel %s"
msgstr ""

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

msgid "DVB channel configuration file doesn't contain any channels"
msgstr ""

#~ 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"
