summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2012-06-07 15:06:34 +0100
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2012-06-14 15:31:16 +0100
commit669683856ca4ccba0ad568f82e09e4a2dddbe2ff (patch)
tree647dce0b71926f33d2ba6a5728af12cbe2a94578
parent3566530e971a116d4e22c6fa1853cf697e67deef (diff)
resindvd: guard against not finding some data on a DVD
May possibly help with a particular DVD. https://bugzilla.gnome.org/show_bug.cgi?id=673118
-rw-r--r--ext/resindvd/resindvdsrc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/resindvd/resindvdsrc.c b/ext/resindvd/resindvdsrc.c
index 98473694b..de0876fa0 100644
--- a/ext/resindvd/resindvdsrc.c
+++ b/ext/resindvd/resindvdsrc.c
@@ -473,6 +473,12 @@ read_vts_info (resinDvdSrc * src)
GST_ERROR ("Can't open VMG ifo");
return FALSE;
}
+ if (!src->vmg_file->vts_atrt) {
+ GST_INFO ("No vts_atrt - odd, but apparently OK");
+ g_array_set_size (src->vts_attrs, 0);
+ src->vts_attrs = NULL;
+ return TRUE;
+ }
n_vts = src->vmg_file->vts_atrt->nr_of_vtss;
memcpy (&src->vmgm_attr, src->vmg_file->vmgi_mat, sizeof (vmgi_mat_t));
@@ -1914,7 +1920,7 @@ rsn_dvdsrc_prepare_streamsinfo_event (resinDvdSrc * src)
gboolean have_audio;
gboolean have_subp;
- if (src->vts_n == 0) {
+ if (src->vts_n == 0 || src->vts_attrs == NULL) {
/* VMGM info */
vts_attr = NULL;
v_attr = &src->vmgm_attr.vmgm_video_attr;