Commit Graph
100 Commits
Author SHA1 Message Date
Clément Bœsch 98456d4d69 Merge commit '0ba471d7d864c712f45d7ac6aca4829aba025adc'
* commit '0ba471d7d864c712f45d7ac6aca4829aba025adc':
  h264: eliminate copy_fields

Added a copy of default_ref which isn't present in Libav.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-19 13:00:28 +02:00
Clément Bœsch 0ed14bba12 Merge commit '72da8d9bb24d1b1bf74c2f1108650c0da0054d2e'
* commit '72da8d9bb24d1b1bf74c2f1108650c0da0054d2e':
  h264_parser: remove the remaining dependencies on the h264 decoder

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-19 12:50:24 +02:00
Clément Bœsch 34ec084b84 lavc/h264: move history parsing variable to H264ParseContext
This makes h264_find_frame_end() not depend on H264Context anymore.
2016-06-19 12:38:28 +02:00
Clément Bœsch 48ea5433c8 lavc/h264_parser: pass logctx to h264_find_frame_end()
This helps removing the H264Context from the H264ParseContext.
2016-06-19 12:34:38 +02:00
Clément Bœsch 0bf5fd2e19 Merge commit '98c97994c5b90bdae02accb155eeceeb5224b8ef'
* commit '98c97994c5b90bdae02accb155eeceeb5224b8ef':
  h264: decouple extradata parsing from the decoder

Main changes:

- move get_avc_nalsize() inside h264_parser.c and make it use
  H264ParseContext instead of H264Context. This helps fixing
  fate-flv-demux.

- Also use is_avc/nal_length_size from the H264ParseContext in various
  places instead of the H264Context one as that's the fields now filled
  by ff_h264_decode_extradata()

- h264_parse: dont fail decode_extradata_ps() due to nal split failure.
  Change by Michael to fix decoding of h264/ref_10.avi.

Merged-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-19 12:17:41 +02:00
Clément Bœsch b51d5c99b8 lavc/h264_parse: remove tabs introduced in a2922b5d 2016-06-18 14:10:00 +02:00
Clément Bœsch 5584f019b5 Merge commit '728d90a0c1973661a9e73da697bf4f90c9d19577'
* commit '728d90a0c1973661a9e73da697bf4f90c9d19577':
  h264: decouple h264_sei from the h264 decoder

Main changes:

- SEI decoding doesn't have access to the debug flag in the codec context so a
  few logging are dropped.

- naming of quincunx_sampling_flag and frame_packing_arrangement_type are kept
  as they are in FFmpeg instead of respectively quincunx_subsampling and
  arrangement_type used in Libav because the former match the specifications.

- don't reset the x264 build info once read in order to fix
  fate-h264-lossless (change by Hendrik)

- H264Context.has_recovery_point and deprecated
  AVCodecContext.dtg_active_format are set after ff_h264_sei_decode()
  based on the SEI state since ff_h264_sei_decode() doesn't have access
  to H264Context anymore.

- frame_packing_arrangement_type is not checked against <= 0 in
  decode_postinit() since it is always read as a positive value with
  get_bits(). This fixes a -Wtype-limits warning by GCC spotted by
  Michael.

Side Notes:

- tested that ffprobe on the file from ticket #3652 still returns 4
  keyframes
- tested that playback from ticket #3063 still works

Merged-by: Clément Bœsch <clement@stupeflix.com>
Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-06-18 14:04:55 +02:00
Clément Bœsch 7dd8cd1933 lavc/h264_sei: fix broken style around green metadata code 2016-06-14 08:23:23 +02:00
Clément Bœsch 5342bb624d lavc/h264: rename GreenMetaData to H264SEIGreenMetaData
Reduces diff for the next merge with Libav.
2016-06-14 08:23:23 +02:00
Clément Bœsch b0ec36c9b1 lavc/h264_sei: reduce scope of parameters for green meta decode
This is again will help the merge as ff_h264_decode_sei will not have
access to H264Context anymore.
2016-06-14 08:23:23 +02:00
Clément Bœsch fef89aae98 lavc/h264: move green meta logging out of the sei decoding
This will simplify the next Libav merge where SEI decoding doesn't have
access to the debug level anymore.
2016-06-14 08:23:23 +02:00
Clément Bœsch aafdad1b45 lavc/videotoolbox: fix sps/pps mistake introduced in 1534ef87 2016-06-12 20:53:57 +02:00
Clément Bœsch 4df944920c lavc/videotoolbox: fixes compilation after 1534ef87 2016-06-12 20:53:57 +02:00
Clément Bœsch 82d79970ed lavc/vda_h264: fixes compilation after 1534ef87 2016-06-12 20:53:57 +02:00
Clément Bœsch bd3fd467fe Merge commit 'c8dcff0cdb17d0aa03ac729eba12d1a20f1f59c8'
* commit 'c8dcff0cdb17d0aa03ac729eba12d1a20f1f59c8':
  h264: factor out calculating the POC count into a separate file

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-12 19:01:43 +02:00
Clément Bœsch 65d5f32fd7 Merge commit '113aeee6aed35cb786a9f6d69b0cb210f498b9da'
* commit '113aeee6aed35cb786a9f6d69b0cb210f498b9da':
  h264_parser: move the H264DSPContext to the parser context

H264Context is kept locally as it is currently needed for logging
(h->avctx as log context) and for is_avc and nal_length_size. These
later fields will later be obtained when the extradata parsing is
decoupled from the decoder. This code will be updated accordingly when
that commit is merged.

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-12 15:43:28 +02:00
Clément Bœsch 83163577e2 lavc/h264: remove unused ff_h264_init_dequant_tables prototype
Unused since 1534ef87 / 3176217c.
2016-06-12 13:38:23 +02:00
Clément Bœsch 1534ef87c7 Merge commit '3176217c60ca7828712985092d9102d331ea4f3d'
* commit '3176217c60ca7828712985092d9102d331ea4f3d':
  h264: decouple h264_ps from the h264 decoder

Main changes:

- a local GetBitContext is created for the various
  ff_h264_decode_seq_parameter_set() attempts

- just like the old code, remove_sps() is adjusted so it doesn't remove
  the pps.

  Fixes decode with Ticket #631
  http://ffmpeg.org/pipermail/ffmpeg-user/attachments/20111108/dae58f17/attachment.mp4
  but see next point as well.

- ff_h264_update_thread_context() is updated to work even when SPS
  isn't set as it breaks current skip_frame code. This makes sure we
  can still decode the sample from ticket #631 without the need for
  -flags2 +chunks. (Thanks to Michael)

- keep {sps,pps}_ref pointers that stay alive even when the active
  pps/sps get removed from the available lists (patch by michaelni with
  additionnal frees in ff_h264_free_context() from mateo)

- added a check on sps in avpriv_h264_has_num_reorder_frames() to fix
  crashes with mpegts_with_dvbsubs.ts from Ticket #4074
  http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket4074/mpegts_with_dvbsubs.ts

- in h264_parser.c:h264_parse(), after the ff_h264_decode_extradata() is
  called, the pps and sps from the local parser context are updated with
  the pps and sps from the used h264context. This fixes fate-flv-demux.

- in h264_slice.c, "PPS changed between slices" error is not triggered
  anymore in one condition as it makes fate-h264-xavc-4389 fails with
  THREADS=N (Thanks to Michael)

Merged-by: Clément Bœsch <clement@stupeflix.com>
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-06-12 13:26:52 +02:00
Clément Bœsch 9f3dd53050 lavc/srtenc: do not emit any subrip tags with text codec
Fixes presence of opening tags when running
  ffmpeg -i x.ass -c text x.srt

Reported-by: Jean First <jeanfirst@gmail.com>
2016-05-01 15:16:50 +02:00
Clément Bœsch bbf02f7d28 lavc: override decode return value only in case of error
Fixes Ticket #5350

