Skip to content
Snippets Groups Projects
Commit 1c4ba206 authored by Steve Lhomme's avatar Steve Lhomme
Browse files

contrib: dvdnav: turn assert+exit into silent discard

This fixes playback on some bogus DVDs.

(cherry picked from commit ef256ba8)
parent 9342d4c9
No related branches found
No related tags found
1 merge request!6738[3.0] contrib: dvdnav: turn assert+exit into silent discard
Pipeline #560997 passed with stages
in 21 minutes and 57 seconds
From ff8676289c227d03293f63152d327b2a16775eea Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Fri, 24 Jan 2025 13:34:52 +0100
Subject: [PATCH 1/2] play: avoid assert and exit and bogus PG link
Just return LinkNoLink.
---
src/vm/play.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/vm/play.c b/src/vm/play.c
index 8830883..e5d0e72 100644
--- a/src/vm/play.c
+++ b/src/vm/play.c
@@ -177,7 +177,11 @@ link_t play_PG(vm_t *vm) {
Log3(vm, "play_PG: (vm->state).pgN (%i) > pgc->nr_of_programs (%i)",
(vm->state).pgN, (vm->state).pgc->nr_of_programs );
#endif
- assert((vm->state).pgN == (vm->state).pgc->nr_of_programs + 1);
+ if((vm->state).pgN > (vm->state).pgc->nr_of_programs + 1) {
+ /* bogus link, ignore it */
+ link_t link_values = { LinkNoLink, 0, 0, 0 };
+ return link_values;
+ }
return play_PGC_post(vm);
}
--
2.45.0.windows.1
From 43d76f9a0136fb244662e59876d87c7256df27c4 Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Fri, 24 Jan 2025 13:39:11 +0100
Subject: [PATCH 2/2] play: avoid assert and exit and bogus Cell link
Just return LinkNoLink.
---
src/vm/play.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/vm/play.c b/src/vm/play.c
index e5d0e72..a9d99fa 100644
--- a/src/vm/play.c
+++ b/src/vm/play.c
@@ -203,7 +203,11 @@ link_t play_Cell(vm_t *vm) {
Log3(vm, "(vm->state).cellN (%i) > pgc->nr_of_cells (%i)",
(vm->state).cellN, (vm->state).pgc->nr_of_cells );
#endif
- assert((vm->state).cellN == (vm->state).pgc->nr_of_cells + 1);
+ if((vm->state).cellN == (vm->state).pgc->nr_of_cells + 1) {
+ /* bogus link, ignore it */
+ link_t link_values = { LinkNoLink, 0, 0, 0 };
+ return link_values;
+ }
return play_PGC_post(vm);
}
--
2.45.0.windows.1
......@@ -20,6 +20,9 @@ $(TARBALLS)/libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2:
dvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2 .sum-dvdnav
$(UNPACK)
$(APPLY) $(SRC)/dvdnav/0001-configure-don-t-use-ms-style-packing.patch
# turn asserts/exit into silent discard
$(APPLY) $(SRC)/dvdnav/0001-play-avoid-assert-and-exit-and-bogus-PG-link.patch
$(APPLY) $(SRC)/dvdnav/0002-play-avoid-assert-and-exit-and-bogus-Cell-link.patch
$(call pkg_static,"misc/dvdnav.pc.in")
$(MOVE)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment