If not enough bytes are available, keep track of them and skip
them on next call.
In practice, if these trailer bytes are written in a separate
call, there is no other data written in this call, making it
fall into the "FLV packet too small" case currently - working,
but not as intended.
This patch makes the code more robust, handling all cases
except for having the FLV packet header split over multiple
write calls.
Signed-off-by: Martin Storsjö <martin@martin.st>
If the FLV packet is larger than the AVIO buffer, a partial
FLV packet will be flushed to the RTMP protocol.
This commit handles the most common cases of FLV packets
being written in more than one call.
Signed-off-by: Martin Storsjö <martin@martin.st>
Some received packets can have size 0. The return value from
av_malloc(0) may be NULL, which is ok if the size was 0. On
OS X, however, the returned pointer is non-null but leads to
crashes when trying to free it.
Signed-off-by: Martin Storsjö <martin@martin.st>
Make AVIO_FLAG_ access constants work as flags, and in particular fix
the behavior of functions (such as avio_check()) which expect them to
be flags rather than modes.
This breaks API.
Now the first argument is URLContext *h. However, the function logs to
LOG_CONTEXT, which is #defined as 's' for new lavf major versions.
Therefore, rename h -> s.
Signed-off-by: Mans Rullgard <mans@mansr.com>
ff_url_split() is retained as an alias, as it was used by ffserver,
to avoid breaking ABI compatibility with it.
Originally committed as revision 23822 to svn://svn.ffmpeg.org/ffmpeg/trunk
Earlier, the function only returned when the enough data to fill the
requested buffer was available. This lead to high latency when receiving
low-bandwidth streams.
Originally committed as revision 23642 to svn://svn.ffmpeg.org/ffmpeg/trunk
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.
Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
This ensures proper escaping of numerical IPv6 addresses.
The RTSP (de)muxer needs its own network initialization, since it isn't
a protocol and url_open hasn't been called yet.
Originally committed as revision 22226 to svn://svn.ffmpeg.org/ffmpeg/trunk
This fixes issue streaming from Red5 server.
Patch by Art Clarke (aclarke@`echo xyzzy|sed s/y/u/|sed s/y/le/|tr z g`.com)
Originally committed as revision 21160 to svn://svn.ffmpeg.org/ffmpeg/trunk
Patch by Martin Storsjö ($name at $name dot `Sao Tome and Principe domain`)
Originally committed as revision 20797 to svn://svn.ffmpeg.org/ffmpeg/trunk
difference, so make all read packets store absolute timestamp.
As a consequence, we don't need to track audio/video timestamps separately
any longer in protocol handler.
Originally committed as revision 20685 to svn://svn.ffmpeg.org/ffmpeg/trunk
into playpath.
Patch by Lars Täuber
(<$name> . <$lastname with umlaut replaced with diphtong> @ <gmx> . <net>)
Originally committed as revision 19894 to svn://svn.ffmpeg.org/ffmpeg/trunk