On 05/22/2012 10:04 AM, John Stebbins wrote:
Hi,

I still lurk on the list. I'll pull your git and see if I can make it work cleanly in HandBrake. I'll also reformat any patches that haven't made it into your tree yet for you. This just hasn't been high on my priority list lately and I've been traveling *a lot*.

On 05/22/2012 01:52 AM, Erik Hovland wrote:
please consider applying the following patch originating from the
handbrake project:
<https://github.com/HandBrake/HandBrake/blob/master/contrib/libdvdnav/A08-dvdnav-dup.patch>

It adds two new functions, dvdnav_dup() and dvdnav_free_dup(), that
duplicate a dvdnav_t object and remove a duplicate from memory,
respectively - well, at least roughly.
After breaking this patch into 4 parts, I have add this patch to
my personal tree. As long as some people test this, I will have no
problem pushing this feature to svn before the next release.

You can find my personal tree here:
https://github.com/microe/libdvdnav

Thanks for bringing this patch to our attention again.

John - if you are out there, I have split this patch into
4 different pieces b/c the vm_stop/vm_close stuff is
separate from the dvdnav_dup change. If I stuffed anything
up, please let me know.

Thanks to John for originally writing this patch.

E



I tested your git. Works great. I also compared your git to my patchset. You have merged them all with the exception of part of one patch. Unfortunately, I now can not remember the circumstances under which this small patch was useful. I have a vague recollection that it was a rare corner case that I stumbled over, but it's been so long I really don't know. I'm attaching the patch if you have any interest in it. It was originally part of the patch to fix vm_reset problem.

diff --git a/src/dvdnav.c b/src/dvdnav.c
index abd43fd..65744bc 100644
--- a/src/dvdnav.c
+++ b/src/dvdnav.c
@@ -581,7 +581,8 @@ dvdnav_status_t dvdnav_get_next_cache_block(dvdnav_t *this, uint8_t **buf,
   }
 
   /* Check to see if we need to change the currently opened VOB */
-  if((this->position_current.vts != this->position_next.vts) ||
+  if((this->file == NULL) ||
+     (this->position_current.vts != this->position_next.vts) ||
      (this->position_current.domain != this->position_next.domain)) {
     dvd_read_domain_t domain;
     int32_t vtsN;
_______________________________________________
DVDnav-discuss mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/dvdnav-discuss

Reply via email to