| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The subtitle ID assigned to CC embedded in video collided with regular
track IDs in some file types.
Fixes https://github.com/HandBrake/HandBrake/issues/2103
|
|
|
|
|
| |
gcc 9 is quite a lot chattier and clutters the build log with useless
information :\
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Edit list cuts are not always on keyframe boundaries and therefore
sometimes require dropping frames after decoding them.
AV_PKT_FLAG_DISCARD tells us when to do this.
Fixes https://github.com/HandBrake/HandBrake/issues/1900
|
| |
|
|
|
|
|
|
| |
Splits the initialization of pad, cropscale, deinterlace, rotate, and
colorspace into their own files. Also splits internal avfilter API into
it's own file.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It was getting set up, but then deleted right after in
avcodec_free_context.
|
|
|
| |
Note that since webm has no official subtitle support, only burned in subtitles can be used with this muxer at this time.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ffmpeg mpeg2 parser changes AVCodecContext.codec_id on the fly based
on what it parses. Normally this results in correct switching of decoders
internally in ffmpeg. Due to some unfortunate ordering of how we initialize
things when HandBrake is using our own demuxers, avcodec_open gets called
with the original AVCodec and the AVCodecContext.codec_id that was changed
by the parser resulting in an error.
Further explanation... When using our own demuxers, there are some codecs that
we have to parse out the extradata for _prior_ to calling avcodec_open.
avcodec_open fails if extradata isn't initialized for these codecs prior to
the call. To initialize the extradata, we use parser->parser->split. I.e. the
parser must be initialized and used prior to calling avcodec_open. When
avcodec_open is called, it is using the original AVCodec that was used with
avcodec_alloc_context3 (it will fail if AVCodec is not the same between
avcodec_alloc_context3 and avccodec_open). The call to avcodec_open fails with
"Codec type or id mismatches" since AVCodecContext.codec_id no longer matches
AVCodec.id due to the parser changing the codec_id.
The solution is to reset AVCodec and reallocate the context when we
detect that the parser has changed codec_id on us.
|
|
|
|
|
|
| |
Fixes a crash I experienced locally following 76f14dad963db46961ce3d425a102ac3d898ce10
Inspired by 3c95342a8cdf5b3b03d8b5e94ec099b0bc6a4f35
|
|
|
|
| |
Fixes https://github.com/HandBrake/HandBrake/issues/1611
|
| |
|
| |
|
|
|
|
|
| |
Symptom was a crash at the end of subtitle scan.
Fixes https://forum.handbrake.fr/viewtopic.php?f=13&t=38379
|
|
|
|
|
|
| |
The necessary data for setting up extradata may be scattered across
multiple input buffers. The buffers must be combined before extradata
can be extracted.
|
|
|
|
| |
Eliminates deprecation warnings for avresample
|
|
|
|
| |
Audio probe does not set w->audio.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...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.
|
|
|
|
|
|
|
|
| |
ffmpeg doesn't set a default channel layout for audio that has no
explicit layout (e.g. pcm_216le). So we need to guess it from the
number of channels.
Fixes "no audio" in https://github.com/HandBrake/HandBrake/issues/1387
|
| |
|
|
|
|
|
|
|
| |
If an audio track exists, but we receive no audio packets for that
track, this causes a condition that results in a NULL dereference.
Fixes https://github.com/HandBrake/HandBrake/issues/1358
|
|
|
|
|
|
|
| |
avcodec_close(..)
Hence rename hb_avcodec_close -> hb_avcodec_free_context and pass the required ptr-ptr.
avcodec_free_context(..) ensures releasing of all resources attached to the context.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
This is useful for scripts and other frontends that need to parse CLI output.
|
| |
|
|
|
|
| |
Fixes https://github.com/HandBrake/HandBrake/issues/815
|
|
|
|
| |
Fixes https://github.com/HandBrake/HandBrake/issues/717
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* subtitles: simplify and shorten subtitle descriptions
Generally, it eliminates parens to make things more readable.
I.e. it turns this:
English (Closed Caption)(Wide Screen)(Bitmap)(VOBSUB)
Into this:
English, Closed Caption [Wide Screen, VOBSUB]
* Revise punctuation per BradleyS request
* fix subtitle description formatting
* incorporate suggestions from PR
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
If extradata is improperly parsed, avcodec_open may fail. Keep trying
avcodec_open as long as there is more data to parse.
Fixes https://github.com/HandBrake/HandBrake/issues/542
|
|
|
|
|
| |
If avcodec_open fails, pv->context->codec is NULL, but work->info may
still be called by scan.
|
|
|
|
| |
Closes #490.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
avcodec_decode_audio4 is deprecated, use avcodec_send_packet and
avcodec_receive_frame
av_bitstream_filter is deprecated, use av_bsf
|