aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2012-07-24 16:29:40 +0200
committerMartin Storsjö <martin@martin.st>2012-07-25 20:33:13 +0300
commit758377a2b79a35386978b0af1196d36cbcfb8f64 (patch)
treed095a35eade41cfe5bfb5ca1ecbfa1dc332972a4
parent98df48db6dfc2ed2cef7472e564d0de9639e8774 (diff)
downloadffmpeg-758377a2b79a35386978b0af1196d36cbcfb8f64.tar.gz
rtmp: Add a new option 'rtmp_pageurl'
This option specifies the URL of the web page in which the media was embedded. Signed-off-by: Martin Storsjö <martin@martin.st>
-rw-r--r--doc/protocols.texi4
-rw-r--r--libavformat/rtmpproto.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/doc/protocols.texi b/doc/protocols.texi
index 616c9cda78..ff872fcdca 100644
--- a/doc/protocols.texi
+++ b/doc/protocols.texi
@@ -229,6 +229,10 @@ playpath. If a live stream of that name is not found, it plays the
recorded stream. The other possible values are @code{live} and
@code{recorded}.
+@item rtmp_pageurl
+URL of the web page in which the media was embedded. By default no
+value will be sent.
+
@item rtmp_playpath
Stream identifier to play or to publish. This option overrides the
parameter specified in the URI.
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 3dac9fab47..e20aacbc6c 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -90,6 +90,7 @@ typedef struct RTMPContext {
char* tcurl; ///< url of the target stream
char* flashver; ///< version of the flash plugin
char* swfurl; ///< url of the swf player
+ char* pageurl; ///< url of the web page
int server_bw; ///< server bandwidth
int client_buffer_time; ///< client buffer time in ms
int flush_interval; ///< number of packets flushed in the same request (RTMPT only)
@@ -232,6 +233,11 @@ static int gen_connect(URLContext *s, RTMPContext *rt)
ff_amf_write_number(&p, 252.0);
ff_amf_write_field_name(&p, "videoFunction");
ff_amf_write_number(&p, 1.0);
+
+ if (rt->pageurl) {
+ ff_amf_write_field_name(&p, "pageUrl");
+ ff_amf_write_string(&p, rt->pageurl);
+ }
}
ff_amf_write_object_end(&p);
@@ -1498,6 +1504,7 @@ static const AVOption rtmp_options[] = {
{"any", "both", 0, AV_OPT_TYPE_CONST, {-2}, 0, 0, DEC, "rtmp_live"},
{"live", "live stream", 0, AV_OPT_TYPE_CONST, {-1}, 0, 0, DEC, "rtmp_live"},
{"recorded", "recorded stream", 0, AV_OPT_TYPE_CONST, {0}, 0, 0, DEC, "rtmp_live"},
+ {"rtmp_pageurl", "URL of the web page in which the media was embedded. By default no value will be sent.", OFFSET(pageurl), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, DEC},
{"rtmp_playpath", "Stream identifier to play or to publish", OFFSET(playpath), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, DEC|ENC},
{"rtmp_swfurl", "URL of the SWF player. By default no value will be sent", OFFSET(swfurl), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, DEC|ENC},
{"rtmp_tcurl", "URL of the target stream. Defaults to proto://host[:port]/app.", OFFSET(tcurl), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, DEC|ENC},