vlc | branch: master | Hugo Beauzée-Luyssen <[email protected]> | Wed Jan 25 18:10:00 2012 +0100| [6b984f72fa46594513f2ed0973efb65c8454b297] | committer: Hugo Beauzée-Luyssen
dash: Fixing STREAM_GET_SIZE control query. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6b984f72fa46594513f2ed0973efb65c8454b297 --- modules/stream_filter/dash/DASHManager.cpp | 5 +++++ modules/stream_filter/dash/DASHManager.h | 1 + modules/stream_filter/dash/dash.cpp | 13 ++++++++++++- modules/stream_filter/dash/mpd/SegmentTemplate.h | 1 - 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/stream_filter/dash/DASHManager.cpp b/modules/stream_filter/dash/DASHManager.cpp index f14e1f7..4033be7 100644 --- a/modules/stream_filter/dash/DASHManager.cpp +++ b/modules/stream_filter/dash/DASHManager.cpp @@ -109,3 +109,8 @@ const logic::IAdaptationLogic* DASHManager::getAdaptionLogic() const { return this->adaptationLogic; } + +const Chunk *DASHManager::getCurrentChunk() const +{ + return this->currentChunk; +} diff --git a/modules/stream_filter/dash/DASHManager.h b/modules/stream_filter/dash/DASHManager.h index 860eee2..1fef884 100644 --- a/modules/stream_filter/dash/DASHManager.h +++ b/modules/stream_filter/dash/DASHManager.h @@ -47,6 +47,7 @@ namespace dash int peek( const uint8_t **pp_peek, size_t i_peek ); const mpd::IMPDManager* getMpdManager() const; const logic::IAdaptationLogic* getAdaptionLogic() const; + const http::Chunk *getCurrentChunk() const; private: http::HTTPConnectionManager *conManager; diff --git a/modules/stream_filter/dash/dash.cpp b/modules/stream_filter/dash/dash.cpp index ab3acee..d44661c 100644 --- a/modules/stream_filter/dash/dash.cpp +++ b/modules/stream_filter/dash/dash.cpp @@ -199,9 +199,20 @@ static int Control (stream_t *p_stream, int i_query, va_list args) case STREAM_SET_POSITION: return VLC_EGENERIC; case STREAM_GET_SIZE: + { + uint64_t* res = (va_arg (args, uint64_t *)); if(p_sys->isLive) - *(va_arg (args, uint64_t *)) = 0; + *res = 0; + else + { + const dash::mpd::Representation *rep = p_sys->p_dashManager->getAdaptionLogic()->getCurrentRepresentation(); + if ( rep == NULL ) + *res = 0; + else + *res = p_sys->p_mpd->getDuration() * rep->getBandwidth(); + } break; + } default: return VLC_EGENERIC; } diff --git a/modules/stream_filter/dash/mpd/SegmentTemplate.h b/modules/stream_filter/dash/mpd/SegmentTemplate.h index 8439050..dea7fcc 100644 --- a/modules/stream_filter/dash/mpd/SegmentTemplate.h +++ b/modules/stream_filter/dash/mpd/SegmentTemplate.h @@ -42,7 +42,6 @@ namespace dash virtual void done(); private: bool containRuntimeIdentifier; - Representation* representation; size_t beginTime; size_t beginIndex; int currentSegmentIndex; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
