summaryrefslogtreecommitdiffstats
path: root/libhb/dvdnav.c
Commit message (Collapse)AuthorAgeFilesLines
* Rework filter pipelinejstebbins2012-03-271-10/+12
| | | | | | | | | | | | | | | | | | | | This patch enhances the filter objects. The 2 key improvements are: 1. A filter can change the image dimensions as frames pass through it. 2. A filter can output more than one frame. In addition, I have: Moved cropping & scalling into a filter object Added 90 degree rotation to the rotate filter Moved subtitle burn-in rendering to a filter object. Moved VFR/CFR handling into a framerate shaping filter object. Removed render.c since all it's responsibilities got moved to filters. Improves VOBSUB and SSA subtitle handling. Allows subtitle animations. SSA karaoke support. My apologies in advance if anything breaks ;) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4546 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix for DVD's that have broken udf filenamesjstebbins2011-09-261-3/+20
| | | | | | | | | A new obfuscation technique it to add UDF-16 filenames that have junk in the high byte and things like "VIDEO_TS.IFO" in the low byte. libdvdread throws away the high byte which results in references to the bogus copy of the file. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4252 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: improve dvdnav main feature detectionjstebbins2011-07-101-106/+145
| | | | | | | | | Add detection of fake menus. Some menus have very short duration and/or are hidden from the user by making the hightlight transparent. These menus can lead to invalid titles if traversed, so ignore them. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4096 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: improve dvdnav main feature detectionjstebbins2011-07-091-68/+76
| | | | | | | | Improve detection of fake titles that are transitioned through on the way to the real title when a menu button is pressed. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4095 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix crash when scanning True Gritjstebbins2011-07-081-3/+6
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4090 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix a couple small memory leaksjstebbins2011-07-071-3/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4088 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: when doing main feature search, skip prohibited buttons.jstebbins2011-07-061-33/+41
| | | | | | | | | | | | There is a field in the prohibited user operations PCI flags that says when the user can push buttons. If they are prohibited, we shouldn't push them when searching for the main feature since they would not be accessible on a dvd player. This fixes selection of "fake" titles on some discs. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4085 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: add some logging to main feature searchjstebbins2011-07-061-11/+33
| | | | | | | | | This lets us see in the logs if it finds a root menu title, a title menu title, or falls back to using the longest title. Log level 2 must be enabled to see these. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4084 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add DTS-HD passthru \o/jstebbins2011-06-141-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4055 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add support for TrueHD and DTS-HD from BD sourcesjstebbins2011-04-221-13/+23
| | | | | | | | | | | | | | TrueHD and DTS-HD now show up in the audio list along side their AC-3 and DTS counterparts. Note that currently the DTS-HD decoder we are using (ffmpeg) discards the HD portion of the stream and onle decodes the DTS core portion. So there is no advantage yet to using the DTS-HD stream. In the future I would like to add DTS-HD passthru support and hopefully ffmpeg will improve their DTS-HD decoder. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3950 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Make logging of audio and subtitle id's more consistantjstebbins2011-04-021-2/+2
| | | | | | | | | | | | 1) whenever we log audio->id or subtitle->id using hex formatting, precede the hex with 0x (which was already done in some places but not others) 2) format audio->id as hex instead of decimal in sync.c (makes it much easier to see which track "went backwards" or had silence added to it, checking the job configuration logged by work.c) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3898 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Improve loop detection in dvdnavjstebbins2011-02-111-0/+11
| | | | | | | | Loops in titles of only a single chapter were not being detected. We now also check the cell number for loops. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3796 b64f7644-9d1e-0410-96f1-a4d463321fa5
* [libhb] Change bad block handling using libdvdread to scan forward foreddyg2010-11-301-1/+1
| | | | | | | | | | good blocks instead of jumping to the end of cell after encountering bad blocks. Changed handling of libdvdnav to not abort after just 10 failures, however it will still jump to end of cell, I couldn't see how to scan forward for good blocks. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3695 b64f7644-9d1e-0410-96f1-a4d463321fa5
* log the title duration before throwing it out when it's too shortjstebbins2010-11-051-9/+9
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3649 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add Bluray supportjstebbins2010-09-081-8/+8
| | | | | | | | | | | | | | | | | | Unencrypted BD directory trees only. Doesn't support iso images. Also, no PGS subtitle support yet. Chapters and angles are supported. Adds a new contrib libbluray. Adds new option to hb_scan() for duration of short titles to filter. This applies to BD and DVD multi-title scans only. Does not apply to any single title scans. Fixes memory leak during scan. hb_buffer_close() was not freeing all buffers in a chain of buffers passed to it. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3510 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Support for reading VOB subtitle tracks from file inputs initital ↵dynaflash2010-05-201-4/+4
| | | | | | | | | | | | | | implementation. - Patch by davidfstr, Nice Work! - Adds support for reading VOB subtitle tracks from file inputs. Tested with: - MKV VOB -> MKV VOB passthru. - MKV VOB -> MKV VOB burned in. VOB subtitle palette moved from per-title to per-track. Discussion leading up to commit can be referenced here: http://forum.handbrake.fr/viewtopic.php?f=4&t=16267 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3308 b64f7644-9d1e-0410-96f1-a4d463321fa5
* speed up main feature search in most circumstancesjstebbins2010-04-201-209/+284
| | | | | | | and fix a couple more corner case titles. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3246 b64f7644-9d1e-0410-96f1-a4d463321fa5
* add dvd main feature title detectionjstebbins2010-04-201-3/+422
| | | | | | | | | | | | scans the dvd menus and presses buttons to see where they might lead. when a button press leads to a title, i check to see if it is the longest seen thus far and save it's index. this only applies when dvdnav is enabled. when dvdread is in use, the longest title of all the titles is flagged as the "main feature" git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3245 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix some dvdnav hangsjstebbins2010-04-171-0/+18
| | | | | | | | | | title changes seem to confuse the vm sometimes. so do a dvdnav_reset whenever a title change is going to happen. Also, fix dvdnav_reset since it would deadlock on a mutex when called. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3240 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: fix seeking on some dvds that use multiple pgc's in a titlejstebbins2010-02-061-2/+7
| | | | | | | | The code that was in place to handle this did not allow for the possibility that there could be sector gaps between the segments git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3098 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix dvdnav read error retry jstebbins2009-12-101-1/+1
| | | | | | | | | the error count was being reset on dvdnav events that didn't involve any actual reading. So we got caught in an very long loop alternating between read failures and valid events. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3022 b64f7644-9d1e-0410-96f1-a4d463321fa5
* batch file scanning and scan canceljstebbins2009-11-251-0/+1
| | | | | | | | | | When a directory is specified as the source, first we attempt to open as a dvd, then if that fails, we attempt to open each file in the directory as a stream source. Since opening a large directory of files can take a really long time, you can also now cancel a scan. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2980 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Rate limit hb_error() messages to at most 1 message per second of the same ↵eddyg2009-11-241-3/+3
| | | | | | | | | | | | message. Repeats will be counted and presented as a count when 1 second has elapsed since the first error of a sequence, or an error message with a different string. Also modified dvdnav to use hb_error() to take advantage of the limiting. This works around a real bug from dvdnav where the Mac GUI becomes unresponsive during the output of large numbers of errors. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2971 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Allow dvd sources that have no audiojstebbins2009-09-141-6/+0
| | | | | | | | Removed the code that dropped titles if there was no audio. Do not add a default audio track in the CLI if there are no audios in the source git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2822 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: read error recoveryjstebbins2009-09-121-1/+15
| | | | | | | | | - patch libdvdnav seek to guarantee the position will move forward when making a seek request to a position that is after the current position - when a read error is detected, seek forward and retry. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2815 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: DVD drive region detection on linuxjstebbins2009-07-091-0/+11
| | | | | | | | | Read and log the region mask of the DVD drive. We get the occasional linux user that has an unset region. Logging the region will help isolate the problem more quickly. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2675 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: jstebbins2009-06-291-15/+1
| | | | | | | | | - revert read error recovery Attempting to seek one sector forward doesn't work. dvdnav rounds the seek request *down* to the nearest vobu. So the seek actually goes backwards. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2644 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: add read error recoveryjstebbins2009-06-281-1/+15
| | | | | | | | - a single read error was causing early encode termination. try to continue reading at next sector on an error. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2639 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - cleanup gcc format warnings showing up on linux 64-bitkonablend2009-06-251-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2619 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Format cleanup.konablend2009-06-251-1/+1
| | | | | | | | | | - fixed ports.c to use a more portable method of getting integral pthread_t representation; resolves mingw crash. - added GCC attribute to generate compiler warnings for invalid usage of hb_log, hb_deep_log and hb_errror; see new macro HB_WPRINTF(s,v) in common.h. - fixed various invalid usage of above functions on osx i386/x86_64, and mingw. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2618 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - fixed gcc warnings for various unused vars, implicit function decls, ↵konablend2009-06-241-0/+1
| | | | | | signedness. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2612 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: oops. initialize d->chapter to 0 instead of first chapterjstebbins2009-06-131-1/+1
| | | | | | | otherwise, we don't get the initial chapter marker event git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2528 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: fix title scanning issuejstebbins2009-06-131-0/+1
| | | | | | | | | d->chapter needs to be initialized in hb_dvdnav_start. chapter loop detection was triggering on chapters from previous title scans git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2527 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Some DVD titles end with a 'link' command back to the beginning chapter ↵van2009-06-081-1/+9
| | | | | | which makes HB encode forever. If we move to an earlier chapter say we're done. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2499 b64f7644-9d1e-0410-96f1-a4d463321fa5
* softsubtitles:jstebbins2009-06-021-1/+1
| | | | | | | | | | | | | | | | | | - when doing an indepth scan, do not scan CC tracks - separate subtitle configureation attributes into separate hb_subtitle_config_t. Add an instance of this to hb_job_t for setting the attributes of the subtitle found through an indepth scan - Add a default_track flag to hb_subtitle_config_t that tells the muxer that the track should be flaged as the default. muxmkv uses this. - When an indepth scan is complete, check to see if the autoselected subtitle matchces (by id) one of the manually selected subtitles. If a match is found, the autoselected subtitle with all the attributes the user assigned to it replaces the manually selected subtitle. - LinGui: Add "Default" column to subtitle tab. This is a radio that lets the user choose which subtitle should be displayed by default. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2468 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: fix crash that occurs when a PGC has no programs jstebbins2009-05-291-0/+11
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2457 b64f7644-9d1e-0410-96f1-a4d463321fa5
* mkv soft subtitle supportjstebbins2009-05-191-0/+4
| | | | | | | | | | | | | - new libmkv 0.6.4 with subtitle track support - muxmkv supports vobsub and closed caption subtitles - added subtitle format, source, and dest initialization to dvdnav - moved subtitle_force flag into hb_subtitle_t struct as it needs to be settable per subtitle - gtk ui added subtitle tab which allows selection of multiple subtitles - reorgainize subtitle sync code to prevent dropping of subtitles when multiple subtitles are enabled git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2428 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - I confused max program chains (999) with max programs (99) and made loop ↵van2009-05-161-11/+27
| | | | | | | | | detection array too small. Thanks to JAS for pointing out the problem! - Fix bonehead error in pgc-relative offset calculation that broke seeking for titles with one pgc (e.g., almost everything). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2423 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - Handle titles that use more than one PGC (like the one in this thread: ↵van2009-05-161-60/+47
| | | | | | | | | | http://forum.handbrake.fr/viewtopic.php?f=5&t=10678&p=55575&hilit=genesis#p55620). - Make pgcn_map local rather than static since there can be simultaneous scans from both GUI and queue service threads and statics aren't thread safe. Also make map 32 bytes since standard allows only 255 PGCs per title. - Fix minor bugs in NextPgcn (used pgcn rather than next_pgcn so tested wrong bit) and dvdnav_seek (missing 'break' & extraneous 'while'). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2420 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: improve title scanningjstebbins2009-05-011-153/+284
| | | | | | | | | | | - looks for ptt with longest pgc sequence instead of just picking first ptt solves many 'short title' problems - constructs chapters from the pg's within the pgc's instead of using ptt's solve the problem of ptt's that point to an intro pgc instead of to the actual chapter position in the title. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2361 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: fix problem with vm entering stopped statejstebbins2009-04-291-0/+64
| | | | | | | | when the vm enters the stopped state, there's no way to recover you must close and re-open dvdnav. dvdnav_reset() doesn't help. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2360 b64f7644-9d1e-0410-96f1-a4d463321fa5
* add libdvdnav supportjstebbins2009-04-271-0/+1097
emulates the vm of a dvd player in order to navigate the disc more reliably it is optional and disabled by default CLI option '--dvdnav' enables. GUI's have a new option in preferences. When dvdnav is enabled, you can also select angles (cli '--angle') git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2355 b64f7644-9d1e-0410-96f1-a4d463321fa5