Skip to content

Commit

Permalink
minor typo fixes, add more citations according to turnitin results
Browse files Browse the repository at this point in the history
  • Loading branch information
pengdev committed May 5, 2015
1 parent 62d41fb commit 8673479
Show file tree
Hide file tree
Showing 11 changed files with 238 additions and 247 deletions.
Binary file modified final/thesis_peng.pdf
Binary file not shown.
Binary file modified final/thesis_peng.synctex.gz
Binary file not shown.
2 changes: 1 addition & 1 deletion source/chapters/abbreviations.tex
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
%\subsection*{Abbreviations}

\begin{tabular}{ll}
MHN & multimedia home networking \\
MHN & Multimedia Home Networking \\
DLNA & Digital Living Network Alliance\label{dlna_shortfor} \\
DMC & Digital Media Controller \\
DRM & Digital Rights Management \\
Expand Down
2 changes: 1 addition & 1 deletion source/chapters/chapter1.tex
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ \subsection{Motivation and Aims}
\\
As a result of their different technical designs, these standards proposed by
individual device manufacturers naturally experience serious compatibility
issues. Thus, end users can have several multimedia-devices, with each one
issues. Thus, end users can have several multimedia devices, with each one
using a distinctive, unique protocol, making it challenging or even impossible
sometimes to share media between those devices. These compatibility issues have
motivated the need to determine the technological features common to the four
Expand Down
39 changes: 22 additions & 17 deletions source/chapters/chapter2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -466,8 +466,10 @@ \subsection{Available standards\label{2_2}}
\subsubsection{AirPlay\label{2_2_3}}
AirPlay is Apple Inc's home networking solution. It is a family of protocols
used to display different types of media content on Apple TV from other iOS devices.
AirPlay support multiple functions, including displaying photos and sideshows from iOS devices, streaming audio from iOS devices or iTunes, as well as displaying videos from a iOS device and
showing the whole screen on Apple TV, which is known as AirPlay Mirroring. \\
AirPlay support multiple functions, including displaying photos and sideshows
from iOS devices, streaming audio from iOS devices or iTunes, as well as
displaying videos from a iOS device and showing the whole screen on Apple TV,
which is known as AirPlay Mirroring. \\
\\
AirPlay's specification is not open to public. However, unofficial
specifications have been made by some hackers through reverse engineering the
Expand Down Expand Up @@ -513,7 +515,7 @@ \subsubsection{AirPlay\label{2_2_3}}
Apple TV starts to download video from the server using the URL and starts
playing when enough data is buffered. The control messages can be seen in
table \ref{video_stream}. One thing worth mentioning is that Apple TV does
not support volume control for video streaming.\\
not support volume control for video streaming \cite{AirPlay-spec}.\\
%% table , Video Streaming
\begin{table}[htb]
\caption{AirPlay Video Control HTTP requests \label{video_stream}}
Expand Down Expand Up @@ -562,9 +564,12 @@ \subsubsection{AirPlay\label{2_2_3}}
\textbf{Music streaming} \\
\\
AirPlay music streaming is a bit different from video and image streaming. The
technology used is the RTSP streaming protocol, which is more of a "push like" protocol. Different than HTTP streaming where the server responds to a request, the RTSP streaming server actively pushes UDP packets to the receiver. However, Apple does not use the standard RTSP but instead uses its own implementation of RTSP, which is called RAOP (Remote
Audio Output Protocol). The control messages of RAOP can be seen in table
\ref{music_stream}. \\
technology used is the RTSP streaming protocol, which is more of a "push like"
protocol. Different than HTTP streaming where the server responds to a request,
the RTSP streaming server actively pushes UDP packets to the receiver. However,
Apple does not use the standard RTSP but instead uses its own implementation of
RTSP, which is called RAOP (Remote Audio Output Protocol) \cite{AirPlay-spec}.
The control messages of RAOP can be seen in table \ref{music_stream}. \\
\begin{table}[htb]
\caption{AirPlay Audio Control RTSP requests \label{music_stream}}
\begin{center}
Expand All @@ -586,13 +591,13 @@ \subsubsection{AirPlay\label{2_2_3}}
\textbf{Screen mirroring} \\
\\
AirPlay screen mirroring is achieved by transmitting an H.264 encoded video stream
over a TCP connection. The stream is packeted with a 128-byte header. The
audio uses the AAC-ELD format and is sent using the AirTunes protocol.
over a TCP connection \cite{AirPlay-spec}. The stream is packeted with a
128-byte header. The audio uses the AAC-ELD format and is sent using the AirTunes protocol.
The NTP(Network time protocol) protocol is used for synchronization and the synchronization
takes place on UDP port 7010 (client) and 7011 (server). The
AirPlay server runs a NTP client. Requests are sent to an AirPlay client every 3
seconds. The reference time stamp marks the beginning of the
mirroring session. The control messages can be seen in table
mirroring session. The control messages can be seen in table
\ref{mirroring_stream}. \\
\begin{table}[htb]
\caption{AirPlay Mirroring Control HTTP requests \label{mirroring_stream}}
Expand Down Expand Up @@ -638,8 +643,8 @@ \subsubsection{DIAL\label{2_2_4}}
streaming URL and the receiver will start downloading automatically. \\
\\
The DIAL protocol has two components: DIAL Service Discovery and the DIAL
Representational State Transfer (REST) Service. DIAL Service Discovery enables a
DIAL client device to discover DIAL servers on its local network and gain
Representational State Transfer (REST) Service \cite{dial}. DIAL Service
Discovery enables a DIAL client device to discover DIAL servers on its local network and gain
access to the DIAL REST Service on those devices. The DIAL REST Service enables
a DIAL client to query, launch, and optionally stop applications on a DIAL
server device.\\
Expand All @@ -662,7 +667,7 @@ \subsubsection{DIAL\label{2_2_4}}
description of the root device. When receiving the M-SEARCH response, the DIAL
client then sends an HTTP GET request to the URL found in the LOCATION header
of the M-SEARCH response, to get a prospected HTTP response message containing
a XML format UPnP device description. \\
a XML format UPnP device description \cite{dial}. \\
\\
\textbf{DIAL REST Service} \\
\\
Expand All @@ -678,7 +683,7 @@ \subsubsection{DIAL\label{2_2_4}}
application is installed or not. If the application is not recognized, the
server will either return 404 Not Found or trigger the installation of this specific
application. If the application has been installed, the DIAL server returns
an HTTP response with 200 OK and a body contains MIME type in XML.\\
an HTTP response with 200 OK and a body contains MIME type in XML \cite{dial}.\\
\\
The client then sends an HTTP POST request to the application resource URL to
launch the desired application. On receipt of a valid POST request, the DIAL
Expand Down Expand Up @@ -706,9 +711,9 @@ \subsubsection{Miracast\label{2_2_5}} %NOT Edited
building blocks that are constantly developed over the years. These components
include Wi-Fi CERTIFIED n (improved throughput and coverage), Wi-Fi Direct
(device-to- device connectivity), Wi-Fi Protected Access 2 (WPA2) (security),
Wi-Fi Multimedia (WMM) (traffic management) and Wi-Fi Protected Setup. These
technologies have enriched the user experience and increased user's trust in
Wi-Fi.\\
Wi-Fi Multimedia (WMM) (traffic management) and Wi-Fi Protected
Setup \cite{miracast_industry}. These technologies have enriched the user
experience and increased user's trust in Wi-Fi.\\
\\
Not limited to Wi-Fi direct connection, some Miracast devices also support Tunneled Direct Link Setup (TDLS), which allows devices to connect via an infrastructure network. TDLS enables more efficient data transfer and keeps the advantage of more advanced Wi-Fi capabilities at the same time.\\
\\
Expand Down Expand Up @@ -853,7 +858,7 @@ \subsubsection{Technology feature\label{2_3_3}}
In contrast, DLNA not only specifies mandatory media formats such as LPCM, JPEG and MP4, but provides a lot more optional media formats in its specifications as well. \\
\\
Since Miracast is a screen mirroring technology, all formats that can be played on the device are supported in Miracast streaming. Consequently, there is no mandate on media format in Miracast.
\paragraph{Networking technologies used}
\paragraph{Networking technologies used\label{2_3_3_2}}
A short technology specification comparison is made to help better understand
the existing solutions. Table \ref{compare_tech} shows the main technology used
in different popular solutions. \\
Expand Down
28 changes: 23 additions & 5 deletions source/chapters/chapter3.tex
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,31 @@ \subsection{Architecture overview\label{3_1}}
The content management component is responsible for organizing and
navigating multimedia contents that can be discovered in the home network. In our solution, these content sources include both the local storage of smart phones and DLNA digital media servers that are connected to the home network. As long as the discovered device belongs to the three device types that this solution support, its content could be streamed using the application solution.\\
\\
The streaming component is responsible for streaming multimedia content to the selected multimedia receivers, such as TVs, wireless speakers, set top boxes and so on. In a typical home networking environment, DLNA, AirPlay video/photo, and Chromecast all use HTTP streaming. The only exception, AirPlay music, uses Remote Audio Output Protocol (RAOP). Because of this, two types of media servers were integrated inside the application solution. With the application, the built-in RAOP server would handle the AirPlay music streaming, and the built-in HTTP media server would handle streaming of all other types.
The streaming component is responsible for streaming multimedia content to the
selected multimedia receivers, such as TVs, wireless speakers, set-top boxes and so on. In a typical home networking environment, DLNA, AirPlay video/photo, and Chromecast all use HTTP streaming. The only exception, AirPlay music, uses Remote Audio Output Protocol (RAOP). Because of this, two types of media servers were integrated inside the application solution. With the application, the built-in RAOP server would handle the AirPlay music streaming, and the built-in HTTP media server would handle streaming of all other types.

