Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-108446

Investigate creating hw frame context for video renderer

    XMLWordPrintable

Details

    • Task
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • None
    • Multimedia
    • Android
    • 519dbbc4c (dev), 50f73645f (6.5)

    Description

      Problem:
      See method VideoRenderer::renderInternal. There is a disabled code that creates hw frames context if it doesn't exist. In general, this code doesn't work correctly. It's not enough just to make context, since ffmpeg uses specific data fields in the case hw_frames_ctx exists. E.g. 

       av_hwframe_transfer_data(...) 
          => 

      static int vt_map_frame(AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src, int flags)
      {
          CVPixelBufferRef pixbuf = (CVPixelBufferRef)src->data[3]; // it's null if hw_frames_ctx is not set
          ...
      }

       

      Steps to reproduce the problem:

        - Enable hw_frames_ctx creation in VideoRenderer::renderInternal

        - Run test tst_QMediaPlayerBackend::seekPauseSeek on MacOS
      or
        - Open the attached file in mediaplyer example. [^colors.mp4][^colors.ogv]

      To be done:

      Investigate the case and implement on of the following:

        - Implement hw_frames_ctx creation for the current video format on ffmpeg side and remove the disable code.
      or
        - Fix frame->data and use the existing approach.

       

       

      Attachments

        1. colors-1.ogv
          12 kB
          Artem Dyomin
        2. colors-1.mp4
          25 kB
          Artem Dyomin

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              bartlomiejmoskal Bartlomiej Moskal
              artemiy Artem Dyomin
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: