johnallen [Sun, 14 Jan 2007 02:03:37 +0000 (02:03 +0000)]
added call to av_log_set_level in hb_init_real based on value of verbose param.
makes ffmpeg debbuging level the same as ours.
will be useful while finding the memory leak issue.
johnallen [Sun, 14 Jan 2007 01:26:22 +0000 (01:26 +0000)]
barber pole progress bar is shown during the "muxing" phase and no longer show 0.0%. applies to both HB and IHB
When we can figure out how to get a percent complete, we can use that.
IHB now uses same app icon as HB. Probably want to change the actual icon, but I wanted IHB to make use of the dock progress bar like in HB.
benlake [Wed, 10 Jan 2007 11:25:18 +0000 (11:25 +0000)]
- OSX GUI: the [Enable Queue] checkbox was not disabled by default. A user could click Cancel on the Open DVD menu, enable the queue, click Add to Queue and crash HandBrake. Also, it annoyed me being the only thing enabled :)
dynaflash [Mon, 8 Jan 2007 17:06:39 +0000 (17:06 +0000)]
Revert HB mac gui to m0k layout for impending 0.7.2 release.
Note: pri's language default combobox is also gone in this reversion for the preferences window. However, the underlying code for it is still retained in controller.mm.
johnallen [Mon, 8 Jan 2007 03:18:40 +0000 (03:18 +0000)]
added worker thread sleep throttling.
each of the work object threads now self adjust their sleep interval based on the "fullness" of their fifo.
80% is the choose threshold.
Work objects with a fifo fullness of greater than 80% increase their sleep interval.
This allows other work object with less than 80% fullness more CPU usage.
Also adjusted thread_func, reader, and muxer sleep intervals to more reasonable values.
johnallen [Sun, 7 Jan 2007 15:34:07 +0000 (15:34 +0000)]
added HB_STATE_MUXING to hb_state_s and corresponding structure.
this state indicates the transition from the end of HB_STATE_WORKING to the beginning of HB_STATE_WORKDONE.
This state can take as long a 10 minutes on a long conversion.
The associated working structure contains a progress float.
Once we determine how to get a proper progress from the call to av_write_trailer in libavformat, we can update this progress.
HB, IHB, and HBTest are now using using HB_STATE_MUXING to provided feedback to the user.
handbrake [Wed, 3 Jan 2007 01:11:09 +0000 (01:11 +0000)]
Changes to make HandBrake build on Windows using the Cygwin environment:
root configure file:
I added this to the "case $SYSTEM in" switch statement: CYGWIN_NT*) DEFINES="$DEFINES SYS_CYGWIN USE_PTHREAD" LINKLIBS="$LINKLIBS -lpthread" ;;
Also, for each existing OS type that is using -lpthread, I added USE_PTHREAD to their DEFINES. Then libhb/ports.c was changed to use pthread code based on the value of USE_PTHREAD, instead of checking each different OS value that used pthreading, so it's a bit easier to read and maintain.
root Jamfile:
Jam doesn't seem to understand CYGWIN, so $(OS) is defined as UNKNOWN. Check for this, and if this it true then set $(OS) to CYGWIN. Since CSS doesn't work (yet) on CYGWIN/Windows, I also changed Jamfile to not include libdvdcss.a in the library list for CYGWIN.
contrib/Jamfile:
For CYGWIN, don't build libdvdcss, and don't specify it's path for libdvdread. There are also a few changes to use new patchfiles for Cygwin for a few of the libraries.
x264:
Change configure script so that it doesn't include -mno-cygwin flags for CYGWIN platform. Created patchfile patch-x264-cygwin.patch for this, which is used by Jamfile. The -mno-cygwin flags cause the library not to link correctly with HBTest.exe. The -mno-cygwin flag is used to create an object file or library that doesn't depend on cygwin1.dll if you're using MinGW, but I'm not (yet).
libxvidcore:
Change configure script so that it doesn't include -mno-cygwin flags for CYGWIN platform. Change configure script so that it uses libxvidcore.a as the lib name instead of xvidcore.a for CYGWIN. Created patchfile patch-xvidcore-cygwin.patch that contains the 2 above changes and is used by Jamfile. Renamed patch-xvidcore.patch to patch-xvidcore-macosx.patch and updated Jamfile as appropriate -- an attempt to keep the patches being applied only when needed for a particular platform.
ffmpeg:
libavcodec/mpegaudiodec.c uses llrint(), which apparently isn't availble with Cygwin, so I changed the file to use lrint() which is available. llrint() returns a long long, lrint() returns a long. In the places where llrint() was being called, the return value of llrint() was being assigned to an element in an array of unsigned ints, so llrint() (long long) shouldn't be needed, and lrint() (long) should be fine. Created patchfile patch-ffmpeg-cygwin.patch that contains this change, and is used by Jamfile.
libhb/ports.c:
Commented out a number of things that were broken with the current SYS_CYGWIN code. The most notable change was to not use Windows threading for CYGWIN, and instead use pthreading. All the places where the OS type was being checked to determine whether or not to use pthreading were changed so that the USE_PTHREAD define is checked instead. There seems to be some problem with the Windows threading code in ports.c, because if I enable it then x264 encodes will either crash or lock-up HBTest.exe. Perhaps this is related to mixing threading models, since x264 is compiled with pthread support, and so maybe mixing pthread with Windows threading in the same process is a bad thing.
test/test.c:
Need to #include sys/time.h, time.h, unistd.h to compile.
handbrake [Tue, 2 Jan 2007 22:43:32 +0000 (22:43 +0000)]
by dynflash
Handbrake GUI:
-fixed ScanController so that HB doesnt crash if you try to open a dvd that isnt there.
-Uses DVD name as the default for Movie output (instead of the generic "Movie.mp4"
-Versioned 0.7.1a5 in in Handbrake.plist to assist testers and developers of HB binary in telling which one they are using.
handbrake [Tue, 2 Jan 2007 17:08:31 +0000 (17:08 +0000)]
dynaflash -
- Handbrake GUI redesign
- Separate Video, Audio, Subtitles into a Tab View containers to clean up main window
- Created "Output Settings Divider" to delineate Output Settings from Destination
Note: Possibly foresee another tab call "Info" which has all of the chosen settings including Picture Settings in one place, this could be we might have a "Save as Preset" button for a future User Preset function ?
handbrake [Mon, 1 Jan 2007 21:47:45 +0000 (21:47 +0000)]
-added Max Picture Width, options are 640 (default) and 320.
-changed video bit rate to correspond to max width choice, 640x -> 1000, 320x ->500
-advanced IHB version to 1.0a2
handbrake [Sun, 31 Dec 2006 21:45:39 +0000 (21:45 +0000)]
Fixed HandBrake Scan Panel for Optical Drive
Uses DVD Name instead of drive location
Displays DVD Name in Main window
h.264 defaults to Baseline Level 3
handbrake [Sun, 31 Dec 2006 16:46:33 +0000 (16:46 +0000)]
-Increase status timer to 2 seconds from .5 (no need to update that fast. libhb needs all the cpu cycles it can get)
-I versioned it 1.0a1
-re-enable Convert button after cancel is clicked (mostly annoying for developers who want to start and stop convert process)
-attempt at changing how progress is reportted to the user(trying to address problem where libhb reports 100% for a few minutes before reporting DONE. This seems to be a problem down in libhb. Unlikely I can fix this in the GUI)
-changed ambiguous "Picture format" to "Picture Aspect"
-default Picture Aspect is now Original not Fullscreen
-default languge is now set to English
-Output width limit is set to 640 for MPEG4 and H.264. Height is set based on Picture Aspect and determined by a call to hb_set_size. (PSP is unaffected)
-deinterlace is set for both MPEG4 and H.264 (why would you not want this?)
-bit rate for H.264 is set to 1000, and 1500 for MPEG4
-changed output file to "DVDName".m4v like iTunes movies.
Made H.264 baseline levels more generic
Added iPod 640x480 support to libhb, HBTest and MacOS X GUI
Added proper iPod 640x480 muxing
Modified rate control for more accurate ending video bitrates
Updated ffmpeg and x264 base sources to more current levels
Removed inlined ff_get_fourcc (now in ffmpeg)
Updated patches for xvidcore, libdvdread, x264, and ffmpeg
Relocated contrib files to local web server and updated version files to new site
Renamed contrib files and patches to consistent naming standard
Updated contrib Jamfile to support new patches and naming standard