\subsection{Implementation\label{3_2}}
Since the application is built upon the Android platform, we conducted studies on the Android system architecture and the Android Software Development Kit (SDK). Thankfully, the Android SDK provides many useful Application Programming Interfaces (APIs) and grants crucial permissions to access necessary services and hardware features, such as the permission to access the Internet , the permission to access the WiFi device state change, the permission to allow WiFi multicast and the permission to read phone storage. The programming language used in developing our Android Application is Java. However some CPU-intensive works, such as transcoding, have to be implemented in C and then embedded to the application using the Android Native Development Kit (NDK).\\
\\
Since Apple has not provided its official specification for AirPlay, our implementation for supporting AirPlay is mostly written under unofficial guidelines. However, Apple has provided its official Multicast DNS (mDNS) implementation in C. Thus, this piece of code is reused and compiled as a shared native library. Similar with the Airplay support, the support for Remote Audio Output Protocol (RAOP) is
also implemented under unofficial guidelines. To be specific, the RAOP supporting component includes a UDP server and a TCP control channel.\\
Since the application is built upon the Android platform, we conducted research
on the Android system architecture and the Android Software Development Kit
(SDK). Thankfully, the Android SDK provides many useful Application Programming
Interfaces (APIs) and grants crucial permissions to access necessary services
and hardware features, such as the permission to access the Internet , the
permission to access the WiFi device state change, the permission to allow WiFi
multicast and the permission to read phone storage. The programming language
used in developing our Android Application is Java. However, some CPU-intensive
works, such as transcoding, have to be implemented in C, and then embedded to
the application using the Android Native Development Kit (NDK).\\
\\
Since Apple has not provided its official specification for AirPlay, our
implementation for supporting AirPlay is mostly written under unofficial
guidelines \cite{AirPlay-spec}. However, Apple has provided its official
Multicast DNS (mDNS) implementation in C
\footnote{\url{https://developer.apple.com/bonjour/index.html}}. Thus, this
piece of code is reused and compiled as a shared native library. Similar with
the Airplay support, the support for Remote Audio Output Protocol (RAOP) is
also implemented under unofficial guidelines.
To be specific, the RAOP supporting component includes a UDP server and a TCP
control channel.\\
\\
With Tuxera being a member of DLNA , we are able to access the detailed specifications and test tools for DLNA. Moreover, there are a lot of open source UPnP/DLNA
libraries available since DLNA is now a popular standard. Specifically, in our
Expand Down
11 changes: 0 additions & 11 deletions source/thesis_peng.tex
Original file line number Diff line number Diff line change
Expand Up @@ -279,17 +279,6 @@ \section{Conclusion\label{chapter5}}
%\addcontentsline{toc}{section}{Viitteet}
\addcontentsline{toc}{section}{References}

\cite{stateofHN}
\cite{AirPlay-spec}
\cite{next_generation}
\cite{DLNA_proxy2}
\cite{upnp}
\cite{standards-perspective}
\cite{DLNA_proxy}
\cite{end_user}
\cite{ipv6}


\bibliographystyle{unsrt}
\bibliography{reference}

Expand Down
21 changes: 10 additions & 11 deletions tmp/thesis_peng.aux
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@
\newlabel{dlna_key_tech}{{1}{13}{Key Technology Ingredients}{table.1}{}}
\citation{AirPlay-spec}
\citation{multicastdns}
\citation{AirPlay-spec}
\citation{AirPlay-spec}
\citation{AirPlay-spec}
\newlabel{2_2_3}{{2.2.3}{15}{AirPlay\label {2_2_3}}{subsubsection.2.2.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.3}AirPlay}{15}{subsubsection.2.2.3}}
\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces AirPlay Video Control HTTP requests }}{16}{table.2}}
Expand All @@ -78,13 +81,17 @@
\@writefile{lot}{\contentsline {table}{\numberline {5}{\ignorespaces AirPlay Mirroring Control HTTP requests }}{17}{table.5}}
\newlabel{mirroring_stream}{{5}{17}{AirPlay Mirroring Control HTTP requests}{table.5}{}}
\citation{dial}
\citation{dial}
\citation{dial}
\citation{dial}
\@writefile{lot}{\contentsline {table}{\numberline {6}{\ignorespaces AirPlay HTTP Digest Authentication }}{18}{table.6}}
\newlabel{hda}{{6}{18}{AirPlay HTTP Digest Authentication}{table.6}{}}
\newlabel{2_2_4}{{2.2.4}{18}{DIAL\label {2_2_4}}{subsubsection.2.2.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.4}DIAL}{18}{subsubsection.2.2.4}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces DIAL Discovery }}{19}{figure.3}}
\newlabel{dial_discovery}{{3}{19}{DIAL Discovery}{figure.3}{}}
\citation{miracast_industry}
\citation{miracast_industry}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces DIAL REST service: application launch }}{20}{figure.4}}
\newlabel{dial_rest}{{4}{20}{DIAL REST service: application launch}{figure.4}{}}
\newlabel{2_2_5}{{2.2.5}{20}{Miracast\label {2_2_5}}{subsubsection.2.2.5}{}}
Expand All @@ -109,6 +116,7 @@
\newlabel{dlna_market}{{7}{26}{Cumulative Global DLNA-Certified Device sales}{figure.7}{}}
\newlabel{2_3_3_1}{{2.3.3.1}{27}{Media format support\label {2_3_3_1}}{paragraph.2.3.3.1}{}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {2.3.3.1}Media format support}{27}{paragraph.2.3.3.1}}
\newlabel{2_3_3_2}{{2.3.3.2}{27}{Networking technologies used\label {2_3_3_2}}{paragraph.2.3.3.2}{}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {2.3.3.2}Networking technologies used}{27}{paragraph.2.3.3.2}}
\@writefile{lot}{\contentsline {table}{\numberline {7}{\ignorespaces Comparison of used technologies}}{27}{table.7}}
\newlabel{compare_tech}{{7}{27}{Comparison of used technologies}{table.7}{}}
Expand All @@ -118,6 +126,7 @@
\@writefile{toc}{\contentsline {section}{\numberline {3}Developing a solution for multimedia home networking}{29}{section.3}}
\newlabel{3_1}{{3.1}{29}{Architecture overview\label {3_1}}{subsection.3.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Architecture overview}{29}{subsection.3.1}}
\citation{AirPlay-spec}
\citation{cling}
\citation{cling}
\citation{ipv6}
Expand Down Expand Up @@ -241,15 +250,6 @@
\citation{performance_restful_saop}
\newlabel{5_3}{{5.3}{56}{Future of multimedia home networking\label {5_3}}{subsection.5.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Future of multimedia home networking}{56}{subsection.5.3}}
\citation{stateofHN}
\citation{AirPlay-spec}
\citation{next_generation}
\citation{DLNA_proxy2}
\citation{upnp}
\citation{standards-perspective}
\citation{DLNA_proxy}
\citation{end_user}
\citation{ipv6}
\bibstyle{unsrt}
\bibdata{reference}
\bibcite{stateofHN}{1}
Expand All @@ -269,14 +269,13 @@
\bibcite{miracast_industry}{15}
\bibcite{sonosnet}{16}
\bibcite{cling}{17}
\@writefile{toc}{\contentsline {section}{References}{59}{section*.3}}
\bibcite{ipv6}{18}
\@writefile{toc}{\contentsline {section}{References}{59}{section*.3}}
\bibcite{DLNA_proxy2}{19}
\bibcite{dalvik_arch}{20}
\bibcite{tux_webserver}{21}
\bibcite{zeroconf_vs_upnp}{22}
\bibcite{restful_webservice}{23}
\bibcite{performance_restful_saop}{24}
\bibcite{next_generation}{25}
\setcounter{NMainPages}{61}
\setcounter{NAbstracts}{1}
6 changes: 0 additions & 6 deletions tmp/thesis_peng.bbl
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,4 @@ Motaz~Saad Hatem~Hamad and Ramzi Abed.
\newblock {\em International Arab Journal of e-Technology}, 1(3):72--78,
January 2010.

