# Swedish translation for gst-plugins-bad.
# Copyright (C) 2007-2015 Free Software Foundation, Inc.
# This file is distributed under the same license as the gst-plugins-bad package.
# Daniel Nylander <po@danielnylander.se>, 2007, 2008, 2009.
# Sebastian Rasmussen <sebras@gmail.com>, 2014, 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 1.6.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-04-20 15:31+0300\n"
"PO-Revision-Date: 2015-11-01 00:48+0100\n"
"Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.6\n"

msgid "format wasn't negotiated before get function"
msgstr "formatet förhandlades inte fram innan hämtfunktionen"

msgid "OpenCV failed to load template image"
msgstr "OpenCV misslyckades med att läsa in mallbild"

msgid "Could not read title information for DVD."
msgstr "Kunde inte läsa titelinformation för dvd."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Misslyckades med att öppna dvd-enheten \"%s\"."

msgid "Failed to set PGC based seeking."
msgstr "Misslyckades med att ställa in PGC-baserad spolning."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Kunde ej läsa dvd. Detta kan vara på grund av att dvd:n är krypterad och ett "
"DVD avkrypteringsbibliotek inte är installerat."

msgid "Could not read DVD."
msgstr "Kunde inte läsa dvd."

msgid "This file contains no playable streams."
msgstr "Den här filen innehåller inga spelbara strömmar."

msgid "Could not open sndfile stream for reading."
msgstr "Kunde inte öppna sndfile-ström för läsning."

msgid "Could not establish connection to sndio"
msgstr "Kunde ej etablera uppkoppling till sndio"

msgid "Failed to query sndio capabilities"
msgstr "Misslyckades att fråga om sndio-förmågor"

msgid "Could not configure sndio"
msgstr "Kunde inte konfigurera sndio"

msgid "Could not start sndio"
msgstr "Kunde ej starta sndio"

msgid "Internal data flow error."
msgstr "Internt fel i dataflöde."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr "Den genererade filen har en längre förrullningstid än dess strömlängd"

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

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""
"Filposition är satt till NULL, vänligen sätt den till ett giltigt filnamn"

msgid "Digitalzoom element couldn't be created"
msgstr "Elementet Digitalzoom kunde inte skapas"

msgid "Subpicture format was not configured before data flow"
msgstr "Delbildsformat var inte konfigurerat före dataflöde"

msgid "Failed to get fragment URL."
msgstr "Misslyckades att hämta fragment-URL"

msgid "Internal data stream error."
msgstr "Internt fel i dataström."

msgid "Couldn't download fragments"
msgstr "Kunde ej ladda ner fragment"

msgid "No file name specified for writing."
msgstr "Inget filnamn angavs för skrivning."

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr "Angivet filnamn \"%s\" kan ej konverteras till lokal filnamnskodning."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Kunde inte öppna filen \"%s\" för skrivning."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Enheten \"%s\" finns inte."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Kunde inte öppna framändsenheten \"%s\"."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Kunde inte få inställningar från framändsenheten \"%s\"."

#, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Kan ej lista leveranssystem från framändsenheten \"%s\"."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Kunde inte öppna filen \"%s\" för läsning."

msgid "Couldn't find DVB channel configuration file"
msgstr "Kunde ej hitta konfigurationsfil för DVB-kanal"

#, c-format
msgid "Couldn't load DVB channel configuration file: %s"
msgstr "Kunde ej ladda konfigurationsfil för DVB-kanal: %s"

msgid "DVB channel configuration file doesn't contain any channels"
msgstr "Konfigurationsfil för DVB-kanal innehåller inga kanaler"

#, c-format
msgid "Couldn't find details for DVB channel %s"
msgstr "Kunde ej hitta detaljer för DVB-kanal %s"

#~ msgid "default GStreamer sound events audiosink"
#~ msgstr "standard GStreamer-ljudutgång för ljudhändelser"

#~ msgid ""
#~ "GStreamer can play audio using any number of output elements. Some "
#~ "possible choices are osssink, pulsesink and alsasink. The audiosink can "
#~ "be a partial pipeline instead of just one element."
#~ msgstr ""
#~ "GStreamer kan spela upp ljud via ett antal utgångselement. Några möjliga "
#~ "val är osssink, pulsesink och alsasink. Ljudutgången kan vara en "
#~ "delrörledning istället för bara ett element."

#~ msgid "description for default GStreamer sound events audiosink"
#~ msgstr "beskrivning för standard GStreamer-ljudutgång för ljudhändelser"

