[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp server/as...
From: |
Bastiaan Jacques |
Subject: |
[Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp server/as... |
Date: |
Wed, 11 Apr 2007 13:03:46 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Bastiaan Jacques <bjacques> 07/04/11 13:03:46
Modified files:
. : ChangeLog
libbase : FLVParser.cpp
server/asobj : NetStreamFfmpeg.cpp
Log message:
* libbase/FLVParser.cpp: Append 8 "zero" bytes to the end of the frame
buffer to prevent decoders from going past the end of our frame buffer.
This adds NULL-termination, which is also expected by FFMPEG.
* server/asobj/NetStreamFfmpeg.cpp: Initialize certain members to safe
defaults so they will not be read in their uninitialised states.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2844&r2=1.2845
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/FLVParser.cpp?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.cpp?cvsroot=gnash&r1=1.35&r2=1.36
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2844
retrieving revision 1.2845
diff -u -b -r1.2844 -r1.2845
--- ChangeLog 11 Apr 2007 08:55:05 -0000 1.2844
+++ ChangeLog 11 Apr 2007 13:03:45 -0000 1.2845
@@ -1,3 +1,11 @@
+2007-04-11 Bastiaan Jacques <address@hidden>
+
+ * libbase/FLVParser.cpp: Append 8 "zero" bytes to the end of the frame
+ buffer to prevent decoders from going past the end of our frame buffer.
+ This adds NULL-termination, which is also expected by FFMPEG.
+ * server/asobj/NetStreamFfmpeg.cpp: Initialize certain members to safe
+ defaults so they will not be read in their uninitialised states.
+
2007-04-11 Sandro Santilli <address@hidden>
* server/character.h: add protected set_event_handlers(), turn
Index: libbase/FLVParser.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/FLVParser.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- libbase/FLVParser.cpp 30 Mar 2007 13:57:26 -0000 1.3
+++ libbase/FLVParser.cpp 11 Apr 2007 13:03:45 -0000 1.4
@@ -16,7 +16,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-// $Id: FLVParser.cpp,v 1.3 2007/03/30 13:57:26 tgc Exp $
+// $Id: FLVParser.cpp,v 1.4 2007/04/11 13:03:45 bjacques Exp $
#include "FLVParser.h"
#include "amf.h"
@@ -109,6 +109,8 @@
}
// Find the next frame in the file a return it
+#define PADDING_BYTES 8
+
if (useAudio) {
_lastAudioFrame++;
@@ -117,8 +119,10 @@
frame->timestamp = _audioFrames[_lastAudioFrame]->timestamp;
_lt->seek(_audioFrames[_lastAudioFrame]->dataPosition);
- frame->data = new
uint8_t[_audioFrames[_lastAudioFrame]->dataSize];
- _lt->read(frame->data, _audioFrames[_lastAudioFrame]->dataSize);
+ frame->data = new uint8_t[frame->dataSize + PADDING_BYTES];
+ size_t bytesread = _lt->read(frame->data, frame->dataSize);
+ memset(frame->data + bytesread, 0, PADDING_BYTES);
+
frame->tag = 8;
return frame;
@@ -130,12 +134,16 @@
frame->timestamp = _videoFrames[_lastVideoFrame]->timestamp;
_lt->seek(_videoFrames[_lastVideoFrame]->dataPosition);
- frame->data = new
uint8_t[_videoFrames[_lastVideoFrame]->dataSize];
- _lt->read(frame->data, _videoFrames[_lastVideoFrame]->dataSize);
+ frame->data = new uint8_t[frame->dataSize + PADDING_BYTES];
+ size_t bytesread = _lt->read(frame->data, frame->dataSize);
+ memset(frame->data + bytesread, 0, PADDING_BYTES);
+
frame->tag = 9;
return frame;
}
+#undef PADDING_BYTES
+
}
FLVFrame* FLVParser::nextAudioFrame()
Index: server/asobj/NetStreamFfmpeg.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.cpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -b -r1.35 -r1.36
--- server/asobj/NetStreamFfmpeg.cpp 10 Apr 2007 20:24:23 -0000 1.35
+++ server/asobj/NetStreamFfmpeg.cpp 11 Apr 2007 13:03:45 -0000 1.36
@@ -14,7 +14,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-/* $Id: NetStreamFfmpeg.cpp,v 1.35 2007/04/10 20:24:23 bjacques Exp $ */
+/* $Id: NetStreamFfmpeg.cpp,v 1.36 2007/04/11 13:03:45 bjacques Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -581,7 +581,7 @@
static void
rgbcopy(image::rgb* dst, raw_videodata_t* src, int width)
{
- assert(src->m_size <= dst->m_width * dst->m_height * 3);
+ assert(src->m_size <= static_cast<uint32_t>(dst->m_width *
dst->m_height * 3));
uint8_t* dstptr = dst->m_data;
@@ -766,7 +766,8 @@
packet.destruct = avpacket_destruct;
packet.size = frame->dataSize;
packet.data = frame->data;
- packet.pts = static_cast<int64_t>(frame->timestamp);
+ // FIXME: is this the right value for packet.dts?
+ packet.pts = packet.dts =
static_cast<int64_t>(frame->timestamp);
rc = 0;
} else {
rc = av_read_frame(m_FormatCtx, &packet);
@@ -859,6 +860,7 @@
video->m_ptr = video->m_data;
video->m_stream_index = m_video_index;
+ video->m_pts = 0;
// set presentation timestamp
if (packet.dts != static_cast<signed
long>(AV_NOPTS_VALUE))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp server/as...,
Bastiaan Jacques <=