~thopiekar/miracle/+git/miraclecast-albfan:derekdai-master-squashed
- Git
- lp:~thopiekar/miracle/+git/miraclecast-albfan
- derekdai-master-squashed
- Get this branch:
-
git clone
-b derekdai-master-squashed
https://git.launchpad.net/~thopiekar/miracle/+git/miraclecast-albfan
Branch merges
Related source package recipes
Branch information
- Name:
- derekdai-master-squashed
- Repository:
- lp:~thopiekar/miracle/+git/miraclecast-albfan
Recent commits
- 9df83ab... by Alberto Fanjul Alonso
-
Fix cmake compilation for new dispd daemon
- 8b455e1... by Derek
-
source-impl: Squashed derekdai fork
fix byte order of DHCP_SERVER_ID option
If miraclecat is GO, miracle-dhcp runs as server, it send out SERVER_ID
option in little endian, causes non-GO peer connect to wrong IP address, so
RTSP connection can't be established.In scenario like, say Android (GO) <-> miracalcast (non-GO), the DHCP service
is provided by Android, in this case, the SERVER_ID is in expected byte order
(big endian).set audio=False by default
since gstplayer has argument --audio to enable audio support but no
way to disable it, audio=False might a better choise.If we left audio=True and incoming stream has video only, the whole
pipeline will be blocked and wait for audio stream.init copy & modify
calculate array size of resolutions at build time instead of tailing null element
match resolution from high to low
init source side implementation
add option [-f|--full-screen] to switch to full screen mode at start up
initial sender implementation
integrate miracle-sender with miracast-srcctl
stop sender when peer freed
source implement + sender talk via dbus
miracle-wifid: fix some leaks of wpas_message
stability: increase gcc warning level
miracle-sender: change bus name from org.freedesktop
.miracle. Sender to org.freedesktop .miracle gstplayer: set sync=false to reduce latency
miracle-wifid: fix call waitid() with NULL pointer issue reported by valgrind
rename dbus name back to org.freedesktop
.miracle. Sender and variety kinds of tunning encode video with x264enc temperarily to prevent decoding issue on dongle
stop sender properly after session end
miracle-srcctl: fix memory management issues
Make miracle-wifid conexists with other network tools
The new option --lazy-managed will let miracle-wifid don't managed the
links automatically. Instead, the link will be managed only when the new
DBus property Managed was set to true. So this will be possible that
miracle-wifid could be conexists with other network tools like
networkmanager.For example, unmange the device in networkmanager with setting the DBus
property org.freedesktop.NetworkManager .Device. Managed to false and
manage it in miracle-wifid with setting
org.freedesktop.miracle. wifi.Link. Managed to true, then both them could
works and don't need to kill each other.Besides, there is new command named make-managed in miracle-wifictl and
miracle-sinkctla.miracle-wifid: add dbus & systemd service files to support dbus activation
miracle-wifid: remove duplicated link & peer dbus nodes by checking prefix
miracle-srcctl: fix some warming
miracle-wifid: add MACAddress property to link
miracle-wfdctl: init commit
miracle-*ctl: remove some debugging log messages
miracle-*ctl: resolve object parsing issue in ctl_wifi_fetch()
while parsing ctl_peer and ctl_link objects, if a ctl_peer appear prior
to its related ctl_link, -EINVAL is reported, and miracle-*ctl will quit
immediately.miracle-*ctl: fix label leak
miracle-wifid: let the format of wfd_dev_info compliant with wfd_subelems to ease parsing
miracle-*ctl: remove N_ELEMENTS() and use SHL_ARRAY_LENGTH() instead
miracle-*ctl: rename resolution_bitmap to wfd_resolution and add progressive field
remove vim settings from files
miracle-srcctl: rename ctl_src to wfd_src
miracle-wfdctl: first revision which can create TCP connection of WFD session between peers, controled through DBus
In this revision, the procedure of session negotiation is not yet
completed but only TCP connection can be established between peers.You can try it by run script `res/miracle-
wfdctl- demo` to see how it
work.miracle-
wfdctl- demo: wait for property chainging and object apperance by
busctl instead of sleepmiracle-*ctl: update links and peers when wifid up or down
miracle-
wfdctl- demo: cleanup before exit ignore .vimrc from being managed by git
miracle-wfdctl: now we can establish WFD session multiple times
in this revision, the source side RTSP protocol is not implemented
completely, the focus is on stability, DBus interfaces.add debian support prepared by Guo Shuang
miracle-
wfdctl- demo: add an optional argument to specify link index of
NetworkManagermiracle-wfdctl: refactoring to remove repeated snippets and centralize the
dispatching of request and replyadd -fstack-
protector- strong to capture more stack issues add miraclecast.links to create symlink for DBus activated systemd
servicesmiracle-wfdctl: return -EINVAL instead of being aborted by assert() when
rtsp message ID is invalidmiracle-*ctl: add *_from_string() and *_to_string() for wfd-video-formats and
wfd-audio-codecsmiracle-wfdctl: finish migration of source side rtsp protocol
remove unused files
fix links of services for debian package
move down trap command to prevent triggered by runing with no argument
remove unused #include
miracle-wfdctl: add timeout value and Range header to the reply of PLAY request
test compiler flag -fstack-
protector- strong before set miracle-wfdctl: run gst-launch to generate video stream with hardcoded
environmentmiracle-wfdctl: fix return uninitialized variable value issue
add struct wfd_arg to generalize passing of arguments
miracle-*ctl: fix and enhance wfd_subelement parser
miracle-wfdctl: remove unused function and improve log message for
peer new & deleterename macro arguement from v to _v to prevent name confliction
add support for signed and unsigned int for wfd_arg
refactoring getter/setter for dict type of wfd_arg to remove declaration
of temp variableadd wfd_arg_list type of wfd_arg
miracle_wfdctl: control flow and passing arguments with wfd_arg instead
of keep adding new structure fieldsmiracle-wfdctl: print friendly name when peer shows up
miracle-wfdctl: fix mapping from rtsp_message to rtsp_message_id
miracle-wfctl: reply 'request not implemented' instead of abort by assert()
check gcc version to ensure c11 generic select feature
update dependencies for debian based distro
miracle-wfdctl: acquire DISPLAY, XAUTHORITY and XDG_RUNTIME_DIR from
environment, instead of hardcodemiracle-wfdctl: fix wfd_session_end() recursive calling issue
miracle-wfdctl: add handler for PAUSE, PLAY and TEARDOWN methods
miracle-wfdctl: clarify teardown procedure of session
miracle-wfdctl: delay for 100ms before start sending stream to sink
miracle-wfdctl: compare wfd-standby and wfd-idr-request by message body
miracle-wfdctl: user now can select video mode through DBus interface
miracle-wfdctl: fix typo in systemd service file
miracle-wfdctl: change session type from uint64_t to unsigned int
miracle-wfdctl: do not launch gstreamer if DO_NOT_LAUNCH_GST environment
variable is set while miracle-wfdctl runningmiracle-wfdctl: remove unused Range header from reply
add compiler flag to do sanity check of undefined behaviours.
relax permissions checking to let non-privileged use miracalcast.
we will enhance this by fine grained permission conrol latter.
since we relaxed the permissions to talk to wifid and wfdctl, so there is
no need to run miracle-wfdctl-demo with sudo. but to kill these two
privileged services, the killall still need sudomiracle-wfdctl: integrate sd_event with GMainLoop for running gstreamer
in process instead of fork n exec gst-launchmiracle-wfdctl: encoding video stream with gstreamer library instead of
gst-launch-1.0miracle-
wfdctl- demo: run tcpdump with sudo miracle-wifid: change managed property of link by method call instead of
set property due to wpa_supplicant needs time to get readymiracle-wfdctl: include header <gst/gst.h> for resolving compiler warning
miracle-wfdctl: add rtcp and audio supporting to gstreamer pipeline
miracle-wfdctl: fix session removal dbus notification
miracle-wfdctl: fix variety kinds of dbus interface issues
miracle-wfdctl: fix sink removal notifcation
fix typo in miracle-
wifid.service miracle-wfdctl: set XAUTHORITY and DISPLAY before create gstreamer
pipeline, and now we can pass device name to pulseaudiomiraclw-wfdctl: fix typo of dbus signal names
miraclw-wfdctl: now you can cast only specified xid or xname to sink
miracle-wfdctl: fine tune gstreamer pipeline
miracle-wfdctl: fix argument passing for ximagesrc
miracle-wfdctl: send video only stream if no audio device specified
update dependencies of systemd services
miracle-wfdctl: reply rtsp request with date header in locale
en_US.UTF-8miracle-
wrdctl- demo: capture packets on p2p wnic with tshark instead of
tcpdumpmiracle-wfdctl: set ximagesrc as live mode to prvent it preroll in pause
statemiracle-wfdctl: fine tune codec to compliant with WFD spec + H264
profile/levelmiracle-wfdctl: disable audio encoding temparary
miracle-wfdctl: save captured packets to .pcap file instead of print out
on consoleupdate dependency information
miracle-wfdctl: remove extra NULL parameter
miracle-wfdctl: do not expose rtsp_message_
id_to_string( ) to outside
worldmiracle-wfdctl: handle gst messages and reflect state onto session
miracle-wfdctl: encode audio with voaacenc instead of avenc_aac to get
closer to WFD specrename miracle-wfdctl to miracle-dispd
change argument types of wfd_sink_
start_session( ) To workaround valac issue
miracle-wfdctl: fix pointer check issue
add a demostration for wifid + dispd
reorganize demo, make it looks like running in sequential instead of trigger by async events
miracle-dispd: fix monitor geometry calculation issue
remove miracle-
wfdctl- demo, replaced by demo/miracle-wfdctl demo/miracle-
wfdctl: fix some build issues for GDK version older then
3.22update dependencies in debian/ for demo/
update cmake minimum requirement from 2.8 to 3.0.2 due to usage of version comparasion of if command
check valac version to decide whether or not to use new Gdk.Monitor class
add install() for demo/miracle-wfdctl
add mission dependencies to debian/control
miracle-dispd: merge patch from Meelis
acquire ownership through Link.Manage(
)/Link. Unmanage( ) instead of set Link.Managed property demo/miracle-
wfdctl: better handling session tearing down move definitions related to miracle-dispd from src/ctl to src/disp
demo/miracle-
wfdctl: handle SIGINT to exit gracefully miracle-dispd: relax checking for peer with empty wfd_subelements
miracle-dispd: fix symlink for dbus-org.
freedesktop. miracle. wfd.service
which is an alias of miracle-dispd.service demo/miracle-
wfdctl: log message tweaks miracle-dispd: add watchdog and SIGKILL for it
to prevent no reponse and unable to be terminated issue. this is a temp solution
miracle-wifid: fix signal emittion of FormationFailure
miracle-wfdctl: update description of DBus interfaces
miracle-dispd: notify systemd about the service readiness
miracle-wifid: postpone the emittion of managed signal after the status
querydemo/miracle-
wfdctl: maintain DBus interfaces by .vala files instead of generate from .xml which have only sync methods miracle-dispd: use software codec instead of vaapi accelerated codec
miracle-dispd: add error report log to handle_replay()
miracle-dispd, demo/miracle-
wfdctl: improve error handling and reporting miracle-dispd: fix output resolution to 1080p@30
miracle-wifid: add Link.P2PState for checking P2P supporting status
demo/miracle-
wfdctl: Wait for P2PState changing before do P2P scanning add missing build-time dependencies
fix loop boundary checking
miracle-dispd: fix some uninitialized variable accessing issues
demo/miracle-
wfdctl: remove unused files add meson build supporting
remove install script and install scripts with install_data()
handle meson optoins properly
quote string entries with configuration_
data.set_ quoted( ) instead of by ourself with configureation_ data.set( ) remove starting `/` in front of installation path of DBus policy file
demo/miracle-
wfdctl: rollback method definitions in dbus interfaces from async to sync demo/miracle-
wfdctl: teardown session more gracefully miracle-dispd: stablizing and removing memory leak
miracle-dispd: put back gstreamer
in this version, the pipeline can be stopped properly, but the gst &
glib allocated memory can't be release cleanly (which won't
accumulate)Change-Id: I242b106158db64
7070e7852b84f6f 90b6bbd96f4 miracle-dispd: remove some compiler warmings
Change-Id: Ief2ae8e2992c2f
ee34fe560af73de b955a9186de demo/miracle-
wfdctl: log more info about DBus operation Change-Id: Ic44a6a2ca4585e
6aa1983885b4730 ccee6fd3d33 remove address sanitizer flag from default options
let user or packaging system to decide whether or not to use it
Change-Id: I27e7f7eae3f794
31a1ec7dc69d5f3 72677dadbad miracle-wifid: rename link_set_managed()
rename to prevent confusing with managed event notification
Change-Id: I0f0d01f9715604
4bbb225e199b271 7d5ea9c1a24 miracle-wifid: remove unused function
Change-Id: Ic2709a3661914f
d9e0708c3364911 8feededa7f6 miracle-wifid: cleanup change notification of Link.Managed property
Change-Id: Ia5b056151e0721
9f0e6cc34dbc9fc 2149f929a36 miracle-wifid: minor tweaks of log messages and identation
Change-Id: Id9e98583f3256c
83cf48f18cf0874 0849ded3cca miracle-wifid: fix crashing on link removing issue
wifid crashes when link removing (either unplug usb wlan dongle or
unload kernel module) due to doubleChange-Id: I9480a095659752
343e505eb41b380 d1ab3cd322a miracle-wifid: fine tune P2P state notification timing
Change-Id: Idb111b90109010
733b96d653c2d6d 7855ebc781f miracle-disp: extracting encoder, part1
Change-Id: Ic9293e9cf379d3
52c75701834f17f a553f0bf52d miracle-dispd: refactory session startup function
Change-Id: If1940a5823171d
35230d29051d79c 9827efc054f use meson default build type instead of debugoptimized
Change-Id: I39bdc3e9df61c6
81b7ec5800a9e57 fc7e9971cb0 migrate more gstreamer code to res/gstencoder
Change-Id: Id5098e37fb1eab
b2906505f26969e 6d8cedad519 miracle-dispd: add struct dispd_encoder as encoder client
since wait for the availability of newly spawned process and communicate
with it is a highly async task, wrapping in a isolated class is a better
choise.Change-Id: I7201da49f379c6
5014123269ed9e0 279bcb8c918 miracle-dispd: cleanup and reorganize header
Change-Id: I0067d59d89f79a
f53ae7291894191 edb33789ab2 miracle-dispd: rename field from ref_count to ref
Change-Id: Ia8138c0609b010
0dd2784734287a4 b3964beacbd miracle-dispd: unify log message
Change-Id: I17c7cb0c64ddae
cd09ff59f65dcb0 e745f6b7174 miracle-dispd: log if a function call returns error
it is easier to trace back to the location where the error occured
by logging the return code instead of simply return a error numberChange-Id: Ic711af32a1e80d
9da9317269521a4 745099e30cc miracle-dispd: extract encoder from dispd, part 2
Change-Id: Ie61daa87a83b87
5013c525fe3f152 22bf9057926 miracle-dispd: complete cmake build for extracted encoder
Change-Id: I5635bffdb8e1a0
a693893e22837de 6a8a0071fbe miracle-dispd: improve encoder lifecycle management
Change-Id: Ic651e4795e4c95
79978fe3e3529d8 d61e739ffd1 miracle-dispd: replace assert() with assert_?ret?()
for capturing more information about buggy behaviours, more
validations and loggings are addedChange-Id: I57e11d201324ed
10b2218c9e72627 759aae619c9 remove valgrind checking since now it is optional
Change-Id: I39dc6b3e23307f
d039775983b6d68 878547523ba miracle-wifid: fix the timing of notification of P2P availability
Change-Id: I86c453256b6140
22db5d941d64984 f9eecd4ef39 miracle-dispd: fix definition of wfd_session_
is_established( ) Change-Id: I61638bcb4e1705
9b5b9e37252894a b35d524d7cf gstencoder: exit if pipeline encounter error, EOS or enter NULL state
Change-Id: Id9934d144bf023
b301d92b24cc1ca fcf2bac3b8e miracle-dispd: add timer to ensure the termination of encoder process
Change-Id: I282136c7939213
7f2501f82009154 087ee9649be gstencoder: add license declaration
Change-Id: Ia2d7458d028e7d
0406c3eb2489211 c5daa86149d gstencoder: print final pipeline description to ease debugging
Change-Id: Ib5d9bfea0760f4
01033b7e8982a14 ae23f70d601 miracle-dispd: do not link with gstreamer libraries
Change-Id: Ie1782355794296
47de6e7e4cf738c e814e835424 miracle-dispd: minor value returning style tunning
Change-Id: I608154ffcbe0f2
5b4bfa9f78d0f45 7afe1e4fb89 miracle-dispd: more logging and assertions
Change-Id: I0450b9144390b1
2eed0646c4a4eac f6beed6ae91 miracle-dispd: improve session life cycle management
Change-Id: Icb43664439002f
76d7f64252f4ba7 9533d04ba43 miracle-dispd: run encoder with user privilege
now we run encoder with unprivileged user and talk through session bus
Change-Id: I09b3b8b15e5a7c
7e9b883b7c9dbac 601c13f458c gstencoder: fix untested execution path which has pipeline syntax issue
Change-Id: I1d170666852c33
e96c989468fc733 d065f777bd4 miracle-wfdctl: add options -b and -r
add options -b and -r to control whether or not to acquiring or
releasing ownershipt of WNICChange-Id: Iaa9fdac15a7d1e
23053b57500b978 e0c026fa50c miracle-dispd: fix session leaking issue
Change-Id: I1ececf598fedf6
01edfd7c7208ffc e72a750f8cd miracle-dispd: terminate with SIGTERM instead of SIGKILL
Change-Id: I3b46d3d50fc11c
8f3487cc241947b 556196e8ba6 miracle-dispd: ignore peers which has no valid wfd_supplicant
Change-Id: Ifd7225a944fb03
12eb3fe0c575b82 a9c95c6ab14 miracle-dispd: minor log message tweaks
Change-Id: I75cf47bb264027
0729d1643487ae5 cc7f8617446 fix creation paths of symlinks of DBus activated systemd services
prepend $ENV{DESTDIR} to the path which is abs path get from systemd.pc
Change-Id: Id07801a1f513fb
421f653cb4b2c94 3d8841a74f6 demo/miracle-
wfdctl: broadcast as source only device Change-Id: Id159332fc644e0
9990abdebffa8fa 4b9f8b2fc28 reload systemd units after installation
Change-Id: I98cf764f5dbbe5
fe06a136e3633a3 304e8e4401e miracle-dispd: add hardware accelection video encoding back to gstencoder
Change-Id: I577082a70da61b
6266e67c0b86116 62ae9bc316c build vala code with cmake modules instead of custom_command()
Change-Id: Ib0bc561441c366
4c00e73e6686459 7343f3f75e8 remove 'org.freedesktop.' prefix from dbus interface source files
Change-Id: Ice1ef49ca1ad3b
8f36c8b4a5f8f35 769df262eb9 move miracle-wfdctl from demo/ to res/
Change-Id: I37df75135e4713
a73d3c63353c9a1 7dc248e2d7e gstencoder: fallback to sw encoder if vaapi encoder not available
Change-Id: I8329fc191d6018
8c2098434d5db8a 4aa2b3fbec2 miracle-dispd: minor interface tweaks betwen wfd_session and wfd_out_session
Change-Id: Ib0c65ab64d543d
5fce8908f6c47db fc2acf47763 miracle-dispd: add keep-alive messages
Change-Id: Ib8fc055789a1bd
0a6df3075b17638 5407c17a74c miracle-dispd: remove unused log messages
Change-Id: I7460f6173815f0
54c0dc51accf96a 531f6faf4b1 miracle-dispd: minor tweaks of object life cycle transfering
Change-Id: Iafefe39652d9ad
e06c58e41f091a3 0df274cb091 update gstreamer1.0-vaapi version we depend on
Change-Id: Iacf53af83c151c
6746f778a97201e d3f7bd55504 miracle-wifid: reduce caps from .service file
Change-Id: I8434fe9dfcf141
156635d7a6f8a9c 2aaa4469263 miracle-dispd: reduce caps from .service file
Change-Id: Ibfc14aca1c03b8
cd6b50a49d5128d a8597acb898 miracle-dispd: set no new priviledge flag before exec encoder
Change-Id: I1b7f18a704203f
c60a35b67f09936 095ae6398f0 miracle-dispd: rename files and class names to make naming consistent
Change-Id: Id2f5a8d6bbfbbd
205dbe25e8b8bc0 ddd289591e5 remove tests for security related compiler flags
Change-Id: Ia51167abc10c4c
8bc03f58883aca0 6e05879c6e9 miracle-dispctl: fine tune ctrl+c handling
Change-Id: Ic5752cea7b6430
7c3c2d8dd0a8389 d3b18ab3339 miracle-wfdctl: enhance handling of user termination (ctrl+c)
Change-Id: Ifa2b1ee85b2abf
4cc0d9d7f40c452 517cb94761d miracle-wfdctl: fix GIOChannel ref leak
Change-Id: I12e647f9b4f13a
aa0aedf81907aa2 51675d2be32 miracle-dispd: fix session life-cycle managed issue
when a session is destroyed due to peer free event, dispd_out_session must
detach from sink to it won't cause double free.Change-Id: I71ad7e977fa71e
c84f12f5e914786 aa24a650f34 miracle-sinkctl: do not quote the value of 'Public' header of OPTION method
Change-Id: I1e3994517f492a
a7d999649411007 7c81acc41b4 miracle-dispd, gstencoder: enable audio supporting
Change-Id: I4d72782516ffff
487010cd94cc47e c68133ff257 relates #4
- 59df9a4... by Alberto Fanjul Alonso
-
Add CI badge status
- 3a459e5... by Alberto Fanjul Alonso
-
Add docker for CI
- 46089b1... by Graham White <email address hidden>
-
Add spec file for building rpm files
- c3c868e... by Alberto Fanjul Alonso
-
refactor to fix clang AST parsing
- 8151bb8... by Alberto Fanjul Alonso
-
whitespace
- 4e67272... by Alberto Fanjul Alonso
-
Avoid log errors
Do not output error settings null values or configuring unmanaged links
- 8b76e3c... by fasheng
-
Make miracle-wifid conexists with other network tools
The new option --lazy-managed will let miracle-wifid don't managed the
links automatically. Instead, the link will be managed only when the new
DBus property Managed was set to true. So this will be possible that
miracle-wifid could be coexists with other network tools like
networkmanager.For example, unmanage the device in networkmanager with setting the DBus
property org.freedesktop.NetworkManager .Device. Managed to false and
manage it in miracle-wifid with setting
org.freedesktop.miracle. wifi.Link. Managed to true, then both them could
works and don't need to kill each other.Besides, there is new command named make-managed in miracle-wifictl and
miracle-sinkctl.closes #135, #75
- ec7e11c... by Alberto Fanjul Alonso
-
bash completion with lazy load