Regression since 2941282124.
2016-05-01 14:53:53 +02:00
Clément Bœsch ffd1c3eeb7 lavc/utils: use pkt_timebase for legacy subtitles timing code
This is consistent with other AVSubtitle timing adjustments.
2016-04-02 19:03:06 +02:00
Clément Bœsch d8620158c7 lavc/ccaption_dec: remove usage of avctx->time_base
lavc/utils already rescales avpkt->pts to sub->pts in AV_TIME_BASE_Q
before calling the decode callback. This prevents from rescaling again
into the decoder, and avoid the use of avctx->time_base which will
disappear in the incoming codecpar merge.

This commit also replaces the use of "20 centisecond" (ass time base)
with "200 ms".
2016-04-02 19:03:06 +02:00
Clément BœschandDerek Buitenhuis be8d98c1ad lavc/utils: transfer width/height for subs in codecpar
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-31 21:20:39 +01:00
Clément Bœsch 8284a4ba11 lavf/dv: use c->sys->frame_size in dv_frame_offset()
dv_frame_offset() is static and called only from dv_read_seek(), where
c->sys->frame_size is already used.

This simplifies the incoming codecpar merge where
avctx->{coded_width,coded_height,time_base} are not accessible anymore.
2016-03-20 19:28:15 +01:00
Clément Bœsch 6c0cf11f38 lavf/dv: reindent after previous commit 2016-03-20 19:28:15 +01:00
Clément Bœsch 35ba5c424b lavf/dv: do not check for c->sys
dv_extract_video_info() is a static function called only from
avpriv_dv_produce_packet(), where c->sys is made sure to be set.
2016-03-20 14:25:16 +01:00
Clément BœschandClément Bœsch 7af3f27008 lavf/srtdec: do not be strict wrt timing digit lengths
Fixes a sample with 3-length digits for the seconds reported by wm4.
2016-03-18 16:42:07 +01:00
Clément Bœsch 2b7a61cbd8 lavc/utils: fix extra ASS sanity check in convert_sub_to_old_ass_form() 2016-03-07 21:48:55 +01:00
Clément BœschandClément Bœsch 920f592b81 lavf/vplayerdec: support time durations with no ms specified
Example found in the wild:

0:00:03:25.000
0:01:47:A legend is sung
0:01:50:Of when England was young
0:01:53:And knights|were brave and bold
0:01:59:The good king had died

Reported-by: wm4
2016-03-07 12:52:11 +01:00
Clément Bœsch 0443b2cf79 lavc: restore ABI compatibility with 3.x (sub_text_format)
Regression introduced in 2941282.

