mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
dvdreadsrc: fix sector search for packed titles
Some DVD titles are packed in a single set, and we need to use the correct table to map times to sectors. https://bugzilla.gnome.org/show_bug.cgi?id=659252
This commit is contained in:
parent
56bd24365a
commit
20464efc8e
1 changed files with 10 additions and 12 deletions
|
@ -682,23 +682,21 @@ gst_dvd_read_src_get_time_for_sector (GstDvdReadSrc * src, guint sector)
|
|||
static gint
|
||||
gst_dvd_read_src_get_sector_from_time (GstDvdReadSrc * src, GstClockTime ts)
|
||||
{
|
||||
gint sector, i, j;
|
||||
gint sector, j;
|
||||
|
||||
if (src->vts_tmapt == NULL || src->vts_tmapt->nr_of_tmaps == 0)
|
||||
if (src->vts_tmapt == NULL || src->vts_tmapt->nr_of_tmaps < src->ttn)
|
||||
return -1;
|
||||
|
||||
sector = 0;
|
||||
for (i = 0; i < src->vts_tmapt->nr_of_tmaps; ++i) {
|
||||
for (j = 0; j < src->vts_tmapt->tmap[i].nr_of_entries; ++j) {
|
||||
GstClockTime entry_time;
|
||||
for (j = 0; j < src->vts_tmapt->tmap[src->ttn - 1].nr_of_entries; ++j) {
|
||||
GstClockTime entry_time;
|
||||
|
||||
entry_time = src->vts_tmapt->tmap[i].tmu * (j + 1) * GST_SECOND;
|
||||
if (entry_time <= ts) {
|
||||
sector = src->vts_tmapt->tmap[i].map_ent[j] & 0x7fffffff;
|
||||
}
|
||||
if (entry_time >= ts) {
|
||||
return sector;
|
||||
}
|
||||
entry_time = src->vts_tmapt->tmap[src->ttn - 1].tmu * (j + 1) * GST_SECOND;
|
||||
if (entry_time <= ts) {
|
||||
sector = src->vts_tmapt->tmap[src->ttn - 1].map_ent[j] & 0x7fffffff;
|
||||
}
|
||||
if (entry_time >= ts) {
|
||||
return sector;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue