[Bug 775948] New: omxvideodec: Support for egl_render on RPi breaks dynamic resolution changes

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Dec 11 12:42:32 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=775948

            Bug ID: 775948
           Summary: omxvideodec: Support for egl_render on RPi breaks
                    dynamic resolution changes
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-omx
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: minfrin at sharp.fm
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

When a dynamic resolution change occurs,
gst_omx_video_dec_reconfigure_output_port() is called in order to ensure the
change is negotiated correctly.

In the original code path, the format is obtained from the GPU and maintained
untouched:

  format =
      gst_omx_video_get_format_from_omx (port_def.format.video.eColorFormat);


On the RPI specifically, support for egl_render kicks in and hard codes the
format instead to RGBA:

      state = gst_video_decoder_set_output_state (GST_VIDEO_DECODER (self),
          GST_VIDEO_FORMAT_RGBA, port_def.format.video.nFrameWidth,
          port_def.format.video.nFrameHeight, self->input_state);

This works fine if downstream supports RGBA, however omxh264enc does not and
attempts to renegotiate I420. After renegotiating to I420, the above code hard
codes the format back to RGBA and we hang.

The workaround is to skip egl_render, and the dynamic negotiation works again.

Question: why is it necessary to hard code RGBA here? Should we not just
respect the original format?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list