From 8686772ad65dc4c282c15f8a05ba0917caff19a9 Mon Sep 17 00:00:00 2001 From: Oswald Auguste de Bruin Date: Wed, 17 Jul 2013 11:12:29 +0200 Subject: [PATCH] Ogg 2 DTSC works --- src/Makefile.am | 3 ++- src/converters/dtscfix.cpp | 6 +++++- src/converters/ogg2dtsc.cpp | 4 +--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 9bf7cd91..f0c6d5b2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -11,7 +11,7 @@ RELEASE ?= "Generic_`getconf LONG_BIT`" AM_CPPFLAGS = $(global_CFLAGS) $(MIST_CFLAGS) -DRELEASE=\"$(RELEASE)\" LDADD = $(MIST_LIBS) -bin_PROGRAMS=MistBuffer MistController MistConnRAW MistConnRTMP MistConnHTTP MistConnHTTPProgressive MistConnHTTPDynamic MistConnHTTPSmooth MistConnHTTPLive MistConnTS MistPlayer MistDTSC2FLV MistFLV2DTSC MistDTSCFix MistDTSC2TS MistOGG2DTSC MistAnalyserRTMP MistAnalyserFLV MistAnalyserDTSC MistAnalyserAMF MistAnalyserMP4 MistAnalyserOGG MistOGG2DTSC +bin_PROGRAMS=MistBuffer MistController MistConnRAW MistConnRTMP MistConnHTTP MistConnHTTPProgressive MistConnHTTPDynamic MistConnHTTPSmooth MistConnHTTPLive MistConnTS MistPlayer MistDTSC2FLV MistFLV2DTSC MistDTSCFix MistDTSC2TS MistOGG2DTSC MistDTSC2OGG MistAnalyserRTMP MistAnalyserFLV MistAnalyserDTSC MistAnalyserAMF MistAnalyserMP4 MistAnalyserOGG #buffer folder (MistBuffer, MistPlayer) MistBuffer_SOURCES=buffer/buffer.cpp buffer/buffer_user.h buffer/buffer_user.cpp buffer/buffer_stream.h buffer/buffer_stream.cpp tinythread.cpp tinythread.h ../VERSION @@ -36,6 +36,7 @@ MistConnTS_SOURCES=connectors/conn_ts.cpp ../VERSION MistDTSC2FLV_SOURCES=converters/dtsc2flv.cpp MistFLV2DTSC_SOURCES=converters/flv2dtsc.cpp MistOGG2DTSC_SOURCES=converters/ogg2dtsc.cpp +MistDTSC2OGG_SOURCES=converters/dtsc2ogg.cpp MistDTSCFix_SOURCES=converters/dtscfix.cpp MistDTSCMerge_SOURCES=converters/dtscmerge.cpp MistDTSC2TS_SOURCES=converters/dtsc2ts.cpp diff --git a/src/converters/dtscfix.cpp b/src/converters/dtscfix.cpp index 2a828db8..65243d22 100644 --- a/src/converters/dtscfix.cpp +++ b/src/converters/dtscfix.cpp @@ -195,7 +195,11 @@ namespace Converters { meta["tracks"][it->first]["type"] = it->second.type; int tmp = meta["tracks"][it->first]["keys"].size(); if (tmp > 0){ - meta["tracks"][it->first]["keys"][tmp - 1]["len"] = it->second.lastms - meta["tracks"][it->first]["keys"][tmp - 2]["time"].asInt(); + if (tmp > 1){ + meta["tracks"][it->first]["keys"][tmp - 1]["len"] = it->second.lastms - meta["tracks"][it->first]["keys"][tmp - 2]["time"].asInt(); + }else{ + meta["tracks"][it->first]["keys"][tmp - 1]["len"] = it->second.lastms; + } meta["tracks"][it->first]["keys"][tmp - 1]["size"] = it->second.totalSize; for (int i = 0; i < trackData[it->first].parts.size(); i++){ meta["tracks"][it->first]["keys"][tmp - 1]["parts"].append(trackData[it->first].parts[i]); diff --git a/src/converters/ogg2dtsc.cpp b/src/converters/ogg2dtsc.cpp index b942b61f..693a5e1b 100644 --- a/src/converters/ogg2dtsc.cpp +++ b/src/converters/ogg2dtsc.cpp @@ -65,17 +65,16 @@ namespace Converters{ std::cerr << "Unknown Codec, skipping" << std::endl; continue; } + trackData[sNum].dtscID = lastTrackID++; std::stringstream tID; tID << "track" << trackData[sNum].dtscID; trackData[sNum].name = tID.str(); - trackData[sNum].dtscID = lastTrackID++; } //if Serial number is available in mapping if(trackData.find(sNum)!=trackData.end()){ int offset = 0; for (std::deque::iterator it = oggPage.getSegmentTableDeque().begin(); it != oggPage.getSegmentTableDeque().end(); it++){ if (trackData[sNum].parsedHeaders){ - //todo output segment //output DTSC packet DTSCOut.null();//clearing DTSC buffer DTSCOut["trackid"] = (long long)trackData[sNum].dtscID; @@ -120,7 +119,6 @@ namespace Converters{ break; } } - }else{//if the current segment is a movie part } break; }