#~ msgid "Describes the selected audiosink element."
#~ msgstr "Beskriver det valda ljudutgångselementet."

#~ msgid "default GStreamer audiosink for Audio/Video Conferencing"
#~ msgstr "standard GStreamer-ljudutgång för ljud/video-konferenser"

#~ msgid ""
#~ "description for default GStreamer audiosink for Audio/Video Conferencing"
#~ msgstr ""
#~ "beskrivning för standard GStreamer-ljudutgång för ljud/video-konferenser"

#~ msgid "default GStreamer audiosink for Music and Movies"
#~ msgstr "standard GStreamer-ljudutgång för musik och filmer"

#~ msgid "description for default GStreamer audiosink for Music and Movies"
#~ msgstr "beskrivning för standard GStreamer-ljudutgång för musik och filmer"

#~ msgid "default GStreamer videosink"
#~ msgstr "standard GStreamer-videoutgång"

#~ msgid ""
#~ "GStreamer can play video using any number of output elements. Some "
#~ "possible choices are xvimagesink, ximagesink, sdlvideosink and aasink. "
#~ "The videosink can be a partial pipeline instead of just one element."
#~ msgstr ""
#~ "GStreamer kan spela upp video via ett antal utgångselement. Några möjliga "
#~ "val är xvimagesink, ximagesink, sdlvideosink och aasink. Videoutgången "
#~ "kan vara en delrörledning istället för bara ett element."

#~ msgid "description for default GStreamer videosink"
#~ msgstr "beskrivning för standard GStreamer-videoutgång"

#~ msgid "Describes the selected videosink element."
#~ msgstr "Beskriver det valda videoutgångselementet."

#~ msgid "default GStreamer audiosrc"
#~ msgstr "standard GStreamer-ljudkälla"

#~ msgid ""
#~ "GStreamer can record audio using any number of input elements. Some "
#~ "possible choices are osssrc, pulsesrc and alsasrc. The audio source can "
#~ "be a partial pipeline instead of just one element."
#~ msgstr ""
#~ "GStreamer kan spela in ljud från ett antal ingångselement. Några möjliga "
#~ "val är osssrc, pulsesrc och alsasrc. Ljudkällan kan vara en delrörledning "
#~ "istället för bara ett element."

#~ msgid "description for default GStreamer audiosrc"
#~ msgstr "beskrivning för standard GStreamer-ljudkälla"

#~ msgid "Describes the selected audiosrc element."
#~ msgstr "Beskriver det valda ljudkällselementet."

#~ msgid "default GStreamer videosrc"
#~ msgstr "standard GStreamer-videokälla"

#~ msgid ""
#~ "GStreamer can record video from any number of input elements. Some "
#~ "possible choices are v4lsrc, v4l2src and videotestsrc. The video source "
#~ "can be a partial pipeline instead of just one element."
#~ msgstr ""
#~ "GStreamer kan spela in video från ett antal ingångselement. Några möjliga "
#~ "val är v4lsrc, v4l2src och videotestsrc. Videokällan kan vara en "
#~ "delrörledning istället för bara ett element."

#~ msgid "description for default GStreamer videosrc"
#~ msgstr "beskrivning för standard GStreamer-videokälla"

#~ msgid "Describes the selected videosrc element."
#~ msgstr "Beskriver det valda videokällselementet."

#~ msgid "default GStreamer visualization"
#~ msgstr "standard GStreamer-visualisering"

#~ msgid ""
#~ "GStreamer can put visualization plugins in a pipeline to transform audio "
#~ "streams in video frames. Some possible choices are goom, goom2k1 and "
#~ "synaesthesia. The visualization plugin can be a partial pipeline instead "
#~ "of just one element."
#~ msgstr ""
#~ "GStreamer kan lägga in insticksmoduler för visualisering i en pipeline "
#~ "för att transformera ljudströmmar till videobilder. Några möjliga val är "
#~ "goom, goom2k1 och synaesthesia. Visualiseringsinsticksmodulen kan vara en "
#~ "delrörledning istället för bara ett element."

#~ msgid "description for default GStreamer visualization"
#~ msgstr "beskrivning för standard GStreamer-visualisering"

#~ msgid "Describes the selected visualization element."
#~ msgstr "Beskriver det valda visualiseringselementet."

#~ msgid "Couldn't get the Manifest's URI"
#~ msgstr "Kunde ej hämta manifestets URI"

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Kunde inte skriva till filen \"%s\"."
