mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 02:30:35 +00:00
dvdreadsrc: improve error messages on read errors
Provide proper i18n-ed error messages when a read error happens, and point out that the error could be happening because the DVD is scrambled. https://bugzilla.gnome.org/show_bug.cgi?id=613633
This commit is contained in:
parent
b369f1d714
commit
7192b9f6b3
1 changed files with 28 additions and 1 deletions
|
@ -885,6 +885,25 @@ block_read_error:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* we don't cache the result on purpose */
|
||||||
|
static gboolean
|
||||||
|
gst_dvd_read_descrambler_available (void)
|
||||||
|
{
|
||||||
|
GModule *module;
|
||||||
|
gpointer sym;
|
||||||
|
gsize res;
|
||||||
|
|
||||||
|
module = g_module_open ("libdvdcss", 0);
|
||||||
|
if (module != NULL) {
|
||||||
|
res = g_module_symbol (module, "dvdcss_open", &sym);
|
||||||
|
g_module_close (module);
|
||||||
|
} else {
|
||||||
|
res = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
static GstFlowReturn
|
static GstFlowReturn
|
||||||
gst_dvd_read_src_create (GstPushSrc * pushsrc, GstBuffer ** p_buf)
|
gst_dvd_read_src_create (GstPushSrc * pushsrc, GstBuffer ** p_buf)
|
||||||
{
|
{
|
||||||
|
@ -928,7 +947,15 @@ gst_dvd_read_src_create (GstPushSrc * pushsrc, GstBuffer ** p_buf)
|
||||||
|
|
||||||
switch (res) {
|
switch (res) {
|
||||||
case GST_DVD_READ_ERROR:{
|
case GST_DVD_READ_ERROR:{
|
||||||
GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), (NULL));
|
/* FIXME: figure out a way to detect if scrambling is the problem */
|
||||||
|
if (!gst_dvd_read_descrambler_available ()) {
|
||||||
|
GST_ELEMENT_ERROR (src, RESOURCE, READ,
|
||||||
|
(_("Could not read DVD. This may be because the DVD is encrypted "
|
||||||
|
"and a DVD decryption library is not installed.")), (NULL));
|
||||||
|
} else {
|
||||||
|
GST_ELEMENT_ERROR (src, RESOURCE, READ, (_("Could not read DVD.")),
|
||||||
|
(NULL));
|
||||||
|
}
|
||||||
return GST_FLOW_ERROR;
|
return GST_FLOW_ERROR;
|
||||||
}
|
}
|
||||||
case GST_DVD_READ_EOS:{
|
case GST_DVD_READ_EOS:{
|
||||||
|
|
Loading…
Reference in a new issue