# 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-06-09 11:22+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 "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 "Internal data flow error."
msgstr "Sisäinen tietovirtavirhe."

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 "Internal data stream error."
msgstr "Sisäisen tietovirran virhe."

msgid "Couldn't download fragments"
msgstr ""

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"

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

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

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