1. 23 Jan, 2012 8 commits
    • Michael Niedermayer's avatar
    • David Mitchell's avatar
      Improve support for PGS subtitles. · d150a147
      David Mitchell authored
      The previous implementation assumed that a new picture would always
      supersede the previous picture. Similarly, presentation segments
      were assumed to pertain to the most-recently-read picture.
      
      However, each presentation segment may refer to 0 or more pictures
      by their ID. Picture IDs may repeat, and a repeated picture ID
      indicates that the old picture for that ID is no longer needed
      and may be discarded.
      
      The new implementation allocates a buffer with one slot for each
      possible picture ID (the picture ID is a 16-bit field) and
      properly decodes presentation segments so that all relevant
      pictures are output upon encountering a display segment.
      
      Given that most PGS streams are unlikely to use more than a small
      fraction of the available picture IDs, it would probably be better
      to use a more memory-efficient data structure. I'm lazy though, so
      I leave this to a more motivated individual.
      
      I've tested the code with MKV files in VLC (a recent revision from
      their git repo) and with HandBrake (a version that I hacked up to
      use ffmpeg's PGS subtitle decoder).
      Review-by: 's avatarHendrik Leppkes <h.leppkes@gmail.com>
      Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
      d150a147
    • Michael Niedermayer's avatar
      pthreads: Generic progress lubrication support. · cf7c7f13
      Michael Niedermayer authored
      Fixes bug118, bug120 and bug125 at least
      Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
      cf7c7f13
    • Michael Niedermayer's avatar
      pthreads: reset got_frames on flush. · 575d494d
      Michael Niedermayer authored
      This fixes memory corruption when seeking in broken streams.
      a random mpeg4 in nut file was used to debug.
      Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
      575d494d
    • Paul B Mahol's avatar
      cafdec: replace deprecated get_strz() · c7579ad8
      Paul B Mahol authored
      c7579ad8
    • Paul B Mahol's avatar
      cafenc: replace deprecated av_dbl2int() · a6ef7b3a
      Paul B Mahol authored
      a6ef7b3a
    • Michael Niedermayer's avatar
    • Michael Niedermayer's avatar
      Merge remote-tracking branch 'qatar/master' · feb99757
      Michael Niedermayer authored
      * qatar/master: (25 commits)
        riff: fix invalid av_freep() calls on EOF in ff_read_riff_info
        pam: Fix a typo that broke writing and reading PAM files.
        mxfdec: fix memleak on av_realloc failures
        mxfdec: Do not parse slices or DeltaEntryArrays.
        mxfdec: hybrid demuxing/seeking solution
        mxfdec: Add Avid's essence element key.
        mfxdec: Separate mxf_essence_container_uls for audio and video.
        mxfdec: Compute packet offsets properly.
        mxfdec: Use MaterialPackage - Track - TrackID instead of the system_item hack.
        mxfdec: use av_dlog() for 'no corresponding source package found'
        mxfdec: Make mxf->partitions sorted by offset.
        mxfdec: parse ThisPartition
        mxfdec: Speed up metadata and index parsing.
        mxfdec: Make sure DataDefinition is consistent between material track and source track.
        mxfdec: add EssenceContainer UL found in 0001GL00.MXF.A1.mxf_opatom.mxf
        mxfdec: Add hack that adjusts the n_delta calculation when system items are present.
        mxfdec: Parse IndexTableSegments and convert them into AVIndexEntry arrays.
        mxfdec: Move FooterPartition to MXFContext and make sure it is never zero.
        mxfdec: check return value of avio_seek
        mxfdec: skip to end of structural sets
        ...
      
      Conflicts:
      	configure
      	libavcodec/pnm.c
      	libavformat/mxfdec.c
      	libavformat/riff.c
      	libavformat/rtsp.c
      Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
      feb99757
  2. 22 Jan, 2012 32 commits