Revision: 2791
Author: seba.wagner
Date: Sat Jan 16 07:10:17 2010
Log: Some Audio Debug
http://code.google.com/p/openmeetings/source/detail?r=2791
Modified:
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/ListenerAdapter.java
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamTranscodingListener.java
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.hbm.xml
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.java
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/ListenerAdapter.java
Sat Jan 16 03:12:39 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/ListenerAdapter.java
Sat Jan 16 07:10:17 2010
@@ -35,6 +35,8 @@
protected boolean isScreenData = false;
+ protected Long offset = 0L;
+
protected String streamName = "";
public ListenerAdapter(String streamName, IScope scope,
@@ -93,6 +95,6 @@
IStreamableFile flv = service.getStreamableFile(this.file);
this.writer = flv.getWriter();
- }
+ }
}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
Sat Jan 16 03:16:13 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
Sat Jan 16 07:10:17 2010
@@ -33,6 +33,8 @@
private int duration = 0;
+ private int purePacketLastTimeStamp = 0;
+
private static final Logger log =
Red5LoggerFactory.getLogger(StreamAudioListener.class, "openmeetings");
public StreamAudioListener(String streamName, IScope scope,
@@ -40,10 +42,101 @@
// Auto-generated method stub
super(streamName, scope, flvRecordingMetaDataId, isScreenData);
}
+
+
+
+ public void streamResetEvent() {
+
+ try {
+
+ FlvRecordingMetaDelta flvRecordingMetaDelta = new
FlvRecordingMetaDelta();
+
+ flvRecordingMetaDelta.setDeltaTime(0L);
+
flvRecordingMetaDelta.setFlvRecordingMetaDataId(this.flvRecordingMetaDataId);
+ flvRecordingMetaDelta.setTimeStamp(0);
+ flvRecordingMetaDelta.setDebugStatus("RESET TYPE :: ");
+ flvRecordingMetaDelta.setIsStartPadding(true);
+ flvRecordingMetaDelta.setIsEndPadding(false);
+ flvRecordingMetaDelta.setDataLengthPacket(0);
+
flvRecordingMetaDelta.setReceivedAudioDataLength(this.byteCount);
+
flvRecordingMetaDelta.setStartTime(this.startedSessionTimeDate);
+ flvRecordingMetaDelta.setStreamCreationTime(null);
+ flvRecordingMetaDelta.setStreamCreationTimeDate(null);
+ flvRecordingMetaDelta.setPacketTimeStamp(lastTimeStamp);
+
+ Date current_date = new Date();
+ Long deltaTimeStamp = current_date.getTime() -
this.startedSessionTimeDate.getTime();
+
+ //this.duration = Math.max(this.duration, 0 +
this.writer.getOffset());
+ flvRecordingMetaDelta.setDuration(0);
+
+ Long missingTime = deltaTimeStamp - 0;
+
+ flvRecordingMetaDelta.setMissingTime(missingTime);
+
+ flvRecordingMetaDelta.setCurrentTime(current_date);
+ flvRecordingMetaDelta.setDeltaTimeStamp(deltaTimeStamp);
+ flvRecordingMetaDelta.setStartTimeStamp(startTimeStamp);
+
+ this.flvRecordingMetaDeltas.add(flvRecordingMetaDelta);
+
+
FlvRecordingMetaDeltaDaoImpl.getInstance().addFlvRecordingMetaDelta(flvRecordingMetaDelta);
+
+ this.offset += lastTimeStamp;
+
+ } catch (Exception e) {
+ log.error("[packetReceived]",e);
+ }
+
+ }
+
+
@Override
public void packetReceived(IBroadcastStream broadcastStream,
IStreamPacket streampacket) {
try {
+
+
+// //Here we handle Reseted timestamps!
+// if (startTimeStamp != -1) {
+//
+// long deltaTimeBetweenTimeStampes = purePacketLastTimeStamp -
streampacket.getTimestamp();
+//
+//
System.out.println("deltaTimeBetweenTimeStampes "+deltaTimeBetweenTimeStampes);
+//
+// if (deltaTimeBetweenTimeStampes < -100) {
+//
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+// log.debug("We have detected a Reset in the
TimeStamps!");
+//
+//
System.out.println("streampacket.getTimestamp() :: "+streampacket.getTimestamp());
+//
System.out.println("purePacketLastTimeStamp :: "+purePacketLastTimeStamp);
+// System.out.println("startTimeStamp ::
"+startTimeStamp);
+//
+// int debugTimeStamp =
purePacketLastTimeStamp - startTimeStamp;
+//
+// System.out.println("debugTimeStamp ::
"+debugTimeStamp);
+// System.out.println("offset :: "+offset);
+//
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
log.debug("############################################");
+//
+// this.offset += debugTimeStamp;
+//
+// }
+// purePacketLastTimeStamp =
streampacket.getTimestamp();
+// }
//We only care about audio at this moment
if (streampacket.getDataType() == 8) {
@@ -78,6 +171,7 @@
flvRecordingMetaDelta.setFlvRecordingMetaDataId(this.flvRecordingMetaDataId);
flvRecordingMetaDelta.setTimeStamp(0);
flvRecordingMetaDelta.setDebugStatus("INIT
AUDIO");
+
flvRecordingMetaDelta.setOffset(this.offset);
flvRecordingMetaDelta.setIsStartPadding(true);
flvRecordingMetaDelta.setIsEndPadding(false);
flvRecordingMetaDelta.setDataLengthPacket(data.limit());
@@ -85,6 +179,7 @@
flvRecordingMetaDelta.setStartTime(this.startedSessionTimeDate);
flvRecordingMetaDelta.setStreamCreationTime(broadcastStream.getCreationTime());
flvRecordingMetaDelta.setStreamCreationTimeDate(new
Date(broadcastStream.getCreationTime()));
+
flvRecordingMetaDelta.setPacketTimeStamp(streampacket.getTimestamp());
Date current_date = new Date();
Long deltaTimeStamp = current_date.getTime() -
this.startedSessionTimeDate.getTime();
@@ -102,6 +197,8 @@
this.flvRecordingMetaDeltas.add(flvRecordingMetaDelta);
+
FlvRecordingMetaDeltaDaoImpl.getInstance().addFlvRecordingMetaDelta(flvRecordingMetaDelta);
+
//That will be not bigger then long
value
startTimeStamp = (int)
(streampacket.getTimestamp() - delta);
@@ -136,6 +233,8 @@
timeStamp -= startTimeStamp;
+ timeStamp += this.offset;
+
if (lastTimeStamp == -1) {
deltaTime = timeStamp;
} else {
@@ -153,11 +252,14 @@
flvRecordingMetaDelta.setTimeStamp(timeStamp);
flvRecordingMetaDelta.setDebugStatus("RUN
AUDIO");
flvRecordingMetaDelta.setIsStartPadding(false);
+
flvRecordingMetaDelta.setOffset(this.offset);
flvRecordingMetaDelta.setIsEndPadding(false);
flvRecordingMetaDelta.setDataLengthPacket(data.limit());
flvRecordingMetaDelta.setReceivedAudioDataLength(this.byteCount);
flvRecordingMetaDelta.setStartTime(this.startedSessionTimeDate);
-
+
flvRecordingMetaDelta.setStreamCreationTime(broadcastStream.getCreationTime());
+ flvRecordingMetaDelta.setStreamCreationTimeDate(new
Date(broadcastStream.getCreationTime()));
+
flvRecordingMetaDelta.setPacketTimeStamp(streampacket.getTimestamp());
Date current_date = new Date();
Long deltaTimeStamp = current_date.getTime() -
this.startedSessionTimeDate.getTime();
@@ -175,6 +277,8 @@
this.flvRecordingMetaDeltas.add(flvRecordingMetaDelta);
+
FlvRecordingMetaDeltaDaoImpl.getInstance().addFlvRecordingMetaDelta(flvRecordingMetaDelta);
+
}
ITag tag = new Tag();
@@ -242,7 +346,7 @@
for (FlvRecordingMetaDelta flvRecordingMetaDeltaLoop :
this.flvRecordingMetaDeltas) {
-
FlvRecordingMetaDeltaDaoImpl.getInstance().addFlvRecordingMetaDelta(flvRecordingMetaDeltaLoop);
+
//FlvRecordingMetaDeltaDaoImpl.getInstance().addFlvRecordingMetaDelta(flvRecordingMetaDeltaLoop);
}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamTranscodingListener.java
Sat Jan 16 03:12:39 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamTranscodingListener.java
Sat Jan 16 07:10:17 2010
@@ -413,5 +413,10 @@
log.debug("#################### -end- closeStream
########################");
}
}
+
+ public void streamResetEvent() {
+ // TODO Auto-generated method stub
+
+ }
}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.hbm.xml
Sat Jan 16 03:12:39 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.hbm.xml
Sat Jan 16 07:10:17 2010
@@ -9,19 +9,20 @@
<property name="flvRecordingMetaDataId" type="long"
column="flvrecording_metadata_id"/>
<property name="timeStamp" type="int" column="time_stamp"/>
<property name="deltaTime" type="long" column="delta_time"/>
- <property name="waveOutPutName" type="string"
column="wave_out_put_name"/>
- <property name="dataLengthPacket" type="int"
column="data_length_packet"/>
- <property name="receivedAudioDataLength" type="long"
column="received_audio_data_length"/>
- <property name="startTime" type="java.util.Date" column="start_time"/>
- <property name="currentTime" type="java.util.Date"
column="current_event_time"/>
<property name="deltaTimeStamp" type="long" column="delta_time_stamp"/>
+ <property name="packetTimeStamp" type="int"
column="packet_time_stamp"/>
+ <property name="startTimeStamp" type="int" column="start_time_stamp"/>
<property name="missingTime" type="long" column="missing_time"/>
<property name="duration" type="int" column="duration"/>
- <property name="startTimeStamp" type="int" column="start_time_stamp"/>
+ <property name="startTime" type="java.util.Date" column="start_time"/>
+ <property name="currentTime" type="java.util.Date"
column="current_event_time"/>
<property name="isEndPadding" type="boolean" column="is_end_padding"/>
<property name="isStartPadding" type="boolean"
column="is_start_padding"/>
<property name="debugStatus" type="string" column="debug_status"/>
<property name="streamCreationTime" type="long"
column="stream_creation_time"/>
<property name="streamCreationTimeDate" type="java.util.Date"
column="stream_creation_time_date"/>
+ <property name="waveOutPutName" type="string"
column="wave_out_put_name"/>
+ <property name="dataLengthPacket" type="int"
column="data_length_packet"/>
+ <property name="receivedAudioDataLength" type="long"
column="received_audio_data_length"/>
</class>
</hibernate-mapping>
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.java
Sat Jan 16 03:12:39 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.java
Sat Jan 16 07:10:17 2010
@@ -17,9 +17,11 @@
private Date startTime;
private Date currentTime;
private Long deltaTimeStamp;
+ private Long offset;
private Long missingTime;
private Integer duration;
private Integer startTimeStamp;
+ private Integer packetTimeStamp;
private String waveOutPutName;
private Integer dataLengthPacket;
private Long receivedAudioDataLength;
@@ -80,74 +82,49 @@
/**
* @hibernate.property
- * column="wave_out_put_name"
- * type="string"
- */
- public String getWaveOutPutName() {
- return waveOutPutName;
- }
- public void setWaveOutPutName(String waveOutPutName) {
- this.waveOutPutName = waveOutPutName;
+ * column="delta_time_stamp"
+ * type="long"
+ */
+ public Long getDeltaTimeStamp() {
+ return deltaTimeStamp;
+ }
+ public void setDeltaTimeStamp(Long deltaTimeStamp) {
+ this.deltaTimeStamp = deltaTimeStamp;
}
/**
* @hibernate.property
- * column="data_length_packet"
+ * column="packet_time_stamp"
* type="int"
- */
- public Integer getDataLengthPacket() {
- return dataLengthPacket;
- }
- public void setDataLengthPacket(Integer dataLengthPacket) {
- this.dataLengthPacket = dataLengthPacket;
+ */
+ public Integer getPacketTimeStamp() {
+ return packetTimeStamp;
+ }
+ public void setPacketTimeStamp(Integer packetTimeStamp) {
+ this.packetTimeStamp = packetTimeStamp;
}
/**
* @hibernate.property
- * column="received_audio_data_length"
+ * column="packet_time_stamp"
* type="long"
- */
- public Long getReceivedAudioDataLength() {
- return receivedAudioDataLength;
- }
- public void setReceivedAudioDataLength(Long receivedAudioDataLength) {
- this.receivedAudioDataLength = receivedAudioDataLength;
- }
-
- /**
- * @hibernate.property
- * column="start_time"
- * type="java.util.Date"
*/
- public Date getStartTime() {
- return startTime;
- }
- public void setStartTime(Date startTime) {
- this.startTime = startTime;
- }
-
+ public Long getOffset() {
+ return offset;
+ }
+ public void setOffset(Long offset) {
+ this.offset = offset;
+ }
/**
* @hibernate.property
- * column="current_event_time"
- * type="java.util.Date"
- */
- public Date getCurrentTime() {
- return currentTime;
- }
- public void setCurrentTime(Date currentTime) {
- this.currentTime = currentTime;
- }
-
- /**
- * @hibernate.property
- * column="delta_time_stamp"
- * type="long"
+ * column="start_time_stamp"
+ * type="int"
*/
- public Long getDeltaTimeStamp() {
- return deltaTimeStamp;
- }
- public void setDeltaTimeStamp(Long deltaTimeStamp) {
- this.deltaTimeStamp = deltaTimeStamp;
+ public Integer getStartTimeStamp() {
+ return startTimeStamp;
+ }
+ public void setStartTimeStamp(Integer startTimeStamp) {
+ this.startTimeStamp = startTimeStamp;
}
/**
@@ -176,14 +153,26 @@
/**
* @hibernate.property
- * column="start_time_stamp"
- * type="int"
- */
- public Integer getStartTimeStamp() {
- return startTimeStamp;
- }
- public void setStartTimeStamp(Integer startTimeStamp) {
- this.startTimeStamp = startTimeStamp;
+ * column="start_time"
+ * type="java.util.Date"
+ */
+ public Date getStartTime() {
+ return startTime;
+ }
+ public void setStartTime(Date startTime) {
+ this.startTime = startTime;
+ }
+
+ /**
+ * @hibernate.property
+ * column="current_event_time"
+ * type="java.util.Date"
+ */
+ public Date getCurrentTime() {
+ return currentTime;
+ }
+ public void setCurrentTime(Date currentTime) {
+ this.currentTime = currentTime;
}
/**
@@ -246,6 +235,40 @@
this.streamCreationTimeDate = streamCreationTimeDate;
}
-
+ /**
+ * @hibernate.property
+ * column="wave_out_put_name"
+ * type="string"
+ */
+ public String getWaveOutPutName() {
+ return waveOutPutName;
+ }
+ public void setWaveOutPutName(String waveOutPutName) {
+ this.waveOutPutName = waveOutPutName;
+ }
+
+ /**
+ * @hibernate.property
+ * column="data_length_packet"
+ * type="int"
+ */
+ public Integer getDataLengthPacket() {
+ return dataLengthPacket;
+ }
+ public void setDataLengthPacket(Integer dataLengthPacket) {
+ this.dataLengthPacket = dataLengthPacket;
+ }
+
+ /**
+ * @hibernate.property
+ * column="received_audio_data_length"
+ * type="long"
+ */
+ public Long getReceivedAudioDataLength() {
+ return receivedAudioDataLength;
+ }
+ public void setReceivedAudioDataLength(Long receivedAudioDataLength) {
+ this.receivedAudioDataLength = receivedAudioDataLength;
+ }
}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
Sat Jan 16 03:12:39 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
Sat Jan 16 07:10:17 2010
@@ -282,6 +282,7 @@
ClientBroadcastStream stream = (ClientBroadcastStream)
ScopeApplicationAdapter.getInstance()
.getBroadcastStream(conn.getScope(),
broadcastid);
+
// Save the stream to disk.
if (isScreenData) {
stream.addStreamListener(new StreamScreenListener(streamName,
conn.getScope(), flvRecordingMetaDataId, isScreenData));
--
You received this message because you are subscribed to the Google Groups
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/openmeetings-dev?hl=en.