1
0
Fork 0
mirror of https://github.com/albfan/miraclecast.git synced 2025-03-09 23:38:56 +00:00

miracle-dispd: improve encoder lifecycle management

Change-Id: Ic651e4795e4c9579978fe3e3529d8d61e739ffd1
This commit is contained in:
Derek Dai 2017-04-21 14:46:10 +08:00
parent c5fb1487e0
commit 875fa86f6b
No known key found for this signature in database
GPG key ID: E109CC97553EF009
5 changed files with 152 additions and 115 deletions

View file

@ -110,25 +110,25 @@ internal class GstEncoder : DispdEncoder, GLib.Object
? configs.get(DispdEncoderConfig.FRAMERATE).get_uint32()
: 30;
StringBuilder desc = new StringBuilder();
desc.append_printf("""
ximagesrc name=vsrc use-damage=false show-pointer=false
startx=%u starty=%u endx=%u endy=%u
! video/x-raw, framerate=%u/1
! videoscale method=0
! video/x-raw, width=1920, height=1080
! videoconvert dither=0
! video/x-raw, format=YV12
! x264enc pass=4 b-adapt=false key-int-max=%u speed-preset=4 tune=4
! h264parse
! video/x-h264, alignment=nal, stream-format=byte-stream
%s
! mpegtsmux name=muxer
! rtpmp2tpay
! .send_rtp_sink_0 rtpbin name=session do-retransmission=true
do-sync-event=true do-lost=true ntp-time-source=3
buffer-mode=0 latency=20 max-misorder-time=30
! application/x-rtp
! udpsink sync=false async=false host="%s" port=%u """,
desc.append_printf(
"ximagesrc name=vsrc use-damage=false show-pointer=false " +
"startx=%u starty=%u endx=%u endy=%u " +
"! video/x-raw, framerate=%u/1 " +
"! videoscale method=0 " +
"! video/x-raw, width=1920, height=1080 " +
"! videoconvert dither=0 " +
"! video/x-raw, format=YV12 " +
"! x264enc pass=4 b-adapt=false key-int-max=%u speed-preset=4 tune=4 " +
"! h264parse " +
"! video/x-h264, alignment=nal, stream-format=byte-stream " +
"%s " +
"! mpegtsmux name=muxer " +
"! rtpmp2tpay " +
"! .send_rtp_sink_0 rtpbin name=session do-retransmission=true " +
"do-sync-event=true do-lost=true ntp-time-source=3 " +
"buffer-mode=0 latency=20 max-misorder-time=30 " +
"! application/x-rtp " +
"! udpsink sync=false async=false host=\"%s\" port=%u ",
configs.contains(DispdEncoderConfig.X)
? configs.get(DispdEncoderConfig.X).get_uint32()
: 0,
@ -293,7 +293,6 @@ internal class GstEncoder : DispdEncoder, GLib.Object
}
pipeline.set_state(Gst.State.NULL);
pipeline = null;
}
public async void prepare() throws Error