Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clopez/rpi compressed rebased #683

Open
wants to merge 26 commits into
base: master
Choose a base branch
from

Conversation

piggy1924
Copy link

No description provided.

alexgcastro and others added 26 commits November 14, 2016 12:20
This is required for the proper RTX implementation.
The previous version of the source bin had the capsfilter after the
glcolorconvert element, triggering a caps negotiation issue. And without
videoscale element the capsfilter is not very useful anyway.

So now the video resize is performed before uploading to the GPU.
The owr_transport_agent_add_session function is now limited to storing
the session in an internal list. The list is processed by a new
owr_transport_agent_start function which will perform the necessary
operations in one go to prepare the GStreamer pipeline and start
playback.

This change of behavior is needed for the RTP bundling support because
the agent needs to be aware of all the sessions it will manage as soon
as rtpbin starts prerolling.
We now differentiate session IDs and stream IDs. The streams represent
what goes from/to the Nice GStreamer elements. When SDP bundle have been
negotiated with a peer, the transport agent will now create a single
Nice src and sink elements. If RTCP muxing is enabled, the RTCP packets
will flow through these elements. Otherwise, new dedicated Nice src and
sink elements are created.
Fixes EricssonResearch#572
Based on a preliminary patch by Adrian Bauer <agbauer@gmail.com>
Most tests don't require json-glib so we can enable them and build
test-client only json-glib was detected on the host.
Replaced with a notify::source handler in the video renderer.
Can be used to probe the platform for a specific codec support.
error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
This seems to be an issue on linux with vp8dec too.
 * When the RPi is configured with a resolution higher than 720p like 1080p,
   and some application requests OWRTC a full-screen video the requested
   source video resolution on the RPiCam can cause firmware fatal errors.

 * This happens with WebKit on AppRTC with the RPi configured on a 1080p
   display:

     mmal: mmal_vc_port_enable: failed to enable port vc.ril.video_encode:in:0(OPQV): EINVAL
     mmal: mmal_port_enable: failed to enable connected port (vc.ril.video_encode:in:0(OPQV))0x59c350 (EINVAL)
     mmal: mmal_connection_enable: output port couldn't be enabled
     ==== Error message start ====
     Error in element video-source.
     Error: Internal data flow error.
     Debugging info: gstbasesrc.c(2948): gst_base_src_loop ():
     /GstPipeline:local-video-capture-source-bin-0/GstRpiCamSrc:video-source: streaming task paused, reason error (-5)

 * With this patch, AppRTC works fine on a 1080p screen with the RPiCam.
   The following GStreamer logs happen:

    DEBUG [...] RPiCam: Asked source video resolution of 2160x1080
    WARN  [...] RPiCam: The asked source video resolution was capped to 1440x720 to void mmal firmware related errors
 This is enabled by setting the value of the environment variable
 OWR_USE_TEST_SOURCES to 'h264' or 'H264'.
 Any other value of the environment variable will enable the
 previous test sources with raw video format.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants