summaryrefslogtreecommitdiffstats
path: root/libhb/scan.c
Commit message (Collapse)AuthorAgeFilesLines
* libhb: remove duplicate title detection from scanjstebbins2009-07-301-27/+0
| | | | | | | | | Many timest the titles are not really duplicate. The detection logic only checked that they used the same sectors of the disc, but there are many other things that can make the titles different. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2737 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - mingw fixes to use fopen() with 'b' flag.konablend2009-06-061-1/+1
| | | | | | | - include pthread.h for pthread_win32 attach/detach decls. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2495 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Soft Subs Part 2: Auto-detect CC during scan, add CC to subtitle list in ↵eddyg2009-05-041-0/+1
| | | | | | title, if selected then CC's are extracted, MP4 Muxer will dump the subs to the log at the end of encoding. TODO: Translate PTS for buf->start to HB format, add MP4 subtitle track and subs during muxing. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2375 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Stage 1 Soft Subtitle Support - Allow multiple subtitle tracks to be ↵eddyg2009-05-041-2/+1
| | | | | | selected, and mark them for Render or Pass Through. No functional difference from the UIs, however in theory they could render multiple tracks - would be a dogs breakfast on screen though, and is untested. Have tested all normal operations from the UIs, including scanning. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2373 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: improve title scanningjstebbins2009-05-011-1/+1
| | | | | | | | | | | - 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
* add libdvdnav supportjstebbins2009-04-271-0/+4
| | | | | | | | | | | 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
* Remove unneeded preview files at the beginning of a scan.jstebbins2009-03-271-1/+1
| | | | | | | This prevents accumulation of potentially thousands of files during a session git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2282 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Organizes anamorphic parameters in a struct, requiring some minor search and ↵jbrjake2009-01-261-4/+4
| | | | | | replace changes in the interfaces. Folds the logic for strict anamorphic mode into hb_set_anamorphic_size() and also stakes out a new, more customizable mode 3. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2097 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Get previews from H.264 content even if it's missing IDR frames (e.g., NZ TV ↵van2009-01-101-0/+26
| | | | | | | | | | | | & some blu-rays): - Grab stream characteristics (IDRs or not, PCRs or not, RAPs or not) while we're reading to compute the duration rather than trying to guess with no information later. - Only wait for an IDR after a seek if we know the stream has IDRs. Even then, wait for at most 255 frames. - If the stream doesn't have IDRs tell scan (via a new flag in the title struct) so that it can read but discard a second's worth of frames to get the decoder in sync withe stream. - While we're trying to sync the decoder, ffmpeg will spit out dozens of useless error messages so suppress them. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2071 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix some floating point rounding errors in aspect ratio calculationsjstebbins2008-12-051-3/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2009 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - allow titles with video but no audio.van2008-12-021-9/+4
| | | | | | | - don't throw away previews just because we hit eof while trying to find audio info. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1993 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Adds two new parameters to hb_scan, to control the number of preview frames ↵jbrjake2008-11-301-23/+35
| | | | | | | | generated during scan, and whether or not they're written to disk for later display. This will break any interfaces that use hb_scan until the new params are specified...sorry. Also adds a new job->seek_points setting (set this to the same as the number of previews) to be used with job->start_at_preview when doing live preview encodes, so the seek function has a frame of reference. Wires up the CLI with a --previews option (long option only) to control the new scan parameters, and defaults the CLI to not writing previews to disk. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1970 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - add John A. Stebbins' changes to handle TrueHD and DTS-HD multiplexed ↵van2008-11-251-8/+1
| | | | | | | | | | streams. - give transport streams their own demuxer rather than constructing fake PS packets to use the DVD demuxer. - start re-doing the transport stream code so it does fewer memory to memory copies. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1953 b64f7644-9d1e-0410-96f1-a4d463321fa5
* ETSI TS 102 366 V1.2.1 compliant AC3 in MP4, replaces older hacked version ↵eddyg2008-10-291-0/+2
| | | | | | that was hardcoding the AC3 stream information in the dac3 atom based on the AppleTV startup movie stream. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1879 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Adds a logging message to let the user know when a title is being ignored ↵jbrjake2008-10-181-0/+1
| | | | | | due to having no audio, since it seems to mystify some people. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1845 b64f7644-9d1e-0410-96f1-a4d463321fa5
* After discussion with eddyg, extending verbose logging level 2 from just ↵jbrjake2008-10-091-3/+3
| | | | | | memory-related logging to general-purpose housekeeping--stuff that isn't necessary when scrolling through activity logs users submit with bug reports and support queries. This includes things like thread start/exit messages and preview frames. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1820 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Sorry - just fix the indentation in 1626 that Xcode stuffed up.eddyg2008-08-121-3/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1627 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't crash HB when the video decoder (MPEG2 or ffmpeg) doesn't understand ↵eddyg2008-08-121-1/+10
| | | | | | the format of the input and so therefore doesn't populate vid_info. Just skip that preview instead. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1626 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - change aspect from a scaled int to a double so we can handle the widervan2008-08-081-22/+28
| | | | | | | | | | | | | | | | | | | range of aspect ratios we get from ffmpeg files. - add container_aspect to title struct (always zero except for DVDs when it's the aspect from the VTSI). To handle broken French DVDs, make HB complain & use the container aspect if it's different from the aspect computed from the video PAR. - fix ScanFunc's job template init so that it doesn't think the only legal aspect ratios are 16:9 & 4:3. - hb_reduce wouldn't reduce any fraction where both terms were equal and prime (e.g., 2/2, 3/3, 5/5, etc. would not become 1/1). Recoded it using Euclid's Algorithm so it always works and is faster. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1616 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Splits the display of job settings off from the actual work of beginning of ↵jbrjake2008-08-011-0/+2
| | | | | | | | a job, and reorganizes/elaborates the display's layout. Adds new title variables to provide more description of sources: video_codec_name, video_bitrate (currently only used by DVD sources), and container_name and data_rate (currently only used by ffmpeg input sources). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1599 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Cropping fix for matted content that has a border top & bottom (rather than ↵van2008-07-041-14/+38
| | | | | | just on the top). Fixes problem from forum post http://forum.handbrake.fr/viewtopic.php?p=37064&sid=1a6b16b9a89cf7c26d9ff4f0c3b1823a#p37064 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1556 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't let cropping get fooled by dark content - make sure that we only crop ↵van2008-06-231-16/+56
| | | | | | a row or column if all pixels are within one quantization level of average value & average value is within one level of black. (fix for bug discussed in http://forum.handbrake.fr/viewtopic.php?f=12&t=6335) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1532 b64f7644-9d1e-0410-96f1-a4d463321fa5
* New cropping algorithm - determine cropping rectangle from a median filter ↵van2008-06-121-43/+123
| | | | | | run across all the preview frames. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1507 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - add pixel_aspect_ratio reporting to the mpeg decodervan2008-06-041-67/+98
| | | | | | | | - try lots harder to extract a useful video frame rate from libavcodec (successful for more files but still get junk from wmv's). - save all video parameters while we're getting previews then use the set we've seen most frequently as the parameters of the title. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1490 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Keep track of the input pixel aspect ratio as well as the output one. ↵jbrjake2008-06-041-23/+47
| | | | | | Hopefully doesn't break anything. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1489 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Use index+1 for numbering interlaced previews, so realityking doesn't get ↵jbrjake2008-06-021-1/+1
| | | | | | confused. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1487 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - support blu-ray, avchd & dvb x264van2008-05-311-324/+130
| | | | | | | - support video files handled by ffmpeg (avi, mkv, mp4, etc.) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1480 b64f7644-9d1e-0410-96f1-a4d463321fa5
* git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1471 ↵jbrjake2008-05-291-1/+1
| | | | b64f7644-9d1e-0410-96f1-a4d463321fa5
* Allow the user to directly set a pixel aspect height and width, instead of ↵jbrjake2008-05-131-2/+2
| | | | | | | | | | using the autodetection in strict and loose anamorphic. This allows rescaling 1:1 PAR material to be anamorphic. To use in an interface, simply set job->pixel_ratio to 3, job->height and job->width to the desired output size, and job->pixel_aspect_height and job->pixel_aspect_width to the desired PAR. For now this is only for really advanced users who know what numbers they want for those values. Controlled through the CLI as optional arguments to -P. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1459 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Move clock recovery code from reader to demuxmpeg so it sees all frames & ↵van2008-04-151-1/+1
| | | | | | not just the ones we happen to be encoding. This change gives a more accurate clock and allows us to once again ignore audio during pass 1 of a 2 pass encode. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1420 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Saearch & Replace domain names to move from .m0k.org to handbrake.fr. Only ↵jbrjake2008-04-151-1/+1
| | | | | | covers trunk files, libhb, and test. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1418 b64f7644-9d1e-0410-96f1-a4d463321fa5
* scan and pcm audio fixes.van2008-04-021-234/+302
| | | | | | | | | | | | | | - lpcm audio fixed to handle 24 bit & interpret header correctly. - get aspect ratio from libmpeg2 rather than doing it ourselves. - announce when aspect ratio changes during preview scan. - if aspect ratio isn't either 4:3 or 16:9 complain & map to either 4:3 or 16:9 (whichever is closest). - start stream previews from file position 0 rather than 1/11 in case there's only on mpeg sequence header in the file. - don't give up on a file just because we can't get a preview due to a missing sequence header - only give up if we can't get any previews. - get audio bitstream characteristics during preview in a uniform way (we were treating PCM & MPEG audio specially which resulted in not getting their sample rate which caused a divide by zero in sync). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1370 b64f7644-9d1e-0410-96f1-a4d463321fa5
* New internal audio handling.saintdev2008-04-011-65/+58
| | | | | | | | Each audio track contains it's own settings for codec, bitrate, samplerate, etc. This allows for very complex combinations of audio tracks if desired. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1365 b64f7644-9d1e-0410-96f1-a4d463321fa5
* = Adds an hb_detect_comb() function that indicates whether or not a frame ↵jbrjake2008-03-231-2/+23
| | | | | | | | | shows interlacing artifacts. - Utilitizes that function in scan.c to analyze the preview frames - Sets a new title->detected_interlacing variable to true if half or more previews show combing, and warns the user in the log. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1359 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix two of my stupid bugs that prevented using the queue with transport streams:van2008-03-201-1/+1
| | | | | | | | - keep a cache of the pid/substream id mappings from each scan rather than assuming an encode will immediately follow a scan (there will be lots of scans followed by lots of encodes when the queue is used). - rewrite a few things to get rid of static variables. hb_ts_stream_decode is called by both scan & reader and they're in different threads. All the working storage & state has to either be in the stream struct or on the stack so it's private to the calling thread or it gets corrupted when doing a scan in the middle of an encode. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1351 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Oops - left in a mistake from an intermediate version. We want aspect ratio ↵van2008-03-011-1/+1
| | | | | | from all previews but crop from only frame two (otherwise we'll crop down to nothing if there's a preview with a lot of black). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1323 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't crash while scanning when we can't get previews for some title.van2008-02-291-13/+23
| | | | | | | | | - if we get no previews for some title, ignore the title - use the most common aspect ratio found from our 10 previews rather than just the aspect of preview 2 (otherwise we'll crash in hb_fix_aspect if we don't get preview 2). - check parameters in hb_fix_aspect so we don't divide by zero. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1322 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Formatting: Remove a lot of trailing whitespace.saintdev2008-02-211-22/+22
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1307 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Program Stream Enhancements - Van: Libhbdynaflash2007-12-311-11/+6
| | | | | | | | | | | - Thanks Van ! - Identifies program streams by type instead of file extension - Improves proper duration reporting of program streams - fixes audio reconvergence code in libhb/sync.c trying to free a null buffer causing a crash - Assorted other enhancements to encoding program streams. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1155 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Warning message had preview number out by one.eddyg2007-09-191-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@974 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't discard titles during scan just because of a read failure on one or ↵eddyg2007-09-191-3/+6
| | | | | | more of the previews. The missing previews are handles OK when you try to view them in the preview window. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@973 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Make the auto-fps selected rate stickyeddyg2007-08-301-3/+15
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@900 b64f7644-9d1e-0410-96f1-a4d463321fa5
* "Same as source" changes. Old behavior: mark all NTSC content as 23.976. New ↵jbrjake2007-08-131-6/+36
| | | | | | | | | behavior: mark all NTSC content as 29.97, only use 23.976 when scanning shows a title reporting itself as mostly progressive. Also threw in a bunch of commented out logging messages for diagnostic usage. And notification during encodes when progressive flags go on or off (only works in jam builds until the contrib binary packs get rebuilt). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@799 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Implement transport and program stream support. With these changes it's now ↵awk2007-07-041-20/+79
| | | | | | possible to open a .ts or .mpg files and transcode to standard Handbrake Output files. This fixes Ticket #21. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@648 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Updated the input channel layouts to store the source LFE information as ↵maurj2007-05-061-10/+14
| | | | | | | | | well as the non-LFE layout. This is so muxavi.c can output the correct channel count for AC3 passthru for all AC3 sources. Updated Controller.mm, scan.c and work.c to use these revised layouts. Added a new property to the work object, to remember the source audio codec for audio work objects. This enables encfaac to detect an 6-channel AC3 source to apply the QuickTime 6-channel audio mapping (as opposed to a DTS source, which doesn't need it). Fixed the Dolby Pro Logic I/II downmix mappings in libdca and updated the libdca patch. Uploaded a new set of pre-built darwin contribs (0014) with this patch applied. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@570 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Enabled DTS channel mixdowns by moving to a more generic input channel ↵maurj2007-05-041-92/+69
| | | | | | layout set of constants. Updated Controller.mm to use these generic input layout constants when deciding which mixdowns to offer. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@565 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Added support for DTS audio. DTS audio streams (of 5.1 audio and below) ↵maurj2007-05-021-89/+202
| | | | | | | | | will be detected and decoded. This requires a new library - libdca (and patch) - which is included (in patched form) in a new version of the pre-built UB Darwin contribs (0012). These have been uploaded to download.m0k.org/handbrake/contrib/ . I haven't yet added any code to Controller.mm to recognise the DTS streams as supporting mono / 6ch DPL1 / DPL2 downmixes. Note: running Jam on the new library required me to update some tools on Mac OS X - possibly libtool, autoconf, automake. Not sure which made the difference, but these were the ones I updated. it won't jam successfully without this. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@559 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Cleaning up some compiler warnings.clee2007-04-151-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@508 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Updated the Mac GUI to use the new audio mixdowns. This means that the Mac ↵maurj2007-04-121-1/+4
| | | | | | | | | | | | | GUI now supports Dolby PRo Logic 2 mixdowns! The Audio tab now has two mixdown NSPopUpButtons, which are set to display all of the possible mixdowns for the current input audio codec / output audio codec / input audio channel configuration. A mixdown of HB_AMIXDOWN_DOLBYPLII is used by default (or the next best mixdown if this isn't possible). Ideally this will become a prefs option to specify your choice of default audio mixdown. For AC3 passthru, a single mixdown of "AC3 Passthru" is displayed. I've had to update the Xcode project file, to make the Handbrake target look for headers in the "../contrib/include" folder too. This is so that it can find the a52 headers which are now used by Controller.mm. I've added an ac3flags property to hb_audio_s, to enable us to access the source ac3 flags outside of libhb. This is set in scan.c for each source audio. I've updated hb_mixdown_s and the hb_audio_mixdowns[] to include the CLI "short name" version of the mixdowns too, ready for the Mac GUI "default mixdown" prefs saving / loading. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@497 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Added libhb and CLI support for Dolby Pro Logic II 5.0 matrix encoding. ↵maurj2007-04-111-12/+49
| | | | | | | | *NOT YET ADDED TO THE GUI*. Handbrake now uses a more general "audio mixdown" concept. For each audio track to be converted you specify a mixdown. These are defined in common.h. This checkin only allows you to specify one mixdown for all tracks in the CLI, although everything is in place internally to specify a different mixdown per track. In the CLI, the "-6 --surround" option has been repurposed as a "-6 --mixdown" option, with a string parameter of mono/stereo/dpl1/dpl2/6ch. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@494 b64f7644-9d1e-0410-96f1-a4d463321fa5