ffmpeg/libavcodec
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
..
2016-06-08 14:18:18 -03:00
2016-02-27 16:31:46 -06:00
2016-01-20 16:56:53 +00:00
2016-04-05 23:13:44 -03:00
2015-08-22 06:16:31 +01:00
2016-05-31 01:08:25 +01:00
2015-12-19 09:32:53 -08:00
2015-12-19 09:32:53 -08:00
2015-11-30 18:29:57 -05:00
2015-11-22 16:16:16 -05:00
2016-05-21 18:49:45 +02:00
2016-05-21 18:49:45 +02:00
2016-05-21 18:49:45 +02:00
2016-05-21 18:10:07 +02:00
2016-05-05 18:15:22 +02:00
2016-06-10 16:31:23 +02:00
2015-11-21 08:51:49 -05:00
2016-05-12 14:32:16 +01:00
2016-03-28 14:13:17 -08:00
2016-01-11 21:51:11 +01:00
2016-03-28 14:13:17 -08:00
2016-06-06 14:32:48 +02:00
2015-11-30 10:58:46 -05:00
2016-01-30 17:44:13 +00:00
2016-02-02 18:06:13 -08:00
2016-03-28 14:13:17 -08:00
2015-09-10 16:36:47 +02:00
2016-06-10 16:31:23 +02:00
2015-10-13 16:03:04 +02:00
2016-02-07 09:26:15 -08:00
2015-10-26 10:08:01 +01:00
2016-01-28 10:31:41 +01:00
2016-04-02 22:48:15 +01:00
2016-04-02 22:48:15 +01:00
2016-03-07 11:17:31 +01:00
2016-03-04 13:51:42 +01:00
2015-12-07 16:10:51 +01:00
2015-10-09 22:09:08 +02:00
2016-01-11 21:51:11 +01:00
2016-01-18 19:56:37 +01:00
2016-01-31 15:44:11 -08:00
2015-10-25 22:48:04 +01:00
2015-12-05 21:11:52 +01:00
2015-12-05 21:11:52 +01:00
2016-05-22 23:04:37 +02:00
2016-03-16 11:32:51 +01:00
2016-03-16 11:32:51 +01:00
2016-04-19 19:00:41 +02:00
2016-03-28 14:13:17 -08:00
2016-03-07 11:17:31 +01:00
2016-03-07 11:17:31 +01:00
2016-03-13 09:40:09 +01:00
2016-03-12 02:08:45 +01:00
2015-11-20 08:20:13 -05:00
2016-06-10 16:31:23 +02:00
2016-06-11 17:27:19 +02:00
2016-03-28 14:13:17 -08:00
2016-02-28 13:32:01 +01:00
2016-03-23 09:25:30 +01:00
2016-04-14 22:31:57 +02:00
2016-02-09 19:19:43 +01:00
2016-05-01 17:47:55 +02:00
2016-01-27 00:08:23 +01:00
2016-01-30 13:31:44 +01:00
2015-10-09 22:09:08 +02:00
2015-12-22 12:54:23 +01:00
2015-09-07 15:32:08 +02:00
2016-05-06 01:12:51 +01:00
2016-06-10 16:31:23 +02:00
2015-12-07 09:25:02 +01:00
2016-01-11 21:51:11 +01:00
2016-01-20 16:41:19 -03:00
2016-01-28 19:49:48 -08:00