1. 30 Oct, 2014 1 commit
  2. 08 Jul, 2014 1 commit
  3. 18 May, 2014 1 commit
  4. 04 Oct, 2013 1 commit
  5. 13 Mar, 2013 3 commits
  6. 05 Dec, 2012 1 commit
  7. 03 Nov, 2012 1 commit
  8. 07 Aug, 2012 1 commit
  9. 03 Aug, 2012 1 commit
  10. 29 Jun, 2012 1 commit
  11. 06 May, 2012 1 commit
  12. 17 Apr, 2012 2 commits
  13. 25 Mar, 2012 1 commit
  14. 22 Jan, 2012 2 commits
  15. 17 Oct, 2011 1 commit
  16. 22 Jun, 2011 3 commits
  17. 14 Jun, 2011 2 commits
  18. 30 Apr, 2011 1 commit
    • Philip Langdale's avatar
      CrystalHD: Add auto-detection of packed b-frame bug. · 8de45adb
      Philip Langdale authored
      I still don't fully understand the cause but the difference between
      the samples that trigger the bug and the samples that don't is
      that the former uses delay frames and the later uses drop frames
      as placeholders for the packed frame. So, if we see the one type
      of frame, we can assume the bug will or won't be present.
      
      Right now, I'm detecting the frame types by size, which may not be
      safe in general, but given the specific codec and file type, I
      expect any scenario where we encounter these frames where they
      aren't being used for b-frame packing won't care one way or
      another whether the work around is in effect or not.
      Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
      8de45adb
  19. 24 Apr, 2011 1 commit
    • Philip Langdale's avatar
      CrystalHD: Add AVOption to configure hardware downscaling. · e4253b1a
      Philip Langdale authored
      The CrystalHD hardware can do scaling, which is particularly
      desirable when dealing with some high resolution clips that take
      so long to decode and copy out that they end up playing back
      slower than realtime. By using scaling, we can make the output
      frames smaller and reduce the copy out time.
      
      This option takes the desired horizontal width in pixels, and
      the hardware will do an aspect-scale. Upscaling is not supported
      and the hardware will simply ignore any request to do so.
      Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
      e4253b1a
  20. 16 Apr, 2011 1 commit
  21. 09 Apr, 2011 6 commits
    • Philip Langdale's avatar
      CrystalHD: Improve detection of h.264 content. · ae7a4a15
      Philip Langdale authored
      As previously discussed, the CrystalHD hardware returns exceptionally
      useless information about interlaced h.264 content - to the extent
      that it's not possible to distinguish most MBAFF and PAFF content until
      it's too late.
      
      In an attempt to compensate for this, I'm introducing two mechanisms:
      
      1) Peeking at the picture number of the next picture
      
      The hardware provides a capability to peek the next picture number. If
      it is the same as the current picture number, then we are clearly dealing
      with two fields and not a frame or fieldpair.
      
      If this always worked, it would be all we need, but it's not guaranteed
      to work. Sometimes, the next picture may not be decoded sufficiently
      for the number to be known; alternately, a corruption in the stream may
      cause the hardware to refuse to return the number even if the next
      intact frame is decoded. In either case, the query will return 0.
      
      If we are unable to peek the next picture number, we assume that the
      picture is a frame/fieldpair and return it accordingly. If that turns
      out to be incorrect, we discard the second field, and the user has
      to live with the glitch. In testing, false detection can occur for
      the first couple of seconds, and then the pipeline stabalizes and
      we get correct detection.
      
      2) Use the h264_parser to detect when individual input fields have
      been combined into an output fieldpair.
      
      I have multiple PAFF samples where this behaviour is detected. The
      peeking mechanism described above will correctly detect that the
      output is a fieldpair, but we need to know what the input type was
      to ensure pipeline stability (only return one output frame per input
      frame).
      
      If we find ourselves with an output fieldpair, yet the input picture
      type was a field, as reported by the parser, then we are dealing with
      this case, and can make sure not to return anything on the next
      decode() call.
      
      Taken together, these allow us to remove the hard-coded hacks for
      different h.264 types, and we can clearly describe the conditions
      under which we can trust the hardware's claim that content is
      interlaced.
      Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
      ae7a4a15
    • Philip Langdale's avatar
      CrystalHD: Carry picture type from input to output picture. · bfde0f1b
      Philip Langdale authored
      Now that we know the type of the input picture, we have to bring
      that information to the output picture to help identify its type.
      We do this by adding a field to the opaque_list node.
      Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
      bfde0f1b
    • Philip Langdale's avatar
      CrystalHD: Bring in h.264 parser to establish picture type. · f6421e0b
      Philip Langdale authored
      As the hardware is unreliable, we will have to use the h.264 parser
      to identify whether an input picture is a field or a frame. This
      change loads the parser and extracts the picture type.
      Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
      f6421e0b
    • Philip Langdale's avatar
      CrystalHD: Change opaque_list_pop to return the node. · e99fd6ee
      Philip Langdale authored
      In preparation for adding additional fields to the node, return
      the node instead of the pts value. This requires the caller to
      free the node.
      Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
      e99fd6ee
    • Philip Langdale's avatar
      CrystalHD: Fix whitespace after previous change. · ca0eed7e
      Philip Langdale authored
      'git diff -w' confirmed to return nothing.
      Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
      ca0eed7e
    • Philip Langdale's avatar
      CrystalHD: Handle different h.264 MBAFF packing. · 9ce1d5f0
      Philip Langdale authored
      I found another MBAFF sample where the input:output pattern is
      the same as mpeg2 and vc1 (fieldpair input, individual field output).
      While I'm not sure how you can output individual fields from MBAFF,
      if I apply the mpeg2/vc1 handling to this file, it plays correctly.
      
      So, this changes the detection algorithm to handle the known cases.
      
      Whitespace will be fixed in a separate change.
      Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
      9ce1d5f0
  22. 26 Mar, 2011 7 commits