jbr [Wed, 4 Mar 2009 23:55:10 +0000 (23:55 +0000)]
flacdec: Add a check for small buffer size. This ensures reading as
much of the frame header as possible without excluding the smallest
possible FLAC frame. It also fixes a false positive warning message
that was being emitted at the end of decoding.
reynaldo [Wed, 4 Mar 2009 01:28:07 +0000 (01:28 +0000)]
Part 1 of 2 of Kenan Gillet's 'make ff_qcelp_lspf2lpc
more general' changeset. This one splits ff_qcelp_lspf2lpc
into the QCELP-especific ff_qcelp_lspf2lpc + the more general
ff_qcelp_lspf2lpc.
rbultje [Wed, 4 Mar 2009 00:57:37 +0000 (00:57 +0000)]
Split rtsp_send_cmd() into two functions, one for the actual sending of the
command and a second, new function to read the reply to this command. This
will make it possible to read server notices that are not in response to a
command in future versions, such as EOS or interrupt notices. See "[PATCH]
rtsp.c: split rtsp_send_cmd() in a send- and a receive-function" thread.
rbultje [Tue, 3 Mar 2009 17:06:18 +0000 (17:06 +0000)]
Rename "fd1" variable ro "fd". There were previously two variables (fd1 and
fd2) and one was just removed, so naming the other "fd1" is counter-intuitive.
See "[RFC] rtsp.c EOF support" thread.
rbultje [Tue, 3 Mar 2009 17:04:51 +0000 (17:04 +0000)]
Add url_get_file_handle(), which is used to get the file descriptor
associated with the I/O handle (e.g. the fd returned by open()). See
"[RFC] rtsp.c EOF support" thread.
There were previously some URI-specific implementations of the same idea,
e.g. rtp_get_file_handles() and udp_get_file_handle(). All of these are
deprecated by this patch and will be removed at the next major API bump.
rbultje [Tue, 3 Mar 2009 16:52:35 +0000 (16:52 +0000)]
Make RTSP-MS-over-UDP negotiation work. See "[PATCH] RTSP-MS 8/15: fix
RTSP-MS UDP" thread on mailinglist.
Basically, UDP setup needs to be done in a particular order (first rtx
on two UDP ports (one for RTP, one for RTCP), then the other streams over
one, single port for all of them together). Not doing this correctly results
in a "461" error (invalid transport) during setup.
rbultje [Tue, 3 Mar 2009 16:48:56 +0000 (16:48 +0000)]
Recognize the "application" data type, which is used at least in ASF/RTP
streams. However, at the same time, setup of this stream might be required
for UDP-sessions to work correctly, at the same time it will cause TCP
sessions to barf. Therefore, add a special case to the TCP code to skip
setup of these application streams when we are dealing with WMS servers.
See discussion in "[PATCH] RTSP-MS 8/15: fix RTSP-MS UDP" thread.
takis [Tue, 3 Mar 2009 14:32:24 +0000 (14:32 +0000)]
When a H.264 stream references a PPS or SPS id which doesn't exist, instead of
just saying that a non-existing id is referenced, show the value of the id.
rbultje [Tue, 3 Mar 2009 13:57:09 +0000 (13:57 +0000)]
Remove size_t cast in setting s->priv_data directly to the (integer) file
descriptor returned by open(). This removes some dubious doublecasts such
as priv_data = (void *) (size_t) some_integer, and is always safe on systems
we care about because sizeof(int)<=sizeof(void*). See comments from Mans and
Michael in "[RFC] rtsp.c EOF support" thread.
rbultje [Tue, 3 Mar 2009 13:51:34 +0000 (13:51 +0000)]
Don't let finalize_packet() touch pkt->stream_index. Instead, let individual
payload handlers take care of that themselves at their own option. What this
patch really does is "fix" a bug in MS-RTSP protocol where incoming packets
are always coming in over the connection (UDP) or interleave-id (TCP) of
the stream-id of the first ASF packet in the RTP packet. However, RTP packets
may contain multiple ASF packets (and usually do, from what I can see), and
therefore this leads to playback bugs. The intended stream-id per ASF packet
is given in the respective ASF packet header. The ASF demuxer will correctly
read this and set pkt->stream_index, but since the "stream" parameter can
not be known to rtpdec.c or any of the RTP/RTSP code, the "st" parameter
in all these functions is basically invalid. Therefore, using st->id as
pkt->stream_index leads to various playback bugs. The result of this patch
is that pkt->stream_index is left untouched for RTP/ASF (and possibly for
other payloads that have similar behaviour).
The patch was discussed in the "[PATCH] rtpdec.c: don't overwrite
pkt->stream_index in finalize_packet()" thread on the mailinglist.
rbultje [Tue, 3 Mar 2009 13:41:50 +0000 (13:41 +0000)]
In the current implementation of rtp_parse_packet(), finalize_packet() is
called for all packets with an internal handler function but only for
non-first packets from dynamic payload parse_packet() handlers. This patch
fixes that. Bug was noticed by Luca in "[PATCH] rtpdec.c: don't overwrite
pkt->stream_index in finalize_packet()" thread.
rbultje [Tue, 3 Mar 2009 13:26:17 +0000 (13:26 +0000)]
Fix allocated length of the HTTP authentication request field buffer, as
noticed by Stefano and Luca in the "[PATCH]RTSP Basic Authentication"
mailinglist thread.
diego [Tue, 3 Mar 2009 12:52:12 +0000 (12:52 +0000)]
Do not add -D_FILE_OFFSET_BITS=64 and -D_LARGEFILE_SOURCE unconditionally to
CFLAGS. Apparently there are some systems that do not like these definitions.
jbr [Tue, 3 Mar 2009 04:45:45 +0000 (04:45 +0000)]
flacdec: Avoid trying to read 33 bits. This occurs when the source
is 32 bits-per-sample and channel decorrelation is used. Such files
are valid, but not supported currently.
michael [Mon, 2 Mar 2009 15:12:26 +0000 (15:12 +0000)]
Favor container packets that end after the first byte of the access
unit in fetch_timestamp(). This should make no difference for valid
streams but may help invalid ones, also its needed for future changes.
michael [Mon, 2 Mar 2009 14:53:18 +0000 (14:53 +0000)]
Call ff_fetch_timestamp() for mpeg1/2 when a picture start code is found instead
of calling it at the end of a frame with a large negative offset.
This significantly reduces the maximal distance in container packets between
the point where the first byte of the "access unit" was stored and where
we call ff_fetch_timestamp() thus reducing the constraints on our parser.
Also change the parser from next_frame_offset to cur, this is needed
because now the reference is from container packet start instead of
frame start. (i previously misinterpreted this as bug)
diego [Mon, 2 Mar 2009 09:33:57 +0000 (09:33 +0000)]
version.h should depend on config.mak.
The extra version string that is passed to configure is recorded in config.mak
and changes to config.mak can therefore make version.h rebuilds necessary.