Reported-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-05 10:15:35 +01:00
Clément Bœsch 653af9f188 lavfi/ass: fix version check for sub_text_format option 2016-02-27 16:26:10 +01:00
Clément Bœsch 1e7a37f0a0 sws/yuv2rgb: clarify precision of coeff and offset for mmx code
It makes easier looking at the difference with the generic code just
below.
2016-02-27 11:13:26 +01:00
Clément Bœsch f9987464cf sws/yuv2rgb: avoid a few ub on signed left shifts 2016-02-27 11:13:26 +01:00
Clément Bœsch b5451d88cf lavc: reindent a few decoders after previous commits 2016-02-26 22:15:20 +01:00
Clément Bœsch 22ebbda637 lavc: deprecate decoded ass subtitles with timings 2016-02-26 21:53:34 +01:00
Clément Bœsch fa2df3a401 lavfi/ass: use ass_process_chunk() instead of ass_process_data() 2016-02-26 21:53:34 +01:00
Clément Bœsch 6433618dc0 ffmpeg: set sub_text_format to ass (without timing) by default
Fixes Ticket #4783
2016-02-26 21:53:34 +01:00
Clément Bœsch 30e7685360 lavc/options: add ass_ro_flush_noop to flags2 2016-02-26 21:53:32 +01:00
Clément Bœsch 2941282124 lavc: allow subtitle text format to be ASS without timing 2016-02-26 21:49:34 +01:00
Clément Bœsch 805685fffd Kill timed SSA 2016-02-26 21:34:33 +01:00
Clément Bœsch 6c0318c4ba lavfi/fieldmatch: fix fields copy when plane height is odd
Fixes Ticket 5187
2016-02-07 15:49:20 +01:00
Clément Bœsch 54ab90c05b lavc/utils: fix instanciate/instantiate typo 2016-01-30 13:10:11 +01:00
Clément Bœsch d3d03fd55e lavf/vqf: fix suported/supported typo 2016-01-30 13:08:37 +01:00
Clément Bœsch 17d41220d8 lavfi/pthread: fix perameters/parameters typo 2016-01-24 14:41:11 +01:00
Clément Bœsch a362015641 lavc,lavfi: use avutil/thread.h instead of redundant conditional includes
This was somehow forgotten in a8bb81a05c.
2016-01-20 21:36:54 +01:00
Clément Bœsch d96f0fbe59 lavu: add pthread asserts if ASSERT_LEVEL>1 2016-01-20 21:08:50 +01:00
Clément Bœsch 79061bcec1 fate: fix sub-cc font 2016-01-10 16:31:30 +01:00
Clément Bœsch 6d32628bf3 lavc/ccaption_dec: improve default style
Use monospaced font, and a black box outline.
2016-01-10 16:28:14 +01:00
Clément Bœsch a43deea861 lavc/ccaption_dec: fix ASS tags 2016-01-10 14:07:45 +01:00
Clément Bœsch 0948e0f553 lavc/ccaption_dec: simplify rollup cases 2016-01-09 12:44:10 +01:00
Clément Bœsch 22765140fa lavc/ccaption_dec: check for bprint completeness outside the loop 2016-01-09 12:40:50 +01:00
Clément Bœsch 31bff21d2c lavc/ccaption_dec: mark row and font as const in capture_screen() 2016-01-09 12:38:36 +01:00
Clément Bœsch d587fbb676 lavc/ccaption_dec: fix mixed declarations and code warning 2016-01-09 12:37:30 +01:00
Clément Bœsch 5ae07914d0 lavc/ccaption_dec: check for bprint completeness only at the end 2016-01-09 12:37:11 +01:00
Clément Bœsch a1136ca973 lavc/g729dec: use ff_parity() 2016-01-07 22:51:36 +01:00
Clément Bœsch 00e96613f3 lavc/ccaption_dec: use ff_parity() 2016-01-07 22:51:36 +01:00
Clément Bœsch 2ce29d1765 lavu: add ff_parity() 2016-01-07 22:51:31 +01:00
Clément Bœsch d64fe951c2 lavc/ccaption_dec: fix always true condition
No idea why this wasn't ever detected by a static analyzer.
2016-01-07 22:42:39 +01:00
Clément Bœsch 04826b7ff0 lavu/common: add an explanation to FF_CEIL_RSHIFT() 2016-01-07 22:34:04 +01:00
Clément Bœsch 5fbe57c027 lavf/uncodedframecrcenc: use FF_CEIL_RSHIFT() 2016-01-07 22:28:08 +01:00
Clément Bœsch 90cd02059b lavfi/deshake: use FF_CEIL_RSHIFT() 2016-01-07 22:27:54 +01:00
Clément Bœsch 84a967df03 lavu/common: fix FF_CEIL_RSHIFT() range comment 2016-01-07 22:20:22 +01:00
Clément Bœsch 77eeaa2c3d lavf/srtdec: rewrite parsing logic
Fixes Ticket #5032

The samples in Ticket #5032 is using \r\r\n as line breaks.  Since we
already are handling \r, or \n, or \r\n as line breaks, \r\n\n will be
considered as a double line breaks. This is an issue because
ff_subtitles_read_text_chunk() will as a result stop extracting a chunk
after just one line.