\bibitem{next_generation}
Takayoshi Okodo Yohei Tsuchida Tomoyuki Yamaguchi-Takahiro~Murooka
Kimio~Oguchi, Kunio~Tojo.
\newblock Next generation home networking and relevant technologies.
\newblock {\em Proc. of SPIE}, 5626, 2005.

\end{thebibliography}
62 changes: 28 additions & 34 deletions tmp/thesis_peng.blg
Original file line number Diff line number Diff line change
Expand Up @@ -28,51 +28,45 @@ while executing---line 944 of file unsrt.bst
Warning--empty institution in dalvik_arch
Name 1 in "Hatem Hamad, Motaz Saad, and Ramzi Abed" has a comma at the end for entry performance_restful_saop
while executing---line 944 of file unsrt.bst
Too many commas in name 1 of "Kimio Oguchi, Kunio Tojo, Takayoshi Okodo, Yohei Tsuchida, Tomoyuki Yamaguchi, Takahiro Murooka" for entry next_generation
while executing---line 944 of file unsrt.bst
Too many commas in name 1 of "Kimio Oguchi, Kunio Tojo, Takayoshi Okodo, Yohei Tsuchida, Tomoyuki Yamaguchi, Takahiro Murooka" for entry next_generation
while executing---line 944 of file unsrt.bst
Too many commas in name 1 of "Kimio Oguchi, Kunio Tojo, Takayoshi Okodo, Yohei Tsuchida, Tomoyuki Yamaguchi, Takahiro Murooka" for entry next_generation
while executing---line 944 of file unsrt.bst
You've used 25 entries,
You've used 24 entries,
1791 wiz_defined-function locations,
555 strings with 6185 characters,
and the built_in function-call counts, 4162 in all, are:
= -- 390
> -- 96
549 strings with 5997 characters,
and the built_in function-call counts, 4029 in all, are:
= -- 378
> -- 92
< -- 5
+ -- 48
- -- 23
* -- 181
:= -- 648
add.period$ -- 66
call.type$ -- 25
change.case$ -- 35
+ -- 46
- -- 22
* -- 177
:= -- 623
add.period$ -- 63
call.type$ -- 24
change.case$ -- 34
chr.to.int$ -- 0
cite$ -- 26
duplicate$ -- 218
empty$ -- 452
format.name$ -- 23
if$ -- 972
cite$ -- 25
duplicate$ -- 210
empty$ -- 438
format.name$ -- 22
if$ -- 943
int.to.chr$ -- 0
int.to.str$ -- 25
missing$ -- 10
newline$ -- 119
num.names$ -- 21
pop$ -- 78
int.to.str$ -- 24
missing$ -- 9
newline$ -- 114
num.names$ -- 20
pop$ -- 77
preamble$ -- 1
purify$ -- 0
quote$ -- 0
skip$ -- 132
skip$ -- 128
stack$ -- 0
substring$ -- 191
swap$ -- 60
swap$ -- 59
text.length$ -- 5
text.prefix$ -- 0
top$ -- 0
type$ -- 0
warning$ -- 1
while$ -- 34
width$ -- 27
write$ -- 250
(There were 10 error messages)
while$ -- 33
width$ -- 26
write$ -- 239
(There were 7 error messages)
Loading

0 comments on commit 8673479

Please sign in to comment.