1. 08 Nov, 2016 1 commit
  2. 28 Oct, 2016 1 commit
  3. 25 Mar, 2016 1 commit
    • Ico Doornekamp's avatar
      rtpdec_jpeg: fix low contrast image on low quality setting · edf54887
      Ico Doornekamp authored
      The problem is that the argument 'q' is of the type uint8_t.
      According to the JPEG standard, if 1 <= q <= 50, the scale factor
      'S' should be 5000 / Q. Because the create_default_qtables() reuses
      the variable 'q' to store the result of this calculation, for small
      values of q < 19, q wil subsequently overflow and give wrong results
      in the calculated quantization tables.
      
      Instead, use a new variable 'S' (same name as in RFC2435) with the
      proper range to store the result of the division.
      Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
      edf54887
  4. 24 Mar, 2016 1 commit
    • Ico Doornekamp's avatar
      avformat/rtpdec_jpeg: fix low contrast image on low quality setting · e3e6a2cf
      Ico Doornekamp authored
      Original mail and my own followup on ffmpeg-user earlier today:
      
      I have a device sending out a MJPEG/RTP stream on a low quality setting.
      Decoding and displaying the video with libavformat results in a washed
      out, low contrast, greyish image. Playing the same stream with VLC results
      in proper color representation.
      
      Screenshots for comparison:
      
        http://zevv.nl/div/libav/shot-ffplay.jpg
        http://zevv.nl/div/libav/shot-vlc.jpg
      
      A pcap capture of a few seconds of video and SDP file for playing the
      stream are available at
      
        http://zevv.nl/div/libav/mjpeg.pcap
        http://zevv.nl/div/libav/mjpeg.sdp
      
      I believe the problem might be in the calculation of the quantization
      tables in the function create_default_qtables(), the attached patch
      solves the issue for me.
      
      The problem is that the argument 'q' is of the type uint8_t. According to the
      JPEG standard, if 1 <= q <= 50, the scale factor 'S' should be 5000 / Q.
      Because the create_default_qtables() reuses the variable 'q' to store the
      result of this calculation, for small values of q < 19, q wil subsequently
      overflow and give wrong results in the calculated quantization tables. The
      patch below uses a new variable 'S' (same name as in RFC2435) with the proper
      range to store the result of the division.
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      e3e6a2cf
  5. 26 Dec, 2015 1 commit
  6. 30 Mar, 2015 1 commit
  7. 24 Feb, 2015 6 commits
  8. 18 Jul, 2014 1 commit
  9. 21 Dec, 2012 1 commit
  10. 20 Dec, 2012 1 commit
  11. 02 Nov, 2012 1 commit
  12. 12 Sep, 2012 12 commits
  13. 11 Sep, 2012 1 commit
  14. 09 Sep, 2012 1 commit