sr55 [Sun, 27 Mar 2011 13:52:36 +0000 (13:52 +0000)]
WinGui:
- Remove built-in quicktime based video preview support.
- Resigned the Preview window as a result. Currently only supports VLC launching, but will later add an option to use the systems default player for the format produced.
jstebbins [Tue, 22 Mar 2011 02:25:05 +0000 (02:25 +0000)]
LinGui: use g_object_set to set widget properties
instead of directly setting the member variables. The member variables
dissepear into priv data in gtk+-3.0.
jstebbins [Tue, 22 Mar 2011 01:08:37 +0000 (01:08 +0000)]
LinGui: No need to call gtk_set_locale
gtk_init does it for us. And since gtk_set_locale is being removed
from gtk+-3.0, might as well remove the call.
jstebbins [Mon, 21 Mar 2011 18:14:04 +0000 (18:14 +0000)]
Fix linking on mingw when using libtool
Linking the gtk gui uses libtool. The *.la files libtool uses specify
the dependency libraries that libraries are built against. Our
libbluray contrib was being built against the system libxml2 due to
dependencies that were not set in our build system and PKG_CONFIG_PATH
not being set when configuring.
Note that on fedora (and possibly other systems) the ${cross}-pkg-config
script provided is broken and explicitely sets PKG_CONFIG_PATH="". You
need to replace this script with something like this:
PKG_CONFIG_LIBDIR=$(${cross}-gcc --print-sysroot)/mingw/lib/pkgconfig pkg-config $*
jstebbins [Mon, 21 Mar 2011 02:20:48 +0000 (02:20 +0000)]
Remove legacy % to RF mapping.
Although the % option has been gone for a while in the cli and gui's,
there were some mappings happening in libhb and for preset imports.
This removes the last vestages of % quality mapping.
Thanks to Rodeo for the patch.
jstebbins [Sun, 13 Mar 2011 21:51:14 +0000 (21:51 +0000)]
fix 2 pass cfr x264 crash
An error in interjob->vrate calculation lead to specifying a different
timebase for the 1st and 2nd pass which x264 does not allow. This
improves the interjob->vrate calculation accuracy and also guarantees
the timebase is the same on both passes regardless of the calculations
accuracy.
jstebbins [Sun, 13 Mar 2011 17:14:36 +0000 (17:14 +0000)]
Fix source dimensions problem with some mpeg2 streams
Was using the incorrect field for actual "display" dimensions of video.
The field I was using is most often used for pan and scan which
crops a 16:9 image to fit a 4:3 display.
jstebbins [Fri, 11 Mar 2011 22:40:30 +0000 (22:40 +0000)]
Add parameter parsing and b-frame support to ffmpeg mpeg-4 encoder
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.
jstebbins [Fri, 11 Mar 2011 22:09:18 +0000 (22:09 +0000)]
Fix PAR and height of mpeg-2 1080 content.
mpeg-2 dimensions must be multiples of 16, so the actual coded height
is 1088. But there are fields in the sequence header that define
the "display" height and width. We were ignoring these which lead
to slightly incorrect height and PAR.
jstebbins [Fri, 11 Mar 2011 15:26:31 +0000 (15:26 +0000)]
Fix mkv timestamps that derive from SimpleBlock and default track duration.
Since I've gotten no response to this patch yet on ffmpeg-devel, I'm
committing it here till someone has the time to look at it.
When a SimpleBlock has lacing (multiple frames in a block) the duration
of each frame should come from the default track duration. An initialization
error in ffmpeg causes them to set the duration to 0 which triggers
code higher in the stack to estimate the duration based on bitrate
and frame size. This is wildly inaccurate and leads to very bad timestamps.
jstebbins [Thu, 10 Mar 2011 23:34:08 +0000 (23:34 +0000)]
Use ffmpeg's lock manager for locking needed by ffmpeg
This lets ffmpeg tell us when it needs a lock instead of
us trying to guess which functions we need to wrap in a mutex.
jstebbins [Tue, 8 Mar 2011 17:05:34 +0000 (17:05 +0000)]
Remove a workaround for an ffmpeg bug that has been fixed.
Removal of the workaround also removes the need for a patch
that fails to apply cleanly to latest ffmpeg git. So remove
the patch as well.
jstebbins [Tue, 8 Mar 2011 16:12:57 +0000 (16:12 +0000)]
make keyint match between 1st and 2nd passes of vfr and pfr encodes.
make keyint and fps settings consistent across video encoders.
make interjob->vrate changes for pfr mode like we do for vfr since
pfr is the same as vfr except when it hits it's peak.
in mkv, set track default duration to actual measured vrate on 2 pass encodes.
sr55 [Sun, 6 Mar 2011 15:43:37 +0000 (15:43 +0000)]
WinGui:
- Another change to the video tab to make it consistent with the lingui.
- Fix for the Audio Panel to correctly set the default bit-rate for each encoder.
sr55 [Fri, 4 Mar 2011 21:30:37 +0000 (21:30 +0000)]
WinGui:
- Updated layout of the "Video" tab to empathises Constant Quality.
* Added far better tooltips on the controls.
- Added better control over the encoding methods (VFR, PFR, CFR)
* "Same as source" can now be Constant or Variable
* "5,10,15,20....." framerates can now be set as WConstant Framerate" or "Peak Framerates (VFR)"
dynaflash [Tue, 1 Mar 2011 18:45:17 +0000 (18:45 +0000)]
MacGui: Remove Target Size as a rate control option as it doesn't really work correctly and should die an overdue death.
- Also rearranged the video quality layout a bit.
- Moved Constant Quality above Average Bitrate
- Moved the entire Video Quality matrix down below frame rate where it belongs.
- Presets are mapped accordingly internally in the macgui code so that they are unchanged across platforms.
jstebbins [Mon, 28 Feb 2011 22:00:26 +0000 (22:00 +0000)]
Fix PFR issue where there are different number of frames in 1st and 2nd pass.
Waiting for a fill threshhold in the fifos causes some non-determinism
in finding the first PTS value. Sometimes the fill level of one fifo
would not be reached until after another fifo is completely full, causing
an early exit in the loop that looks for the first PTS. When the initial PTS
is different between passes, the duration of the first frame is different.
This affects the PFR algorithm and can cause it to drop a different number
of frames.
The fill level was initially intended as a way to prevent thrashing between
threads to improve performance. But my testing indicates no degradation
when removing it.
davidfstr [Fri, 25 Feb 2011 01:08:33 +0000 (01:08 +0000)]
Add temporally overlapping subtitle support.
* New subtitle sync algorithm added to sync work-object ("simultaneous").
Classic algorithm preserved but disabled.
* Render work-object now supports queueing a /list/ of subtitles.
* FIFOs have been extended to support pushing/popping buffer-lists as single elements.
* Added SUBSYNC_VERBOSE_TIMING flag to debug timing issues related to subtitle display.
Observable behaviors changed in the new subtitle sync algorithm:
* Temporally overlapping subtitles are no longer trimmed to be non-overlapping.
* Subtitles less than two seconds long are no longer artificially extended. Sorry, Indochine fans.
* Subtitles that stop before they start will never be displayed. The old algorithm will display such subtitles if they begin in the future (relative to the current video frame being processed).
sr55 [Sun, 20 Feb 2011 16:07:48 +0000 (16:07 +0000)]
WinGui:
- Add some locking onto the CLI Exited and CLI StdErr Message received threads to prevent exceptions. This is only a temporary fix as we may lose a few log messages off the end by cancelling the logging too early.
jstebbins [Fri, 11 Feb 2011 18:22:16 +0000 (18:22 +0000)]
LinGui: do not uncheck chapter markers when single chapter selected
Instead, grey out the chapter marker checkbox to indicate it is inactive
(but leave it checked) and do not enable chapter markers in the job.
This way, if the user modifies chapter selections, chapter markers will
automatically be re-enabled when more than one chapter is selected again.
jstebbins [Tue, 8 Feb 2011 01:27:06 +0000 (01:27 +0000)]
Improve timestamp handling in decavcodec
Use new ffmpeg facility for passing timestamps through from
AVPackets to AVFrames during parsing and decoding.
Also fix a bug in handling of the timestamp of the first audio frame. We
were putting the timestamp of the second frame on the first and shifting
all audio by one frame time.
jstebbins [Tue, 8 Feb 2011 01:24:07 +0000 (01:24 +0000)]
Fix issue with decoding DTS-HD streams
We now inspect the new profile member of AVCodecContext to determine if
the stream is DTS or DTS-HD and send it to the appropriate decoder.
jstebbins [Mon, 7 Feb 2011 22:46:01 +0000 (22:46 +0000)]
Fix a hang in sync
If one stream has no content and other streams have almost no content,
we were hanging while waiting for the first pts in the streams.
This could be reproduced by attempting to encode only the last 0-length chapter
of a DVD.