GSoC Ideas list
Here are our projects ideas for this year, check how to talk to us about the ideas in our GSoC main page.
BlueZ
Implement AVRCP 1.3 Controller Role
The Audio/Video Remote Control Profile allows the control of a playing music/video over Bluetooth. Commands like play/pause are already supported by BlueZ and are part of the 1.0 specification. Now we need to implement the 1.3 version of the specification that adds music metadata information like Artist Name and Track title. There is two roles in this profile, the Target, who sends the metadata information and the Controller, that receives it, you can think the Target as the cellphone and the Controller the car kit side.
Target is already implemented in BlueZ, we need to implement now the Controller side.
Related projects: MPRIS
Skills: C, glib, dbus
Complexity: medium
Priority: high
Implement the Video Distribution Profile(VDP)
The Video Distribution Profile provide a way for device share a streaming video from one device to the other. This project intends to implement the source and sink role because the only way to test this is if we implement both roles.
Related projects: GStreamer, ffmpeg
Skills: C, glib, multimedia programming, gstreamer, dbus
Complexity: difficult
Priority: low
Implement the Basic Printing Profile(BPP)
The aim is to make your USB printer look like a Bluetooth printer.
Skills: C, glib
Complexity: medium
Priority:
Improve A2DP support
Improve support for Sink role and coexistence with HFP gateway role. This will be very useful for carkits.
Skills: C, glib, multimedia programming
Complexity: medium
Priority:
Implement a LE controller using VHCI
Using VHCI (Virtual HCI) we could implement a entire controller in software. This would be very useful when testing and reproducing corner case situations. Bluetooth Low Energy (LE) is the newest Bluetooth version, it defines a new type
of controller with some different objectives than traditional Bluetooth, for example, extreme low power consuption and fast connection setup, in exchange for a low data throughput. Also, very useful in airplanes
Skills: C, glib
Complexity: high
Priority: low
Bluetooth replayer
Also using the VHCI interface we could implement a way to “replay” hcidump logs from other setups, so we could reproduce some bugs without the need of specific hardware. hcidump is something similar to tcpdump for the Bluetooth world. This will too be useful in airplanes.
Skills: C, glib
Complexity: high
Priority: medium
Visualization of Bluetooth traffic
Write a tool to visualize Bluetooth traffic as sequence diagrams, pretty much like Bustle does with D-Bus traffic. Integrating it with wireshark somehow is a plus.
Skills: C
Complexity: medium
Priority: high
obexd
Implement the Message Access Profile(MAP)
MAP allows you to check/send email and SMS over Bluetooth. We need to implement the Client side in Bluez, a CarKit, for example. The server would be your cell phone.
Skills: C, glib, dbus
Complexity: medium
Priority: high
OBEX file system
Write a fuse-based or gvfs-based filesystem that allows a OBEX device to be mounted.
Skills: C, glib
Complexity: medium
Priority: medium