summaryrefslogtreecommitdiffstats
path: root/libhb/muxmp4.c
Commit message (Collapse)AuthorAgeFilesLines
* Add parameter parsing and b-frame support to ffmpeg mpeg-4 encoderjstebbins2011-03-111-4/+8
| | | | | | | | | | | | | The cli will now accept ':' separated parameters using the '-x' option for ffmpeg mpeg-4. The linux gui has an entry box on the advanced tab to add options. The option keys and values are the same as what the ffmpeg command line allows. Calculation of DTS timestamps was added to encavcodec.c in order to allow out of order b-frames. The algorithm is similar to what x264 uses. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3839 b64f7644-9d1e-0410-96f1-a4d463321fa5
* clean up crufty legacy codejstebbins2010-10-231-1/+1
| | | | | | | remove unused code relating to avi, ogm, psp, ipod, and forcing h264 levels git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3622 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix detectsion of bitrate_code for ac3 passthru in mp4jstebbins2010-10-091-1/+1
| | | | | | | | ac3 passthru and encode are slightly different since audio->config.in.bitrate is in bps and audio->config.out.bitrate is kbps git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3587 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix detection of sr_code and bitrate_code for ac3 streams in mp4jstebbins2010-10-091-14/+10
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3586 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add ac3 encodingjstebbins2010-10-041-85/+131
| | | | | | | Uses ffmpeg's ac3 encoder. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3570 b64f7644-9d1e-0410-96f1-a4d463321fa5
* preserve vobsub palette, width, and height from mkv and mp4 vobsub tracksjstebbins2010-05-301-1/+1
| | | | | | | Thanks to davidfster for mp4 palette addition. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3337 b64f7644-9d1e-0410-96f1-a4d463321fa5
* add support for Nero vobsubs in mp4jstebbins2010-05-241-0/+73
| | | | | | | | | | | Note that these do not work with any apple products that I know of. Perian might be able to do something with them. MPlayer and VLC both grok nero vobsubs. libhb, cli, and lingui updated. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3325 b64f7644-9d1e-0410-96f1-a4d463321fa5
* improve lame audio quality by using ABR mode and disabling joint stereo modejstebbins2010-03-141-1/+28
| | | | | | | add mp3 muxing into mp4 container. cli and gtk gui now support this. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3167 b64f7644-9d1e-0410-96f1-a4d463321fa5
* use DTS generated by x264 when computing duration and offset in muxmp4jstebbins2010-02-061-20/+77
| | | | | | | | also fix an issue where ffmpeg generated negative PTS for initial frames of video. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3097 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Align the subtitles at the bottom on iPod Classic/Nano.ritsuka2009-10-021-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2860 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Remove tx3g -1 bias for bold and underline, was part of testing, thanks to ↵eddyg2009-09-281-2/+2
| | | | | | Rodeo. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2848 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix soft sub tx4g markup to count multi-chr utf8 chrs as one chr. Also ↵eddyg2009-09-281-7/+45
| | | | | | merges italic markup if adacent. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2847 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix subtitle markup memory leakeddyg2009-06-301-5/+8
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2647 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Changed a log -> deep_log for markup processing.eddyg2009-06-301-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2646 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add markup for MP4 Subtitleseddyg2009-06-301-8/+223
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2645 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - cleanup gcc format warnings showing up on linux 64-bitkonablend2009-06-251-7/+7
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2619 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: for mp4 soft subtitles, mark the default_track as enabled.jstebbins2009-06-181-0/+27
| | | | | | | | Due to quicktime quirkiness, if no track is marked as default, we enable the first subtitle track. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2567 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
* - bump to mp4v2-trunk-r349.konablend2009-05-231-11/+15
| | | | | | | | | - muxmp4.c minor updates to recent subtitle API changes. - muxmp4.c do not set zero-length tags. - renamed module libmp4v2 -> mp4v2. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2446 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - Fixed the size for tx3g samples in muxmp4.c I forgot to add the size of ↵ritsuka2009-05-081-17/+22
| | | | | | | | | | the string byte count to the total sample size. - Small fixes in deccc608sub.c, trim null characters away. - Moved the duration time from hb_mux_object_s to hb_mux_data_s so that multiple subtitle tracks can be muxed with interference. - Uses par to calculate the subtitle track width so that It will be the same as the video track. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2406 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix timestamps on CC's they are now 100% ready and working. Thanks to j45 ↵eddyg2009-05-081-3/+2
| | | | | | and ritsuka for their assistence in getting soft subs finally in HB. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2403 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Combine multiple CC lines into one, trimming whitespace, and adding proper ↵eddyg2009-05-071-4/+11
| | | | | | language code based on first audio track language. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2402 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Soft Subtitle Support in the MP4 Muxer.ritsuka2009-05-071-6/+91
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2400 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Minor change in sub printingeddyg2009-05-061-1/+4
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2395 b64f7644-9d1e-0410-96f1-a4d463321fa5
* subtitle muxing: jstebbins2009-05-061-40/+27
| | | | | | | | | | initialize mux_data for passthru subtitles in muxmp4 and muxmkv add non-continuous tracks for passthru subtitles in muxcommon log closed caption data that gets to the muxer git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2393 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix Closed Caption start/stop times, switched to SRT encoding including ↵eddyg2009-05-061-1/+1
| | | | | | markup for text subs internal to HB. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2392 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Push an EOF onto the subtitle fifos from the reader for DVD VOBSUBs and also ↵eddyg2009-05-061-6/+16
| | | | | | from cc608 for closed captions git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2388 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Rewrite pass-through timestamps in sync, put on subtitle->fifo_out for ↵eddyg2009-05-051-32/+29
| | | | | | muxing. Also put the mp4 subtitle display inline with muxing - easy for ritsuka to put into a subtitle track ;) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2384 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Soft Subs Part 2: Auto-detect CC during scan, add CC to subtitle list in ↵eddyg2009-05-041-0/+32
| | | | | | 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
* - encx264 sets HB_FRAME_REF to expose ref/non-ref frame status to muxer.konablend2009-05-031-11/+66
| | | | | | | | - bump libmp4v2 r286 -> r290; required for new API (sdtp atom support). - use new API MP4WriteSampleDependency() in muxer to signal disposable frames and set a few other dependency bits for sdtp atom. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2371 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Leave video tracks on the 90KHz MPEG timebase so we don't end up with ↵van2009-04-231-66/+39
| | | | | | constantly varying frame sizes due to the sample rate conversion. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2350 b64f7644-9d1e-0410-96f1-a4d463321fa5
* bump libmp4v2 r224 ->r286; chunk duration; tags; cover-artkonablend2009-04-211-10/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | The major changes to libmp4v2 include the new Tags API for iTunes metadata management and new API to set track chunk duration limits. Additionally, the patches for libmp4v2 are no longer required and libmp4v2 should build significantly faster as it now enabled precompiled headers on various platforms. Tags API effects common.h, decmetdata.c and muxmp4.c and replaces the operations in a near 1:1 mapping for functionality except all access happens in between alloc/fetch and store/free pattern. libhb no longer checks the bits of cover-art in order to determine image type. That functionality is now delegated to libmp4v2; and libhb identify_art_type() has been removed accordingly. Chunk duration support has been added which makes use of new API from libmp4v2: MP4SetTrackDurationPerChunk( MP4File, MP4TrackId ); And muxmp4 adds new internal function MP4TuneTrackDurationPerChunk() which is invoked after all video/audio track creation which tunes chunk duration to the equivalent of 4-frames in track timescale; as per van's suggestion. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2347 b64f7644-9d1e-0410-96f1-a4d463321fa5
* BuildSystem: conversion from jam-based to make-based system.konablend2009-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | KNOWN ISSUES: 1. OSX + Xcode builds do not support parallel builds; attempting to use them may cause unbounded number of jobs. However, disabling via configure --disable-xcode avoids the issue. 2. OSX ppc binary produces binary which has audio-scan problems. 3. OSX ppc64 binary has not been runtime tested. ADDED: 00-BuildUserGuide.txt contrib/*/module.* doc/ make/ libhb/module.* test/module.* macos/module.* gtk/module.* DROPPED: BUILD BuildContribDarwin.sh DownloadMacOsXContribBinaries.sh Jamfile Jamrules MacOsXContribBinariesVersion.txt Makefile Makefile.config jam libhb/Jamefile libhb/Makefile test/BUILDSHARED test/Makefile contrib/Jamfile contrib/Makefile contrib/patch-ffmpeg.patch contrib/patch-x264-idr.patch contrib/patch-x264-linux.patch RENAMED: contrib/*.patch -> contrib/MODULE/[AP]??-*.patch macosx/HandBrake.plist -> macosx/Info.plist MODIFIED: libhb/decavcodec.c Patched to use cleaner include "libavcodec/audioconvert". Second part to support this cleanup is ffmpeg A02-audioconvert.patch . MODIFIED: libhb/hb.c MODIFIED: libhb/hb.h MODIFIED: libhb/muxmkv.c MODIFIED: libhb/muxmp4.c MODIFIED: libhb/update.c Patched to use "project.h" for project metadata. Renamed HB_BUILD -> HB_PROJECT_BUILD. Renamed HB_VERSION -> HB_PROJECT_VERSION. MODIFIED: test/test.c: Patched HandBrakeCLI to support I/O on Mac OS X ZFS filesystems. Reference r1803 as similar patch for HandBrake.app . Unpatched behavior is crash/buserror when using ZFS. MODIFIED: macosx/Growl.framework/ Upgraded 0.7.6 (i386,ppc) -> 1.1.2 (i386,x86_64,ppc,ppc64). New architectures facilitate x86_64 and ppc64 builds. MODIFIED: macosx/HandBrake.xcodeproj/ Bumped compatibilty mode from 2.4 -> 3.1 . Dumped old configurations Deployment, Developer. Added configurations standard, sebug as replacements. Added standard.i386, standard.x86_64, standard.ppc, standard.ppc64 . for explicit architecture build. All configurations settings cleaned up and normalized. Build output directories adjusted to support new build system. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2180 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Organizes anamorphic parameters in a struct, requiring some minor search and ↵jbrjake2009-01-261-3/+3
| | | | | | 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
* h.264 i frame shouldn't be marked as sync sample.ritsuka2009-01-121-1/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2077 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Always use the track samplerate as the timescale for audio tracks. This ↵ritsuka2009-01-111-2/+2
| | | | | | fixes a problem when creating an mp4 with multiple audio tracks that have different samplerate. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2074 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Remove some unused variablesritsuka2009-01-111-10/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2073 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Bumps mp4v2 to r224jbrjake2009-01-111-5/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2072 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add metadata support to libhb, add importing of MP4 metadata, add export of ↵eddyg2008-12-021-115/+43
| | | | | | MP4 metadata, add importing of MP4 chapters, add seek to chapter for input files, add new libmp4v2, remove old MP4 chapter muxing - now in libmp4v2. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1987 b64f7644-9d1e-0410-96f1-a4d463321fa5
* ETSI TS 102 366 V1.2.1 compliant AC3 in MP4, replaces older hacked version ↵eddyg2008-10-291-2/+103
| | | | | | 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
* Bumps libmp4v2 to r36, which fixes the problem with QuickTime reading ↵jbrjake2008-10-221-1/+1
| | | | | | non-H.264 video, and also features a snazzy new layout and build routine thanks to KonaBlend (which necessitated a minor change to the include path for muxmp4.c). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1859 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Adds a configuration option for whether the COLR atom and h.264 VUI header ↵jbrjake2008-10-191-1/+12
| | | | | | should signal Bt.601 or Bt.7709 color, instead of just setting it based on whether the source is standard or high definition (which is preserved as default, and made more sensitive to letterboxed HD content). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1851 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Bumps libmp4v2 to r21, which fixes that include issue by folding the old ↵jbrjake2008-10-151-1/+1
| | | | | | 5.5G iPod UUID atom into the library, as well as a typing issue with Linux systems. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1836 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Switches from mpeg4ip's copy of libmp4v2 to an independently-maintained one ↵jbrjake2008-10-151-24/+9
| | | | | | located at: code.google.com/p/mp4v2 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1833 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Only associate audio tracks with an alternate group if there's more than one ↵jbrjake2008-10-111-6/+8
| | | | | | audio track. That way the iPhone doesn't show the audio selection button when it isn't necessary. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1828 b64f7644-9d1e-0410-96f1-a4d463321fa5
* CLI: Add support for naming audio tracks to the HandBrakeCLI, thanks to ↵eddyg2008-10-101-8/+26
| | | | | | LePetomane for the patch. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1825 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
* Use PTS, not DTS, in encx264 output frames so we don't have to special-case ↵van2008-07-261-33/+38
| | | | | | its output in every muxer. Confine code that deals with Apple's mistakes in handling video with b-frames to muxmp4. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1582 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - in encx264, if an video frame is larger than init_delay split it into ↵van2008-07-261-33/+19
| | | | | | | | | | | | pieces so we don't get jerky output caused by out-of-order frames. - add an explicit EOF for all streams, not just video. - don't generate extra audio silence at the end of an encode (don't need it with explicit eof). - get rid of 80ms initial delay in AAC encode & flush final four frames buffered in encoder. - put mp4 'chap' atom on first track (usually video) rather than first audio track since we can now do video without audio (atom just needs to go on an enabled media track & video is always enabled). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1581 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix a crash when using mp4 and no audio tracks.saintdev2008-06-261-4/+10
| | | | | | | | Because there were no audio structs on list_audio, audio->config was attempting to dereference a NULL pointer. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1540 b64f7644-9d1e-0410-96f1-a4d463321fa5