• Clément Bœsch's avatar
    Merge commit '3176217c' · 1534ef87
    Clément Bœsch authored
    * commit '3176217c':
      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: 's avatarClément Bœsch <clement@stupeflix.com>
    Merged-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
    Merged-by: 's avatarMatthieu Bouron <matthieu.bouron@stupeflix.com>
    1534ef87
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
cmdutils_opencl.c Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
ffmpeg.c Loading commit data...
ffmpeg.h Loading commit data...
ffmpeg_cuvid.c Loading commit data...
ffmpeg_dxva2.c Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_qsv.c Loading commit data...
ffmpeg_vaapi.c Loading commit data...
ffmpeg_vdpau.c Loading commit data...
ffmpeg_videotoolbox.c Loading commit data...
ffplay.c Loading commit data...
ffprobe.c Loading commit data...
ffserver.c Loading commit data...
ffserver_config.c Loading commit data...
ffserver_config.h Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...