# Brazilian Portuguese translation of gst-plugins-bad.
# This file is distributed under the same license as the gst-plugins-bad package.
# Copyright (C) 2007-2013 Free Software Foundation, Inc.
# Raphael Higino <In memorian>, 2007.
# Fabrício Godoy <skarllot@gmail.com>, 2008-2013.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad-1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2014-08-27 14:38+0300\n"
"PO-Revision-Date: 2013-12-17 01:09-0200\n"
"Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
"net>\n"
"Language: pt_BR\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"

msgid "Internal data stream error."
msgstr "Erro interno de fluxo de dados."

msgid "format wasn't negotiated before get function"
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 instea of just one element."
msgstr ""

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

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

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

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

msgid "description for default GStreamer visualization"
msgstr ""

msgid "Describes the selected visualization element."
msgstr ""

msgid "Could not read title information for DVD."
msgstr "Não foi possível ler as informações de título do DVD."

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "Falha ao abrir o dispositivo de DVD \"%s\"."

msgid "Failed to set PGC based seeking."
msgstr "Falha ao definir busca baseada em PGC."

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Não foi possível ler o DVD. O motivo pode ser que o DVD está criptografado "
"ou uma biblioteca de descriptografia não está instalada."

msgid "Could not read DVD."
msgstr "Não foi possível ler o DVD."

msgid "This file contains no playable streams."
msgstr "Este arquivo não contém fluxos reproduzíveis."

msgid "Couldn't get the Manifest's URI"
msgstr "Não foi possível obter a URI do manifesto"

msgid "Failed to get fragment URL."
msgstr "Falha ao obter um fragmento de URL."

msgid "Couldn't download fragments"
msgstr "Não foi possível baixar os fragmentos"

#, fuzzy
msgid "Could not open sndfile stream for reading."
msgstr "Não foi possível abrir o arquivo \"%s\" para leitura."

msgid "No file name specified for writing."
msgstr "Nenhum nome de arquivo especificado para gravação."

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "Não foi possível abrir o arquivo \"%s\" para gravação."

#, c-format
msgid "Could not write to file \"%s\"."
msgstr "Não foi possível gravar no arquivo \"%s\"."

msgid "Could not establish connection to sndio"
msgstr "Não foi possível estabelecer a conexão para sndio"

msgid "Failed to query sndio capabilities"
msgstr "Falha ao consultar os recursos de sndio"

msgid "Could not configure sndio"
msgstr "Não foi possível configurar o sndio"

msgid "Could not start sndio"
msgstr "Não foi possível iniciar o sndio"

msgid "Internal data flow error."
msgstr "Erro interno de fluxo de dados."

msgid "Generated file has a larger preroll time than its streams duration"
msgstr ""
"O arquivo gerado tem um tempo de preparação maior que a sua duração de fluxo"

#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr ""
"O elemento \"%s\" está faltando, verifique a sua instalação do GStreamer."

msgid "File location is set to NULL, please set it to a valid filename"
msgstr ""
"A localização do arquivo está NULA, favor definir um nome de arquivo válido"

msgid "Subpicture format was not configured before data flow"
msgstr "O formato de subimagem não foi configurado antes do fluxo de dados"

#, c-format
msgid "Given file name \"%s\" can't be converted to local file name encoding."
msgstr ""
"O nome de arquivo fornecido \"%s\" não pode ser convertido para a "
"codificação de nome de arquivo local."

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "O dispositivo \"%s\" não existe."

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "Não foi possível abrir o dispositivo de interface \"%s\"."

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr ""
"Não foi possível obter as configurações do dispositivo de interface \"%s\"."

#, fuzzy, c-format
msgid "Cannot enumerate delivery systems from frontend device \"%s\"."
msgstr ""
"Não foi possível obter as configurações do dispositivo de interface \"%s\"."

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "Não foi possível abrir o arquivo \"%s\" para leitura."

msgid "Couldn't find DVB channel configuration file"
msgstr "Não foi possível encontrar o arquivo de configuração de canal DVB"

#, c-format
msgid "Couldn't load DVB channel configuration file: %s"
msgstr "Não foi possível carregar o arquivo de configuração de canal DVB: %s"

msgid "DVB channel configuration file doesn't contain any channels"
msgstr "O arquivo de configuração de canal DVB não contém nenhum canal"

#, c-format
msgid "Couldn't find details for DVB channel %s"
msgstr "Não foi possível encontrar detalhes para o canal DVB %s"
