summaryrefslogtreecommitdiffstats
path: root/package/mplayer/0002-mpdemux-live555-async-interface.patch
diff options
context:
space:
mode:
authorVicente Olivert Riera <Vincent.Riera@imgtec.com>2015-10-06 14:42:54 +0100
committerPeter Korsgaard <peter@korsgaard.com>2015-10-07 10:19:01 +0200
commita0e41291a7c1ed699c2c55fad34216f2c875bec0 (patch)
tree6b74e1551a2922943010e6ca7be65ae02f47d7eb /package/mplayer/0002-mpdemux-live555-async-interface.patch
parent1c25c63a14e4a05eb9b7204174ff672926289e7f (diff)
downloadbuildroot-a0e41291a7c1ed699c2c55fad34216f2c875bec0.tar.gz
buildroot-a0e41291a7c1ed699c2c55fad34216f2c875bec0.zip
mplayer: bump to version 1.2
- Bump to version 1.2 - Update hash file. - Remove no longer existent configure options: --disable-dvdread-internal, --disable-tremor-internal. - Tweak 0001-disable-install-strip.patch. - Remove 0002-fix-cc-parsing.patch. Upstreamed: https://github.com/pigoz/mplayer-svn/commit/0f3ddfe146b8b2c6fe9302017375ef6b30ffbe71 - Remove 0004-add-arc-support.patch. Upstreamed: https://github.com/pigoz/mplayer-svn/commit/3b8c5f22313a416b24dcc4e7facde0a886352a75 - Remove 0005-Support-newer-GIFLIB-versions.patch. Upstreamed: https://github.com/pigoz/mplayer-svn/commit/a0ddaef5457e222dade386901bf448c5e3ac7b89 - Remove 0006-Support-newer-GIFLIB-versions-part2.patch. Upstreamed: https://github.com/pigoz/mplayer-svn/commit/a43d259602723d92db1463b166739fb8d22c2d51 - Remove 0007-mplayer-enable-aarch64.patch. Upstreamed: https://github.com/pigoz/mplayer-svn/commit/1cceebf1fa0cc1b27429e937f1cfa61c406f9159 - Rename 0003-mpdemux-live555-async-interface.patch to 0002-mpdemux-live555-async-interface.patch. Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/mplayer/0002-mpdemux-live555-async-interface.patch')
-rw-r--r--package/mplayer/0002-mpdemux-live555-async-interface.patch126
1 files changed, 126 insertions, 0 deletions
diff --git a/package/mplayer/0002-mpdemux-live555-async-interface.patch b/package/mplayer/0002-mpdemux-live555-async-interface.patch
new file mode 100644
index 0000000000..5a62a18710
--- /dev/null
+++ b/package/mplayer/0002-mpdemux-live555-async-interface.patch
@@ -0,0 +1,126 @@
+From d3195ea13f4a9aae546ff996e53681349a1a3cdb Mon Sep 17 00:00:00 2001
+From: sherpya <sherpya@netfarm.it>
+Date: Fri, 14 Jun 2013 05:25:38 +0200
+Subject: [PATCH 25/27] mpdemux: live555 async interface
+
+From: https://raw.github.com/sherpya/mplayer-be/master/patches/mp/0025-mpdemux-live555-async-interface.patch
+
+Adjust live555 interface code for modern versions of live555.
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ libmpdemux/demux_rtp.cpp | 51 ++++++++++++++++++++++++++++++++----------------
+ 2 files changed, 35 insertions(+), 22 deletions(-)
+
+diff --git a/libmpdemux/demux_rtp.cpp b/libmpdemux/demux_rtp.cpp
+index ad7a7f1..05d06e0 100644
+--- a/libmpdemux/demux_rtp.cpp
++++ b/libmpdemux/demux_rtp.cpp
+@@ -19,8 +19,6 @@
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+-#define RTSPCLIENT_SYNCHRONOUS_INTERFACE 1
+-
+ extern "C" {
+ // on MinGW, we must include windows.h before the things it conflicts
+ #ifdef __MINGW32__ // with. they are each protected from
+@@ -94,15 +92,6 @@ struct RTPState {
+
+ extern "C" char* network_username;
+ extern "C" char* network_password;
+-static char* openURL_rtsp(RTSPClient* client, char const* url) {
+- // If we were given a user name (and optional password), then use them:
+- if (network_username != NULL) {
+- char const* password = network_password == NULL ? "" : network_password;
+- return client->describeWithPassword(url, network_username, password);
+- } else {
+- return client->describeURL(url);
+- }
+-}
+
+ static char* openURL_sip(SIPClient* client, char const* url) {
+ // If we were given a user name (and optional password), then use them:
+@@ -118,6 +107,19 @@ static char* openURL_sip(SIPClient* client, char const* url) {
+ extern AVCodecContext *avcctx;
+ #endif
+
++static char fWatchVariableForSyncInterface;
++static char* fResultString;
++static int fResultCode;
++
++static void responseHandlerForSyncInterface(RTSPClient* rtspClient, int responseCode, char* responseString) {
++ // Set result values:
++ fResultCode = responseCode;
++ fResultString = responseString;
++
++ // Signal a break from the event loop (thereby returning from the blocking command):
++ fWatchVariableForSyncInterface = ~0;
++}
++
+ extern "C" int audio_id, video_id, dvdsub_id;
+ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
+ Boolean success = False;
+@@ -146,13 +148,19 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
+ rtsp_transport_http = demuxer->stream->streaming_ctrl->url->port;
+ rtsp_transport_tcp = 1;
+ }
+- rtspClient = RTSPClient::createNew(*env, verbose, "MPlayer", rtsp_transport_http);
++ rtspClient = RTSPClient::createNew(*env, url, verbose, "MPlayer", rtsp_transport_http);
+ if (rtspClient == NULL) {
+ fprintf(stderr, "Failed to create RTSP client: %s\n",
+ env->getResultMsg());
+ break;
+ }
+- sdpDescription = openURL_rtsp(rtspClient, url);
++ fWatchVariableForSyncInterface = 0;
++ rtspClient->sendDescribeCommand(responseHandlerForSyncInterface);
++ env->taskScheduler().doEventLoop(&fWatchVariableForSyncInterface);
++ if (fResultCode == 0)
++ sdpDescription = fResultString;
++ else
++ delete[] fResultString;
+ } else { // SIP
+ unsigned char desiredAudioType = 0; // PCMU (use 3 for GSM)
+ sipClient = SIPClient::createNew(*env, desiredAudioType, NULL,
+@@ -236,8 +244,12 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
+
+ if (rtspClient != NULL) {
+ // Issue a RTSP "SETUP" command on the chosen subsession:
+- if (!rtspClient->setupMediaSubsession(*subsession, False,
+- rtsp_transport_tcp)) break;
++ fWatchVariableForSyncInterface = 0;
++ rtspClient->sendSetupCommand(*subsession, responseHandlerForSyncInterface, False, rtsp_transport_tcp);
++ env->taskScheduler().doEventLoop(&fWatchVariableForSyncInterface);
++ delete[] fResultString;
++ if (fResultCode != 0) break;
++
+ if (!strcmp(subsession->mediumName(), "audio"))
+ audiofound = 1;
+ if (!strcmp(subsession->mediumName(), "video"))
+@@ -248,7 +260,11 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
+
+ if (rtspClient != NULL) {
+ // Issue a RTSP aggregate "PLAY" command on the whole session:
+- if (!rtspClient->playMediaSession(*mediaSession)) break;
++ fWatchVariableForSyncInterface = 0;
++ rtspClient->sendPlayCommand(*mediaSession, responseHandlerForSyncInterface);
++ env->taskScheduler().doEventLoop(&fWatchVariableForSyncInterface);
++ delete[] fResultString;
++ if (fResultCode != 0) break;
+ } else if (sipClient != NULL) {
+ sipClient->sendACK(); // to start the stream flowing
+ }
+@@ -637,7 +653,8 @@ static void teardownRTSPorSIPSession(RTPState* rtpState) {
+ MediaSession* mediaSession = rtpState->mediaSession;
+ if (mediaSession == NULL) return;
+ if (rtpState->rtspClient != NULL) {
+- rtpState->rtspClient->teardownMediaSession(*mediaSession);
++ fWatchVariableForSyncInterface = 0;
++ rtpState->rtspClient->sendTeardownCommand(*mediaSession, NULL);
+ } else if (rtpState->sipClient != NULL) {
+ rtpState->sipClient->sendBYE();
+ }
+--
+1.8.5.2
+
OpenPOWER on IntegriCloud