# 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-05-04 15:09+0300\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 "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 "Унутрашња грешка тока података."

#, 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 "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 "No file name specified for writing."
#~ msgstr "Није наведен назив датотеке за упис."

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

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

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