[FFmpeg-devel] [PATCH] rtsp - alternate protocol
Luca Abeni
lucabe72
Sat Dec 29 09:55:08 CET 2007
Hi Michael,
Michael Niedermayer wrote:
[...]
>>> So, can anyone explain what's the supposed behaviour of url_split()?
>>> Which testcase was fixed by r10775?
>> iam not sure but if i guess i think it prevents ?tcp from ending in the
>> hostname
>
> heres a attempt to fix it (completely untested, theres a good chance it
> contains trivial mistakes but ill comit it if noone points at a problem
> soon *g*)
[...]
I tried your patch, and it obviously fixes option parsing in rtsp.c
(with your patch applied, the "?..." is back in "path"). I do not know
if it re-introduce the regression cured by r10775, because I did not
understand the testcase...
However, after applying your patch rtsp.c still has problems if options
are passed in the URL: such options are now correctly recognised, but
they are not removed from the URL, so the RTSP server sees requests for
URLS like "rtsp://localhost:5454/test1-rtsp.mpg?tcp" instead of
"rtsp://localhost:5454/test1-rtsp.mpg".
This happens because the code in rtsp_read_header() removes the options
from the "path" variable (while parsing them), but does not remove the
options from "s->filename"; RTSP requests are forged based on
s->filename, not on path... I did not notice this problem before,
because I focused on the first one (fixed by your patch), and my fix for
the first problem incidentally fixed the second one.
I see three different solutions to the second problem (options not
removed from the URL in RTSP commands):
1) changing "option_list = strchr(path, '?');" in "option_list =
strchr(s->filename, '?');", as my original patch did.
2) using path instead of "s->filename" in the RTSP packets (I still have
to check how invasive this patch would be)
3) modify s->filename removing the options from it too...
Thanks,
Luca
More information about the ffmpeg-devel
mailing list