# Serbian translation of gst-plugins
# Copyright (C) 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the gst-plugins-bad package.
# Danilo Segan <dsegan@gmx.net>, 2004.
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2015, 2016.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad-1.10.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2017-02-23 15:17+0200\n"
"PO-Revision-Date: 2016-12-04 14:22+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Project-Style: gnome\n"

msgid "failed to draw pattern"
msgstr "нисам успео да исцртам образац"

msgid "A GL error occured"
msgstr "Дошло је до ГЛ грешке"

msgid "format wasn't negotiated before get function"
msgstr "запис није договорен пре функције добављања (get)"

msgid "OpenCV failed to load template image"
msgstr "ОтворениЦВ није успео да учита слику шаблона"

msgid "Could not read title information for DVD."
msgstr "Не могу да прочитам информације о наслову ДВД-а."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Нисам успео да отворим ДВД уређај „%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 ""
"Не могу да читам ДВД. Можда зато што је ДВД шифрован а библиотека за "
"дешифровање ДВД-а није инсталирана."

msgid "Could not read DVD."
msgstr "Не могу да читам ДВД."

msgid "This file contains no playable streams."
msgstr "Ова датотека не садржи токове за пуштање."

msgid "Could not open sndfile stream for reading."
msgstr "Не могу да отворим ток датотеке звука за читање."

msgid "Could not establish connection to sndio"
msgstr "Не могу да успоставим везу са улазом/излазом звука"

msgid "Failed to query sndio capabilities"
msgstr "Нисам успео да испитам могућности улаза/излаза звука"

msgid "Could not configure sndio"
msgstr "Не могу да подесим улаз/излаз звука"

msgid "Could not start sndio"
msgstr "Не могу да покренем улаз/излаз звука"

msgid "Generated file has a larger preroll time than its streams duration"
msgstr "Створена датотека има дуже време припреме од трајања њеног тока"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Недостаје елемент „%s“ — проверите вашу инсталацију Гстримера."

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 "Унутрашња грешка тока података."

msgid "No file name specified for writing."
msgstr "Није наведен назив датотеке за упис."

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""
"Дати назив датотеке „%s“ не може бити претворен у кодирање назива месне "
"датотеке."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Не могу да отворим датотеку „%s“ за упис."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "Уређај „%s“ не постоји."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Не могу да отворим управљачки уређај „%s“."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "Не могу да добавим подешавања са управљачког уређаја „%s“."

#, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr "Не могу да нумеришем системе доставе са управљачког уређаја „%s“."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Не могу да отворим датотеку „%s“ за читање."

msgid "Couldn't find channel configuration file"
msgstr "Не могу да нађем датотеку подешавања канала"

#, c-format
msgid "Couldn't load channel configuration file: '%s'"
msgstr "Не могу да учитам датотеку подешавања канала: %s"

#, c-format
msgid "Couldn't find details for channel '%s'"
msgstr "Не могу да пронађем податке за канал „%s“"

#, c-format
msgid "No properties for channel '%s'"
msgstr "Нема својстава за канал „%s“"

#, c-format
msgid "Failed to set properties for channel '%s'"
msgstr "Нисам успео да подесим својства за канал „%s“"

#, c-format
msgid "Couldn't find channel configuration file: '%s'"
msgstr "Не могу да нађем датотеку подешавања канала: %s"

msgid "Channel configuration file doesn't contain any channels"
msgstr "Датотека подешавања канала не садржи ниједан канал"

#~ msgid "default GStreamer sound events audiosink"
#~ msgstr "основни аудио усклађивач звучних догађаја Гстримера"

#~ 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 ""
#~ "Гстример може да пушта аудио користећи било који број излазних елемената. "
#~ "Неки могући избори су „osssink“, „pulsesink“ и „alsasink“. Аудио "
#~ "усклађивач може бити делимична спојка уместо само једног елемента."

#~ msgid "description for default GStreamer sound events audiosink"
#~ msgstr "опис основног аудио усклађивача звучних догађаја Гстримера"

#~ msgid "Describes the selected audiosink element."
#~ msgstr "Описује изабрани елемент аудио усклађивача."

#~ msgid "default GStreamer audiosink for Audio/Video Conferencing"
#~ msgstr "основни аудио усклађивач Гстримера за аудио/видео састанчење"

#~ msgid ""
#~ "description for default GStreamer audiosink for Audio/Video Conferencing"
#~ msgstr "опис основног аудио усклађивач Гстримера за аудио/видео састанчење"

#~ msgid "default GStreamer audiosink for Music and Movies"
#~ msgstr "основни аудио усклађивач Гстримера за музику и филмове"

#~ msgid "description for default GStreamer audiosink for Music and Movies"
#~ msgstr "опис основног аудио усклађивача Гстримера за музику и филмове"

#~ msgid "default GStreamer videosink"
#~ msgstr "основни видео усклађивач Гстримера"

#~ 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 ""
#~ "Гстример може да пушта видео користећи било који број излазних елемената. "
#~ "Неки могући избори су „xvimagesink“, „ximagesink“, „sdlvideosink“ и "
#~ "„aasink“. Видео усклађивач може бити делимична спојка уместо само једног "
#~ "елемента."

#~ msgid "description for default GStreamer videosink"
#~ msgstr "опис основног видео усклађивача Гстримера"

#~ msgid "Describes the selected videosink element."
#~ msgstr "Описује изабрани елемент видео усклађивача."

#~ msgid "default GStreamer audiosrc"
#~ msgstr "основни аудио извор Гстримера"

#~ 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 ""
#~ "Гстример може да снима аудио користећи било који број излазних елемената. "
#~ "Неки могући избори су „osssrc“, „pulsesrc“ и „alsasrc“. Извор звука може "
#~ "бити делимична спојка уместо само једног елемента."

#~ msgid "description for default GStreamer audiosrc"
#~ msgstr "опис основног аудио извора Гстримера"

#~ msgid "Describes the selected audiosrc element."
#~ msgstr "Описује изабрани елемент аудио извора."

#~ msgid "default GStreamer videosrc"
#~ msgstr "основни видео извор Гстримера"

#~ 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 ""
#~ "Гстример може да снима видео користећи било који број излазних елемената. "
#~ "Неки могући избори су „v4lsrc“, „v4l2src“ и “videotestsrc“. Извор видеа "
#~ "може бити делимична спојка уместо само једног елемента."

#~ msgid "description for default GStreamer videosrc"
#~ msgstr "опис основног видео извора Гстримера"

#~ msgid "Describes the selected videosrc element."
#~ msgstr "Описује изабрани елемент видео извора."

#~ msgid "default GStreamer visualization"
#~ msgstr "основно приказивање Гстримера"

#~ 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 ""
#~ "Гстример може да стави прикључке приказивања у спојку да претвори аудио "
#~ "токове у видео кадрове. Неки могући избори су „goom“, „goom2k1“ и "
#~ "„synaesthesia“. Прикључак приказивања може бити делимична спојка уместо "
#~ "само једног елемента."

#~ msgid "description for default GStreamer visualization"
#~ msgstr "опис основног приказивања Гстримера"

#~ msgid "Describes the selected visualization element."
#~ msgstr "Описује изабрани елемент приказивања."

#~ msgid "Internal data flow error."
#~ msgstr "Унутрашња грешка протока података."

#~ msgid "Couldn't get the Manifest's URI"
#~ msgstr "Не могу да добавим путању Манифеста"

#~ msgid "Could not write to file \"%s\"."
#~ msgstr "Не могу да пишем у датотеку „%s“."
