| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Reserve VideoColorMatrixCode for doing color conversion.
VideoColorMatrixCodeOverride sets color flags without transforming video
frame colors.
|
|
|
|
|
|
|
|
|
| |
Propagates pix_fmt, range, primaries, transfer, and matrix everywhere.
Everything that passes or creates video frames tags the frames with
their color matrix info.
All filters know the expected color matrix info of input frames.
|
|
|
|
|
|
| |
Use this interface in decavcodec.
Remove cropscale.c and use avfilter for crop and scale.
Improve log output of filters that are aliases for avfilter.
|
| |
|
|
|
| |
Note that since webm has no official subtitle support, only burned in subtitles can be used with this muxer at this time.
|
|
|
|
| |
encoder/decode init and check code. For users where drivers or other system issues prevent HandBrake from loading.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The sequence_id was only available for the WORKING state and not the
WORKDONE state. But frontends poll for status periodically and can miss
all status updates for the WORKING state if the file is very short or an
error occurs early during transcoding. When WORKING status is missed,
there was no way to know the sequence_id associated with the WORKDONE
status.
|
| |
|
|
|
|
|
|
| |
Adding the Nvidia NVEnc H.264 and H.265 encoders.
Based on Initial work by sgothel
--enable-nvenc is the new compile time configure option to enable for builds.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...And add a timebase to every stream.
ffmpeg's subtitle decoder internally converts the packet pts to
AV_TIME_BASE units based on AVCodecContext.pkt_timebase. If
pkt_timebase is not set, the PGS subtitle decoder only returns
AV_NOPTS_VALUE for timestamps. So setting pkt_timebase in decpgssub.c
fixes PGS subtitle decoding.
Confusingly, the subtitle decoder does not convert the pts *back* to the
input timebase, but instead leaves them in AV_TIME_BASE units upon
returning a decoded subtitle.
To get a head start on fixing any other such issues that might arrise, I
have also set pkt_timebase in all other avcodec decoders.
|
|
|
|
| |
Change 4456e3390ce40d9cff98efc8afd888e4d52a60d5 is unnecessary.
|
| |
|
|
|
| |
Found via `codespell -q 3 --skip="./gtk/po`
|
| |
|
| |
|
|
|
|
|
| |
The new audio attributes were not checked correctly and filtered out any
audio tracks that had the DEFAULT flag.
|
|
|
|
|
|
|
| |
"Adaptive streaming" allows changing video parameters mid-stream at IDR
boundaries. Such changes require new SPS and PPS NALs at the IDR. MP4
supports this with 'avc3' and 'hev1' sample entry types.
|
| |
|
|
|
| |
This is useful for scripts and other frontends that need to parse CLI output.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a preset key AlignAVStart that enables this work-around. When
enabled, blank frames are inserted or frames are dropped to force
alignment of the initial timestamp of every audio and video stream.
Aligning the start times minimizes the impact of broken edit list
support in players.
Closes #763.
Squashed:
sync: improve alignment when passthru audio is present
presets: enable AlignAVStart for General and Gmail presets
LinGui: Improve AlignAVStart tooltip
sync: avoid inserting a black frame < nominal frame duration
sync: fix start alignment when doing p-to-p encoding
sync: add comments
|
|
|
|
| |
It was only used for scaling, it fails far too often and is only
faster on a limited selectoin of hardware.
|
|
|
|
|
|
|
|
|
|
|
| |
* Allow audio fallback to be "None"
When audio fallback is "None", a failure to do passthru will result in
no output audio track being added.
* simplify audio autopassthru fallback logic
Drop track when fallback codec is invalid instead of falling back to a
default. Since all presets have a fallback set, the default fallback
condition would only ever be triggered by an invalid setting.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This wrapper can be used to frame parallelize simple video filters. By
simple, I mean there can be no temporal context that is shared from one
frame to the next.
Wrap unsharp and lapsharp filters. unsharp required a small rework to
separate out temporary storage that is required when processing each
frame. We now need to duplicate this storage for each thread.
Closes #759.
|
| |
|
|
|
|
| |
Closes #525.
|
|
|
|
|
|
|
| |
Reader can skip data at the beginning of the file. We were not
informing decsrt how much was skipped when pts_to_start caused the skip.
Fixes https://forum.handbrake.fr/viewtopic.php?f=11&t=36258
|
|
|
|
|
|
|
| |
The threshold in bytes for when to give up trying to decode a frame was
too big for a lot of streams. It was made large to accomodate 4K raw
video. Instead of counting bytes, count frames fed to the decoder.
This is more consistant regardless of video resolution and codec.
|
|
|
|
|
|
| |
Raw video has no timestamps. But we drop frames in sync that have no
timestamps. So detect raw video and extrapolate timestamps from
framerate.
|
| |
|
|
|
|
|
|
| |
These are samples that were not in the original source and were added by
the encoder. To get a faithful reproduction of the source, they must be
dropped.
|
|
|
|
|
| |
This prevents libav from adding an mp4 edit list entry that causes a
properly functioning player to drop the first couple of audio frames.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Convert qsv_livav.[ch] to be built within libhb.
Convert other files to use qsv_libav.h in place of libavcodec/qsv.h
Don't attempt to build libav with QSV support (not available in unpatched release/11 branch).
QSV-accelerated decoding is broken, so disable it for the time being.
|
|
|
|
|
|
|
|
|
| |
* Add new anamorphic mode "Automatic", delete "Strict"
Anamorphic mode automatic is added to support Bradley's new presets that
are designed to pick a PAR that maximizes storage resolution.
Strict is converted to Loose + mod == 2 + UsesPictureSettings == 2
when importing presets
|
|
|
|
|
|
|
|
|
|
| |
Remove:
hb_audio_samplerate_get_best()
Add:
hb_audio_samplerate_is_supported()
hb_audio_samplerate_find_closest()
hb_audio_samplerate_get_sr_shift()
|