1. 18 May, 2018 9 commits
    • James Almer's avatar
      79126ce8
    • Aman Gupta's avatar
      avcodec/videotoolbox: fix decoding of some HEVC videos · 8f146b52
      Aman Gupta authored
      In a normal hwaccel, the AVHWFramesContext sets AVFrame.hw_frames_ctx
      when it initializes a new AVFrame in av_hwframe_get_buffer().
      
      But the VT hwaccel doesn't know what hw_frames_ctx to assign when
      the AVFrame is first created, because it depends on the format of
      the pixbuf that the decoder eventually decides to return. Thus
      newly created AVFrames always have a NULL hw_frames_ctx, and the
      hwaccel would only assign the ctx once a frame was done decoding.
      This worked fine with the H264 decoder, but with the HEVC decoder
      the frame's data may be moved to another empty AVFrame. Since the
      empty AVFrame never had hw_frames_ctx set, a frame with a NULL
      ctx could be returned to the API user.
      
      This patch works around the issue by moving the derived
      hw_frames_ctx from the AVFrame to a new VTHWFrame which now holds
      both the CVPixelBufferRef and the AVBuffer. The hw_frames_ctx
      is only copied to the AVFrame right before it is about to be
      returned to the user in videotoolbox_postproc_frame() (since
      in the case of VT, the hw_frames_ctx is only there for the API
      user anyway).
      
      Fixes playback on macOS and iOS of some hevc videos like
      https://s3.amazonaws.com/tmm1/videotoolbox/germany-hevc-zdf.tsSigned-off-by: 's avatarAman Gupta <aman@tmm1.net>
      8f146b52
    • Aman Gupta's avatar
      avformat/mpegts: add skip_unknown_pmt option · e24d768a
      Aman Gupta authored
      Some filtered mpegts streams may erroneously include PMTs for
      programs that are not advertised in the PAT. This confuses ffmpeg
      and most players because multiple audio/video streams are created
      and it is unclear which ones actually contain data.
      
      See for example https://tmm1.s3.amazonaws.com/unknown-pmts.ts
      
      In this sample, the PAT advertises exactly one program. But the
      pid it points to for the program's PMT contains PMTs for other
      programs as well. This is because the broadcaster decided to
      re-use the same pid for multiple program PMTs.
      
      The hardware that filtered the original multi-program stream
      into a single-program stream did so by rewriting the PAT to
      contain only the program that was requested. But since it just
      passed through the PMT pid referenced in the PAT, multiple PMTs
      are still present for the other programs.
      
      Before:
      
          Input #0, mpegts, from 'unknown-pmts.ts':
            Duration: 00:00:10.11, start: 80741.189700, bitrate: 9655 kb/s
            Program 4
              Stream #0:2[0x41]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 11063 kb/s, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc
              Stream #0:3[0x44](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
              Stream #0:4[0x45](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 128 kb/s
            No Program
              Stream #0:0[0x31]: Video: mpeg2video ([2][0][0][0] / 0x0002), none(tv), 90k tbr, 90k tbn, 90k tbc
              Stream #0:1[0x34](eng): Audio: ac3 (AC-3 / 0x332D4341), 0 channels, fltp
              Stream #0:5[0x51]: Video: mpeg2video ([2][0][0][0] / 0x0002), none, 90k tbr, 90k tbn
              Stream #0:6[0x54](eng): Audio: ac3 (AC-3 / 0x332D4341), 0 channels
      
      With skip_unknown_pmt=1:
      
          Input #0, mpegts, from 'unknown-pmts.ts':
            Duration: 00:00:10.11, start: 80741.189700, bitrate: 9655 kb/s
            Program 4
              Stream #0:0[0x41]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 11063 kb/s, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc
              Stream #0:1[0x44](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
              Stream #0:2[0x45](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 128 kb/s
      Signed-off-by: 's avatarAman Gupta <aman@tmm1.net>
      e24d768a
    • Clément Bœsch's avatar
    • Tobias Rapp's avatar
      avfilter/vsrc_testsrc: add pal75bars and pal100bars video filter sources · eb28b5ec
      Tobias Rapp authored
      Generates color bar test patterns based on EBU PAL recommendations.
      Reviewed-by: 's avatarPaul B Mahol <onemda@gmail.com>
      Signed-off-by: 's avatarTobias Rapp <t.rapp@noa-archive.com>
      eb28b5ec
    • Paul B Mahol's avatar
      avfilter/vf_waveform: add slice threading · e9dd5b4f
      Paul B Mahol authored
      Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
      e9dd5b4f
    • Rostislav Pehlivanov's avatar
    • Rostislav Pehlivanov's avatar
    • Rostislav Pehlivanov's avatar
      configure: error out on unsupported MSVC versions · ce943dd6
      Rostislav Pehlivanov authored
      The FATE tests for MSVC versions older than 2013 are untested in FATE
      and apparently are no longer supported.
      
      This commit makes the configure process error out in case an older version
      is used, and suggests to use a supported version of MSVC to compile.
      
      This also changes the documentation to reflect this.
      
      As discussed on IRC:
      
      2018-05-12 19:45:16     jamrial then again, most of those were for old msvc, and i think we're not supporting versions older than 2013 (first one c99 compliant) anymore
      2018-05-12 19:45:43     +JEEB   yea, I think 2013 update 2 is needed
      
      22:53 <@atomnuker> nevcairiel: which commit broke/unsupported support for msvc 2013?
      23:23 <@atomnuker> okay, it was JEEB
      23:25 <+JEEB> which was for 2012 and older
      23:25 <+JEEB> and IIRC we no longer test those in FATE so that was my assumption
      23:26 <+JEEB> 2013 is when MS got trolled enough to actually update their C part
      23:26 <+JEEB> aand actually advertised FFmpeg support
      23:26 <+JEEB> (although it was semi-failing until VS2013 update 1 or 2)
      Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
      ce943dd6
  2. 17 May, 2018 12 commits
  3. 16 May, 2018 6 commits
  4. 15 May, 2018 11 commits
  5. 14 May, 2018 2 commits