So instead of parsing the SRT by "chunks" (which means splitting every
double LB), this new parser is detecting timing lines, and split the
events on this basis. While this sounds safe and simple, it needs to
take into account the event number preceding the timing line while
handling situations such as:

 - event number starting at 0 or actually any number instead of 1
 - event numbers not being ordered at all
 - event number being followed by text garbage (this really happened,
   see Ticket #4898)
 - event payload containing one or multiple number (a protagonist saying
   a count-down, a date or whatever) which could be confused with a
   chapter number
 - event number being empty (see Ticket #2167)
 - all kind of weird line breaks can appear randomly like wild pokémons
 - untrustable line breaks (Ticket #5032)

The sample madness.srt tries to sum up most of this into one sample,
ticket5032-rrn.srt is the file containing \r\r\n line breaks. and
empty-events-2167.srt contains empty events.
2016-01-01 18:31:49 +01:00
Clément BœschandClément Bœsch f122ba36cb lavc: add text encoder 2015-12-21 11:14:02 +01:00
Clément Bœsch 5083900b73 lavfi/ebur128: apply I dual mono correction only if I available
Spotted-by: jamrial & gcc 6
2015-12-13 18:21:02 +01:00
Clément Bœsch 09a8b6691c doc: fix selectivecolor filter position 2015-12-12 14:00:15 +01:00
Clément Bœsch dd1d9b80c9 lavu/opencl: restore #if HAVE_THREADS
Fix regression since a8bb81a.

Spotted-by: RiCON
2015-12-07 20:28:30 +01:00
Clément Bœsch 3f46e7bad5 avfilter/codecview: reindent after previous commit 2015-12-05 12:25:14 +01:00
Clément BœschandClément Bœsch 7234e04e35 ffmpeg: enable echoing with command and debug modes
Allow seeing text when pressing 'c' or 'd'.
2015-12-04 15:47:06 +01:00
Clément BœschandClément Bœsch 60532348d2 avcodec/mpegvideo: use constants for rc_strategy 2015-12-04 15:44:45 +01:00
Clément BœschandClément Bœsch 56bdf61baa avutil/motion_vector: export subpel motion information
FATE test changes because of the switch from shift to division.
2015-11-23 10:55:15 +01:00
Clément BœschandClément Bœsch 6679fcd419 avformat/assdec: allow ASS files starting with empty lines
See https://github.com/mpv-player/mpv/issues/2506
2015-11-20 14:41:56 +01:00
Clément Bœsch 953d358462 avcodec/libopenh264enc: use AV_OPT_TYPE_BOOL for allow_skip_frames option 2015-10-31 17:33:22 +01:00
Clément Bœsch 6b5412cbfa avutil/opt: print more meaningful default flags values
Example:
% ./ffmpeg -h encoder=gif
[...]
GIF encoder AVOptions:
  -gifflags          <flags>      E..V.... set GIF flags (default offsetting+transdiff)
     offsetting                   E..V.... enable picture offsetting
     transdiff                    E..V.... enable transparency detection between frames
2015-10-25 22:47:16 +01:00
Clément Bœsch ce0a117ed4 avutil/opt: display a better default value for int/int64 options
Example:

% ./ffmpeg -h encoder=aac
  -aac_coder         <int>        E...A... Coding algorithm (from -1 to 3) (default twoloop)
     faac                         E...A... FAAC-inspired method
     anmr                         E...A... ANMR method
     twoloop                      E...A... Two loop searching method
     fast                         E...A... Constant quantizer
[...]
2015-10-19 00:04:33 +02:00
Clément Bœsch 8c9c8fd035 avfilter/selectivecolor: fix correction_method option range 2015-10-17 15:01:57 +02:00
Clément Bœsch 49f4967dd0 avfilter: add selectivecolor filter 2015-10-11 13:44:33 +02:00
Clément Bœsch 513fcd4167 avfilter/ebur128: use AV_OPT_TYPE_BOOL for video option 2015-10-04 13:10:29 +02:00
Clément BœschandClément Bœsch a84613b4c2 avformat/mov: use AV_OPT_TYPE_BOOL for export_{all,xmp} options 2015-09-12 18:24:49 +02:00
Clément BœschandClément Bœsch 7434b9f66f avcodec/roqvideoenc: use AV_OPT_TYPE_BOOL for quake3_compat option 2015-09-12 18:24:49 +02:00
Clément BœschandClément Bœsch 1e2c23f06c avfilter/treble: use AV_OPT_TYPE_BOOL for csg option 2015-09-12 18:24:49 +02:00
Clément BœschandClément Bœsch 8e22becbc7 avcodec/pgssubdec: use AV_OPT_TYPE_BOOL for forced_subs_only option 2015-09-12 18:24:49 +02:00
Clément BœschandClément Bœsch 5cae43e718 avdevice/v4l2: use AV_OPT_TYPE_BOOL for use_libv4l2 option 2015-09-12 18:24:49 +02:00
Clément BœschandClément Bœsch 7a256133ff avcodec/textdec: use AV_OPT_TYPE_BOOL for keep_ass_markup option 2015-09-12 17:50:24 +02:00
Clément BœschandClément Bœsch 51cec6c306 avcodec/libx264: use AV_OPT_TYPE_BOOL for fastfirstpass option 2015-09-12 17:50:23 +02:00
Clément BœschandClément Bœsch 411c32386a avcodec/h264: use AV_OPT_TYPE_BOOL for is_avc option 2015-09-12 17:50:23 +02:00
Clément BœschandClément Bœsch 306ff40988 ffprobe: use AV_OPT_TYPE_BOOL for writers options 2015-09-12 17:50:22 +02:00
Clément BœschandClément Bœsch 2c364ef82d avdevice/caca: small trivial macros adjustments 2015-09-12 17:50:22 +02:00
Clément BœschandClément Bœsch 79f0f1a80b avdevice/caca: remove space before ':' (English typo, cosmetics) 2015-09-12 17:50:21 +02:00
Clément BœschandClément Bœsch 9d0a6ede30 avdevice/caca: use AV_OPT_TYPE_BOOL for list_drivers option 2015-09-12 17:50:20 +02:00
Clément BœschandClément Bœsch 4f926a1088 avcodec: use AV_OPT_TYPE_BOOL for refcounted_frames, side_data_only_packets and skip_alpha options 2015-09-12 17:50:18 +02:00
Clément Bœsch 342ead4491 avformat/subtitles: improve ff_subtitles_queue_finalize() doxy 2015-09-10 21:40:49 +02:00
Clément Bœsch af924fd9e4 avformat/subtitles: forward log context in ff_subtitles_queue_finalize() for logging 2015-09-10 21:40:07 +02:00
Clément Bœsch a634649a36 avformat/subtitles: make sure we don't drop "duplicated" events from different streams 2015-09-10 21:39:13 +02:00
Clément Bœsch 4f26c99912 avformat/subtitles: drop duplicated events
Fix Ticket #4843
2015-09-10 21:18:34 +02:00
Clément Bœsch 1435587373 avfilter/acrossfade: use AV_OPT_TYPE_BOOL for overlap option 2015-09-09 01:32:30 +02:00
Clément Bœsch 7114282a0d avfilter/life: use AV_OPT_TYPE_BOOL for a stitch option 2015-09-09 01:16:23 +02:00
Clément Bœsch 7b6007204d avfilter/cellauto: use AV_OPT_TYPE_BOOL for a few options 2015-09-09 01:15:42 +02:00
Clément Bœsch c826f9b284 avfilter/waveform: use AV_OPT_TYPE_BOOL for mirror option 2015-09-09 01:04:28 +02:00
Clément Bœsch 9f4e096496 avfilter/vignette: use AV_OPT_TYPE_BOOL for dither option 2015-09-09 01:02:07 +02:00