summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/input/libdvdnav/vm.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/input/libdvdnav/vm.c b/src/input/libdvdnav/vm.c
index f646504fe..9622254c4 100644
--- a/src/input/libdvdnav/vm.c
+++ b/src/input/libdvdnav/vm.c
@@ -19,7 +19,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: vm.c,v 1.23 2003/07/19 13:04:03 mroi Exp $
+ * $Id: vm.c,v 1.24 2003/08/03 09:44:16 mroi Exp $
*
*/
@@ -429,14 +429,12 @@ void vm_position_get(vm_t *vm, vm_position_t *position) {
position->still = (vm->state).pgc->cell_playback[(vm->state).cellN - 1].still_time;
position->block = (vm->state).blockN;
- /* still already detrmined or not at PGC end */
- if (position->still || (vm->state).cellN < (vm->state).pgc->nr_of_cells)
+ /* handle PGC stills at PGC end */
+ if ((vm->state).cellN == (vm->state).pgc->nr_of_cells && (vm->state).pgc->still_time)
+ position->still += (vm->state).pgc->still_time;
+ /* still already determined */
+ if (position->still)
return;
- /* handle PGC stills */
- if ((vm->state).pgc->still_time) {
- position->still = (vm->state).pgc->still_time;
- return;
- }
/* This is a rough fix for some strange still situations on some strange DVDs.
* There are discs (like the German "Back to the Future" RC2) where the only
* indication of a still is a cell playback time higher than the time the frames