[Live-devel] DeviceSource Translate large frames (fNumTruncatedBytes)
Смирнов Николай Иванович
smirnov at rastr.natm.ru
Mon Oct 14 22:51:43 PDT 2013
Hi!
I try translate H264 video stream by Live555. The hardware video source is
the video camera (USB).
Class for Live555 video source derived from DeviceSource.
The problem in function DeviceSource::deliverFrame :
When the newFrameSize >
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#7f4137
643c61539e313e3a92085efc08> fMaxSize i set
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#337ad4
9493202c89afd93564cc6263da> fNumTruncatedBytes, but only result is the
message:
"The input frame data was too large for our buffer size :.. bytes of
trailing data was dropped!"
This mean (as I understand) that the truncated part of frame is dropped.
Is this mean that the truncated frame is dropped?
So, all large frames (>fMaxSize) really will be skiped.
I try looped the afterGetting() :
u_int8_t* newFrameDataStart = (u_int8_t*)ourFrame;
do
{
unsigned newFrameSize = hugeFrameSize;
if (newFrameSize >
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#7f4137
643c61539e313e3a92085efc08> fMaxSize)
{
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#2871eb
7dbf64aac933e30e1f39eb80e5> fFrameSize =
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#7f4137
643c61539e313e3a92085efc08> fMaxSize;
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#337ad4
9493202c89afd93564cc6263da> fNumTruncatedBytes = newFrameSize -
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#7f4137
643c61539e313e3a92085efc08> fMaxSize;
}
else
{
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#337ad4
9493202c89afd93564cc6263da> fNumTruncatedBytes =0;
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#2871eb
7dbf64aac933e30e1f39eb80e5> fFrameSize = newFrameSize;
}
:
memmove(
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#a2a8e8
9b11d40a5f64447ee55b0573ee> fTo, newFrameDataStart,
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#2871eb
7dbf64aac933e30e1f39eb80e5> fFrameSize);
newFrameDataStart +=
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#2871eb
7dbf64aac933e30e1f39eb80e5> fFrameSize;
hugeFrameSize -=
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#2871eb
7dbf64aac933e30e1f39eb80e5> fFrameSize;
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#2f3f7f
f24e55419517c273725439ea68> FramedSource::afterGetting(this);
}
while(
<http://www.live555.com/liveMedia/doxygen/html/classFramedSource.html#337ad4
9493202c89afd93564cc6263da> fNumTruncatedBytes);
This is bad idea - the program dead.
In message we have recommendation:
"Correct this by increasing \"OutPacketBuffer::maxSize\" to at least"
Is any way to sending large frames (H264 key frames , or other), except
the HUGE fMaxSize?
Sorry for my English!
Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20131015/c5d8afec/attachment-0001.html>
More information about the live-devel
mailing list