mirror of
https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git
synced 2023-10-10 19:16:51 +02:00
Ignore dummy file extensions (.ts, .vob, .vdr) when parsing HTTP URIs
This commit is contained in:
parent
d3df5d07a1
commit
e1ba17ca21
1
HISTORY
1
HISTORY
@ -1,6 +1,7 @@
|
|||||||
VDR Plugin 'streamdev' Revision History
|
VDR Plugin 'streamdev' Revision History
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
- Ignore dummy file extensions (.ts, .vob, .vdr) when parsing HTTP URIs
|
||||||
- Select start position for replaying a recording by parameter pos=. Supported
|
- Select start position for replaying a recording by parameter pos=. Supported
|
||||||
values are resume, mark.#, time.#, frame.# or a plain # representing a
|
values are resume, mark.#, time.#, frame.# or a plain # representing a
|
||||||
percentage if < 100 or a byte position otherwise (thanks to hivdr)
|
percentage if < 100 or a byte position otherwise (thanks to hivdr)
|
||||||
|
@ -556,11 +556,24 @@ bool cConnectionHTTP::ProcessURI(const std::string& PathInfo)
|
|||||||
|
|
||||||
if (file_pos != std::string::npos) {
|
if (file_pos != std::string::npos) {
|
||||||
size_t ext_pos = PathInfo.rfind('.');
|
size_t ext_pos = PathInfo.rfind('.');
|
||||||
// file basename with leading / stripped off
|
if (ext_pos != std::string::npos) {
|
||||||
filespec = PathInfo.substr(file_pos + 1, ext_pos - file_pos - 1);
|
|
||||||
if (ext_pos != std::string::npos)
|
|
||||||
// file extension including leading .
|
// file extension including leading .
|
||||||
fileext = PathInfo.substr(ext_pos);
|
fileext = PathInfo.substr(ext_pos);
|
||||||
|
const char *ext = fileext.c_str();
|
||||||
|
// ignore dummy file extensions
|
||||||
|
if (strcasecmp(ext, ".ts") == 0 ||
|
||||||
|
strcasecmp(ext, ".vdr") == 0 ||
|
||||||
|
strcasecmp(ext, ".vob") == 0) {
|
||||||
|
size_t ext_end = ext_pos;
|
||||||
|
if (ext_pos > 0)
|
||||||
|
ext_pos = PathInfo.rfind('.', ext_pos - 1);
|
||||||
|
if (ext_pos == std::string::npos)
|
||||||
|
ext_pos = ext_end;
|
||||||
|
fileext = PathInfo.substr(ext_pos, ext_end - ext_pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// file basename with leading / stripped off
|
||||||
|
filespec = PathInfo.substr(file_pos + 1, ext_pos - file_pos - 1);
|
||||||
}
|
}
|
||||||
if (fileext.length() > 5) {
|
if (fileext.length() > 5) {
|
||||||
//probably not an extension
|
//probably not an extension
|
||||||
|
Loading…
Reference in New Issue
Block a user